Skip to content

wzw1105/RoboRTS-Firmware

Repository files navigation

软件环境

  • Toolchain/IDE : MDK-ARM V5 / arm-none-eabi
  • package version: STM32Cube FW_F4 V1.24.0
  • FreeRTOS version: 10.0.0
  • CMSIS-RTOS version: 1.02

编程规范

  • 变量和函数命名方式遵循 Unix/Linux 风格
  • chassis_task与gimbal_task是强实时控制任务,优先级最高,禁止被其他任务抢占或者阻塞
  • 不需要精确计时的任务,采用自行实现的软件定时器实现,定时精度受任务调度影响

快速开始

硬件接口

主控板使用国际开发板 C 型,各个功能接口的位置如下:

云台接口 17: pwm pin 18: trigger pin

底盘接口 19: firmware config pin.

功能模块

手动模式:

提供遥控器基础控制。

全自动模式:

这种模式下底盘、云台、发射机构受到上层 PC 的完全控制,完全控制包含对这些执行机构以具体物理单位的控制。

操作档位说明:

手动档

遥控器控制(底盘跟随云台):右拨杆上 遥控器控制(云台跟随地盘):右拨杆中

  • 开、关摩擦轮(左拨杆上拨)
  • 单发、连发射击(左拨杆下拨)
自动档

正常比赛时使用(拨杆右下)

左拨杆位置对应功能:

  • 上:摩擦轮打开,其他全接管
  • 中:摩擦轮关闭,其他全接管
  • 下:只具有单发功能

程序说明

程序体系结构

体系框架

  1. 使用免费及开源的 freertos 操作系统,兼容其他开源协议 license;
  2. 使用标准 CMSIS-RTOS 接口,方便不同操作系统或平台间程序移植;
  3. 提供一套抽象步兵机器人bsp,简化上层逻辑;

application:上层应用任务,包括系统任务

bsp:C型开发板适配包

components:通用机器人模块,包括命令行,驱动模块和系统组件

doc:说明文档

MDK-ARM:armcc工具链,注意:未购买license最多只能编译20kb大小固件

tools: cmake gnu toolchain. You should install make, cmake, arm-none-eabi and set env value.

软件体系

固件提供统一的机器人软件栈,所有业务逻辑包含在application中,使用观察者模式分发信息,软件框架如下:

硬件体系

  1. 主控 MCU:STM32F407IGHx,配置运行频率180MHz
  2. 模块通信方式:CAN;CAN设备:电机电调、陀螺仪模块
  3. 上下层通信方式:USB虚拟串口
  4. 麦轮安装方式:O型

协议数据

数据分类

协议数据按照通信方向可以分为两大类:

底层发送给上层的数据:

  1. 反馈信息:包含各个机构传感器反馈信息、底层计算出来的一些反馈信息;
  2. 底层状态信息:包含底层设备运行状态、底层对上层数据的一些响应等;
  3. 转发数据:包含裁判系统的全部信息、服务器端的自定义信息;

底层接收的上层数据:

  1. 控制信息:上层对底层 3 个执行机构的控制信息;

About

机甲大师STM32嵌入式C代码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages