実際Arduinoは.inoを.cppにしてavrgccしてavrdudeしているだけなので、CUIだけで書き込むのは難しくないんだけど
いいツールがあったので今後はこれ使っていく事にしたい。

モニタついてないサーバーに接続したArduinoを直す時とかにも便利。
というかArduino IDE微妙だからいつもemacs使ってるし、もうinoでいいんじゃないかな

http://inotool.org

動作にはpythonが必要。


インストール

MacのMountain Lionでは最初からpythonとeasy_installが入っているので
% sudo easy_install ino
% which ino


プロジェクトを作る

プロジェクトのディレクトリは作ってくれない
% mkdir testapp
% cd testapp
% ino init
ディレクトリが2つ、libとsrcができる


src/sketch.ino に普通にArduinoのプログラムを書く
void setup(){
pinMode(13, OUTPUT);
}

void loop(){
digitalWrrrrrrrrrrrrrrite(13, HIGH);
delay(1000);
digitalWriteeeeeeeeeee(13, LOW);
delay(1000);
}


ボード一覧を確認

% ino list-models
Arduino Leonardoを使うので、以後のコマンドに “-m leonardo” というオプションを付ければいい


ビルド

% ino build --help
% ino build -m leonardo

ちゃんとコンパイルエラーも出る


src/sketch.inoを直す
void setup(){
pinMode(13, OUTPUT);
}

void loop(){
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

ちゃんとhexができた


書き込む

% ino upload -m leonardo
“Guessing serial port”の後、
成功するとReading/Writing/Readingと3つのプログレスバーが100%まで伸びる。
失敗すると、最後だけ見るとdoneとか言ってるけどprogrammer is not respondingなどエラーが出る。

-p /dev/tty.usbmodem1234 のようなオプション付けるとシリアルポートを指定できる


シリアル通信

をモニタできる。


picocomが必要なのでインストールする。debian/ubuntuのaptにもあるらしい。
% brew install picocom

とりあえずSerial.printlnするようにプログラム直して
void setup(){
pinMode(13, OUTPUT);
Serial.begin(9600);
}

void loop(){
digitalWrite(13, HIGH);
delay(100);
Serial.println("on");
digitalWrite(13, LOW);
delay(100);
Serial.println("off");
}

% ino serial

ctrl+a ctrl+x で終了できる