stm32蓝牙平衡小车制作项目心得(三)

续上一篇,这里博主先有感而发一下,知识的浪潮让人的内心里汹涌澎湃,虽然有时候可能会迷茫,但是不要停滞不前,只需要:

stm32蓝牙平衡小车制作项目心得(三)_第1张图片

小车只是单单平衡的话其实没什么好玩的,也就推推它像个不倒翁一样而已,所以要想让它驰骋沙场,仅仅只需要加入一个蓝牙模块。

这里博主做了一个实验,一开始呢,我也是简单地把蓝牙收到的数据对应成BlueTooth_Speed然后直接加在小车电机的输出值里,再设置一个BlueTooth_LeftTurn和BlueTooth_RightTurn,分别融入(指调好极性)小车的左右电机的输出值。(这里不懂可以看一下第一篇有说到PWM_Out加载进电机),这样看起来是不是觉得没什么问题呢?

但是仔细分析一下平衡小车蓝牙控制并不像普通的小车一样,仅仅只是蓝牙接受到数据之后,给电机一个对应命令的输出值就行,毕竟小车在行走过程的前提还是要保持直立。但第一篇我们介绍小车的PID的时候,我们知道PID的作用就是为了抑制小车行动,让小车趋于稳定的,但现在我们却又要让小车走动,岂不是跟之前的PID逆向而行?

首先分析,如果直接把值加到电机输出值里面,那么在下一次进入中断时,直立环和速度环就会改变值去调整蓝牙参数带给小车的影响,通过蓝牙控制能够带给小车的效果仅仅只是小程度甚至是细微的移动,并且移动的值最终还会在速度环的控制下,通过积分控制反馈让小车回到原来的位置。所以,我们得采取一种更好的办法。

博主的想法:
既然是速度环的控制使小车行动受限,那我们何不尝试去修改速度环,让蓝牙接受的数据加在速度环上,以此让小车能够在接受到蓝牙数据时摆脱数据环的控制。

eg:
在Speed_S+=Now_Speed基础上,再加上
Speed_S+=BlueTooth_Speed;

这里再注明一下,前面PID算法的速度环需要对积分后的结果进行最值限制,限制大约在10000左右。

然后可以把BlueTooth_LeftTurn和BlueTooth_RightTurn加到PWM_Out,前提是把转向环调小以免出现震荡,或者是直接定义一个BlueTooth_Turn,然后加到转向环,通过正负去调节小车的转向。

实际控制效果展示:

讲到这里,蓝牙平衡小车项目就完结撒花啦,后续有什么改进我会继续修改文章,技术含量其实也不是很大,只是希望能够给初学者还没有概念的时候能够起到指引作用,毕竟我当时一开始做也很希望能够有这样的介绍。

之后我也会把整个工程程序分享在我的微信公众号上, 有需要到时候可以下载。要是急也可以在我的微信公众号加我微信联系我,我也可以直接分享。

希望对读者有所帮助,喜欢的话可以关注一下我的公众号,我会把学习笔记发在上面,大家可以一起共同学习!

stm32蓝牙平衡小车制作项目心得(三)_第2张图片

Alt

你可能感兴趣的:(stm32)