起因
大家在学会了Stm32后,可以做一个项目来进行来进行练手,平衡小车就是一个很好的练手项目,可以检验自己的学习成果,也可以对学习到的知识进行一个复习。再一个就是通过做项目来锻炼自己的工程能力。
好啦,废话不多说,本套教程预计分为两部分,硬件底层介绍篇和软件移植篇,经过这两个部分的学习,大家可以体会软硬件资源如何相互配合,在本教程的基础上快速做成自己的第一辆平衡小车。
当然,博主抽空更新啦,最近期末,要准备课程考试和课程设计,大家可以期待一下下
一、制作平衡小车所需要的模块选型
1、小车底板及带有编码器电机
推荐方案
小车底板
大家可以选择到淘宝自行
购买平衡小车底板
,如下图所示,一般如果不加电机的话,价格在30元左右,加上电机的话大概在130左右
带有编码器的电机
只要
选择带有编码器的减速直流电机
即可,大家注意要选择带有支架和轮胎的,不然买回来就只有一个电机,轮胎和支架还要另外买,查看淘宝的价格,两个带编码器的电机大约在120元左右
我的方案
小车底板
自己纯手工制作,直接采用的绿色洞洞板,自己使用螺丝挖孔,采用铜柱作为支撑
编码器电机
使用实验室的电机,型号为JGB37520电机,65mm大轮胎
2、电机驱动
推荐方案
使用
TB6612FNG电机驱动模块
,我认为这个电机驱动比较好用,就是要注意使用,一不小心就烧了,驱动倒是不贵嘞,但是可能会把MCU烧了噢
3、电源以及稳压模块
推荐方案
电池
1.采用
3S航模电池
,就是价格有点小贵,价格大概在50元左右
大家一定要注意转接头是否匹配,多买几条相应的转接头,有XT60、JST、T插等接口
2.大家也可以选择下图
18650电池组,12V输出
,电流参数大家可以自行选择
稳压
采用
LM2596S-DC-DC可调模块
,将12V电压降压成5V,给MCU和其他外设模块供电
4、OLED显示屏
这个就没什么好推荐的嘞,直接采用0.96OLED屏
,主要是用来调试参数使用,查看陀螺仪角度等,大概10元左右
5、MCU
这个也请大家根据个人需求选择,可以选择Stm32单片机或者其他型号的单片机
我这里采用的是Stm32F103RCT6单片机,一般的Stm32F103C8T6就已经够用嘞
6、陀螺仪模块(MPU6050)
推荐方案
1、上淘宝
买一个MPU6050,8脚的
,大概价格在15元左右
2、采用ATK-MPU6050
原子家的MPU6050,6脚的
,小贵,一个都快60块嘞,但是貌似精度更高?
由于手上有这个模块,就直接采用了原子家的
7、蓝牙模块
大家自行去淘宝购买,我选择的是HC-05
,价格大概在20元左右
大家也可以选择购买HC-06/07/08等
二、集成上述模块,画出PCB
1、原理图
下图为集成模块,所画出的PCB,将各个模块进行继承整合,下图即为所使用到的硬件原理图
还添加了三个按钮,三个LED和一个蜂鸣器,扩展出了两个串口,这块板子很强,表扬一下硬件大哥
12V电压经过LM2596S DC-DC可调电压模块降压成5V,给外设和MCU供电
2、PCB
PCB如下图所示,太棒了
,硬件大哥非常给力,再次点赞
三、规划MCU的IO口资源,以及使用到的软件资源
1、电机及编码器
注意这里的规划资源是根据TB6612逻辑来进行使用的,但是其他驱动模块同理
PB12 PB13 PB14 PB15
控制电机的正反转
PB6(TIM4-CH1) PB7(TIM4-CH2)
控制电机转速
PA0(TIM2-CH1) PA1(TIM2-CH2) PA6(TIM3-CH1) PA7(TIM3-CH2)
编码器读取脉冲
2、OLED
OLED这里选择的是IIC通信的四脚OLED,可以随意选择两个通用IO,作为SCL和SDA引脚
PC5(SCL)
PC4(SDA)
3、MPU6050
MPU6050也是使用IIC通信的模块,有一个中断引脚INT,SCL引脚和SDA引脚
PB5(INT引脚)
PB4(SCL引脚)
PB3(SDA引脚)
4、按键、LED及蜂鸣器
PC0 PC1 PC2
三个按键
PC10 PC11 PC12
三个LED
PD2
蜂鸣器
5、引出的USART串口
PA2 PA3
串口2的TX RX
PB10 PB11
串口3的 TX RX
四、总结
主要介绍了如何从零开始制作一辆平衡小车,包括选型、模块的购买,原理图PCB的介绍,还有软件资源的规划
制作平衡小车首先要搭出硬件,硬件结构的选取也是非常重要的,一个好的硬件结构能够为软件的编写减轻很多困难
硬件和软件相互配合,不断迭代更新,就可以制作出属于你自己的第一辆平衡小车啦
大家可以期待一下下,后面将会以此大纲来进行更新
软件移植篇
- MPU6050数据读取(),移植DMP读取Roll角、Pitch角、Yaw角
- 小车底层驱动(电机、编码器)
- 平衡小车PID(速度环、直立环、转向环)
- 平衡小车PID调参
- 蓝牙介绍,添加蓝牙模块控制小车(蓝牙知识篇、AT指令篇、手机app连接蓝牙篇)
- 总结篇