Arduino 資料一覧
2016/12/30更新
対応バージョン: gort 0.6.2
ArduinoをNode.jsで操作するためには事前にArduinoにFirmataプログラムを書き込んでおく必要があるが、一般的なArduino IDEを使った方法だとIDEを起動してメニュー操作する手間がかかって面倒なのでGORTを使ってコマンドラインで書き込む手順を示す。
作業を行う母艦はUbuntu 16.04とする。
GORTインストール
まずGORTのダウンロードサイトから対象のパッケージをダウンロードする。
http://gort.io/documentation/getting_started/downloads/
このファイルをdpkgコマンドを使ってインストールする。
% sudo dpkg -i gort_0.6.2_amd64.deb % gort -v gort version 0.6.2
シリアルポート確認 + ユーザ設定
次にArduinoをUSBケーブルで接続しているポートを確認する。この例では/dev/ttyACM0として認識されている。
% gort scan serial 1 serial port(s) found. 1. [/dev/ttyACM0] - [usb-Arduino_Srl_Arduino_Uno_75431343334351214222-if00] USB device: Bus 003 Device 010: ID 2a03:0043 dog hunter AG Arduino Uno Rev3
このデバイスはrootユーザあるいはdialoutグループに属するユーザのみが使用できるので一般ユーザでこのデバイスを使用したい場合はそのユーザをdialoutグループに追加する。ログインユーザに対してこの作業を行った場合は設定を有効にするためにいったんログアウトしてログインし直す。
% ls -l /dev/ttyACM0 crw-rw---- 1 root dialout 166, 0 12月 30 00:38 /dev/ttyACM0 % sudo gpasswd -a <user> dialout
AVRDUDEインストール + Firmata書き込み
シリアルポートが使えるようになったらまずプログラムの書き込みに必要なAVR Downloader/UploaDErのAVRDUDEをインストールし、続けてこのAVRDUDEの機能を使ってFirmataプログラムを書き込む。
AVRDUDEインストール
% gort arduino install Attempting to install avrdude with apt-get. :
Firmata書き込み
% gort arduino upload firmata /dev/ttyACM0 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: reading input file "/tmp/880691775" avrdude: writing flash (11452 bytes): Writing | ################################################## | 100% 1.84s avrdude: 11452 bytes of flash written avrdude: verifying flash memory against /tmp/880691775: avrdude: load data flash data from input file /tmp/880691775: avrdude: input file /tmp/880691775 contains 11452 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 1.47s avrdude: verifying ... avrdude: 11452 bytes of flash verified avrdude done. Thank you.
これでNode.jsでArduinoが操作できるようになる。
関連資料・記事
参考サイト
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)