使用树莓派做两轮自平衡车(三)——控制电机

电机是平衡车的执行机构,所有的平衡控制和移动旋转都由它来完成。所以精确控制电机的速度和方向是非常重要的部分。树莓派是无法直接驱动和控制电机的,需要专用的电机驱动。电机驱动有很多种,这里选择使用tb6612fng,它的优点是体积小,发热小,控制频率高。我实际也使用过L298N,效果也可以,就是体积太大了。它们的控制方式是一样的。

使用树莓派做两轮自平衡车(三)——控制电机

接线示意图如下图所示。树莓派通过控制PWMA和PWMB控制电机的速度,通过AINx和BINx控制电机的转向,A是一组,B是一组。

使用树莓派做两轮自平衡车(三)——控制电机

电机的转向受很多情况的影响,比如AOx或BOx的接线顺序,AINx或BINx的接线顺序,程序的控制等等。所以如果接的时候理不清了也不必担心,最后在程序中改一下就好。

使用树莓派做两轮自平衡车(三)——控制电机

树莓派提供了两组PWM,刚刚好够两轮平衡车使用。

使用树莓派做两轮自平衡车(三)——控制电机

具体关于树莓派PWM的详细内容可以查看我的另一篇文章:《树莓派的PWM 》

这里我设置的PWM的变化范围是0(停止)-2000(全速)。

使用树莓派做两轮自平衡车(三)——控制电机

当PID控制器算出最终的控制量时,首先通过它的正负设置对应的GPIO,控制电机的转向,然后将控制量的绝对值设置PWM来控制电机的速度。

使用树莓派做两轮自平衡车(三)——控制电机

这里使用了内存映射的方式操作gpio和pwm的寄存器。关于内存映射在上面关于PWM的文章和我的另一篇文章《Linux控制GPIO 》。

最后来说一下控制频率和控制级数对电机控制的影响吧。简单来说就是控制频率高,控制级数多,精度高,控制平滑精细,振动小;反之频率低,级数少,精度低,控制波动大,振动大。

使用树莓派做两轮自平衡车(三)——控制电机

上图在相同的时间里,A可以控制输出6次,而B才能控制1次,A的控制响应要好于B。

使用树莓派做两轮自平衡车(三)——控制电机

上图在一个控制周期内,A有16级控制,而B只有4级,A的控制精细度要好于B。

不同控制器芯片对控制频率和级数的设置方式不同,有些单片机控制级数和控制频率有相关性,这个时候就需要根据实际情况选取最合适的组合。

电机控制的硬件和软件都不算复杂,关键是理解PWM调速控制。OK,关于电机控制就说这么多吧,希望对大家有所帮助,喜欢的小伙伴就点赞支持一下吧。

限于个人水平,肯定有遗漏和错误,欢迎大家交流指正。

展开阅读全文

页面更新:2024-03-19

标签:电机   组合   寄存器   篇文章   级数   接线   控制器   顺序   要好   频率   精细   内存   速度   方式   程序   数码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top