環境
ハードウェア
ラズパイ:Raspberry Pi 5
サーボモータ:GDS-0812
ソフトウェア
言語:Python
プログラム:gpiozero
事象
サーボモータにパルスが入力されている状態で止まってる時に「ジジジジ」とか言って微妙に動いてる。
原因
gpiozeroだとハードウェアPWMが使えず、CPUへの割り込み処理とかでPWMの幅が変わっちゃうのが原因。
対処
諦めるニャン。
pigpioが使えれば望み有りだったんですが、ラズパイ5からGPIOの制御方法が変わってしまったのでpigpioは使えません。
なので代案として「PCA9685」というサーボモータのドライバを使用しましょう。
自分は下記のコードで震えることなく動作しました。
(SG-90じゃなくて特殊なサーボを使っているので普通の人はこれじゃ動かないかもしれません)
(SG-90とか使っている方は参考文献を参照してみてください)
1 2 3 4 5 6 7 8 9 10 11 |
import Adafruit_PCA9685 import time pwm = Adafruit_PCA9685.PCA9685() pwm.set_pwm_freq(50) while 1: pwm.set_pwm(0,0,150) time.sleep(1) pwm.set_pwm(0,0,450) time.sleep(1) |
参考文献

ラズパイでサーボモータを制御(PCA9685)
コメント