Raspberry Pi 備忘録 / Mbedもあるよ!

Raspberry Pi であれこれやった事の記録

Raspberry pi でロボットアームを動かす その2

モーターの動作確認

MG996R の動作確認

6v 1A に設定した安定化電源から給電しました。

f:id:pongsuke:20170106111203p:plain

配線は、上記の通り。
周波数も、上記の通り 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 を入れることにしました。