我有一个项目可以使用Dynamixel AX-12A作为车轮制造移动机器人,所以我将AX-12A更改为带有CM-530的车轮模式,并且效果很好。
我遵循http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi上的指南
我已经使用终端Minicom在Raspi上检查了我的串行通信(UART),仅将GPIO14和GPIO15连接在一起,并且效果很好
在代码末尾是我的/boot/config.txt:
dtoverlay=pi3-disable-bt
hdmi_force_hotplug=1
enable_uart=1
init_uart_clock=16000000
这是我的/boot/cmdline.txt:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles
这是我的Python3代码:
import serial
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setwarnings(False)
port = serial.Serial("/dev/ttyAMA0", baudrate=1000000, timeout=3.0)
while True:
GPIO.output(18, GPIO.HIGH)
port.write(bytearray.fromhex("FF FF 00 04 03 20 FF D8"))
time.sleep(0.1)
GPIO.output(18, GPIO.LOW)
time.sleep(3)
问题是dynamixel ax-12a没有响应我的hexa,它的值应该移动到255。并且程序没有错误反馈。
顺便说一句,我正在通过PC中的wifi与VNC进行此项目,这是否导致通信问题?
如果有人可以帮助我,我谢谢你。
*对不起,如果我的英语不好
答案 0 :(得分:0)
经过很长时间的讨论,现在我可以控制电动机了,问题是我发送了错误的指令包FF FF 00 04 03 20 FF D8
,应该是FF FF 00 05 03 20 FF 00 D8
。