JSON 指令发送方式
在控制机械臂时,我们使用一种特定的控制指令——JSON 指令,来告诉机械臂应该执行什么动作。无论是 Web 控制界面的底层通信,还是通过程序对机械臂进行编程控制,本质上都是在向机械臂发送 JSON 指令。
本节将介绍目前支持的三种 JSON 指令发送方式,以便你根据实际需求选择合适的接入方式。
JSON(JavaScript Object Notation)是一种轻量级的数据格式,可读性高,易于在不同系统之间传输和解析。机械臂通过接收 JSON 格式的指令来执行各类动作。
JSON 指令的基本格式:键:值。
- 键必须是字符串,用双引号包围;
- 值可以是多种类型:字符串、数字、对象、数组、布尔值或 null,其中,字符串必须用双引号包围,其它的不需要引号;
- 多个
键:值对之间用逗号分隔。
以下是控制机械臂运动到某一坐标位置的 JSON 指令示例:
{"T":1041,"x":200,"y":0,"z":150,"t":3.14}
其中 "T" 是指令类型编号,每条指令的编号都是固定的,其余字段是该指令对应的参数。
通过发送不同的 JSON 指令,可以实现 Web 界面按钮之外的更多功能。关于每条指令的具体含义和参数说明,请参阅 [JSON 指令功能详解]。
JSON 指令中的每个字符都很重要,缺少逗号、括号或者引号都会导致指令无法被机械臂正确解析。建议直接复制对应功能的指令模板,再修改其中的参数值,避免手动输入时引起格式错误。
目前支持以下三种方式向机械臂发送 JSON 指令:
| 方式 | 连接类型 | 适用场景 | 局限性 |
|---|---|---|---|
| Web 端界面发送 | 无线(WiFi) | 快速验证指令、基础调试 | 反馈内容较长时显示不全 |
| HTTP 请求通信 | 无线(WiFi) | 程序化控制、与其它系统集成 | 依赖 WiFi,信号不稳定时会影响通信 |
| 串口通信 | 有线(USB / GPIO) | 上位机集成、离线部署 | 需要物理布线 |
1. Web 端界面发送
这是最快捷的发送方式,无需额外配置,在已打开的 Web 控制界面中操作即可,适合快速验证某条指令的效果或临时调试使用。
信息反馈区标注图
- ① 状态信息显示区:发送的 JSON 指令反馈的信息会在这里显示;
- ② JSON 指令发送区:输入 JSON 格式指令并点击
SEND发送,实现对机械臂的精细控制。
使用步骤:
- 确认已连接机械臂 WiFi 并打开 Web 控制界面,详见准备工作 → 上电与连接;
- 在 Web 控制界面底部的 FEEDBACK INFORMATION 区域的发送区中输入 JSON 指令,点击
SEND发送; - 机械臂执行指令后会在 ① 状态信息显示区展示机械臂返回的信息。
关于 FEEDBACK INFORMATION 区域的完整功能说明,请参阅 Web 控制界面使用 → FEEDBACK INFORMATION 。
2. HTTP 请求通信
HTTP(Hypertext Transfer Protocol)是一种基于 WiFi 模块实现无线通信的协议,以无线方式向机械臂持续发送 JSON 指令并获取完整反馈,灵活简便。适合在 PC 或上位机上进行编程控制,或将机械臂集成到其它系统中。
通信特性:
- 基于 WiFi 的无线通信,无需额外布线;
- 请求-响应模型,可获取机械臂的完整反馈内容;
- 支持任意可发起 HTTP 请求的编程语言或工具。
2.1 前提条件
上位机需与机械臂处于同一 WiFi 网络下,且需确认机械臂当前的 IP 地址:
- 机械臂处于 AP 模式(出厂默认):IP 地址固定为
192.168.4.1,将上位机连接至机械臂热点(RoArm-M2,密码:12345678)即可; - 机械臂处于 STA 模式(已接入路由器):IP 地址由路由器分配,请查看机械臂 OLED 显示屏第二行显示的实际 IP 地址。
关于 WiFi 模式的切换方法,请参阅 [WiFi 配置]。
2.2 下载例程
- Linux(树莓派 / Jetson / RDK)
- Windows
安装 Git(若已安装可跳过):
sudo apt update
sudo apt install git
克隆仓库:
git clone https://gitee.com/waveshare/RoArm-M2.git
提供两种下载方式,推荐使用方法一直接下载:
-
方法一:直接下载【推荐】
点击下载 RoArm-M2 的 Python 例程,下载完成后右键点击 ZIP 文件,选择全部解压缩,将其解压至你希望存放的目录(例如桌面)。
-
方法二:使用 Git 进行克隆
如果你已安装 Git 并希望后续通过
git pull获取更新,可以在命令提示符中执行:git clone https://gitee.com/waveshare/RoArm-M2.git
下载完成后,Python 例程目录结构如下:
RoArm-M2_Python/
├── http_simple_ctrl.py ← HTTP 通信例程
├── serial_simple_ctrl.py ← 串口通信例程
└── requirements.txt ← 依赖库列表
2.3 安装 Python
在运行例程前,需要确认上位机已安装 Python。
- Linux(树莓派 / Jetson / RDK)
- Windows
树莓派、Jetson Orin Nano、RDK X5 等设备通常已预装 Python3,可直接在终端输入以下命令验证:
python3 --version
若未安装,执行以下命令安装:
sudo apt update
sudo apt install python3 python3-pip
安装完成后再次运行 python3 --version 确认版本。
① 打开命令提示符
点击 Windows 左下角的「开始」按钮,在搜索栏中输入 cmd,点击「命令提示符」打开。后续所有命令均在此窗口中输入执行。
② 检查是否已安装 Python
在命令提示符中输入以下命令:
python --version
- 若显示版本号(如
Python 3.11.0),说明已安装,可跳过本节; - 若提示「不是内部或外部命令」,说明未安装,请继续以下步骤。
③ 下载并安装 Python
前往 Python 官网下载 Python 3.x 安装包。
Python 下载指示图
安装过程中务必勾选底部的 Add Python to PATH 选项,再点击 Install Now。若未勾选此项,命令提示符将无法识别 python 命令,需要卸载重装。
Python 安装指示图
④ 验证安装
安装完成后,关闭并重新打开命令提示符,再次输入 python --version,显示版本号即表示安装成功。
2.4 创建虚拟环境并安装依赖
虚拟环境是一个独立的 Python 运行空间,在其中安装的依赖库不会影响系统中其它 Python 项目。推荐为每个项目单独创建虚拟环境,避免不同项目之间的库版本冲突。
- Linux(树莓派 / Jetson / RDK)
- Windows
① 进入例程目录
cd RoArm-M2/examples/python
② 创建虚拟环境
python3 -m venv 虚拟环境名称[一般为项目名-env]
# 例:python3 -m venv roarm-env
执行后,当前目录下会生成一个名为 roarm-env 的文件夹,这就是创建好的虚拟环境。
③ 激活虚拟环境,将 项目名-env 替换为你实际的虚拟环境名称:
source 项目名-env/bin/activate
激活成功后,命令提示符最前方会出现 (项目名-env) 的标识,如:(roarm-env) user@hostname:~/RoArm-M2/examples/python$。
④ 在虚拟环境中安装依赖库:
pip3 install -r requirements.txt
requirements.txt 是一个记录了例程所需依赖库的清单文件,Python 可以读取这个文件并一次性安装所有需要的库,无需手动逐个安装。
等待安装完成,出现 Successfully installed... 即表示安装成功。
① 在命令提示符中进入例程目录
将下面路径中的 解压目录 替换为你实际的解压目录,例如解压到桌面则路径为:C:\Users\你的用户名\Desktop\RoArm-M2_Python\RoArm-M2_Python:
cd 解压目录\RoArm-M2_Python\RoArm-M2_Python
② 输入创建虚拟环境的命令:
python -m venv 虚拟环境名称[一般为项目名-env]
# 例:python -m venv roarm-env
执行后,当前目录下会生成一个名为 roarm-env 的文件夹,这就是创建好的虚拟环境,如下图。

