もうArduinoのプログラミングはしなくてイイ!
node.jsだけ。 node.jsだけでプログラミング出来るんだ!!!
[2013/04/07] v0.0.4に合わせてサンプルコードを編集
[2013/04/15] v0.0.6にアップデート。Stream API追加。こちらの記事を参照して下さい。
[2013/05/05] リポジトリ名を変更。記事中のURLも変更した。
[2013/05/05] v0.0.7にアップデート。こちらの記事を参照して下さい。
[2013/07/04] v0.0.8にアップデート。こちらの記事を参照して下さい。
[2013/12/27] v0.9.0にアップデート。こちらの記事を参照して下さい。
最近、Arduinoとnode.jsをシリアルポートで接続して色々なハックをする事例が増えて来ました。
node-serialportとというナイスなnode.jsモジュールのおかげだと思っています。
個人的な意見ですが、node.jsでのプログラミングは大変快適で楽しいけど、Arduinoのプログラミングはダルいです。
何故なのか考えてみたら、node.jsは書いたら即実行、という開発が可能なのですが、Arduinoは書いて、コンパイルして、Arduinoに書き込んでようやく実行です。しかもデバッグも大変です。
そういった理由からArduinoのプログラミングはダルいです。
そこで、Arduinoのプログラミングを不要にするArduino用の万能プログラム(arduinode.ino)と、その万能プログラムにnode.jsから簡単にアクセスする為のnode.jsモジュール(arduinode.js)を作りました。
それがarduinodeです。
気になった方はイイネ!の代わりにスターをお願いします。
オープンソースでMITライセンスです。
arduinodeはArduinoのプログラムである"arduinode.ino"とnode.jsのモジュールである"arduinode.js"とその間の通信プロトコルのことです。
これらを使用するとnode.jsからArduinoを直接操作するかの如く制御が出来ます。
node.js - Arduino間の通信はarduinodeが完全に隠蔽しているため、そのような操作が可能になります。
以下に簡単なサンプルを載せておきます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// AI0の値の読み込み | |
arduinode.analogRead(0, function(err, reuslt){ | |
if(err) throw err; | |
console.log(result); | |
// {"msg":"OK", "port":0, "val":200} | |
}); | |
//DI2の値の読み込み | |
arduinode.digitalRead(2, function(err, result){ | |
if(err) throw err; | |
console.log(result); | |
// {"msg":"OK", "port":2, "val":0} | |
}); |
詳しい使い方や、どういう風にプログラムを書くことが出来るのかはリンク先のReadmeやAPI集に書いておいたのでそちらを見て頂きたいです。
Arduinoとnode.jsを使って。あるいは何らかのWebアプリケーションにセンサーを取り付けたり、モータを制御したりといった機能を追加したいといったニッチなご要望をお持ちの方は是非ともご活用下さい。
"arduinode"はnpmに登録してあるのでnpm install arduinodeするだけでインストールすることができます。
詳しい説明はReadmeにぶん投げてしまったので、今回の記事ではプロジェクトに同封しているサンプルアプリケーションがどのように動くのかを紹介します。
まず外観は以下の様な感じです。
LEDピコピコ光っててカッコイイ!!!!!
PCとArduinoをUSBケーブル(仮想シリアルポート)で接続しています。
PCの画面に出ているのがサンプルで用意したnode.jsのサーバサイドのアプリケーションです。
サーバサイドアプリケーションはnode.jsのexpressとsocket.ioを使っています。
もちろんarduinodeも使用しています。
やっていることは、node.jsでArduinoのDI(Digital Input)とAI(Analog Input)の値を取得してブラウザに表示しているだけです。
しかし、WebSocketでプッシュしていて大変ハイテクです。
動いている所の動画も用意したので良ければ見て下さい。
ちょっと画面がピコピコ動いているだけですが、WebSocketを使ってArduinoの情報を表示しています。
色の変化は前回と値が変化したことを示しています。
簡単に使えますので、Arduinoとnode.jsで何か作りたいときは是非ともご活用下さい。
最後に。
まだ万能プログラムというには心もとないですが、これからバージョンアップを重ねて行きたいと思います。
ちなみにarduinode.inoを作るにあたってかなりのArduinoのプログラムを書いたのですが、非常に楽しかったです!!!!(オイ!
0 件のコメント:
コメントを投稿