在本教程中,我们将探讨如何在树莓派上使用Python控制多个舵机。 我们的目标是制作一个支持多自由度定位拍照的云台。在这里,你可以看到我们的成品是如何工作的。
主要材料
1、树莓派3 X1
2、摄像头模块 X1
3、9G 180°微型舵机 X2
4、迷你平移/倾斜照相机平台 防振照相机支架(2个舵机)
5、电阻1K欧姆 X2(可选)
6、金属部件
7、固定带等(用于构建云台平台)
你可以购买一个成品的云台平台舵机或自己制作。
PWM如何工作
树莓派不能直接输出模拟电信号,但我们可以使用PWM(脉宽调制)方法来模拟这一点。我们制作一个固定频率的数字信号,在那里我们将改变脉冲宽度,将“转换”改为“平均”输出电压的电平,如下图所示:
我们可以使用这个“平均”电压水平来控制LED亮度,例如:
请注意频率本身不是重点,而是“占空比”,即脉冲“高”的时间除以波周期之间的关系。例如,假设我们在树莓派的 GPIO上产生一个50Hz的脉冲频率。周期(p)将是频率的倒数或20ms(1 / f)。如果我们的LED达到“半”亮度,我们的占空比必须为50%,这意味着“脉冲”将是10ms的“高”。
这个原理对于我们来说非常重要,一旦使用“占空比”来定义舵机位置,如下所示,它用于控制舵机的位置。
安装部件
舵机将连接到外部5V电源,其数据引脚(我的项目中,黄色接线)连接到树莓派GPIO如下:
GPIO 17 ==>仰角舵机
GPIO 27 ==>平移舵机
不要忘记将GND连接在一起 ==> 树莓派 – 舵机 – 外部电源。
你可以在树莓派的GPIO和服务器数据输入引脚之间串联一个1K欧姆的电阻。 如果发生舵机故障,这将保护你的树莓派。
舵机的校准
1、首先你要弄清楚你购买到的舵机的主要特点。在这个项目中,我使用的是Power Pro SG90。
以下是它的数据表,我们可以参考一下:
范围:180°
电源: