宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

伺服馬達:又稱為舵機,可以依照指示角度做轉動的馬達。

一般伺服馬達有三條線,電源(紅色)接地(黑或棕色)訊號線(白、黃、橘、藍....)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,只要一個指令就可以控制了。

若想使用超過兩個以上的伺服馬達,要以另外的電源供電,而且要記得共同接地。

一、控制伺服馬達轉動

將伺服馬達的三條線,電源(紅色)接5V、接地(黑或棕色)接GND、訊號線(白色)接數位腳D12。

注意:

因為伺服馬達需要較大的供電,如果已經連線後,直接插上去時有可能會造成程式連接中斷,如果接上後程式沒有反應,請關掉WFduino APP重新再啟動連接;或是在5V和GND之間接上470uF以上的電容試試看。

圖片來源:
https://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors/if-the-servo-misbehaves

1.轉動伺服馬達

使用 [ 伺服馬達為腳位(...)轉動角度為(...)度]  的指令積木來控制馬達的轉動角度。

改變角度數字就可以改變伺服馬的轉動角度。

程式下載:伺服馬達.sb2

2.讓伺服馬達慢慢從0度轉到180度,再轉回0度,重複轉動。

使用 [ 伺服馬達為腳位(...)轉動角度為(...)度]  的指令積木來控制馬達的轉動角度。

製做一個[角度]變數,使用[重複 ...次] (迴圈) 來讓程式變的簡短一點

加上[等待0.5秒],讓馬達有時間去轉動。

程式下載: 伺服馬達.sb2

 

二、使用鍵盤按鍵來控制轉動角度

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按下鍵盤上的[空白鍵]讓伺服馬達轉動到0度,[向左鍵]讓伺服馬達轉動到90度,[向右鍵]讓伺服馬達轉動到180度。
[向上鍵]讓伺服馬達轉動角度增加5度,[向下鍵]讓伺服馬達轉動角度減少5度。

程式下載:鍵盤控制轉動.sb2

延伸:

1.利用拉霸(變數)控制伺服馬達

先做一個[角度]變數,在舞台區會顯示變數的圖案,在圖案上用滑鼠左鍵點一下,就會變成只有數值,在圖案上再點一下滑鼠左鍵,就會出現有[拉霸]小點的圖形。

用滑鼠左鍵拖曳小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。

這樣就可以拉霸來控制伺服馬達的轉動角度。

程式下載:拉霸控制伺服馬達.sb2

2.調整成可以控制到最大的180度

[拉霸]小點的圖形,內定最大就是100度,如何可以讓轉動角度達到最大的180度呢?

動動腦想想看吧!

增加一個變數,將拉動的變數除以100再乘以180,就可以將拉動的值轉換成最大到180度了。

程式下載:拉霸控制伺服馬達180.sb2

三、用按鍵控制轉動角度

選擇上面的伺服馬達線路,再設置兩個按鍵線路(請參考第八課(按鍵))

A按鍵讓伺服馬達轉動角度會增加1度,B按鍵讓伺服馬達轉動角度會減少1度。

程式設計請參考上面和第八課(按鍵)

四、可變電阻控制伺服馬達轉動

因為程式修正,以後用到[讀取類比腳位A0]積木時,請在[當綠旗被點一下]積木下方增加[腳位A0模式設為INPUT]積木。

 

可變電阻改變時類比腳A0讀到的值也會改變。

輸入的電壓是0到5V,A0讀到的數值範圍為0到1023 伺服馬達的轉動角度為0到180度,顯示時需要做公式轉換。

程式中有一個說的指令,可以讓我們看到輸出的角度。

設置伺服馬達的輸出角度為轉換結果。

程式下載:可變電阻轉動馬達1.sb2

上面程式執行時發現太過靈敏,會有抖動現象。

程式修正如下:

 

在程式中多加一個 [ 將轉換結果四捨五入 ] 的指令,可以改善此情形。

程式下載:可變電阻轉動馬達2.sb2

延伸:

將伺服馬達裝到機械手臂上,就可以操控手臂的動作了。

五、光敏電阻控制轉動角度

將上面可變電阻控制伺服馬達的線路中,可變電阻更換成光敏電阻感應線路(請參考第十課(光敏電阻))

伺服馬達的角度隨著光強度而改變,當光強度最大時,伺服馬達轉動到180度,光強度最小時伺服馬達轉動到0度。

程式設計請參考上面和第十課(光敏電阻)

延伸:

1.伺服馬達連接大門,平常門關起來,當有人靠近時,遮住光敏電阻的光,啟動伺服馬達打開門。

2.模擬停車場柵欄機,感應升起柵欄。

六、創作:

結合前面的零件組合創作。

七、步步高升

使用[伺服馬達]代替手的動作,讓小雞一步一步往上走。

 

重複讓伺服馬達移動壓下玩具的按鍵。

程式下載:步步高升.sb2

延伸:

加上其他感測器,當發生其他狀況時,再啟動玩具動作。

例如:當有人靠近時才啟動,沒人時就停止。

---------------------------------------

參考資料:

http://www.makezine.com.tw/make2599131456/understanding-types-of-servo-motors-and-how-they-work

 

----------------------------------

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305




 
 
 
用LINE傳送