- トップページ
- 特集PC技術
- サーバーサイドJavaScriptの図書室
- 9冊目 node.jsでArduinoを使う。
サーバーサイドJavaScriptの図書室
9冊目 node.jsでArduinoを使う。
なんか、興味のある記事を見つけたので、試してみた編です。
Arduino(アルドゥイーノ)をnode.jsを使って操作ができるという情報がありました。
組み込み系も少しやったことがあるので、興味あります。
目次
[1] 実験環境
今回の環境は以下のとおりです。
arduinoは、エントリーキットをamazonで買いました。
Arduinoエントリーキット
はじめようキットとエントリーキット迷いましたけど、いろいろ入っているエントリーキットにしました。

下の画像がArduino

環境
名前 | バージョン |
---|---|
Ubuntu | 14.04 |
node.js | v0.10.28 |
duino | v0.0.9 |
arduino UNO | R3 |
[2] duinoのインストール
node.jsでArduinoを使うために、duinoというライブラリをインストールを行います。
実験したときのバージョンはv0.0.9でした。
Arduino用の環境をフォルダを作り、以下のコマンドを入力しインストールします。
$ npm install duino
上記の手順によりインストールが完了します。
この後、ソースコードを書く前にすることがあります。
du.inoというファイルをarduinoに書き込む必要があります。
私の環境では、[/home/user/node_modules/duino/du.ino]にありました。
[3] Arduino IDEを使ってdu.inoを書き込む
duinoにあるdu.inoを書き込む手順を説明。
これをarduinoに入れておくことにより、node.jsとの連携をすることができます。
今のままだと書き込む方法がありませんから、arduinoの開発環境を用意します。
$ sudo apt-get install arduino
$ sudo addgroup user dialout
※ userは自身のアカウントに置き換えてください。
準備ができましたら、arduino本体とPCを接続しておきます。
arduinoが何のデバイスとして認識されているか確認します。
$ dmesg
[ 44.380089] usb 2-1: new full-speed USB device number 2 using ohci-pci
[ 44.558697] usb 2-1: New USB device found, idVendor=2341, idProduct=0043
[ 44.558708] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 44.558712] usb 2-1: Manufacturer: Arduino (www.arduino.cc)
[ 44.558715] usb 2-1: SerialNumber: 85332343332351C05131
[ 44.705296] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
[ 44.710202] usbcore: registered new interface driver cdc_acm
[ 44.710210] cdc_acm: USB Abstract Control Model driver for USB modems and ISD
私のときは、ttyACM0というデバイスで認識されているようです。
このとき認識しているデバイスも覚えておく必要があります。続けて次のコマンドを使って
$ lsusb
Bus 002 Device 002: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
arduinoが認識されていることがわかります。
ttyACM0というデバイスに書き込むための権限を与えます。
$ sudo chmod a+rw /dev/ttyACM0
※このコマンドはarduinoを接続しなおすと元に戻るので毎回必要?
ここまで確認できましたら、arduino IDEを起動します。
「ツール」→「シリアルポート」→からさきほど許可したデバイスを選びます。
※書き込む権限がないとシリアルポートが選べないです。
他にも、ハードウェアの設定も「arduino UNO」にします。
最初に確認したdu.inoファイルを開いて、書き込みを実行します。
書き込みボタンはマウスカーソルを合わせればどのボタンかわかります。
[4] LEDを点灯させる
du.inoがかけましたら、ソースコードを用意します。
この手のタイプの基本はLEDの点灯です。
led.js
var arduino = require('duino'); // ボードの設定 // device grepコマンドでACMが該当するもの // debugモード有効 var board = new arduino.Board({ device: "ACM", debug : true }); // Arduinoの制御設定 var led = new arduino.Led({ board: board, pin: 9 }); // Arduinoの準備ができたら実行する board.on('ready', function(){ led.fade(); });
回路図なんですが、「Arduinoをはじめよう」という本に載っているものを使用しています。
接続が見栄え悪いですし、何やっているのかわかりずらいですが
Arduinoから接続されているブレッドボードLEDの明るさを調整しています。
明るさが強くなった弱くなったりしています。
なんでこんな風に動かせるのかということに思いつくのは、du.inoというファイルが何かやっているのかなと思います。
こうやっていろいろやっているとnode.jsって何でもいけるような気がしますね。
[5] 更新履歴
日付 | 詳細 |
---|---|
2014/08/28 | 新規作成 |
コメントの投稿
トラックバックURL
http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1866