DIY Arduino 蚂蚁六足机器人:全流程制作指南
本教程将展示如何制作一款 Arduino 六足机器人。顾名思义,它有 6 条腿,此外还拥有尾巴(腹部)、头部、触角、大颚甚至功能性眼睛。这些特征让它酷似蚂蚁,因此也可称为 Arduino 蚂蚁机器人。 可观看视频或阅读下方图文教程。 机器人通过自制 Android App 控制。App 提供前进、后退、左转、右转 4 个方向键,同时支持头部摆动、尾巴摆动、咬合/抓取/释放、攻击等动作。 头部设计内嵌 HC-SR04 超声波测距模块作为“眼睛”。当手靠近头部时,机器人会进入攻击准备状态;若手后撤则取消攻击,若继续靠近则发起攻击并咬合。是不是很酷?继续阅读了解完整制作过程。 使用 3D 建模软件设计全身结构。每条腿 3 个关节(3 个舵机),共 18 个舵机,选用 MG996R。尾部 1 个 MG996R,头部两自由度(横滚+俯仰)需 2 个 MG996R,大颚用 1 个 SG90 微型舵机。合计 21 个 MG996R + 1 个 SG90。 眼睛部位专门设计适配 HC-SR04。所有零件夹在上下两块基板之间,上基板另配弧形盖板隐藏走线、Arduino 和电池。 使用 Creality CR-10 打印全套零件,表现优秀。最难打印的是头部(一体成型),需设置 60° 悬垂角支撑并添加支撑阻挡块,最终成型完美。 腿部组装: 用 M3×16mm 螺栓、螺母、弹垫固定舵机(全身约 200 颗螺栓)。连杆使用舵机附带的圆盘摇臂(需自钻 3mm 孔)或购买金属 M3 螺纹摇臂。安装时确保舵机输出轴处于中位,连杆拥有完整运动范围。舵机顶部的三角支撑柱需用美工刀削除,使舵机能贴合打印件。第三个舵机安装前,先置入 M4 螺栓用于后续连接基板。 单腿组装完成,需重复 6 次。 安装腿部至机身: 先在上基板固定圆盘摇臂,再将腿部舵机输出轴对准中位锁上。调整中位可获得最大运动范围,减少后续标定工作。背部尾部舵机摇臂同步固定。 翻转机身,将下基板穿过腿部 M4 螺栓,用平垫和自锁螺母固定。注意拧紧力度:既要牢固又要保证腿部能自由旋转。 头部机构: 横滚舵机垂直安装,配两块小连接板固定在两基板间。U 型托架连接横滚与俯仰舵机,俯仰舵机托架预埋 4 颗 M3 螺栓用于固定头部外壳。安装时利用 U 型架弹性将舵机轴插入摇臂。 头部预组装: 先装大颚和 SG90 舵机、超声波模块。第一块大颚用 M4 螺栓固定(眼部预留螺丝刀孔)。SG90 固定后,第二块大颚装配微型摇臂并啮合齿轮。超声波模块用瞬间胶粘在眼孔。触角用 3mm 钢丝弯制(约 13cm),同样瞬间胶固定。最后将头部通过 4 颗预埋螺栓锁在俯仰托架上。头部现可横滚、俯仰、咬合。 装上尾巴(滑入尾部托架)和弧形上盖,蓝白配色的蚂蚁机器人正式亮相! 核心元件:22 个舵机、HC-05 蓝牙模块、若干电容电阻、Arduino Mega(唯一能用 Servo 库驱动 12+ 舵机的常用板)。供电用 3S 锂聚合物电池(约 12V),舵机工作电压 4.8-7.2V,需 DC-DC 降压模块(Buck Converter)将 12V 降至 5V。建议选 10-15A 模块(实测峰值约 6A)。 元件购买链接: 22 路舵机信号线极其繁杂,设计专用 PCB 作为 Mega 扩展板。舵机接口密集排布,旁边并联大容量电容稳压。预留 NRF24L01 接口(可选无线控制)、数字/模拟 IO、5V/GND、双 LED、电池电压监测分压电路(R1/R2 分压至 5V 以下供模拟口读取)。 PCB 工程文件链接 → 生成 Gerber → JLCPCB 制板(选蓝色匹配 Mega 板)。 焊接公排针(插 Mega)、舵机排针、电阻、电容、接线端子。组装完成后直接插在 Mega 板上。 调节降压模块电位器输出 5V。电源开关接在 12V 输入端,电池 12V 同时接 PCB 电压监测引脚。将电池、Arduino+PCB、蓝牙/NRF24L01、低电压指示 LED 依次塞入两基板间,连接所有舵机信号线(记录对应引脚号),盖上弧形盖板,硬件完成。 代码较长,分段讲解,文末附完整代码。 使用 步态算法: 未采用正/逆运动学,因廉价 MG996R 扭矩不足、定位不准。改用“摆动-支撑”相位手动编程:每条腿写独立函数,通过计数器控制 4 个阶段——抬腿、摆动、落地、推回。3 条腿交替摆动(三脚步态),另 3 条支撑身体前进。 主循环中根据蓝牙指令调用不同步态函数: App 界面为自制图片按钮,底部滑块调速,顶部蓝牙连接按钮。按下“前进”发送数字 2,再次按下发送 0 停止并复位。其余按键同理(左转、右转、后退、攻击等)。 App Inventor 源文件 (.aia) 下载 | APK 安装包下载 完整代码下载:Arduino Hexapod 完整源码 避坑提示: 最大挑战是廉价 MG996R 性能不稳定(扭矩不足、定位漂移)。建议预算允许时选用高精度金属齿舵机。祝制作愉快,欢迎交流!概述


