2015/06/07

Arduinoをコマンドラインから開発する

最近、Arduinoを入手したときの話。
リポジトリにArduinoの統合開発環境であるArduino IDEがあると聞いて早速入れた。でもコマンドラインから書き込みたかったので方法を模索することに。
とりあえずその際のメモを。(ちなみに筆者の環境はUbuntu 12.04)

まずはArduino IDEが必要になるのでインストール。

apt-get install arduino

リポジトリにあったのはver1.0.5(ちなみに執筆当時の最新版はver1.7.4)
最新版が欲しい方は公式HP http://www.arduino.org/downloadsに置いてあるのでそこからインストール。

次にPythonで書かれたコマンドラインツール Inoをpipでインストール。
これを用いてArduinoに書き込んだりする。

pip ino

サポートされているOSはMacとLinux。(Windows...)
シリアル通信をしたい場合はpicocomが必要となるのでこれまたインストール。

apt-get install picocom

これで準備は整ったので、とりあえずプロジェクトを作る。

mkdir test
cd test
ino init

これでtest下にはlib,srcディレクトリができる。srcにスケッチを書いた後、test下でビルド&書き込みをする。

ino build
ino update

この時、ino build で作成されたファイルは.build/モデル名/以下にできる。

ls .build/uno/

Makefile Makefile.deps Makefile.sketch
arduino firmware.elf firmware.hex src


ちなみに、Arduinoに書き込むのは、firmware.hexファイル。

シリアル通信がしたい場合は、build upload をした後に、

ino serial

を実行する。
buildとupdateをするとき、デフォルトで選択されているArduinoのモデルはArduino Unoなので、それ以外を使う場合はオプションをつける。
モデルのリストは

ino list-models

で確認できる。
例えば Arduino Microが使いたい場合は、

ino build -m micro
ino update -m micro

とオプションをつければOK。
でも、いちいちオプションをつけるのは面倒くさいのでプロジェクトファイルにini.inoまたはホームディレクトリに~/.inorcを作成し、モデル名やシリアルポートを設定する。

[build]
board-model = micro

[upload]
board-model = micro
serial-port = /dev/ttyACM0

[serial]
serial-port = /dev/ttyACM0

ino build ino update だけでビルド&書き込みができるようになった。

これで快適な開発ができるぞー。

参考にしたサイトはこちら
http://www.pwv.co.jp/~take/TakeWiki/index.php?Arduino%E5%8B%89%E5%BC%B7%E4%BC%9A%2F0A-MacOSX%E3%81%B8%E3%81%AEino%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E4%BD%BF%E3%81%84%E6%96%B9

http://shokai.org/blog/archives/7454