硬體:
Raspberry+arduino
軟體:
利用Ras(javascript)的來進行連線操作+Arduino(Firmata)
Raspberry:
升級:
sudo apt-get update
sudo apt-get upgrade
確認node版本:node -v
確認npm版本:npm -v(在node第六版會內建)
為升級至nodejs 7.0
先移除node:
sudo apt-get remove nodejs -y
升級node 7.0
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
升級npm
sudo npm update npm -g
確認安裝好的版本...
node -v
npm -v
建立一個資料夾:blink
寫一個index.js
內容:
var five = require("johnny-five"); var board = new five.Board({port :"/dev/ttyAMA0"}); board.on("ready", function() { // Create an Led on pin 13 var led = new five.Led(13); // Blink every half second led.blink(200); });
//在同一個資料夾內執行,偷懶一下,自動建立package.json
// npm init
再來執行
npm install johnny-five
再開始Arduino IDE下載Firmata至Arduino
執行node index.js
基於事件的結構來工作,3個概念很重要喔.
讀取,求值,輸出,循環-可以在執行程式時,來修改機器人代碼。
使用this.repl.inject( )方法。當用在board.on('ready')處理器時,this關鍵字是對應的全局語境,
所以,我們可以從項目中通過this.repl來訪REPL。
inject方法接受一個對象。
範例:可以使用myLed.off等來下執行。
var five =require("johnny-five");
var board=new five.Board();
board.on("ready",function(){
var led =new five.Led(13);
this.repl.inject({
myLed:led
})
led.blink(500);
});
可以使用到的方法:
on( )和off( ):
blink(time):在間隔時閃爍。strobe( )同義。
pluse(time):燈光在time時間,時間(time)到漸亮,然後在時間(time)到漸暗。
fade(brightness,ms)控制燈光在時間(ms)內到指定亮度(brightness)。
stop( ):
記住多數johnny-five對象的方法都可以使用鍵式調用的。
所以可以使用這樣使用:
myLed.stop( ).off( )
參考網頁:
express說明
http://javascript.ruanyifeng.com/nodejs/express.html
https://hellolynn.hpd.io/2017/08/11/node-js-express-%E5%88%9D%E5%85%A5%E9%96%80-%E4%B8%8A%E9%9B%86/
綜合應用
https://www.wandianshenme.com/play/use-javascript-build-iot-projects-with-arduino-johnny-five-websockets/
可以進入下列網站(http://johnny-five.io/),查詢相關支援的開發板。
點選Arduino UNO,可以查詢可支援的電子模組。
<如果是RaspBerry Zero要安裝node和npm>
wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-armv6l.tar.gz sudo mv node-v8.9.3-linux-armv6l.tar.gz /opt cd /opt sudo tar -xzf node-v8.9.3-linux-armv6l.tar.gz sudo mv node-v8.9.3-linux-armv6l nodejs sudo rm node-v8.9.3-linux-armv6l.tar.gz sudo ln -s /opt/nodejs/bin/node /usr/bin/node sudo ln -s /opt/nodejs/bin/npm /usr/bin/npm
參考教學網頁
http://johnny-five.io/