前回はRaspberryPiに「RPi.GPIO」をインポートしてサーボモータ(MG996R)を動かしてみました。前回は配列にDuty比を入れて操作していましたが、今回はDuty比を直接指定して動かしてみたいと思います。
なお、今回も下記の範囲で設定していきます。
***************************************
・周期:20[ms]、周波数:50[Hz]
・パルス幅:0.5~2.4[ms]
・Duty:2.5~12[%](パルス幅/周期×100)
***************************************
以下のようなPythonファイルを作成してサーボを動かすことができました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) gp_out = 16 GPIO.setup(gp_out, GPIO.OUT) servo = GPIO.PWM(gp_out, 50) # GPIO.PWM(PIN, [周波数(Hz)]) servo.start(0) for i in range(5): servo.ChangeDutyCycle(2.5) #servo.ChangeDutyCycle([0.5~2.4(ms)/20(ms)*100]) time.sleep(0.5) servo.ChangeDutyCycle(7.25) time.sleep(0.5) servo.ChangeDutyCycle(12) time.sleep(0.5) servo.ChangeDutyCycle(7.25) time.sleep(0.5) servo.stop() GPIO.cleanup() |
動かしている様子はこちら。
RPi.GPIOでサーボモータ(MG996R)を動かす その2 pic.twitter.com/MvwMAXcszf
— Kazuki@ロボット作り (@RoomKazuki) 2019年7月19日
コメントを残す