STM32野火开源平衡小车(九)_完工散花
野火开源平衡车官网板块[https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1](https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1)
参考资料
暂无
参考视频(这个群主讲的不错)
[https://www.bilibili.com/video/BV1j7411z7uX](https://www.bilibili.com/video/BV1j7411z7uX)
硬件平台
![](https://img-blog.csdnimg.cn/20200822212404140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
开发平台
KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)
开发(一)还剩3,11,12没用,其他都有用到了, 电机电流那边有冲突,就不搞了
还有上电电机不受控制转动BUG也解决了
另外蓝牙修改回串口4, 因为RC是256K的 属于HD大容量, RBR8这些是MD中容量
![](https://img-blog.csdnimg.cn/2020082612512517.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
main.c这边调整了顺序 解决了电机BUG
![](https://img-blog.csdnimg.cn/20200826125320473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
主循环这边, 窗口看门狗换成独立看门狗, 并且显示了电池电量,芯片温度,超声波距离,以及点了个流水灯
![](https://img-blog.csdnimg.cn/20200826125355659.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
外循环这边
![](https://img-blog.csdnimg.cn/20200826125458417.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
修改了OLED驱动, 原先的驱动死鬼难用,代码自己去看
![](https://img-blog.csdnimg.cn/20200826125950644.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
修改了串口3变回4,不用重映射
![](https://img-blog.csdnimg.cn/20200826132141865.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826130032861.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
下面中断和发送那边也改为uart4 而不是usart3
![](https://img-blog.csdnimg.cn/20200826130121853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
NVIC中断优先也改uart4
![](https://img-blog.csdnimg.cn/20200826130148922.png)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
加入了ADC 采集电池和采集温度 代码自己看
![](https://img-blog.csdnimg.cn/20200826130231188.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
采用平均值滤波方法
![](https://img-blog.csdnimg.cn/20200826130250110.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
增加了基本定时器TIM6 做为刷新OLED数据用的时间, 中断1ms一次
![](https://img-blog.csdnimg.cn/20200826130313585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
增加了TIM3作为超声波接收时间计量, 代码自己看
![](https://img-blog.csdnimg.cn/20200826130517617.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
增加了超声波测距,代码自己看
![](https://img-blog.csdnimg.cn/20200826130542290.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
应该没有遗漏了
这应该是最后一节更新STM32野火开源平衡车了
最后车车OLED显示屏的内容
第一行为超声波距离
第二行为 DMP计算出来的 角度, 俯仰角,横滚角和翻滚角? 反正第一个是俯仰角
第三行为陀螺仪 x,y,z
第四行为加速度x,y,z
第五行为左右电机输出的PWM(有时超过了5位数,我也不知道为什么)
第六行为当前电池电压 以及芯片温度
![](https://img-blog.csdnimg.cn/20200826131238191.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826130837922.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
肯定有人问为什么我OLED不放上面
因为我买的这个OLED是十来块钱的, 之前的那个二十多块的给同学做毕设拿走了
你看看OLED的VCC与GND的位置就知道了, 插错了肯定会烧OLED,严重就烧板子
![](https://img-blog.csdnimg.cn/20200826131433603.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
最后放上车车的图
![](https://img-blog.csdnimg.cn/20200826131942517.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826132000963.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826132010875.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826132019641.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![](https://img-blog.csdnimg.cn/20200826132035351.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
STM32野火开源平衡车到此结束 谢谢大家
代码在下面
链接:https://pan.baidu.com/s/1CJLoFFaEcq-41F4Xc13z8w
提取码:g9ik
本帖最后由 qq741931893 于 2020-8-27 18:33 编辑
@flyleaf@fire 你们可以把我代码上传到你们的gitee上面了, 我这边不会pull希望也能帮助到后面观看的小伙伴
我的野火开源平衡车就到此结束了补个 手机蓝牙控制车车 展示视频
https://www.bilibili.com/video/av286957778
666 厉害!!! qq741931893 发表于 2020-8-26 13:48
@flyleaf@fire 你们可以把我代码上传到你们的gitee上面了, 我这边不会pull希望也能帮助到后面观看的小 ...
好的,我上传一下:lol 本帖最后由 qq741931893 于 2020-8-28 10:20 编辑
添加了蓝牙边角控制,
注意:如果OLED和超声波没装, 程序会运行不了(卡到超声波接收那边了),此时把main.c里面OLED和 超声波的程序注释掉即可
如果看到流水灯一直在跑,那么一切正常
赞个,楼主威武:lol 赞个,楼主威武
厉害 厉害学习
其实用8位机也可以做平衡小车,且不用陀螺仪自带的DMP,因为很多陀螺仪是不带DMP的,不能依赖DMP。
平衡车核心算法就2KB,采用浮点运算。 楼主威武 牛逼,指南者可以直接拿来做么。
刚好我剩下一个月准备找些项目做 哈哈:lol 哈哈:lol
页:
[1]