2024年3月17日 星期日

用micro:bit來控制 micro:servo 360° EF90D

伺服馬達有區分成180° 和360° 兩種版本,購買是要特別小心。兩者的控制方式有很大不同,180° 伺服馬達不能用在需要連續運轉的場合,以樹藝創作為例:實作牛擺頭,就可以用180° 伺服馬達。而牛行動則可以採用360°版本的伺服馬達來實現。您可以參考:你知道180度舵機與360度舵機有什麼區別嗎?。就可以瞭解這兩種版本的伺服馬達的控制方式。

範例: micro:servo 360°的控制

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
from microbit import * 
pin0.set_analog_period(20)
pin0.write_analog(0)

while True: 
   pin0.write_analog(75)
   display.show(Image.ARROW_N)
   sleep(1000)
   pin0.write_analog(50)
   display.show(Image.ARROW_E)
   sleep(1000)
   pin0.write_analog(75)
   display.show(Image.ARROW_N)
   sleep(1000)
   pin0.write_analog(100)
   display.show(Image.ARROW_W)
   sleep(1000)
   pin0.write_analog(75)
   display.show(Image.ARROW_N)
   sleep(1000)

程式解說:
1.set_analog_period(20)是指設定類比訊號的週期20ms。
2.write_analog是指輸出類比訊號的責任週期,其中1023(100% duty cycle),0為0% dutycycle)。
3.pin0.write_analog(75)為停止,pin0.write_analog(50)為順時鐘旋轉,pin0.write_analog(100)為逆時鐘旋轉。

本實驗的360°伺服馬達是由奧斯丁提供。

沒有留言:

張貼留言