Arduino IDEを使わない方法 Emacs+Ino
Arduino
最近Arduinoとかラズパイとか触ってる。 超楽しい。
可変抵抗器をつないで自由にサーボモータ動かしたり、 PWM出力から音を出してシンセサイズしたり、 こんなことがこんな簡単に出来るんだと、感動してる。
Arduinoと可変抵抗器1つでサーボモータ動かす
Arduino + Adafruit Motor Shield + Analog input0 ...
Audionoサンプルを動かす(1)
Audionoサンプルを動かす(2)
Auduino in Arduino (2) - YouTube
Arduino IDE
Arduinoのソースコードをコンパイルして、Arduino実機にアップロードするために、 Arduino IDEというのが用意されています。
ちょろっと書いてちょろっと動かすっていう程度には、 とてもシンプルで楽でいいと思う。
ただ、フォントの種類やサイズ、背景色などのカラースキームが設定できないなど、 普段EmacsやVimに脳をやられてしまっている人達には、禁断症状的なものが 出てきてしまい、なかなかつらいものがある。
Ino
Arduino IDEの機能をコマンドラインから操作できるようにするためのツール。 http://inotool.org/
さっくりと紹介
$ mkdir beep <-- Arduinoプロジェクトディレクトリを作成して $ cd beep <-- そこに移動しておく $ ino init -t beep <-- inoを使って、Arduinoプロジェクト用にlibとsrcディレクトリを生成出来る $ ino init -t empty <-- -tオプションはテンプレートを使用する意味で、emptyを指定すると空のプロジェクトが生成される $ ino build <-- Arduinoプロジェクトをビルド $ ino upload <-- Arduinoプロジェクトを実機にアップロード
基本的には、USBやシリアル接続先、ArduinoIDEのライブラリなどは、 自動的に引っ張って設定してくれる。 接続先を指定するには.iniファイルで設定も出来る。
素晴らしい機能や使い方等は、公式を参考にするといいとして、 少しハマってしまったので、わざわざブログにした次第でして。 結果から先に言うと、今のところ、inotool.orgのInoはArduino IDE 1.5.xでは使えない。
今現在、Arduino IDEには1.0.xと1.5.x(Beta)のニ種類がある。 で、Betaである1.5.xでは、オリジナルのInoでは動作しない報告が出てる。 https://github.com/amperka/ino/issues/119
ていうか実際、ino buildが動作しなかった。
os-MacBook-Air:beep morinezumiiii$ ino build Searching for Board description file (boards.txt) ... found multiple: - /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/boards.txt - /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/sam/boards.txt - /usr/local/share/arduino/hardware/arduino/boards.txt Searching for Arduino lib version file (version.txt) ... /Applications/Arduino.app/Contents/Resources/Java/lib/version.txt Detecting Arduino software version ... 1.5.6 (1.5.6-r2) Searching for Arduino core library ... /usr/local/share/arduino/hardware/arduino/cores/arduino Searching for Arduino variants directory ... /usr/local/share/arduino/hardware/arduino/variants Searching for Arduino standard libraries ... /Applications/Arduino.app/Contents/Resources/Java/libraries Searching for make ... /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/make Searching for avr-gcc ... /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc Searching for avr-g++ ... /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ Searching for avr-ar ... /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-ar Searching for avr-objcopy ... /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-objcopy src/sketch.ino Searching for Arduino lib version file (version.txt) ... /Applications/Arduino.app/Contents/Resources/Java/lib/version.txt Detecting Arduino software version ... 1.5.6 (1.5.6-r2) make: execvp: /bin/sh: Argument list too long make: *** [.build/uno/src/sketch.d] Error 127 Make failed with code 2
で、上記のissueを見ると、 「amperka/inoからForkしてjustonia/inoを作ったよーこっち使ってねー。」 っていうコメントがあって、そっちからgit cloneしてmake installしたら、 問題なくInoが使えた。 https://github.com/justonia/ino/tree/ide1.5x
このamperkaさんとjustoniaさんがこの後やりとりしてるかどうかは 調べてないからわからないけど、多分そのうちどっちかにMergeされるんじゃないかな、と。
とりあえずこれで、コマンドラインでのArduinoプロジェクトを操作できるようになった。
Emacs
エディタは別になんでも良いです(震え声 とりあえずエディタからターミナル使えるものがあれば、Inoの機能を呼び出せるね。 Emacsの場合は、arduino-mode.elがelpaに登録されているので、以下でインストール出来る。
-- M-x package-install [Enter] arduino-mode [Enter]
これだけ。
Emacs+InoでArduinoのLEDをチカチカ
環境整った。素敵。
どうでもいい余談
Auduino、思った以上にすごくエグイ音が出た。 SharmanのFilterbankに負けないくらいのもの作れるんじゃねっていうくらい。 某メーカの某おもちゃよりよっぽどry