python如何控制伺服驱动_用 pyboard 控制 hobby 伺服电机
在 pyboard 板上有4個用于連接業余hobby伺服電機的專用連接點。這些電機有3條線:地線、電源線和信號線。您可在板上將三條線連接在右下角,信號引腳在最右邊。引腳X1、X2、X3和X4是4個專用伺服信號引腳。
這張圖片中呈現了將伺服電機用公對公杜邦線連接到pyboard。
伺服上的地線通常是深色的,可能為黑色或深棕色。電源線最有可能是紅色。
伺服的電源引腳(標為VIN)直接連接到pyboard的輸入電源。當通過USB供電時,VIN由5V的USB電源線通過二極管供電。 連接到USB,pyboard可以驅動至少4個小到中型的伺服電機。
若您使用電池為pyboard供電并運行伺服電機,請確保電壓不大于6V,6V為大多數伺服電機可承受的最大電壓。(有些電機最高僅支持4.8V,所以請仔細查看您所使用的電機類型)。
創建Servo對象
將一個伺服插入位置1(帶有引腳X1的位置)并使用以下代碼創建一個伺服對象:
>>> servo1 = pyb.Servo(1)
使用?angle?方法更改伺服的角度:
>>> servo1.angle(45)
>>> servo1.angle(-60)
此處的角度以度為單位,且其值介于-90至90間,該值取決于電機。調用無參數的?angle?將返回當前角度:
>>> servo1.angle()
-60
注意:對于某些角度而言,返回的角度并非與您所設定的角度相同,這是設置脈寬的舍入誤差造成的。
您可將第二個參數傳遞給?angle?方法,此參數指定到達預設角度所花費的時間(以毫秒為單位)。 例如,花費1秒(1000毫秒)從當前位置到達50度,使用:
>>> servo1.angle(50, 1000)
此指令將直接返回,而伺服將繼續移動到預設角度,并在到達該角度后停止。 您可將此特性用作速度控制,或同步2個或更多的伺服電機。 若我們還有另外的伺服電機 (servo2 = pyb.Servo(2)) ,則我們可 :
>>> servo1.angle(-45, 2000); servo2.angle(60, 2000)
此代碼將同時移動伺服,使二者在耗時2秒后到達各自的最終角度。
注意:上述兩表達式中的使用分號使在您點擊Enter鍵后可一個接一個地執行。在腳本中您無需使用分號,您只需在一行結束后在下一行寫入。
連續旋轉伺服
目前我們已在使用移動到特定角度后停留在該角度的標準伺服。這些伺服電機可用于創建機器人的關節, 或諸如平面-傾斜機制等。在其內部,電機有一個可變電阻器(電位計), 其作用為測量當前角度和向電機施加與其到達預設角度的距離成正比的功率。 此預設角度由在伺服信號線上的高脈沖的寬度設定。1500微秒的脈寬對應中心位置(0度)。 脈沖以50Hz頻率發送,即每秒50脈沖。
您也可獲取順/逆時針旋轉的連續旋轉伺服電機。旋轉的角度和速度由信號線上的脈寬設定。 1500微秒的脈寬對應停止的電機。大于或小于此角度的脈寬即代表以給定速度順/逆時針旋轉。
在pyboard上,連續旋轉電機的Servo對象與前無異。實際上,您可使用?angle?來設置速度。 但是,為方便大家理解,此處我們提供另外一種設置速度的方法,稱為?speed?:
>>> servo1.speed(30)
speed?與?angle?功能相同:您可獲取并設置速度,并設置到達最終速度所需時間。:
>>> servo1.speed()
30
>>> servo1.speed(-20)
>>> servo1.speed(0, 2000)
上述的最后一條指令將電機設置為停止,但需耗時2秒使其停止。這實際是對連續伺服加速度的控制。
通常認為,伺服速度100(或-100)即為最大速度,但實際上您可取比其略大的數值,具體情況取決于特定電機。
angle?和?speed?方法的唯一區別(除名稱外)在于輸入數字(角度或速度)轉換為脈寬。
校準
從角度/速度到脈寬的轉換是由伺服對象使用其校準值完成的。使用以下代碼獲取當前校準:
>>> servo1.calibration()
(640, 2420, 1500, 2470, 2200)
此處有5個數字,其意為:
最小脈寬;伺服接受的最小脈寬。
最大脈寬;伺服接受的最大脈寬。
中心脈寬;使伺服處于0度或0速度的脈寬。
與90度對應的脈寬。這就設置了角度的 angle 方法到脈寬的轉換。
與速度100相對應的脈寬。這就設置了速度的 speed 方法與脈寬的轉換。
您可使用以下代碼重新校正伺服(更改其默認值):
>>> servo1.calibration(700, 2400, 1510, 2500, 2000)
當然,您可根據特定伺服電機更改上述值。
總結
以上是生活随笔為你收集整理的python如何控制伺服驱动_用 pyboard 控制 hobby 伺服电机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九种查找算法-哈希查找
- 下一篇: websocket python爬虫_p