5月 102013
実際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ディレクトリが2つ、libとsrcができる
% cd testapp
% ino init
src/sketch.ino に普通にArduinoのプログラムを書く
void setup(){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrrrrrrrrrrrrrrite(13, HIGH);
delay(1000);
digitalWriteeeeeeeeeee(13, LOW);
delay(1000);
}
ボード一覧を確認
% ino list-modelsArduino 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 で終了できる