Raspberry Pi 3 B+ (Buster) 无法通过半双工通信控制 Dynamixel AX-12A Raspberry Pi 3 B+ (Buster)
Raspberry Pi 3 B+ (Buster) can't control Dynamixel AX-12A with Raspberry Pi 3 B+ (Buster) with half duplex communication
我有一个项目是用 Dynamixel AX-12A 做轮子的移动机器人,所以我把 AX-12A 改成轮子模式用 CM-530 效果很好。
我遵循 http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi
中的指南
我已经使用 Terminal 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 处理这个项目,这是否导致通信出现问题?
如果有人能帮助我,我谢谢你。
*对不起,如果我英语不好
经过很长时间的讨论,现在我可以控制电机了,问题是我发送了错误的指令包FF FF 00 04 03 20 FF D8
,应该是FF FF 00 05 03 20 FF 00 D8
。
我有一个项目是用 Dynamixel AX-12A 做轮子的移动机器人,所以我把 AX-12A 改成轮子模式用 CM-530 效果很好。
我遵循 http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi
中的指南我已经使用 Terminal 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 处理这个项目,这是否导致通信出现问题?
如果有人能帮助我,我谢谢你。
*对不起,如果我英语不好
经过很长时间的讨论,现在我可以控制电机了,问题是我发送了错误的指令包FF FF 00 04 03 20 FF D8
,应该是FF FF 00 05 03 20 FF 00 D8
。