この記事をシェアしよう!

【 第26回 】から【 第37回 】に亘って、Pytho3にインポートする様々なGPIO制御ライブラリを使ってきましたが、今回、それぞれの仕様について一覧表にまとめてみました。

こうして一覧表にまとめてみると、制御ライブラリでは”pigpio”が、特にサーボモーターの制御で出力チャンネルが2チャンネルで足りるなら、ハードウェアPWMを出力する関数”.hardware_PWM”がよいのではないでしょうか。出力チャンネルがそれ以上必要な場合は、Hardware Timed PWMで出力する関数”.set_servo_pulsewidth”がサーボモーターの制御に特化していて使いやすいと思います。

残念だったのは”Gpiozero”の関数”.AngularServo_angle”がサーボモーターの回転を直接、角度で指定できるのがとても分かり易かったのに、ジャダーが激しくて使い物にならないことでした。

各GPIO制御ライブラリを用いたサーボモーターの回転

各GPIO制御ライブラリのサーボモーター制御関数を用いた回転の様子を動画で確認していただきます。

同一条件で撮影する為、【 第37回 】と同じ部品と接続でサーボモーターも同一のものを使い、プログラムも見直して動作を共通にしました。尚、GPIO出力への影響を最小限に抑える為、音声出力は【 第25回 】の方法で無効化しています。

RPi.GPIOの関数.PWM_ChangeDutyCycle

WiringPiの関数.pwmWrite

pigpioの関数.set_PWM_dutycycle

pigpioの関数.set_servo_pulsewidth

pigpioの関数”.hardware_PWM”

Gpiozeroの関数.Servo

Gpiozeroの関数”.AngularServo.angle”

この記事をシェアしよう!