③ 激活虚拟环境,将 项目名-env 替换为你实际的虚拟环境名称:
项目名-env\Scripts\activate.bat
激活成功后,命令提示符最前方会出现 (项目名-env) 的标识,如:(roarm-env) C:\解压目录\RoArm-M2\examples\python,如下图。
④ 在虚拟环境中安装依赖库:
pip install -r requirements.txt
requirements.txt 是一个记录了例程所需依赖库的清单文件,Python 可以读取这个文件并一次性安装所有需要的库,无需手动逐个安装。
输入指令后,等待安装完成,出现 Successfully installed... 即表示安装成功。

虚拟环境只需创建和安装依赖一次。后续每次运行例程前,都需先激活虚拟环境,再运行例程。若命令提示符前有 项目名-env 标识,说明虚拟环境已处于激活状态,无需重复激活。
2.5 运行例程
确认虚拟环境已激活(命令提示符/终端前方显示 项目名-env)后,运行以下命令启动 HTTP 请求通信例程,将 IP 地址替换为机械臂的实际 IP 地址:
#Linux(树莓派/Linux/RDK)
python3 http_simple_ctrl.py 192.168.4.1
#Windows
python http_simple_ctrl.py 192.168.4.1
运行成功后,终端会显示以下提示,即表示已与机械臂建立通信连接:
input your json cmd:
此时可在光标后输入 JSON 指令并按回车发送,机械臂执行后会返回反馈信息并显示在终端中。每次发送一条指令,可持续输入。按 Ctrl + C 退出程序。
例:发送一条查看机械臂信息的指令:
input your json cmd:{"T":105}
输入该指令后,会返回机械臂末端点位置坐标及各关节角度、负载等信息,如下图。
使用完毕后退出虚拟环境在命令提示符 / 终端中输入以下命令退出虚拟环境(Windows 和 Linux 通用):
deactivate
关于可用的 JSON 指令及其参数说明,请参阅 [JSON 指令功能详解]。
3. 串口通信
串口通信是一种通过物理线缆直接连接机械臂与上位机的有线通信方式,稳定性好、延时低,适合需要可靠连接或不便使用 WiFi 的场景,也适合将机械臂长期集成到上位机控制系统中。
上位机是指用于发送指令来控制机械臂的计算设备,例:个人电脑(PC)、树莓派、Jetson Orin Nano、RDK X5 等。机械臂在接收到上位机发送的指令后执行对应动作,并将执行结果反馈给上位机。
通信参数:
| 参数 | 值 |
|---|---|
| 波特率 | 115200 |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验位 | 无 |
按设备快速选择连接方式:
| 设备 | 推荐连接接口 | 推荐发送方式 |
|---|---|---|
| PC(Windows / Linux) | USB Type-C 接口 | 串口助手软件或 Python 例程 |
| 树莓派 | GPIO 引脚(RX / TX) | Python 例程 |
| Jetson 系列 | GPIO 引脚(RX / TX) | Python 例程 |
| RDK 系列 | GPIO 引脚(RX / TX) | Python 例程 |
3.1 硬件连接
串口通信支持以下两种硬件连接方式,两种连接方式不可同时使用。
方式一:USB 连接【推荐初学者】
USB 连接时最简单的有线连接方式,推荐初次使用串口通信的用户选择此方式。
使用随产品赠送的 USB 线(Type A 公转 Type C 公),将机械臂底座的 ESP32 串口通信(Type-C)接口连接至上位机的 USB 接口。
【图片待补充:PC / 树莓派 / Jetson / RDK 与机械臂相连接的示意图】
连接成功后,上位机系统会将机械臂识别为一个串口设备,后续需要通过该串口与机械臂通信。
上位机通过 USB 连接机械臂后,上位机系统会自动为其分配一个串口设备编号,用于标识这个连接:
- Windows:设备管理器中显示为
COMx(x 为数字,如COM3); - Linux:显示为
/dev/ttyUSB0或/dev/ttyACM0。
后续在串口助手软件或 Python 例程中,需要填写这个编号来指定通信端口。
- Linux(树莓派 / Jetson / RDK)
- Windows
在终端中执行以下命令,机械臂与上位机连接前后各执行一次,对比新出现的设备即为机械臂的串口编号:
ls /dev/ttyUSB*
# 或
ls /dev/ttyACM*
点击 Windows 左下角的「开始」按钮,在搜索栏中输入“设备管理器”,在设备管理器中展开「端口(COM 和 LPT)」,找到新出现且类似名称为 CP2102x USB to UART Bridge(COMx) 的端口。其中,COMx 即为机械臂的串口编号。
查看串口编号示意图
若设备管理器中未出现类似上述名称,是因为机械臂串口通信芯片为 CP2102,Windows 系统通常不会自动安装该芯片的驱动程序,需要手动安装后才能正常识别串口设备。
驱动安装步骤:
- 机械臂与上位机连接 USB 线后,打开设备管理器,若在「其它设备」中看到名称中带有 CP2102 且为黄色感叹号的设备,说明需要安装驱动。
串口未识别示意图
-
点击下载 CP210x 串口驱动安装包,下载解压后双击运行安装程序,按照安装向导完成安装。
-
安装完成后,重新插拔机械臂与上位机连接的 USB 线,打开设备管理器,确认「端口(COM 和 LPT)」中出现名称为
CP2102x USB to UART Bridge(COMx)的设备,即代表驱动安装成功。
【教程持续更新中...】
