前回前々回までは「wiringpi」のソフトウェアPWMを使用していましたが、こちらの方法だとサーボモータがガタガタと振動してしまいました。それでは少し実用性に欠けるので、今回はハードウェアPWMを使用してサーボが振動しないようにしていきたいと思います。

参考にさせていただいたサイトはこちらです。

ただいまシステムの中身③ GPIOを使ったサーボモータ制御

「wiringpi」のハードウェアPWMを使用するためにPythonファイルを以下のように変更しています。

また、HTMLファイルも同時に変更します。前回まではブラウザのスライダーの値を0~28段階で変更していました。

それを今回は0~180段階で制御できるようになっています。こちらのほうが細かく角度を指定することができますし、分かりやすいと思います。

デメリットとしてましては、今回はハードウェアPWMを使用していますので、使えるピン番号が限られているということです。

ハードウェアPWMはGPIO12、18もしくは、GPIO13、19のどれかに接続してやらないと動かすことができません。

HTMLファイルは以下のようになります。

上記のスライダーを2個にして動かしてみた様子がこちらです↓

少し揺れているのはハード側の慣性で揺れてるだけなので、サーボはピタッと止まっています。ソフトウェアPWMに比べると雲泥の差です。これからはなるべくハードウェアPWMを使っていこうと思います。