問題
AX-12AをRaspberryPi 3 ModelBから制御したいと思っています。
http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi を参考に、74LS241とつないでモータを動かすことはできたのですが、モータ側から返ってくる受信データを読み込むことができません。(タイムアウト)
該当のソースコード
python3
1import serial 2import MyMotor 3import RPi.GPIO as GPIO 4import sys 5 6GPIO.setmode(GPIO.BCM) 7GPIO.setup(18,GPIO.OUT) 8GPIO.output(18,GPIO.HIGH) 9 10port=serial.Serial("/dev/ttyS0",baudrate=1000000,timeout=3) 11 12serial = MyMotor.GetTemperature(4) 13if not serial: 14 print('serial Error') 15 GPIO.cleanup() 16 sys.exit() 17print('serial:' + serial) 18port.write(bytearray.fromhex(serial)) 19read = port.read() 20if not read: 21 print('Not Read') 22else: 23 print('len:' + format(len(read),'d')) 24 for r in read: 25 print(format(r,'x').zfill(2),end=' ') 26 print() 27 28GPIO.cleanup()
exe
1pi@raspberrypi:~/ax12a $ python3 read_test1.py 2serial:ff ff 04 04 02 2b 01 c9 3Not Read 4pi@raspberrypi:~/ax12a $
試したこと
ROBOTIS e-MANUAL(http://support.robotis.com/jp/)によるとHalfDuplexのため通信方向を制御するDirectionPortが必要らしいですが、制御方法のサンプルがなく、よく分かりませんでした。ご教授のほどよろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
debian9.4
python3.5.3
pyserial3.2.1
パケット通信参考:http://www.besttechnology.co.jp/modules/knowledge/?BTX030B%20Dynamixel%20AX-12A
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。