#PCにもGPIOがほしい
Arduinoなんかを使えば入出力することは出来るけど、たとえばネットワークから取得したデータをアレするとか、センサーから取得したデータをDBにアレするとか言う場合、Arduinoではちょっと非力だ。モジュールを追加すればネットワークとかに接続できるけどお金が余計にかかるし、面倒臭さはどんどこ増えていく。
RaspberryPiとかBeagleBoneはそれらの問題に対しての完璧な回答なのだけど、PCと接続したままでも問題なくて、今現在Arduinoしか持ってないとかいうならFirmataを使うとPCから好きなように入出力ができるようになる。RaspberryPiとかと違ってOS入れたり環境構築したりする必要もない。
#Firmataってなに? どうやって使うの?
FirmataはArduinoを接続しているPCなどから制御するためのプロトコル。使うためにはArduinoにFirmataのソフトウェアを書き込み、PC側にもFirmataが利用できるライブラリなどを導入する必要がある。
Arduino側の準備
スケッチの例>Firmata>StandardFirmataを選択してArduinoに書き込むだけ。
PC側の準備
Firmata用のライブラリは多言語で複数あるのでググると良いが、ここではNode.jsのjohnny-fiveというライブラリを使った。Node.jsではFirmataのライブラリは複数あり、Arduinoの命令と同じ名前にしてあるやつなどもあったが、開発の活発さとか、いろいろなモジュールに合わせた命令があって楽しいとか、readme.mdの頭にある絵が気に入った(重要なことである)とかでこのライブラリにした。
使い方は普通のNode.jsのモジュールと変わらないので特に説明することもない。
/**
* フェードLチカ
*/
var five = require("johnny-five");
var board = new five.Board();
function fadeBlink(time,led){
led.fadeIn(time,function(){
led.fadeOut(time,function(){
fadeBlink(time,led);
});
});
}
board.on("ready",function(){
var led = new five.Led(5);
fadeBlink(3000,led);
});