Arduino資料一覧

ArduinoをNode.jsで操作する準備としてArduinoにFirmataプログラムを書き込む際にArduino IDEを使わずコマンドラインで実行する方法(GORT)

2016/12/30更新

対応バージョン: gort 0.6.2

ArduinoをNode.jsで操作するためには事前にArduinoにFirmataプログラムを書き込んでおく必要があるが、一般的なArduino IDEを使った方法だとIDEを起動してメニュー操作する手間がかかって面倒なのでGORTを使ってコマンドラインで書き込む手順を示す。

作業を行う母艦はUbuntu 16.04とする。

GORTインストール

まずGORTのダウンロードサイトから対象のパッケージをダウンロードする。

このファイルを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が操作できるようになる。

関連資料・記事

参考サイト