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控制舵机运动
- 机器人执行相应的运动