stm32平衡车
导向
在之前已经有了一定的stm32的基础,最近参加一个比赛,做一下平衡车,视频参考“天下行走”的讲解视频,up主讲的很细致,思路清晰,推荐
##体会
我再也不会用分立元件去搞了,出错都不知道从哪查起,感觉程序没问题,逻辑很清晰,但是下载到核心板上,oled可以显示,但是电机不工作,觉得是中断没进去,因为在程序里有那个标志灯,进中断的话,会闪烁的,在家里面搞了一下,但没自己写,但这次我是按着视频里面一步一步来的,感觉现在思路很清晰,整个思路框架是:mpu6050检测角度,编码器检测位移(速度),角度用于直立环,编码器用于速度环,对于达到“平衡”的这个目的来说就是最终机械中值(角度)为0,速度为0,这个up主讲了一种合并推导的版本(速度环的输出是直立环的期望输入,串级pid),如果你要搞蓝牙控制小车运动,我觉的可能需要分开,两个公式不能合并了,哎,真的好希望我能够自己独立地完成,现在遇到了点问题,感觉有点难受啊,接着说思路,编码器作为一个输入检测元件,将位移速度的偏差传给电机,电机带动轮子输出,对于机械中值的理解,我觉得就是说小车自然运行的情况下的一个偏角,如果没有负重,小车比较理想的机械中值应该在0°左右,如果说加了一个负重,则需要改一下,机械中值十到二十左右吧,理解过程:就好比你拿了一个负重,机械中值如果还设为0,那么开始运行的那一刻,小车会由于负重往前倾(如果不是很重的话,可能没什么影响),那么一直会存在一个偏差,让小车前进,因为平衡车的原理就是:车往哪倾斜,就往哪运动,如果偏差一直存在则一直运动
问题
1.我觉得我这个核心板有问题,下载进去,掉电之后再上电就不行了。
2.有好转的是,有时候上电下载时,电机能够转,程序没问题,有时候就不行,后来我在网上找的原因可能是:程序跑飞,外设运行速度和核心板的运行速度不一样,需要加延迟
硬件
1.带编码器的TT马达
2.TB6612驱动
3.stm32f103c8t6
4.独立电源
5.mpu6050
6.oled
7.HC-05蓝牙模块
知识点
1.外部中断
2.定时器(输出比较,定时)
3.串口通信