Raspberry pi でロボットアームを動かす その2
モーターの動作確認
MG996R の動作確認
6v 1A に設定した安定化電源から給電しました。
配線は、上記の通り。
周波数も、上記の通り 50hz です。
$ cat MG996R.py #!/usr/bin/python # coding: utf-8 import RPi.GPIO as GPIO import time import sys # GPIO 21番を使用 PIN = 21 GPIO.setmode(GPIO.BCM) GPIO.setup(PIN, GPIO.OUT) servo = GPIO.PWM(PIN, 50) # GPIO.PWM(PIN, [周波数(Hz)]) val = [2.5,3.6875,4.875,6.0625,7.25,8.4375,9.625,10.8125,12] if __name__ == '__main__': try: servo.start(0.0) servo.ChangeDutyCycle(val[0]) time.sleep(0.5) servo.ChangeDutyCycle(val[8]) time.sleep(0.5) servo.ChangeDutyCycle(val[0]) time.sleep(0.5) while True: for i, dc in enumerate(val): servo.ChangeDutyCycle(dc) print("Angle:" + str(i*22.5)+" dc = %.4f" % dc) time.sleep(0.5) for i, dc in enumerate( reversed(val) ): servo.ChangeDutyCycle(dc) print("Angle:" + str(180 - i*22.5)+" dc = %.4f" % dc) time.sleep(0.5) except KeyboardInterrupt: pass servo.ChangeDutyCycle(val[4]) time.sleep(1.5) servo.stop() GPIO.cleanup()
DS3218
安定化電源(6v, 1A設定)につないで、RPIからPWMを送るのですが、どうもピクピクしてしまう。
試しに RPI 5v から給電した所、正常に動いた。
ただし、電圧低下のシグナルが出るので、このままでは良くない。
しばらく原因がわからなかったのですが、どうも、ただのアンペア不足だったようです。2A出すようにしたら、正常に動き始めました。
流す電流も大きくなってきたので、PCA9685 を入れることにしました。