MeArm 机械臂精准手柄控制器:基于 Arduino UNO 的轨迹记录与回放
核心硬件清单
- Arduino UNO ×1
- 模拟摇杆 ×2(自带按键)
- SG90 微型舵机 ×4(底座、大臂、小臂、夹爪)
- 电阻 10 kΩ ×2(按键上拉)、680 Ω ×1(LED 限流)
- 红色 LED 5mm ×1(状态指示)
软件环境
- Arduino IDE
功能特性
- 双摇杆全向控制: 摇杆 1 控制底座左右、大臂前后;摇杆 2 控制小臂上下、夹爪开合。
- 轨迹记录: 按下摇杆 1 按键开始/结束记录,最多存储 512 条动作指令(约 128 个完整姿态)。
- 轨迹回放: 按下摇杆 2 按键单次回放;长按 2 秒进入循环自动回放模式。
- LED 状态指示: 记录时常亮,循环回放时闪烁。
- 纯 UNO 实现: 无需额外扩展板,仅需 USB 供电(5V/2A)或外接 6V/2A 电源。
引脚分配
| 功能 | Arduino 引脚 | 备注 |
|---|---|---|
| 摇杆 1 X 轴 | A0 | 底座旋转 |
| 摇杆 1 Y 轴 | A1 | 大臂俯仰 |
| 摇杆 1 按键 | PD2 (数字 2) | 记录启停 |
| 摇杆 2 X 轴 | A2 | 小臂俯仰 |
| 摇杆 2 Y 轴 | A3 | 夹爪开合 |
| 摇杆 2 按键 | PD3 (数字 3) | 回放启停/长按循环 |
| 状态 LED | PD4 (数字 4) | |
| 底座舵机 | D11 | |
| 大臂舵机 | D10 | |
| 小臂舵机 | D9 | |
| 夹爪舵机 | D6 |
核心代码逻辑
/* MeArm 双摇杆控制器 v1.3.1 - UtilStudio.com
* 功能:手动控制 + 轨迹记录/回放/循环
* 依赖:Servo.h 标准库
*/
#include <Servo.h>
const int buffSize = 512; // 记录缓冲区大小
int buff[buffSize]; // 打包存储:12 位角度 + 2 位舵机编号 + 1 位结束标志
int recPos = 0, playPos = 0; // 读写指针
bool record = false, play = false, repeatePlaying = false;
// 舵机对象与限位常量
Servo servoBase, servoShoulder, servoElbow, servoGripper;
int minBase=0, maxBase=150, minShoulder=0, maxShoulder=150;
int minElbow=0, maxElbow=150, minGripper=0, maxGripper=150;
void setup() {
Serial.begin(9600);
// 初始化引脚、舵机、上电归中
// ...
}
void loop() {
// 1. 读取按键,处理记录/回放状态机
// 2. 读取摇杆模拟值,映射为 -5~5 增量,死区 ±1.5
// 3. 更新目标角度,限幅
// 4. 若回放中,从缓冲区取出打包数据,还原各舵机角度
// 5. 驱动舵机,夹爪动作附加 1s 等待
// 6. 串口打印调试信息:模式/位置/角度
// 7. LED 状态更新,delay(50)
}
数据打包格式(16 位整数)
- Bit 0~11:舵机角度(0~4095,实际映射 0~150°)
- Bit 12~13:舵机编号(00=底座, 01=大臂, 10=小臂, 11=夹爪)
- Bit 14:帧结束标志(该组动作最后一条置 1)
这种压缩存储使 512 字节缓冲区可容纳约 128 组完整 4 轴姿态。
原理图与实物照片
原理图展示了两个摇杆、四个舵机、LED 及上拉电阻的完整连接;实物照片演示了仅接两舵机的测试板布局。
扩展版本
- 极简版: 去除电阻与 LED,仅保留核心记录回放逻辑。
- MeArm 1.6.1 专用摇杆板版: 适配官方摇杆扩展板,支持红外遥控扩展。
制造工艺
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- MeArm 机械臂 V1.0——Arduino 与 Raspberry Pi 驱动的桌面级机械臂制作全指南
- 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
- Arduino UNO 自制循迹小车:从零构建自主巡线机器人
- Arduino 串口简易计算器:两数四则运算演示
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- 自制便携式视觉暂留显示器:Arduino UNO 与 ATtiny85
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino DMX-512 测试控制器 – 可靠灯光控制的完整套件
- Arduino 激光雕刻机:GRBL 固件 + Universal Gcode Sender 全流程实战
- 低成本 Arduino 呼吸控制器:USB-MIDI 即插即用,支持吸吹双向控制
- 适用于 Arduino 项目的智能室内导航机器人套件