STM32F407VET6_HEXAPOD
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |
STM32F407VET6 Hexapod Robot (六足机器人)
? 项目简介
本项目是一个基于 STM32F407VET6 微控制器和 FreeRTOS 实时操作系统的多功能六足机器人(Hexapod Robot)控制系统。项目集成了多达 18 个自由度(DOF)的舵机控制、多种远程控制方式(PS2、RC、蓝牙、Blinker App、ROS)、环境感知(温湿度、多种气体浓度)以及基于 MPU6050 的姿态解算和平衡控制。
?? 硬件架构
- 主控芯片:STM32F407VET6
- 舵机驱动:基于 PCA9685 的 16 路 PWM 舵机驱动模块(控制 18 个关节舵机,结合总线/PWM舵机)
- 姿态传感器:MPU6050 (6 轴 IMU),用于机器人姿态检测与平衡控制
- 环境传感器阵列:
- SHT30:温湿度传感器 (I2C)
- MQ-2:烟雾传感器 (ADC)
- MQ-3:酒精传感器 (ADC)
- MQ-7:一氧化碳传感器 (ADC)
- MQ-8:氢气传感器 (ADC)
- MQ-135:空气质量传感器 (ADC)
- 外部交互与扩展:
- 激光雷达 (Lidar) - 用于避障模式
- 寻迹模块 (Xunji) - 用于路线循迹模式
- OLED 屏幕显示
- 蜂鸣器 (Buzzer) 与 状态指示灯 (LED)
- PS2 接收器 / 蓝牙模块 / 串口透传 / GPS 接口
? 软件架构 (基于 FreeRTOS)
系统采用 FreeRTOS 进行多任务调度,确保运动控制与传感器数据采集的实时性。核心任务(Tasks)如下:
StartDefaultTask(控制核心):处理 PS2/RC/雷达/蓝牙/Blinker 等多模式输入,计算 X/Y/R 期望速度,并更新步态(Gait)。StartTask02(舵机控制):实时下发 PCA9685 舵机 PWM 控制信号,执行具体的腿部动作。StartTask03(IMU 处理):读取 MPU6050 DMP 数据,解算 Pitch/Roll/Yaw 姿态角。StartTask04(数据上报):向 ROS 主机或串口终端发送机器人状态数据。StartTask05(电源管理):实时监测电池电压,欠压时触发警报指示灯。StartTask06(定位通信):处理 GPS 及额外串口数据通信。StartTask07(环境感知):通过 ADC + DMA 采集各路 MQ 气体传感器电压并计算浓度,读取 SHT30 温湿度数据。
? 控制模式 (Control Modes)
机器人支持在多种模式间无缝切换:
- PS2_MODE:索尼 PS2 无线手柄遥控模式
- RC_MODE:航模遥控器模式 (SBUS/PPM)
- BLUE_MODE:手机蓝牙遥控模式
- BLINKER_MODE:物联网 App (Blinker) 远程控制模式
- LIDAR_MODE:基于激光雷达的自主避障模式
- XUNJI_MODE:地面循迹模式
- ROS_MODE:受控于 ROS 上位机节点,接收 cmd_vel 等指令
?? 开发与构建指南
依赖环境
- IDE:Keil MDK-ARM (推荐 V5.32 及以上版本)
- 底层配置:STM32CubeMX (V6.13.0) + STM32Cube FW_F4 V1.28.1
- 编程语言:C 语言 (HAL 库 + FreeRTOS API)
编译步骤
- 克隆或下载本项目源码。
- 进入
MDK-ARM目录,双击打开F407VET6_HEXAPOD.uvprojx工程文件。 - 在 Keil 中点击 Build (F7) 编译整个工程。
- 使用 ST-Link 或 DAP-Link 将程序烧录(Download)到 STM32F407VET6 主控板中。
CubeMX 配置修改
如需修改底层引脚或时钟配置:
- 双击根目录下的
F407VET6_HEXAPOD.ioc。 - 在 STM32CubeMX 中进行图形化修改。
- 点击 Generate Code 重新生成工程代码(注意保留用户自定义代码区
USER CODE BEGIN/END内的实现)。
? 工程目录结构
STM32F407VET6_HEXAPOD/
├── Core/ # 核心系统代码 (main.c, freertos.c, 中断处理等)
├── Drivers/ # STM32 HAL 库驱动与 CMSIS 核心文件
├── MDK-ARM/ # Keil 工程目录
│ └── HardWare/ # ? 机器人所有外部硬件驱动 (OLED, MPU6050, 舵机, 传感器等)
├── F407VET6_HEXAPOD.ioc# STM32CubeMX 配置文件
└── README.md # 项目说明文档