こんな記事を発見:RPi.GPIOよりもpigpioの方が精度が良いらしい。
「RPi.GPIO と pigpio のパルス幅の精度を測定」
テストのコード
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import pigpio
PAN=27
GP = pigpio.pi()
GP.set_mode(PAN, pigpio.OUTPUT)
GP.set_servo_pulsewidth(PAN, 500) # gpio18 500us
time.sleep(60)
GP.stop()
実測結果
標準偏差が348nSと、OSのオーバーヘッドがないArduinoと比較すると2桁程大きいが、サーボモータの制御には十分な精度が得られそう、、、
RPi.GPIOは、0.1ms程度のバラツキだそうです。サーボのザギザギ原因がよくわかりました。
0.1mSだと、角度がかなりぶれますね! pigpioへの変更は終わりましたか?
やはりpi4bの5V電源から取っていたのが問題だったようです。エネループ3本に変更したら、本体リセットはなくなりました。