★本系列文章已集結成冊,和系列文不同的是:
- 本書使用大量的圖解來說明LED系列、多種感測器等原理。
- 補足系列文程式碼的解說,增加逐行程式碼的詳細解說!
- 全彩的書籍,用圖解的方式,讓讀者來理解Johnny-Five各種API的功能與效果,讓你不會只讀文字看到想睡覺而學不起來。
歡迎大家做出自己想要的玩具,為了樂趣而學習,讓學習變成你的樂趣!ヽ(・×・´)ゞ
讓Arduino也能用JavaScript創造出屬於自己的作品!★購書連結-天瓏網路書局:
https://www.tenlong.com.tw/products/9789864345328《IoT沒那麼難!新手用 JavaScript 入門做自己的玩具!(iT邦幫忙鐵人賽系列書)》
博客來、金石堂、momo、誠品、PChome、讀冊,均有販售喔!─=≡Σ((( つ•̀ω•́)つ
ISBN:9789864345328
本魯宅:鐵人賽快要到尾聲了,本來 Sensor 篇還有可變電組和超音波感測器要寫....
但礙於還沒介紹其他重要的元件,只好先中斷了~Sorry...
謎之音:(ノ▼Д▼)ノ
今天要介紹的是 (∩.o.)⊃━☆゚.*・。 伺服馬達-「 Servo 」
伺服馬達 - Servomotor 是用於伺服機構的馬達總稱。
伺服的意思是依照指令動作,伺服馬達由控制裝置和馬達所組成,其動作特性可以進行定位控制和動作的速度控制。
為了讓大家更了解伺服馬達的構造,本魯冒險把我的 SG90 9g 伺服馬達給拆解開來,一起來了解有什麼吧~d( ・∀・)b
首先,外觀由塑膠外殼包起來,頂部和底部可以拆開,馬達有三條一體的排線接出。
小螺絲卸下後,打開底蓋底部可以看到有負責控制訊號的迷你電路板與小馬達兩個物件。
把頂部的外殼拆開,最先看到的是減速齒輪組,有四個小齒輪~(
然後差點組不回去)
從側面來看
右邊是迷你馬達,左邊有一個像控制方向的電位器,馬達動力輸出透過齒輪組連動到左邊電位器輸出方位控制,連接外部輸出動力~
大致上就由這四個物件所組成,蠻有趣的~(❛◡❛✿)
接下來講解 Johnny-Five 實作囉~
剛剛解析伺服馬達硬體內部有電路板接出一條排線,這三條線(紅棕橙)分別定義是:
必須要注意的是!
由於伺服馬達由 PWM 訊號控制,故橙色線需連接 Arduino 的 PWM 訊號腳位,這邊特別提醒大家~
(´・ω・´)
介紹完後,我們開始來實作吧~
準備需要的東西有~ヽ(・×・´)ゞ
Johnny-Five - Servo
http://johnny-five.io/api/servo/
這邊的 Johnny-Five Servo API 提供對象是針對單顆伺服馬達的動作,
Johnny-Five 有獨立一個 Servo API 分類,特別提供複數伺服馬達的操作。
Johnny-Five - Servos
http://johnny-five.io/api/servos/
to(degrees 0-180 [, ms [, rate]])
*特別注意,呼叫 to()
函式則必須和前次呼叫角度不同,若與前次角度相同則不動作。
min()
轉動舵到伺服馬達的最小角度。
max()
轉動舵到伺服馬達的最大角度。
center([ ms [, rate ]])
轉動舵到伺服馬達的中心角度。
home()
設定伺服馬達的起始角度位置。
sweep()
舵在最大角度到最小角度之間重複轉動。
sweep([ low, high ])
舵在指定的最小角度和最大角度重複轉動。
stop()
停止伺服馬達的動作。
小小測試 Servo 的動作~
我用產生亂數函式產生1~100的數值,讓 Servo 隨意轉動不同的角度~
程式碼
var five = require('johnny-five');
var board = new five.Board();
board.on('ready', function() {
var servo = new five.Servo({
pin: 10,
});
this.loop(2000, function() {
randomNum = Math.floor(Math.random() * 100 + 1);
servo.to(randomNum);
console.log(randomNum);
});
});
今天簡短的介紹伺服馬達...
有一些小了解後,我們明天在繼續囉~(被打)
放假在家反而身體不舒服頭痛痛的,所以
今天就非常簡短的介紹而已,抱歉抱歉Orz....
本系列的程式碼皆會上傳到 GitHub 上開源
2019ironman-JS-IoT :
https://github.com/tinatyc/2019ironman-JS-IoT
喜歡按個星星吧~乾蝦乾蝦<(_ _)>
團隊系列文:
CSScoke - 金魚都能懂的這個網頁畫面怎麼切 - 金魚都能懂了你還怕學不會嗎
Hina Hina - 陣列大亂鬥
阿斬 - Python 程式交易 30 天新手入門
Clarence - LINE bot 好好玩 30 天玩轉 LINE API
塔塔默 - 用Python開發的網頁不能放到Github上?Lektor說可以!!
Vita Ora - 好 Js 不學嗎 !? JavaScript 入門中的入門。
同步連載於blogger-King 學習前端之人生
我達達的馬達,是美麗的錯誤
我不是歸人,是個鐵人(而且還未完賽)
我笑了~接著哭了QQ.....(抱在一起痛哭
30天寫不夠的話,還可以寫番外篇啊 w
下一屆繼續寫XDDDD... (被打
不過我真的有這個想法XD
沒寫 ESP8266 好像少了什麼...