深圳市博扬智能装备有限公司 自动化系统集成商及解决方案提供商
全国服务热线
0755-26993877
博扬问答
您的位置: 首页 > 新闻中心 > 博扬问答
.
联系我们

https://www.zhboyang.com

地址:深圳市宝安区新安街道67区甲岸科技园1号厂房1区5楼
手机:15012713703

咨询热线0755-26993877

如何使用树莓派控制伺服电机,控制伺服电机的方法?

发布时间:2023-05-11 18:03:45人气:

  连接伺服电机可能是许多项目中的一项基本任务,例如构建定制机器人。可以采用多种方法将伺服电机与Raspberry Pi连接起来。本文介绍了其中的两种,并解释了伺服电机的工作原理。这些知识将使读者能够使用不同的微控制器,甚至是简单的基于555定时器的电路来控制伺服系统。


  伺服电机是如何工作的?


  通常,伺服系统具有三个输入,其中两个为位于塑料体内的电机供电。第三个输入控制伺服转动多少。


  通常,输入信号是脉宽调制(PWM)信号,其频率不会随时间变化。相反,当PWM输入信号的占空比发生变化时,伺服电机会旋转到某个角度。本例中使用的舵机总共可以转动180度(每个方向90度)。当占空比为5%(一毫秒长的高脉冲)时,伺服旋转到其最小位置。如果占空比变为10%(这是一个两毫秒长的高脉冲),伺服会一直向右旋转。之间的占空比与-90和+90之间的不同角度相关。但是,这些数字可能因不同的伺服系统和制造商而异。因此,始终有必要查阅伺服的数据表。


  请注意,Raspberry Pi不应为伺服提供电压。相反,使用外部电源来驱动伺服电机,因为Raspberry Pi的GPIO引脚可能无法提供足够的电源来使电机以可接受的速度转动。


  如何用树莓派控制伺服电机?


  要使树莓派控制伺服电机,请将伺服器的+5 V和GND线连接到外部电源,将剩余的信号线连接到树莓派的任何I/O引脚。


  不要忘记将Raspberry Pi的任何GND引脚也连接到电源的地。

20210909164705.png

  如上所述,伺服系统通常需要一个PWM信号来告诉它们转向哪里。因此,有多种方法可以将舵机旋转到特定角度。一种方法是使用包含伺服模块的gpiozero库。您可以使用pip在Raspberry Pi上安装该库。如果尚未安装rpi.gpio包,也请下载它。否则,gpiozero库将无法工作:


  复制代码


sudo apt-get install python3-rpi.gpiosudo pip3 install gpiozero


  完成后,就可以执行以下脚本:


  复制代码


from gpiozero import Servofrom time import sleep

servo = Servo(25)try:	while True:
    	servo.min()
    	sleep(0.5)
    	servo.mid()
    	sleep(0.5)
    	servo.max()
    	sleep(0.5)except KeyboardInterrupt:
	print("Program stopped")


  如您所见,该库允许您快速将伺服转向三个预定义位置之一。这个简单的python脚本首先导入所需的库。然后,它定义伺服在开始无限循环之前连接到引脚25,在该无限循环中,伺服旋转到其最小、中间和最大位置。在角度变化之间,脚本等待半秒。


  但是,库也可以通过直接将舵机的值设置为-1和1之间的数字来指示舵机转向舵机最小值和最大值之间的任何位置。负值对应于舵机的最小位置,一个代表舵机的最大旋转:


  复制代码


from gpiozero import Servo
from time import sleep

servo = Servo(25)val = -1try:	while True:
    	servo.value = val
    	sleep(0.1)    	val = val + 0.1
    	if val > 1:        	val = -1except KeyboardInterrupt:
	print("Program stopped")


  这个简单的脚本与前一个脚本的工作方式类似。然而,它在每次循环迭代中直接设置舵机的值,而不是使舵机旋转到三个预定义位置之一。


  请注意,此库仅代表使用Raspberry Pi控制伺服的一种方式。同样,您也可以使用不同的库,例如pigpio,并直接操纵进入伺服器的PWM输出信号,使其转向指定位置。


  控制多个舵机的另一种方法


  任何树莓派编号的I/O引脚都能够控制伺服系统。但是,如果您想控制更多的伺服系统,或者您的项目需要GPIO引脚用于其他用途,那么也可以使用伺服控制器板。


  这些模块通常通过I2C与微控制器或类似设备通信,因此可以仅使用Raspberry Pi的两个GPIO引脚来控制许多伺服系统。但是,您可以购买许多不同类型的模块,它们的工作方式通常大不相同。因此,您应该查阅模块的数据表以了解如何使用它。


  概括


  与普通直流电机不同,伺服系统通常不能旋转完整的360度。相反,它们在某个最小和最大角度之间转动。具有恒定频率的脉宽调制输入信号控制旋转。该信号的占空比直接对应于电机的角度。当输入信号的占空比增加时,伺服会向其最大位置旋转。树莓派可以通过软件直接同时控制多个舵机。每个编号的GPIO引脚都可以管理一个舵机。但是,不建议使用Raspberry Pi为伺服器供电。相反,它们应该连接到外部电源。伺服控制器板是一次控制大量伺服的不错选择。


推荐资讯