• <li id="aaaa0"><table id="aaaa0"></table></li>
  • <li id="aaaa0"><tt id="aaaa0"></tt></li>
    <li id="aaaa0"></li>
  • <tt id="aaaa0"></tt>
    深圳市博揚智能裝備有限公司 自動化系統集成商及解決方案提供商
    全國服務熱線
    0755-26993877
    博揚問答
    您的位置: 首頁 > 新聞中心 > 博揚問答
    .
    聯系我們

    http://m.shunliao.com.cn

    地址:深圳市寶安區新安街道67區甲岸科技園1號廠房1區5樓
    手機:15012713703

    咨詢熱線0755-26993877

    如何使用樹莓派控制伺服電機,控制伺服電機的方法?

    發布時間:2023-05-11 18:03:45人氣:

      連接伺服電機可能是許多項目中的一項基本任務,例如構建定制機器人??梢圆捎枚喾N方法將伺服電機與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為伺服器供電。相反,它們應該連接到外部電源。伺服控制器板是一次控制大量伺服的不錯選擇。


    推薦資訊

  • <li id="aaaa0"><table id="aaaa0"></table></li>
  • <li id="aaaa0"><tt id="aaaa0"></tt></li>
    <li id="aaaa0"></li>
  • <tt id="aaaa0"></tt>
    日韩有码av 青神县| 临朐县| 邮箱| 巴彦淖尔市| 红河县| 广西| 民权县| 城步| 桦南县| 五河县| 南丰县| 淅川县| 阿勒泰市| 武功县| 武夷山市| 栖霞市| 荃湾区| 孙吴县| 晴隆县| 钟山县| 子长县| 绥滨县| 上蔡县| 延安市| 交城县| 舟山市| 淅川县| 汉阴县| 文安县| 大庆市| 连州市| 吴川市| 清新县| 攀枝花市| 吉安县| 三江| 天祝| 错那县| 分宜县| 鄱阳县| 微山县| http://444 http://444 http://444