色欲蜜桃AV无码中文字幕,性h视频,无码专区无码专区视频网址,最近2019手机中文字幕7

深圳市博揚智能裝備有限公司 自動化系統(tǒng)集成商及解決方案提供商
全國服務(wù)熱線
0755-26993877
博揚問答
您的位置: 首頁 > 新聞中心 > 博揚問答
.
聯(lián)系我們

http://www.wj-zm.com

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

咨詢熱線0755-26993877

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

發(fā)布時間:2023-05-11 18:03:45人氣:

  連接伺服電機可能是許多項目中的一項基本任務(wù),例如構(gòu)建定制機器人??梢圆捎枚喾N方法將伺服電機與Raspberry Pi連接起來。本文介紹了其中的兩種,并解釋了伺服電機的工作原理。這些知識將使讀者能夠使用不同的微控制器,甚至是簡單的基于555定時器的電路來控制伺服系統(tǒng)。


  伺服電機是如何工作的?


  通常,伺服系統(tǒng)具有三個輸入,其中兩個為位于塑料體內(nèi)的電機供電。第三個輸入控制伺服轉(zhuǎn)動多少。


  通常,輸入信號是脈寬調(diào)制(PWM)信號,其頻率不會隨時間變化。相反,當(dāng)PWM輸入信號的占空比發(fā)生變化時,伺服電機會旋轉(zhuǎn)到某個角度。本例中使用的舵機總共可以轉(zhuǎn)動180度(每個方向90度)。當(dāng)占空比為5%(一毫秒長的高脈沖)時,伺服旋轉(zhuǎn)到其最小位置。如果占空比變?yōu)?0%(這是一個兩毫秒長的高脈沖),伺服會一直向右旋轉(zhuǎn)。之間的占空比與-90和+90之間的不同角度相關(guān)。但是,這些數(shù)字可能因不同的伺服系統(tǒng)和制造商而異。因此,始終有必要查閱伺服的數(shù)據(jù)表。


  請注意,Raspberry Pi不應(yīng)為伺服提供電壓。相反,使用外部電源來驅(qū)動伺服電機,因為Raspberry Pi的GPIO引腳可能無法提供足夠的電源來使電機以可接受的速度轉(zhuǎn)動。


  如何用樹莓派控制伺服電機?


  要使樹莓派控制伺服電機,請將伺服器的+5 V和GND線連接到外部電源,將剩余的信號線連接到樹莓派的任何I/O引腳。


  不要忘記將Raspberry Pi的任何GND引腳也連接到電源的地。

20210909164705.png

  如上所述,伺服系統(tǒng)通常需要一個PWM信號來告訴它們轉(zhuǎn)向哪里。因此,有多種方法可以將舵機旋轉(zhuǎn)到特定角度。一種方法是使用包含伺服模塊的gpiozero庫。您可以使用pip在Raspberry Pi上安裝該庫。如果尚未安裝rpi.gpio包,也請下載它。否則,gpiozero庫將無法工作:


  復(fù)制代碼


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


  完成后,就可以執(zhí)行以下腳本:


  復(fù)制代碼


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")


  如您所見,該庫允許您快速將伺服轉(zhuǎn)向三個預(yù)定義位置之一。這個簡單的python腳本首先導(dǎo)入所需的庫。然后,它定義伺服在開始無限循環(huán)之前連接到引腳25,在該無限循環(huán)中,伺服旋轉(zhuǎn)到其最小、中間和最大位置。在角度變化之間,腳本等待半秒。


  但是,庫也可以通過直接將舵機的值設(shè)置為-1和1之間的數(shù)字來指示舵機轉(zhuǎn)向舵機最小值和最大值之間的任何位置。負(fù)值對應(yīng)于舵機的最小位置,一個代表舵機的最大旋轉(zhuǎn):


  復(fù)制代碼


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")


  這個簡單的腳本與前一個腳本的工作方式類似。然而,它在每次循環(huán)迭代中直接設(shè)置舵機的值,而不是使舵機旋轉(zhuǎn)到三個預(yù)定義位置之一。


  請注意,此庫僅代表使用Raspberry Pi控制伺服的一種方式。同樣,您也可以使用不同的庫,例如pigpio,并直接操縱進入伺服器的PWM輸出信號,使其轉(zhuǎn)向指定位置。


  控制多個舵機的另一種方法


  任何樹莓派編號的I/O引腳都能夠控制伺服系統(tǒng)。但是,如果您想控制更多的伺服系統(tǒng),或者您的項目需要GPIO引腳用于其他用途,那么也可以使用伺服控制器板。


  這些模塊通常通過I2C與微控制器或類似設(shè)備通信,因此可以僅使用Raspberry Pi的兩個GPIO引腳來控制許多伺服系統(tǒng)。但是,您可以購買許多不同類型的模塊,它們的工作方式通常大不相同。因此,您應(yīng)該查閱模塊的數(shù)據(jù)表以了解如何使用它。


  概括


  與普通直流電機不同,伺服系統(tǒng)通常不能旋轉(zhuǎn)完整的360度。相反,它們在某個最小和最大角度之間轉(zhuǎn)動。具有恒定頻率的脈寬調(diào)制輸入信號控制旋轉(zhuǎn)。該信號的占空比直接對應(yīng)于電機的角度。當(dāng)輸入信號的占空比增加時,伺服會向其最大位置旋轉(zhuǎn)。樹莓派可以通過軟件直接同時控制多個舵機。每個編號的GPIO引腳都可以管理一個舵機。但是,不建議使用Raspberry Pi為伺服器供電。相反,它們應(yīng)該連接到外部電源。伺服控制器板是一次控制大量伺服的不錯選擇。


推薦資訊

镇巴县| 潮安县| 淳化县| 广南县| 陆良县| 庆安县| 安多县| 达拉特旗| 南部县| 长治县| 政和县| 青海省| 桦甸市| 当涂县| 彭山县| 白玉县| 金沙县| 淳化县| 堆龙德庆县| 恩施市| 舞钢市| 会昌县| 逊克县| 鹤岗市| 山阴县| 星座| 玉林市| 鄄城县| 穆棱市| 三穗县| 岳西县| 三穗县| 阳高县| 宜章县| 汤原县| 钟山县| 大厂| 勐海县| 湟中县| 如东县| 曲阜市|