智能 APP 控制液压机械臂:Arduino UNO + 蓝牙 + 8 路注射器驱动
组件与材料
| Arduino UNO | ×1 |
| HC-05 蓝牙模块 | ×1 |
| 面包板 | ×1 |
| 300 RPM 减速直流电机 | ×8 |
| 10 mL 注射器 | ×8 |
| 水族管/输液管 | ×1 |
| 厚纸板、螺母螺栓、6 mm 胶合板 | 若干 |
| 车轮、羊毛针、L298N 驱动板 | 若干 |
所需工具
- 电烙铁、电钻、美工刀、M-Seal 环氧胶
软件与平台
- MIT App Inventor 2(已提供 APK)
项目亮点
网上常见的机械臂要么是手动液压,要么是电动舵机控制。本项目融合两者:用直流电机驱动注射器活塞实现液压驱动,再通过蓝牙 APP 无线控制,兼具液压大扭矩与远程操控便利。

电机驱动分配
- 驱动板 1 (L298N) → 底座旋转 (IN1,IN2) + 大臂升降 (IN3,IN4)
- 驱动板 2 → 小臂升降 (IN1,IN2) + 夹爪开合 (IN3,IN4)
- 驱动板 3 → 底盘行走 (左右电机)


关键制作细节
- 注射器活塞与电机输出轴用 M-Seal 固连,顺时针推进、逆时针拉回
- 所有电机、驱动板、Arduino 统一接地
- HC-05 TX→RX、RX→TX 交叉接线,波特率 9600
- 供电务必保证电流充足(建议 2A 以上)
Arduino 代码
// 液压机械臂 + 底盘行走 蓝牙控制
// 电机驱动引脚定义
int m1IN1=2, m1IN2=3, m1IN3=4, m1IN4=5, m1ENA=6, m1ENB=7;
int m2IN1=8, m2IN2=9, m2IN3=10, m2IN4=11, m2ENA=12, m2ENB=13;
int m3IN1=14, m3IN2=15, m3IN3=16, m3IN4=17, m3ENA=18, m3ENB=19; // A0-A5
void setup() {
for (int p=2; p<=19; p++) pinMode(p, OUTPUT);
Serial.begin(9600);
}
void loop() {
char cmd = '0';
while (Serial.available()) { cmd = Serial.read(); delay(10); }
switch (cmd) {
case '6': setMotor(m1IN3, m1IN4, m1ENA, m1ENB, 1); break; // 大臂上
case '5': setMotor(m1IN3, m1IN4, m1ENA, m1ENB, -1); break; // 大臂下
case '1': setMotor(m2IN3, m2IN4, m2ENA, m2ENB, 1); break; // 小臂上
case '2': setMotor(m2IN3, m2IN4, m2ENA, m2ENB, -1); break; // 小臂下
case '8': setMotor(m2IN1, m2IN2, m2ENA, m2ENB, 1); break; // 夹爪合
case '7': setMotor(m2IN1, m2IN2, m2ENA, m2ENB, -1); break; // 夹爪开
case '3': setMotor(m1IN1, m1IN2, m1ENA, m1ENB, 1); break; // 底座顺时针
case '4': setMotor(m1IN1, m1IN2, m1ENA, m1ENB, -1); break; // 底座逆时针
case '9': allStop(); break; // 全部停止
case 'A': drive(1, 1); break; // 前进
case 'D': drive(-1, -1); break;// 后退
case 'B': drive(-1, 1); break; // 右转
case 'C': drive(1, -1); break; // 左转
}
}
void setMotor(int in1, int in2, int ena, int enb, int dir) {
digitalWrite(in1, dir>0); digitalWrite(in2, dir<0);
digitalWrite(ena, HIGH); digitalWrite(enb, HIGH);
}
void drive(int left, int right) {
digitalWrite(m3IN1, left>0); digitalWrite(m3IN2, left<0);
digitalWrite(m3IN3, right>0); digitalWrite(m3IN4, right<0);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
}
void allStop() {
for (int p=2; p<=19; p++) digitalWrite(p, LOW);
}
3D 打印 / 结构件
APK 安装包与结构照片见 GitHub:项目仓库(含 M-Seal 固定注射器、电机安装细节图)
原理图
制造工艺