Skip to content

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 控制系统工作流程

  1. 手机发送控制命令通过BLE
  2. Linkit 7697接收命令并解析
  3. 计算每个舵机的目标角度
  4. 通过PCA9685控制舵机运动
  5. 机器人执行相应的运动