在这个项目中,我们将了解伺服电动机,Raspberry Pi伺服电动机接口以及如何使用Raspberry Pi和Python控制伺服电机。对于这个项目,我们将使用Raspberry Pi 3和Tower Pro SG90伺服电机。
概述
将伺服电机与Raspberry Pi接口是一个有趣的话题,因为伺服电机是机器人的主要组件,在Raspberry Pi的帮助下,您可以在机器人技术方面拥有无尽的机会。
伺服电机是一种简单的设备,由直流电动机,齿轮和基于馈电位置控制系统组成。伺服电动机的主要优点是它可以保持其轴的角度位置。
您可以选择多种伺服电动机。最常见的两个伺服电动机是Tower Pro SG90和Tower Pro MG90。
SG90是塑料齿轮电机,而MG90是金属齿轮电机。在这个项目中,我将使用SG90伺服电机。
Tower Pro SG90伺服电机由三个引脚组成:PWM(橙色或黄色),VCC(红色)和GND(棕色)。vCCGND引脚必须连接到电源的 +5V和GND。
伺服电动机的PWM或信号销必须连接到控制器的PWM输出(Raspberry Pi)。基于PWM信号的脉冲宽度,伺服电动机轴的角度将变化。
如何控制伺服电机?
为了控制伺服电机,您需要使用一种称为脉冲宽度调制或PWM的技术。在PWM技术中,您将发送一个可变宽度的脉冲,并且伺服电动机的轴的位置将由脉冲的宽度或长度设置。
PWM信号的频率是固定值,取决于伺服电动机的类型。在我们的情况下,SG90和MG90S伺服电动机的PWM频率为50Hz。
在50Hz时,即20ms的周期,最小脉冲宽度为1ms,最大脉冲宽度为2ms。大多数伺服电动机的扫描面积为180度,即中性位置两侧的90度。
当PWM信号的脉冲宽度为1ms时,伺服器的位置一直到左侧。该位置的占空比为(1ms/20ms)x 100 = 5%。
同样,对于1.5ms和2ms的脉冲宽度,伺服器的位置为中间(占空比为7.5%),最右边(占空比为10%)。
Raspberry Pi伺服电机(SG90)界面
将伺服电机与Raspberry Pi接口将帮助您实施复杂的项目,例如Web控制的伺服器,RC机器人,物联网伺服控制等。
另外,在使用机器人技术时需要学习的第一件事是如何控制伺服电机。
因此,在这个项目中,我在Raspberry Pi的帮助下实现了对伺服电机的简单控制。现在,Raspberry Pi只有一个能够产生PWM脉冲的引脚。它是物理引脚12,即GPIO18。
但是我已经将伺服器的PWM引脚连接到Raspberry Pi的GPIO25(物理引脚22),以检查项目是否有效。它没有任何麻烦。
覆盆子Pi伺服电动机界面的电路图
下面的填充图像显示了Raspberry Pi伺服电动机界面的电路图。
要更清楚地了解连接,以下接线图可能会有所帮助。
需要组件
- 覆盆子皮
- Tower Pro SG90伺服电机(可以使用任何伺服电机)
- 连接电线
- 电源
- 计算机
电路设计
连接V。CC塔的GND Pro SG90伺服电动机至 +5V和GND销售电源。然后将伺服电动机的PWM引脚连接到Raspberry Pi的物理引脚22,即GPIO25。
使地面在覆盆子PI和伺服电动机的电源之间通用。
笔记:我已经将伺服电动机直接连接到覆盆子PI的 +5V引脚。我不建议您这样做。
代码
用Raspberry Pi控制伺服电机的代码是用Python编写的。该项目的Python脚本如下。
在职的
该项目的目的是了解Raspberry Pi伺服电机接口以及如何使用Raspberry Pi控制简单的伺服电机。
现在,进入项目的工作,我们将使用Raspberry Pi的PWM功能。如前所述,基于Raspberry Pi的PWM信号的占空比,伺服电机的位置将有所不同。
由于PWM信号的5%占空比对应于最左端的位置,而10%的占空比对应于极右的位置,因此我们需要将占空比在5%至10%之间改变,以从伺服电机中获得清晰的效果。
如果您在代码中观察到,那么占空比在每一步中的增量为0.5%,占据占用量从5%上升到10%。一旦达到10%的分数,反向动作就会开始。
申请
将伺服电动机与覆盆子Pi接口并控制伺服旋转角度在几种应用中有帮助:
- RC汽车
- RC平面
- 机器人
- 四轮驱动器
一个回应
这不是这种方法的忠实拥护者。它将RPI与仅处理软件打交道。我的方法是从Adafruit或Pimoroni购买PWM/伺服帽/板,并使用它。董事会照顾所有PWM方面。一个人将命令发送到董事会以定位伺服/PWM。好的,它的成本更高,但我觉得额外的成本是合理的。