伺服馬達

伺服馬達之所以叫做「伺服」馬達,是因為「伺服 servo」表示馬達會依照指示命令動作,由程式要馬達轉幾度,馬達就會轉幾度,但伺服馬達有機械結構上的限制,旋轉的角度是 180 度,但並非完全的 180 度,可能是 1 度到 180 度,或是 -2 度到 177 度都有可能,不過這些誤差都不影響這個範例的實作,這個範例將會介紹如何用 Blockly、HTML 與 javascript 去控制伺服馬達。

範例影片展示

影片對應範例:https://blockly.webduino.io/?page=tutorials/servo-1

接線與實作

由於伺服馬達需要的電流量較大,因此必須採用獨立電源或是直接使用開發板上頭的 VCC,才能供應伺服馬達足夠的電流量,伺服馬達具有三條電線。紅色的為正電,深咖啡色是接地 GND,橘色的則是訊號線,而伺服馬達的訊號源接在 11 的腳位即可。

由於 Webduino 支援開發板種類只會越來越多,接線圖先使用馬克一號與 Fly 示範,對於其他開發板來說,只要 訊號腳接數位腳 ( 數字 ),仍會一樣的效果

馬克一號接線示意圖:

馬克一號接線伺服馬達

Fly 接線示意圖:

FLY 接線伺服馬達

基本操作

打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),在畫面中放入開發板積木,填入 Device ID,在開發板內放入伺服馬達的積木,腳位設定 10,伺服馬達變數名稱設定為 servo。

開發板的積木在「開發板控制」目錄下,伺服馬達積木在「玩具及馬達 > 伺服馬達」的目錄下。

伺服馬達 Blockly

放入「伺服馬達 servo 旋轉角度」的積木,可以透過圓餅圖調整角度,或直接使用數字積木顯示度數,伺服馬達角度區間為 0~180 度。

伺服馬達旋轉角度

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以看到伺服馬達旋轉到指定的角度。

範例解答:https://goo.gl/IHNms0

進階一點,如果透過「迴圈」和「等待」的積木,就可以自訂伺服馬達左右擺動十次的效果,要實現這個效果,首先放入「重複 10 次」的迴圈積木,在裡頭第一個放入伺服馬達旋轉到 180 度的積木,後面銜接一個「等待 0.5 秒」的積木,接著再放入旋轉到 0 度的積木,再銜接一個「等待 0.5 秒」的積木,如此一來就會重複這些動作十次。

迴圈的積木在「基本功能 > 迴圈」目錄下,等待的積木在「進階功能 > 等待」目錄下。

伺服馬達 Blockly

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以看到伺服馬達先旋轉到一側,接著就會旋轉到另一側,重複這樣一輪的動作十次。。

範例解答 ( 雲端平台 ):https://blocklypro.webduino.io/#7ylGNpvKze

範例解答 ( 體驗版 ):https://goo.gl/TKax8r

網頁拉霸操控伺服馬達

接下來,我們可以透過網頁操控伺服馬達,打開 Webduino Blockly 的網頁互動測試區,下拉選單選擇「拉霸操作」,畫面裡會出現一個網頁拉霸,此時在右下角也會出現對應的積木功能可以選擇。

網頁互動拉霸

一開始先設定拉霸數值和伺服馬達旋轉角度都是 90 度,因為這樣才會先讓伺服馬達旋轉到中間的位置。

網頁互動拉霸

再來就是透過拉霸的積木,指定最大值、最小值、間距和預設值,拉動拉霸的時候,會顯示拉霸的數值,同時伺服馬達也會旋轉到這個角度。

拉霸控制伺服馬達旋轉角度

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以使用網頁拉霸操控伺服馬達,拉霸往右伺服馬達就旋轉到右邊,往左就旋轉到左邊。

範例解答 ( 雲端平台 ):https://blocklypro.webduino.io/?demo=demo-area-06#XQdja1Ew9Q

範例解答 ( 體驗版 ):https://goo.gl/q8cBsb

相關參考