[2019鐵人賽] - 6.筆記IoT初練習-利用REPL模式來開發!
今天要來簡介REPL怎麼用在Arduino上~ ٩(。・ω・。)و
首先要來介紹REPL是什麼?
REPL 全名為「Read-Eval-Print Loop」讀取-求值-輸出 循環,是一種簡單的交互式的編輯環境 ;用戶輸入事件、表達式或是運算式,再由電腦進行處理運算,接著輸出給用戶,如此循環下去。
REPL很常見在前端開發者開發環境中,像瀏覽器的開發者工具的Console、使用終端機Terminal開啟Node,這些都是REPL~
例如以下:
→ Chrome中,開發者模式的Console drawer
→ 使用Terminal開啟Node JS的REPL模式
所以我們可以很方便的使用JavaScript在這些工具上debug或者開發等動作ヽ(・×・´)ゞ
那進入正題~
Johnny-five也提供了REPL的API,說明要怎麼在Arduino上調用REPL
Component Classes-Board #REPL: http://johnny-five.io/api/board/#repl
我們要使用Johnny-five提供的REPL範例來示範Arduino會怎樣動作~(๑•̀ㅂ•́)و✧
程式碼如下
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { console.log("Ready event. Repl instance auto-initialized!"); var led = new five.Led(13); this.repl.inject({ // 寫在這邊的函式可以透過REPL來操控 // 範例為操控LED的亮(on)與滅(off)
on: function() { led.on(); }, off: function() { led.off(); } }); });
Examples-Board-REPL: http://johnny-five.io/examples/repl/
當板子on ready後,REPL初始化也隨之啟動
範例中第9行呼叫了J5內建的方法 repl.inject 在大誇號裡面可以自訂函式,可以看到範例中有簡單的LED亮和滅的功能 ~
我在範例中增加上一篇的介紹的blink功能來實際操作給大家看( • ̀ω•́ )
首先執行範例檔repl.js在terminal輸入 node repl.js 電腦便會透過傳輸線上傳程式到Arduino上。
→ terminal輸入 node repl.js
可以看到執行Node JS後電腦開始找連接阜,連接上Arduino開發版之後執行REPL模式,
Connected狀態後,REPL會隨之初始化~
接下來我們試著操控LED燈即時的亮、滅、閃爍,在REPL模式中分別執行function on()、off()、blink() 來看實作結果!
→REPL模式下呼叫函式 on();
→REPL模式下呼叫函式 off();
→REPL模式下呼叫函式 blink();
很方便吧~ヽ(・×・´)ゞ
這就是Johnny-five提供REPL的方法,「讀取函式→運算資料→輸出到Arduino運行結果→再繼續等待下一個循環動作」
讓我們可以簡易的查看實現的結果~ d(`・∀・)b
本文到這邊先下台一鞠躬了~
有錯敬請留言改正,感謝您的閱讀 <(_ _)>