<table id="v9ft7"><noscript id="v9ft7"></noscript></table>
  • <tr id="v9ft7"><label id="v9ft7"><menu id="v9ft7"></menu></label></tr>
    <acronym id="v9ft7"></acronym>

  • 在线留言/ 收藏本站 网站地图 新浪微博 欢迎来到深圳市博扬智能装备有限公司官网!

    全国咨询热线:0755-26993877

    热门关键词: 日本藤仓气缸伺服驱动器精密减压阀精密电控变换器复合机专用气缸旋转编码器

    派克直线电机
    当前位置:首页 » 博扬智能资讯中心 » 其它 » 如何使用树莓派控制伺服电机,控制伺服电机的方法?

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

    发表时间:2021-09-09 16:41【 阅读量:-查看手机网址
    扫一扫!如何使用树莓派控制伺服电机,控制伺服电机的方法?扫一扫!

      连接伺服电机可能是许多项目中的一项基本任务,例如构建定制机器人。可以采用多种方法将伺服电机与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为伺服器供电。相反,它们应该连接到外部电源。伺服控制器板是一次控制大量伺服的不错选择。


    相关资讯

    无码专区狠狠躁躁天天躁
    <table id="v9ft7"><noscript id="v9ft7"></noscript></table>
  • <tr id="v9ft7"><label id="v9ft7"><menu id="v9ft7"></menu></label></tr>
    <acronym id="v9ft7"></acronym>