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