Programming
编程指南
坐标系、支持的 GCode 与 M 指令、速度与加速度设置、Python 辅助库,以及一个完整的抓取放置示例。
编程指南
预览版文档。 本产品处于上市前预览阶段,规格与指令在发货前可能调整。
SCARA 控制器与我们的 Delta 机器人 使用同一系列的 GCode 固件。 逆运动学在 ESP32 上完成,因此你直接下发笛卡尔坐标即可。
坐标系
- 原点:底座中心、桌面高度。
- X 指向前方(远离线缆出口),Y 指向左侧,Z 向上。
- R 为腕部角度(度),0° 与小臂方向一致。
- 可达范围:半径 60–280 mm 的环形区域;Z 为 0–100 mm。
超出范围的指令会返回 error: out of range,机械臂不会运动。
运动指令
| 指令 | 含义 | 示例 |
|---|---|---|
G0 |
快速移动 | G0 X200 Y50 Z30 |
G1 |
按进给速度 F(mm/min)直线移动 | G1 X150 Y0 F3000 |
G4 |
暂停,P 单位为毫秒 | G4 P250 |
G28 |
全轴回零 | G28 |
G90 / G91 |
绝对 / 相对坐标 | G91 |
I/O 与末端执行器
| 指令 | 含义 |
|---|---|
M3 S<0–100> |
夹爪以 S% 的力闭合 |
M5 |
夹爪张开 |
M7 / M9 |
真空吸附开 / 关(教育套装) |
M42 P<0–3> S<0/1> |
设置 24 V 数字输出 |
M119 |
报告限位开关与急停状态 |
M114 |
报告当前位置 |
速度与加速度
M203 J1:180 J2:180 Z:50 R:360 ; 各关节最大速度(度/秒、毫米/秒)
M204 A800 ; 笛卡尔加速度,mm/s²
搬运较重或较高的物体时请降低加速度,以免掉落。
Python 辅助库
nenpower_scara 辅助模块随控制器源码包提供。
from nenpower_scara import Scara
arm = Scara("/dev/ttyUSB0") # Windows 上为 COM3
arm.home()
arm.move(200, 0, 50)
arm.move(150, 120, 20, r=45, speed=3000)
arm.grip(80)
示例:把四个方块排成一行
from nenpower_scara import Scara
arm = Scara("/dev/ttyUSB0")
arm.home()
pick = [(180, -80), (180, -40), (180, 0), (180, 40)]
place_y = 120
for i, (x, y) in enumerate(pick):
arm.move(x, y, 40)
arm.move(x, y, 5)
arm.grip(80)
arm.move(x, y, 40)
arm.move(120 + i * 35, place_y, 40, r=90)
arm.move(120 + i * 35, place_y, 6, r=90)
arm.release()
arm.move(120 + i * 35, place_y, 40, r=90)
arm.move(200, 0, 60)
最后更新 21 Sep 2026