Hexapod 项目分析报告

1. 项目概述
Hexapod-v2-7697是一个基于Linkit 7697开发板(本次复刻采用树莓派zero2w开发板代替)的六足机器人项目,提供了完整的机械设计、电子电路和软件代码,允许用户通过手机(iOS或Android)通过蓝牙低功耗(BLE)远程控制机器人的运动。
1.1 项目特点
- 无线控制:通过Linkit 7697的BLE功能实现手机远程控制
- 多自由度:6条腿,每条腿3个关节,共18个舵机(TowerPro MG92B)
- 模块化设计:机械、电子和软件部分分离,便于维护和扩展
- 开源共享:所有设计文件和代码均在GPL许可证下开源
1.2 技术架构
| 模块 | 主要组件 | 功能 |
|---|---|---|
| 机械结构 | 3D打印PLA部件 | 机器人身体和腿部结构 |
| 电子控制 | Linkit 7697、PCA9685×2 | 主控制器和舵机控制 |
| 电源系统 | 2S Lipo电池、mini360 DC-DC×7 | 提供5V和6V电源 |
| 软件系统 | Arduino程序、Python路径工具 | 控制逻辑和路径生成 |
2. 机械部分分析
2.1 结构设计
- 身体结构:模块化设计,分为底部、顶部、前后壁和侧墙
- 腿部结构:每条腿由大腿、小腿和脚部组成,通过关节连接
- 材料:PLA塑料,使用Prusa i3 MK2S 3D打印机打印
2.2 关键部件
- 腿部组件:thigh_top.stl、thigh_bottom.stl、leg_top.stl、leg_bottom.stl、foot_top.stl、foot_bottom.stl等
- 关节组件:joint_top.stl、joint_bottom.stl、joint_cross.stl
- 身体组件:body_top.stl、body_bottom.stl、body_side_wall.stl等
2.3 组装要求
- 需要6条完全相同的腿
- 关节处需要M2螺丝和螺母连接
- 舵机需要精确安装以确保运动范围
3. 电子部分分析
3.1 电路设计
- 主PCB:包含Linkit 7697和一个PCA9685舵机控制器
- 子PCB:两个子PCB,每个包含一个PCA9685和相关电路
- 电源系统:7个mini360 DC-DC转换器,1个提供5V给Linkit 7697,6个提供6V给每条腿的舵机
3.2 关键组件
- Linkit 7697:主控制器,提供BLE通信功能
- PCA9685:16通道PWM控制器,用于控制舵机
- mini360 DC-DC:降压模块,将7.4V转换为5V和6V
- 电阻电容:用于电路保护和滤波
3.3 连接方式
- 舵机通过3针接头连接到子PCB
- 主PCB和子PCB通过I2C总线通信
- 电源通过2针接头连接到电池
4. 软件部分分析
4.1 软件架构
- hexapod7697:Arduino程序,运行在Linkit 7697上
- normal_mode:正常控制模式
- setting_mode:校准模式
- hexapod:核心控制类
- hal:硬件抽象层
- pathTool:Python工具,用于生成运动路径
4.2 核心功能
- 运动控制:前向、后向、左转、右转、旋转等
- 校准功能:调整舵机的零位和缩放比例
- BLE通信:与手机应用程序通信
4.3 技术特点
- 使用C++11和STL库
- 面向对象设计
- 硬件抽象层,便于移植
5. 系统集成分析
5.1 机械与电子集成
- 舵机通过螺丝固定在3D打印部件上
- PCB安装在机器人身体内部
- 电线通过身体内部的通道连接
5.2 软件与硬件集成
- Arduino程序通过I2C控制PCA9685
- PCA9685生成PWM信号控制舵机
- Linkit 7697通过BLE接收手机命令
5.3 控制系统工作流程
- 手机发送控制命令通过BLE
- Linkit 7697接收命令并解析
- 计算每个舵机的目标角度
- 通过PCA9685控制舵机运动
- 机器人执行相应的运动
Hexapod 项目复刻指南

