ここではRaspberryPi4でPython3.7を使用しました。
ホビー用サーボ(左からSG92R、SG90)
ライブラリをインストールする
piServoCtlライブラリを使用します。
Github: https://github.com/naoto64/piServoCtl
以下のコマンドを打ってインストールできます。
$ sudo pip3 install piServoCtl
使い方
このライブラリは、pigpioを使用しているため、pigpiodを起動する必要があります。コマンドsudo pigpiod
を打つか、pigpiodを自動起動させておいてください。pigpiodの自動起動については、このサイトが参考になります。
https://hakengineer.xyz/2017/09/22/post-318/
サーボはSG92RやSG90を使用しましたが、他のサーボでも動くと思います。
from piservo import Servo # piservoモジュールをインポート(piServoCtlと間違えないように)
import time
myservo = Servo(12) # GPIO12にサーボをつなぐ
myservo.write(180)
time.sleep(3)
myservo.write(0)
time.sleep(3)
myservo.stop()
このプログラムを実行すると、サーボが180度、0度の位置に動きます。ですが、0度付近でサーボがガタガタ動きます。サーボモータに若干のズレがあるようで、少し修正が必要なようです。
myservo = Servo(12, min_pulse=0.61, max_pulse=2.34)
myservo = Servo(12)
の部分を上のように変更すると、ほぼ正確に動くようになりました。サーボは個体差があるようなので、サーボに合わせてmin_pulse, max_pulse
の部分を適宜書き換えて下さい。
実行結果
PythonのpiServoCtlライブラリでサーボを動かしてみた。#Python #Raspberry #ラズパイ #電子工作 #サーボ #Servohttps://t.co/VuUtBdYo1a pic.twitter.com/css7esWEjw
— naoto64 (@naoto64_2000) October 18, 2020