Arduino 資料一覧
2016/12/24更新
対応バージョン: Arduino IDE 1.7.11, Node.js 4.2.6, Johnny-Five 0.9.58
Arduinoの操作はArduino IDEを使うのが一般的だが、以下のステップが常に必要になり面倒である。
Arduino IDEを起動
スケッチ(プログラム)を作成
スケッチをコンパイル
スケッチをマイコンに書き込む
そこでNode.jsから直接Arduinoを操作できるようにJohnny-Fiveというフレームワークを導入する手順を示す。
Arduino IDEやNode.jsを動かす母艦はUbuntu 16.04とする。
Firmata書き込み
Johnny-FiveはFirmataプロトコルを使ってArduinoと通信するので最初にFirmataのプログラムをArduinoに書き込んでおく。
このプログラムはArduino IDEのスケッチの例に用意されているのでArduino IDEを起動して[ファイル] > [スケッチの例] > [Firmata] > [StandardFirmata]を選択してスケッチを表示し、コンパイルとArduinoへの書き込みを行う。


ただこのままだとコンパイル時に「SoftwareSerial.hがない」というエラーが発生する。
In file included from /foo/bar/arduino-1.7.11-linux64/libraries/Firmata/utility/SerialFirmata.cpp:20:0: /foo/bar/arduino-1.7.11-linux64/libraries/Firmata/utility/SerialFirmata.h:30:28: fatal error: SoftwareSerial.h: No such file or directory
SoftwareSerial.hは存在するが置かれているパスが違うので以下の手順でSoftwareSerial.hを見に行く場所にシンボリックリンクを張る。これでコンパイルがうまくいく。
% cd /foo/bar/arduino-1.7.11-linux64 % ln -s `pwd`/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h libraries/Firmata
Arduino IDEを使わずにFirmataを書き込む場合は以下の手順を参照のこと。
関連資料・記事
Johnny-Fiveインストール
次にJohnny-Fiveをインストールする。Johnny-Fiveはnpmを使って簡単にインストールできる。
% sudo npm install -g johnny-five
Johnny-Five動作確認(Lチカ)
Johnny-Fiveの公式サイトに載っているサンプルを実行してLチカがうまくいけば今後Node.jsからArduinoの様々な操作ができる。
sample.js
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var led = new five.Led(13); led.blink(500); });
実行
% node sample.js 1482503689500 Device(s) /dev/ttyACM0 1482503689507 Connected /dev/ttyACM0 1482503693257 Repl Initialized >>


関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
Webな人でもハードウェア制御が簡単に!Node.jsでJavaScript Roboticsを楽しもう (LIG電子工作部)
Firmataプロトコル概要 (Ver 2.3) (hiroeorz@GitHub)
エレクトロニクス豆知識 (ROHM)