树莓派3B+ 控制Sg90舵机
Roy Lv7

舵机也就是伺服电机,是一种位置(角度)伺服的驱动器,适用于角度不断变化并可以保持在某一角度的控制系统中。最近帮一老乡实现一个毕设,通过树莓派端识别手势,来控制舵机的角度,舵机连接的太阳能板。

舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。

最常见的用于开发或实验的舵机型号就是sg90了。

Sg90舵机有3个输入引脚,分别是GND、VCC和Signal,VCC使用5V直流电压,signal通过PWM(脉冲宽度调制)信号来控制。

mark

假如我们使用的PWM频率为50Hz,对应周期T=20ms,脉冲长度t和转动方向之间的关系是线性的,如下图,其中Duty Cycle是占空比:

mark

有了以上信息,那如何使用树莓派来控制舵机呢?

在实验中,为了方便,可以把舵机的5V引脚接在树莓派的5V输出上(可能会引起树莓派供电不稳),信号引脚接在树莓派的GPIO引脚上,通过python PRi.GPIO库来生成PWM的方式来控制舵机。这里我们把舵机的信号引脚接在树莓派的PWM引脚上。

树莓派的引脚分为两种一个是BCM 一个是BOARD模式,不同的模式对应的引脚不同,需要在定义引脚前设定模式。

其中,转动角度转换成占空比算式(方法duty_cycle中的数值计算),可以通过如下图计算得出:
mark

  • 本文标题:树莓派3B+ 控制Sg90舵机
  • 本文作者:Roy
  • 创建时间:2021-07-06 15:13:10
  • 本文链接:https://www.yrzdm.com/2021/07/06/raspberry-sg90/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!