koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Windows と Raspberry Pi の PWM制御 事情

Raspberry Pi シリーズはGPIO18番がハードウェアPWM制御対応しているらしい。

では、Windows 10 IoT Core でそれを使えるのだろうか?

Hardware PWM on Windows 10 IoT (Pi2)

こんなやり取りが見つかった。

ソフトウェアでのPWM制御ライブラリはあるけれど、ハードウェア制御には未対応なようだ。

何だかんだで汎用OSなので、特化したハードへの対応は弱いのだろう。

どの道1端子しかないので、無いものと思っておけばよいかな。

例えば、ソフトウェアPWM制御や他のリアルタイム性が必要とされる処理に専用のスレッドを立てる、ようなことは出来るのだろうか?

リアルタイムではない普通のOSは、ある処理がいつ動くのかは分からん訳だけれども、それにしたってなるべく頑張りたい場面はあるはずだ。

オシロスコープ欲しくなってくるなぁ。

PWMライブラリ

先のQAで紹介されていたライブラリ。 ソフトウェアPWM制御に加えて、PCA9685向けも提供されている。

複数の機器を制御するなら、こんな風にそのためのハードを使うことになるのだろう。

github.com

Raspberry Pi + Windows 10 IoT Core 本あり。 目次を見る限り、PCA9685と先のライブラリを使った例も載っている模様。

book.mynavi.jp

オマケ。お試し実装

スライダーを動かすと、LEDの光量が変わります。 負論理のLED接続のままなので画面と光り方が逆だ。 動画に取ると、フレームレートの関係でパルスが目に見えて面白い感じ。

github.com