今回はRaspberryPiに「pigpio」をインポートしてサーボモータ(MG996R)を動かしてみましたので、そのときの情報を記載しておきます。

「wiringpi」のソフトウェアPWMを使用するとサーボがかなりガタガタしてしまいましたので、今回は「pigpio」のハードウェアPWMを使用して揺れを無くすようにしてみました。

なお、「wiringpi」のハードウェアPWMを使いたい場合はこちらの記事を見てみてください↓

wiringpiのハードウェアPWMでサーボモータ(MG996R)を動かす

使用しているサーボはMG996Rです。今回も下記の範囲で設定していきます。
***************************************
・周期:20[ms]、周波数:50[Hz]

・パルス幅:0.5~2.4[ms]

・Duty:2.5~12[%](パルス幅/周期×100)
***************************************

参考サイト

今回は以下の記事を参考にさせていただきました。

Raspberry PiのハードウェアPWMをpigpioで出力する

Raspberry PiのGPIO制御の決定版 pigpio を試す

pigpioのインストール

まずはpigpioをインストールしておきます。(動くようになりました!)

デーモンの立ち上げ

pigpioを使う前にはデーモンを立ち上げておく必要があるみたいです。よって、以下も実行しておきます。

Pythonファイルの作成

以下のようなPythonファイルを作成してサーボを動かすことができました。気をつける点として、ファイル名は「pigpio.py」以外で保存してください。インポートで使っているライブラリ名をファイル名にするとエラーになります。

上記のハードウェアPWMを使用すると振動は少なくなりました。いろいろと調べてみた結論として、「wiringpi」を使うにしろ「pigpio」を使うにしろ、ハードウェアPWMを使ったほうが正確なPWM制御ができることが分かりました。