3D 模型设计



3D 打印零件


机械组装

















电路原理图

PCB 设计(Arduino Mega 扩展板)




PCB 焊接组装


Arduino 代码详解
Servo.h 控制舵机,SoftwareSerial.h 与蓝牙通信。定义 22 个舵机对象及大量中间变量。#include <Servo.h>
#include <SoftwareSerial.h>
#define trigPin 7
#define echoPin 6
#define ledB 10
SoftwareSerial Bluetooth(12, 9); // Arduino RX, TX - HC-05 TX, RX
Servo s24, s23, s22; // ... 共 22 个舵机对象setup() 初始化蓝牙(38400 波特率)、超声波引脚、LED,逐个 attach() 舵机引脚(指定脉宽范围 600-2400μs),再用 write() 设定各舵机初始角度(此处即为标定过程)。void setup() {
Serial.begin(38400);
Bluetooth.begin(38400); Bluetooth.setTimeout(1); delay(20);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(ledB, OUTPUT);
// 头部舵机
s15.attach(36, 600, 2400); s14.attach(35, 600, 2400); s13.attach(34, 600, 2400);
// 大颚 s5.attach(26, 600, 2400);
// 尾部 s5.attach(26, 600, 2400); // 注意:原文尾部也用 s5,实际应为不同对象
// 6 条腿共 18 个舵机,按编号依次 attach...
// 最后移至初始姿态
s15.write(72); s14.write(50); s13.write(90); // 头部
s5.write(65); // 大颚/尾部
// 腿部初始角度...
}
void moveLeg1() {
// 摆动相位:抬腿 -> 旋转 -> 落地
if (i1L1 <= 10) { s18.write(60 - i1L1*2); s17.write(90 - i1L1*3); i1L1++; }
if (i2L1 <= 30) { s16.write(100 - i2L1); i2L1++; }
if (i2L1 > 20 && i3L1 <= 10) { s18.write(40 + i3L1*2); s17.write(60 + i3L1*3); i3L1++; }
// 支撑相位:旋转回初始位
if (i2L1 >= 30) { s16.write(70 + i4L1); i4L1++; l1status = HIGH; }
// 循环重置
if (i4L1 >= 30) { i1L1=i2L1=i3L1=i4L1=i5L1=0; }
}// 前进:1、3、5 号腿摆动,2、4、6 号腿支撑
if (m == 2) { moveLeg1(); moveLeg3(); moveLeg5(); if (l1status==HIGH) { moveLeg2(); moveLeg4(); moveLeg6(); } }
// 蓝牙指令解析
if (Bluetooth.available() > 0) { dataIn = Bluetooth.read(); }Android App (MIT App Inventor)



电池监测与超声波攻击逻辑
// 电池电压监测 (A3 分压后读取)
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.00 / 1023.00) * 2.9;
if (voltage < 11) digitalWrite(ledB, HIGH); else digitalWrite(ledB, LOW);
// 超声波测距触发攻击
if (getDistance() > 40) att = 0;
if (getDistance() <= 40) { att = 1; dataIn = 99; }
// 攻击状态机:准备 -> 取消/攻击
if (att == 1) { prepareAttack(); ... }
if (att == 2) { dismissAttack(); ... }
if (att == 3) { attack(); ... }
制造工艺
- 蓝牙控制树莓派机器人:语音反馈功能构建指南
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- Arduino UNO 自制循迹小车:从零构建自主巡线机器人
- Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
- LittleArm 2C:3D 打印 Arduino 机械臂 - STEM 教学专用,坚固易装
- 自主家庭助理机器人 O'nine - ROS + Alexa 语音控制 + 机械臂 + 麦克纳姆轮全向移动
- 通过专用 Android App 蓝牙控制 Arduino 机械臂
- 适用于 Arduino 项目的智能室内导航机器人套件
- WiDC:Wi-Fi FPV 机器人 - 远程控制与实时视频传输
- Arduino 打造会说话的智能人形机器人「Mofiza」