No.1
前言
最近有幸参加了一期RT-Thread官方发起的RT-Robot Car DIY活动,跟着大神们的步伐我也成功的做出了一辆麦克纳姆轮PS2遥控车,心里非常的Happy,特意记录了这个制作过程用作给小白们借鉴。不多逼逼了,来开始我们造车之旅。
关于选材
本文由RT-Robot Car活动参与者SnowStorm战队队长吴鹏编写,共8698字,感谢他!
初次探索智能车本着节约成本和最低风险的原则,我们尽量选用现成的硬件材料。在探索成功后,学会了理解了其中的原理,再根据自己的需求完全设计自己的小车。(以下所有图片,点击即可查看大图)
小车制作仓:https://github.com/bluesky-ryan/snowstorm_car
官方Robot-car连接:https://github.com/RT-Thread-packages/rt-robot
(以上链接请复制至外部浏览器打开)
1、主控芯片:我们选用淘宝成品主控板(主控芯片STM32F103RCT6)(如下方左图所示)
2、底盘:麦克纳姆轮底座,某宝多的是自行选购 (如下方右图所示)
3、电机:买底座基本都带电机,我们选用带AB编码器的1:30减速电机 (如下方左图所示)
4、遥控:普通SONY PS2遥控,30-40块钱 (如下方右图所示)
5、电池:选用3S 11V航模电池(如下方左图所示)
6、线:USB转串口线一根 (如下方右图所示)
No.2
核心知识点
1.RT-Thread bsp移植。
2.STM32-CubeMXs使用。
3.RTOS使用。
4.PID控制理论。
5.麦克拉姆拉控制理论。
6.简单运动模型
开发环境
使用Keil V5作为编译器
使用 RT-Thread 最新版本
使用自己移植的 bsp
No.3
详细步骤
BSP移植
关于BSP的移植RT-Thread官网有非常详细的文档描述:
https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32系列BSP制作教程.md(以上链接请复制至外部浏览器打开)
移植过程不做累述,按照官方的步骤一步一步的走即可。
先只配置控制台串口和系统呼吸灯:
console串口:UART2
系统LED灯:PD2
电机控制
主控板电机驱动芯片为TI的DIV8833芯片,一颗DIV8833芯片可以驱动两个电机,我们有4个电机用到了2个芯片。芯片采用对偶PWM方波输入驱动,频率手册没写,我们先使用10KHZ。
STM32F103RTC6高级定时器1、8都带有对偶PWM输出,我们的主控板用的高级定时器1,悲剧的是定时器1只能输出3路对偶PWM方波和1路普通PWM方波,可是我们有4个轮子,所以最后一个轮子的对偶极只能GPIO来代替控制了。
驱动逻辑表:
驱动资料有了逻辑也清晰了,我们接下要做的就只是按照要求输出几个PWM方波了
第一步:CubMX配置定时器1为PWM对偶模式
第二步:封装初始化、通道控制等电机控制接口(具体封装参照源码motor.c文件),最后给上层提供