Arduino資料一覧

Node.jsのJohnny-Fiveフレームワークを使ってArduino UnoでLチカ

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  
>>

関連資料・記事

参考サイト