1. 项目概述
Hexapod-v2-7697是一个基于Linkit 7697开发板(本次复刻采用树莓派zero2w开发板代替)的六足机器人项目,通过手机蓝牙远程控制。本指南将详细介绍如何复刻这个项目,包括机械制作、电子组装和软件开发。
2. 所需材料
2.1 机械部分
- PLA filament(推荐白色或黑色)
- M2螺丝(6mm、10mm、30mm)
- M2螺母
- M4销钉(6mm)
2.2 电子部分
- Linkit 7697开发板 × 1
- PCA9685芯片(TSSOP28封装) × 2
- mini360 DC-DC转换器 × 7
- 2S Lipo电池(7.4V)
- 电阻:220Ω (0805) × 18、10KΩ (0805) × 12、470Ω (0805) × 1
- 电容:10μF (0805) × 2
- LED(0805封装) × 1
- 各种排针和排母
- 舵机 TowerPro MG92B × 18
2.3 工具
- 3D打印机(或者使用嘉立创3D打印服务)
- 立创EDA-PCB
- 电烙铁(带SMD焊接头)
- 万用表
- 螺丝刀套装
- 剥线钳
- 热缩管
3. 机械部分制作
3.1 3D打印
-
准备3D模型
- 所有STL文件位于
mechanism/目录下 - 推荐使用PrusaSlicer或Cura进行切片
- 所有STL文件位于
-
打印参数设置
- 层厚:0.2mm
- 填充率:20-30%
- 支撑:需要支撑(特别是腿部和关节部件)
- 温度:PLA推荐210℃(喷嘴)/60℃(热床)
-
打印部件列表
- 身体部分:body_top.stl、body_bottom.stl、body_side_wall.stl、body_back_wall.stl、body_center.stl
- 腿部部分(每条腿6个部件,共6条腿):thigh_top.stl、thigh_bottom.stl、leg_top.stl、leg_bottom.stl、foot_top.stl、foot_bottom.stl
- 关节部分(每条腿3个部件,共6条腿):joint_top.stl、joint_bottom.stl、joint_cross.stl
- 其他:battery_lock.stl、tools_mount.stl
3.2 部件组装
-
腿部组装
- 参考
mechanism/LEG.md和组装视频 - 每条腿需要:
- 2个大腿部件(thigh_top + thigh_bottom)
- 2个小腿部件(leg_top + leg_bottom)
- 2个脚部部件(foot_top + foot_bottom)
- 3个关节部件
- 舵机 × 3
- M2螺丝和螺母若干
- 参考
-
身体组装
- 将打印好的身体部件用螺丝连接
- 安装电池锁
- 为PCB和舵机预留安装位置
-
腿部与身体连接
- 将6条腿安装到身体底部
- 确保腿部均匀分布,前后左右对称
4. 电子部分制作
4.1 PCB制作
-
准备PCB文件
- 主PCB:
electronics/main.sch和electronics/main.brd - 子PCB:
electronics/sub.sch和electronics/sub.brd - 使用Eagle 7.7软件打开和编辑
- 主PCB:
-
生成Gerber文件
- 参考PCB制造商的指南生成Gerber文件
- 推荐使用Seeed Studio、JLCPCB等PCB制造服务
-
PCB制造注意事项
- 主PCB × 1
- 子PCB × 2(注意:左右两个子PCB的SJ1设置不同,右PCB的SJ1保持开放,左PCB的SJ1需要闭合)
4.2 组件焊接
-
焊接顺序
- 先焊接小元件(电阻、电容、LED)
- 然后焊接IC(PCA9685)
- 最后焊接排针和排母
-
SMD焊接技巧
- 使用合适的烙铁头(细尖)
- 焊接TSSOP28封装的PCA9685时要特别小心
- 焊接后检查是否有短路
4.3 电路连接
-
主PCB与子PCB连接
- 使用I2C总线连接主PCB和两个子PCB
- 确保电源和地线正确连接
-
舵机连接
- 每条腿的3个舵机连接到相应的子PCB
- 注意舵机的信号线、电源线和地线连接正确
-
电源连接
- 2S Lipo电池连接到主PCB
- mini360 DC-DC转换器调整到正确的电压(5V和6V)
5. 软件部分设置
5.1 环境搭建
-
Arduino IDE安装
- 下载并安装Arduino IDE
- 添加Linkit 7697开发板支持
-
Python环境设置
- 安装Python 3.x
- 安装numpy:
pip3 install numpy
5.2 代码编译和上传
-
打开项目
- 在Arduino IDE中打开
software/hexapod7697/hexapod7697.ino
- 在Arduino IDE中打开
-
配置开发板
- 选择开发板:Linkit 7697
- 选择正确的端口
-
编译和上传
- 编译代码,确保没有错误
- 上传代码到Linkit 7697
5.3 路径生成
- 运行pathTool
- 进入
software/pathTool/目录 - 运行
python3 main.py - 生成的路径文件将用于机器人运动
- 进入
6. 系统调试和测试
6.1 舵机校准
-
进入设置模式
- 启动机器人时,快速按下用户按钮
- 机器人将进入校准模式
-
使用LRemote App
- 下载并安装LRemote App(iOS或Android)
- 连接到机器人的BLE设备
- 在设置界面调整每个舵机的零位和缩放比例
-
保存校准数据
- 调整完成后,保存校准数据到Flash
6.2 运动测试
-
进入正常模式
- 重新启动机器人,不按用户按钮
- 机器人将进入正常模式
-
测试基本运动
- 使用LRemote App控制机器人前进、后退、左转、右转
- 测试旋转和其他复杂运动
-
调整参数
- 根据需要调整运动速度和幅度
- 确保所有腿部运动协调一致
7. 常见问题和解决方案
7.1 机械问题
- 腿部运动不顺畅:检查关节处的螺丝是否过紧,调整松紧度
- 部件损坏:重新打印损坏的部件,确保打印质量
7.2 电子问题
- 舵机不响应:检查电源连接和信号线连接,确保电压正确
- BLE连接不稳定:检查Linkit 7697的天线连接,确保电源稳定
7.3 软件问题
- 编译错误:确保使用C++11兼容的编译器,检查库依赖
- 运动异常:重新校准舵机,检查路径生成参数
8. 资源链接
- 项目GitHub仓库:https://github.com/smallptsai/hexapod-v2-7697
- Linkit 7697文档:https://labs.mediatek.com/zh-tw/platform/linkit-7697
- PCA9685数据手册:https://cdn-shop.adafruit.com/datasheets/PCA9685.pdf
- 演示视频(科学上网):https://youtu.be/NJ7DdDEcq3U