RoArm-M2-S Python串口通信控制
Python 串口通信
本章节主要介绍了如何使用 Python 串口让 PC/树莓派/Jeston Orin Nano 等设备与机械臂进行通信。这里拿 PC 与机械臂进行串口通信作示例。
RDK X5 使用
在 RDK X5 Ubuntu 系统中,点击下载RoArm-M2-S的Python例程,下载完成后进入“/home/sunrise/Downloads”目录进行解压缩:
cd /home/sunrise/Downloads unzip RoArm-M2-S_python.zip
在这个项目文件夹下创建一个对于这个项目的虚拟环境,输入命令:python -m venv [虚拟环境名称,一般叫项目名-env]。
cd RoArm-M2-S_python python -m venv roarmpython-env
激活这个虚拟环境,在命令提示符界面中输入:项目名-env\Scripts\activate.bat。
source roarmpython-env/bin/activate
解压后可以看见例程中有一个requirements.txt文件,这个文件是RoArm-M2-S_Python项目需要用到的安装包列表,可以通过输入以下命令直接安装所有必备的包到虚拟环境中:
python -m pip install -r requirements.txt
安装完成后,接下来就可以通过运行 Python 串口通信例程来与机械臂进行串口通信了。
Python 串口通信
在 RoArm-M2-S Python 例程中可以看见其中有四个 Python 程序,串口通信用到的 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 线通过 Type-C 接口将 RDK X5 主板与机械臂进行连接。如果您使用的是其它设备与机械臂连接,您也可以通过 RX/TX 引脚进行连接。
连接后,在终端中输入:ls /dev/tty* 查看机械臂接入后新出现的端口后,如下图,新出现的为 /dev/ttyUSB0。
使用以下命令来运行串口通信程序,注意一定要加上机械臂所接入的端口号。如果您使用的是树莓派、Jeston Orin Nano等设备,也要更改为相对应的端口名称。
python serial_simple_ctrl.py /dev/ttyUSB0
运行完成后,不会返回任何信息。可以使用开关 LED 灯或者开关扭矩锁的 JSON 指令来验证是否能与机械臂进行通信。
//开启 LED 灯,机械臂上的 LED 灯会亮 {"T":114,"led":255} //关闭 LED 灯 {"T":114,"led":0} //关闭扭矩锁,此时,可以用手转动机械臂 {"T":210,"cmd":0} //开启扭矩锁,此时,不可用手转动机械臂 {"T":210,"cmd":1}
在这个界面中可以发送 JSON 格式的指令,也可以获取机械臂的反馈信息,从而与机械臂进行通信。更多 JSON 格式指令的含义参考教程 RoArm-M2-S_JSON指令含义。
Windows 使用
Windows 上安装 Python
首先到Python 官网下载最新版本 Python 的安装包。根据您的操作系统选择进行下载即可,我这里下载的是 windows 的,版本是3.12.0。
下载完成后,双击安装程序 python-3.12.0-amd64。一定要记得勾选“Add python.exe to PATH”,勾选后点击“Customize installation(自定义安装)”进入到“Optional Features”可选功能界面。
注意若您是Windows系统安装一定要勾选"Add Python.exe to PATH"。
在 Optional Features 这一界面中保持勾选点击“Next”后进入到“Advanced Options”界面。
在“Advanced Options”界面中,安装地址可以点击“Browse”后修改为自己要安装的地址,这里是默认安装地址,设置好后点击“Install”安装,等待安装完成即可。
安装好后,接下来我们可以进行 Python 项目编译,通过 Python 例程与机械臂进行 JSON 指令通信。
部署 Python 虚拟环境
点击下载RoArm-M2-S的Python例程,解压后,接着在“开始”菜单栏中输入 cmd 打开Windows的命令提示符界面,输入“cd 文件夹路径”进入到RoArm-M2-S_Python项目文件夹下。
cd C:\Users\liuwei\Desktop\RoArm-M2-S\RoArm-M2-S_python
在这个项目文件夹下创建一个对于这个项目的虚拟环境,输入命令:python -m venv [虚拟环境名称,一般叫项目名-env]。
python -m venv roarmpython-env
激活这个虚拟环境,在命令提示符界面中输入:项目名-env\Scripts\activate.bat。
roarmpython-env\Scripts\activate.bat
解压后可以看见例程中有一个requirements.txt文件,这个文件是RoArm-M2-S_Python项目需要用到的安装包列表,可以通过输入以下命令直接安装所有必备的包到虚拟环境中:
python -m pip install -r requirements.txt
安装完成后,接下来就可以通过运行 Python 串口通信例程来与机械臂进行串口通信了。
Python 串口通信
在 RoArm-M2-S Python 例程中可以看见其中有四个 Python 程序,串口通信用到的 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 线通过 Type-C 接口将 PC 与机械臂进行连接。如果您使用的是其它设备与机械臂连接,您也可以通过 RX/TX 引脚进行连接。
连接后,在“开始”中的搜索栏中搜索设备管理器查看新插入的端口号,这里新插入的为 COM20,不同电脑插入的端口号不一样,记住机械臂接入的端口号。
使用以下命令来运行串口通信程序,注意一定要加上机械臂所接入的端口号。将 COM20 更换成机械臂在 PC 中新插入的串口设备端口号,如果您使用的是树莓派、Jeston Orin Nano等设备,也要更改为相对应的端口名称。
python serial_simple_ctrl.py COM20
运行完成后,可以看见机械臂进行初始化后的返回信息。
在这个界面中可以发送 JSON 格式的指令,也可以获取机械臂的反馈信息,从而与机械臂进行通信。更多 JSON 格式指令的含义参考教程 RoArm-M2-S_JSON指令含义。
例程
RoArm-M2-S 教程目录
RoArm-M2-S 使用教程
- RoArm-M2-S_Web端使用
- RoArm-M2-S_开发工具使用
- RoArm-M2-S_JSON指令含义
- RoArm-M2-S_WIFI配置
- RoArm-M2-S_机械臂控制
- RoArm-M2-S_末端关节设置
- RoArm-M2-S_FLASH文件系统操作
- RoArm-M2-S_步骤录制和重现
- RoArm-M2-S_ESP-NOW控制
- RoArm-M2-S_Python串口通信控制
- RoArm-M2-S_Python HTTP请求通信