这是一款用于 DDSM400 直驱伺服轮毂电机的驱动板,板载 6 路 DDSM400 电机接口,集成 ESP32 和轮毂电机控制电路,我们开源了轮毂电机控制例程和 JSON 通信接口,用户可以通过 USB 连接,使用上位机发送 JSON 格式的指令来控制轮毂电机,并获取 JSON 格式的反馈(电机的电流,转速,温度等信息)。
用户也可以对其进行二次开发,作为机器人项目的下位机来使用。
准备 DDSM Driver HAT (B) 驱动板的供电电源,可以通过 DC5525 或者 XT60 两个供电接口的其中一个进行供电。
DDSM Driver HAT (B) 驱动板支持 9~28V DC 电源,该驱动板适配的 DDSM400 轮毂电机工作电压范围为 9~28V,额定电压为 25.2V。
电源的电流要根据轮毂电机的工作需求来选择,支持的电流越大越好,在我们的使用测试中,使用 24V 6A 的电源可适用于绝大部分场景。
DDSM Driver HAT (B) 驱动板出厂上默认带有轮毂电机的控制例程,确保“串口控制切换开关”位于 ESP32 的档位(如下图),此时轮毂电机可以接收来自 ESP32 的控制指令。通过 DC5525 或 XT60 两个供电接口给驱动板供电,驱动板上的 ESP32 会自动开机并同时建立热点供用户连接。
每个轮毂电机在出厂时的 ID 默认为1,因此在进行轮毂电机控制之前,需要为每个轮毂电机设置 ID。
若您忘记之前给轮毂电机设置的 ID,或者需要查看 ID 设置是否成功,可以发送 DDSM CTRL 中的 CMD_DDSM_ID_CHECK 这条指令即可查询轮毂电机 ID。反馈的信息为:
{"T":20010,"id":6,"typ":210,"spd":-1,"crt":-2,"act":1,"tep":40,"err":0}
电机上电后默认为失能状态,因此需要先给电机使能后才可以进行电流环、速度环、位置环模式的控制。
点击 DDSM CTRL 中的 CMD_CHANGE_Enable 这条指令旁的“INPUT”,可以看见上方输入框中显示电机使能的 JSON 指令为:{"T":11002,"id":1},其中:
轮毂电机支持不同的电机模式切换,但是重新上电后的轮毂电机默认都是处于失能模式下。给电机使能后默认为电流环模式。
可以使用 CMD_CHANGE_MODE 这条指令来切换模式环,可以看见 JSON 指令显示为:{"T":10012,"id":1,"mode":2},其中:
在进行轮毂电机的转动控制前,您需要将轮毂电机的轴固定,如果您目前没有对应的结构件来固定电机轴,可以设置心跳函数来让轮毂电机自动停止转动(默认的速度环模式下)。
有两点注意事项:
例子: 你可以设置一条 time 值为 1000 的心跳函数指令,在输入框中的 JSON 指令输入:{"T":11001,"time":1000},点击 SEND 发送,这样当你控制 ID 为 1、2、3、4 的轮毂电机转动时,它转动 1 秒钟后会自动停止,这样防止无结构件固定电机轴的情况下电机突然转动引起的危险。
进行速度闭环控制之前,需要确保您已经给电机使能且将电机模式从电流环切换至速度环。
点击 SEND 发送这个指令之后,轮毂电机会开始转动。如果你没有设置心跳函数(心跳函数的 time 值为 -1)轮毂电机会一直转动下去,之后你可以使用上面的速度控制指令,将目标转速 cmd 值改为 0,可以令轮毂电机停止转动。
基础使用部分介绍的是如何在 Web 应用中发送 JSON 指令及 JSON 指令的介绍,本部分介绍如何通过有线连接的方式发送 JSON 指令控制驱动板和轮毂电机。
您可以使用 树莓派、Jetson、PC 或其它带有 USB 接口(可进行串口通信的 USB 接口)的设备做为上位机,通过 40PIN 串口或者 USB 接口连接驱动板和上位机。您可以在上位机运行 Python 脚本或者串口调试助手之类的工具发送 JSON 指令来控制轮毂电机。
这里介绍使用简单的串口调试助手来控制轮毂电机:
您可以在上位机中运行 Python 脚本来控制轮毂电机,本脚本可以在任何支持运行 Python 脚本和支持串口通信的设备上使用,包括 Windows PC、Raspberry Pi、Jetson orin 等设备,根据实际情况更改运行 Python 脚本时的输入的串口设备名称参数即可。
1. 首先到Python 官网下载最新版本 Python 的安装包。根据您的操作系统选择进行下载即可,我这里下载的是 windows 的,版本是3.12.0。
2. 下载完成后,双击安装程序 python-3.12.0-amd64。一定要记得勾选“Add python.exe to PATH”,勾选后点击“Customize installation(自定义安装)”进入到“Optional Features”可选功能界面。 注意若您是Windows系统安装一定要勾选“Add Python.exe to PATH”。
3. 在 Optional Features 这一界面中保持勾选点击“Next”后进入到“Advanced Options”界面。
4. 在“Advanced Options”界面中,安装地址可以点击“Browse”后修改为自己要安装的地址,这里是默认安装地址,设置好后点击“Install”安装,等待安装完成即可。
点击下载 Python 串口通信例程,解压后,接着在“开始”菜单栏中输入 cmd 打开 Windows 的命令提示符界面,输入“cd 文件夹路径”进入到 ddsm_python 项目文件夹下。
cd C:\Users\liuwei\Downloads\Ddsm_python\ddsm_python(liuwei要改成自己系统对应的User名)
在这个项目文件夹下创建一个对于这个项目的虚拟环境,输入命令:python -m venv [虚拟环境名称,一般叫项目名-env]。
python -m venv ddsm-env
激活这个虚拟环境,在命令提示符界面中输入:项目名-env\Scripts\activate.bat。
ddsm-env\Scripts\activate.bat
解压后可以看见例程中有一个 requirements.txt 文件,这个文件是 DDSM_Python 项目需要用到的安装包列表,可以通过输入以下命令直接安装所有必备的包到虚拟环境中:
python -m pip install -r requirement.txt
虚拟环境已经部署好了,该项目所使用到的安装包也已装好,接下来来运行串口通信例程。
串口通信用到的 Python 例程为 serial_simple_ctrl.py。例程具体内容如下:
import serial
import argparse
import threading
def read_serial():
while True:
data = ser.readline().decode('utf-8')
if data:
print(f"Received: {data}", end='')
def main():
global ser
parser = argparse.ArgumentParser(description='Serial JSON Communication')
parser.add_argument('port', type=str, help='Serial port name (e.g., COM1 or /dev/ttyUSB0)')
args = parser.parse_args()
ser = serial.Serial(args.port, baudrate=115200, dsrdtr=None)
ser.setRTS(False)
ser.setDTR(False)
serial_recv_thread = threading.Thread(target=read_serial)
serial_recv_thread.daemon = True
serial_recv_thread.start()
try:
while True:
command = input("")
ser.write(command.encode() + b'\n')
except KeyboardInterrupt:
pass
finally:
ser.close()
if __name__ == "__main__":
main()
连接轮毂电机到驱动板,为驱动板供电,使用 USB 线连接上位机和驱动板上面标记有 ESP32-USB 的 Type-C 接口,确保“串口控制切换开关”位于 ESP32 的档位。
连接后,在“开始”中的搜索栏中搜索设备管理器查看新插入的端口号,这里新插入的为 COM67,不同电脑插入的端口号不一样,记住新接入的端口号。
使用以下命令来运行串口通信程序,根据实际情况更改运行 Python 脚本时输入的串口设备名称参数即可。将 COM67 更换成驱动板在 PC 中新插入的串口设备端口号,如果您使用的是树莓派、Jeston Orin Nano等设备,也要更改为相对应的端口名称。
python serial_simple_ctrl.py COM67
运行完成后,终端不会反馈任何信息,然后您可以在终端中输入 JSON 指令,按回车,即可与 DDSM Driver HAT (B) 进行通信。例如:需要获得当前连接的电机ID(此时只能有一个电机连接),可以发送 {"T":10031},发送成功后会有信息反馈出来。
当你给 DDSM Driver HAT (B) 驱动板上传了其它例程后,会自动替换掉其原有自带的出厂例程,如果你需要快速地将驱动板恢复至出厂的例程,可以使用我们提供的 ESP32 下载工具。
步骤如下:
1. 点击 ESP32 下载工具进行下载,下载后进行解压缩,双击打开“flash_download_tool_3.9.5.exe”程序。打开后,会弹出两个窗口,我们需要操作的是下载工具的 UI 界面,而另一个窗口作为终端来显示下载工具的工作状态。
2. 在“DOWNLOAD TOOL MODE”这个界面,Chip Type 选择为 ESP32,WorkMode 选择为 Factory。(使用 Factory,调用二进制文件时才会使用相对路径,就不需要用户手动输入二进制文件路径,选择好后点击 OK。)
3. 进入下载工具软件界面,右边代表的是可以同时给 8 个驱动板上传程序。将 DDSM Driver HAT (B) 驱动板上的开关档位拨动至“ESP32”的档位上,用 USB 线将 DDSM Driver HAT (B) 驱动板上的 ESP32-USB 接口与电脑相连接,点击“COM”,选择新出现的 COM(我这里新出现的 COM 为 COM67);BAUD 是用于设置下载速度,越高速度越快,ESP32 最高可以使用 921600。
4. 选择好后,点击“START”开始上传程序,上传完成后,“IDLE等待”会变成“FINISH完成”,完成后可以断开驱动板与电脑的 USB 连接,连接轮毂电机,通电后即可进行基础使用控制。
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841