使用STM32F407VE单片机。
软件高度可移植,原则上各个软件模块 STM32 全系列通用(只要有足够目标模块使用的Flash和RAM既可)。
目前支持两种车型和两种开发板:STM32F407VE 的 Mecanum 四轮车、STM32F103C8 的两轮差速车。
- 【编程语言】使用 C/C++ 混合编程;
- 【无线通信】使用 Mavlink 通信协议;
- 【控制算法】使用 ArduPilot 的 AC_PID 库算法对每个轮进行 PID 控制;
- 【运动算法】Mecanum 四轮: 按 Mecanum 轮运动学对 4 个麦轮进行动力分配;两轮差速: 按 Mecanum 四轮的方式去掉横移,做两轮差速运动学分解。
- 【RTOS系统】使用 RT-Thread 实时操作系统进行线程调度;
- 【LOG 日志】使用 ArduPilot 日志形式记录软件运行的实时数据;
- 【文件系统】使用 RT-Thread 虚拟文件系统;
- 【nRF24L01】使用 RT-Thread 软件包驱动。
一、project generator 使用
Sugar 只维护配置文件,不维护工程。不同平台的工程可按配置自动生成,方法如下:
二、IAR 下的设置(以使用 JLink 调试为例)
一、RTOS:
- 按需剪裁 RT-Thread 内核的方法
- RT-Thread pin 设备分析
- rt-thread 与 C++ 的美满姻缘
- RT-Thread mavlink 甜蜜相拥教程
- RT-Thread 野生单步调试法
- RT-Thread 自制 Linux IDE
- 怎样快速把 4 个按键玩儿出 12 种甚至更多效果
- RT-Thread 当前最新的 nRF24L01 组件这么用
二、车控:
- 一起来做遥控车(软件架构训练三)
- 马达驱动
- 物联网通信,如何应用 mavlink 通信协议
- 让车听遥控的话
- 看完这篇一定能会用 ab 相编码器
- PID 调参
- 在 MCU 上使用 C++ 系列之类
- 在 MCU 上使用 C++ 系列之模板类
- 在 MCU 上使用 C++ 之模板类进阶与线性 Kalman 算法代码
三、不同车型
通过前后台架构兼容不同车型,不同车型在不同的 branch 上。
有关“前后台架构”请看: