Terminal+EmacsなArduino開発環境
UNOを買ってLチカさせたり7セグを光らせて遊んでいたんだけど、どうもArduino IDEが使いづらく、Cocoaアプリと違いEmacsキーバインドも使えない(超重要!!!)ので、普段使っているターミナルとEmacsだけでArduino開発ができるようにしてみた。
準備編
ひとまずIDE無しでもスケッチをビルド&Arduinoに転送できるようにmjoldfield/Arduino-Makefile · GitHubを導入。
まず必要なライブラリの導入から。
$ perl -MCPAN -e shell cpan[1]> install YAML cpan[1]> install Device::SerialPort
続いてArduino-Makeファイルをcloneしてきて各ファイルを移動。
git clone http://github.com/mjoldfield/Arduino-Makefile.git cp Arduino-Makefile/bin/* /usr/local/bin/ cp Arduino-Makefile/Arduino.mk /usr/local/share/
Arduino.mkにはArduino.appとビルド用スクリプトへのパスを通しておく。
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java ARDMK_DIR = /usr/local
ビルドしてみる
試しにによくあるLチカプログラムを作成する。
void setup() { pinMode(13,OUTPUT); } void loop() { digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); }
.inoファイルとして保存して、同じ階層にMakefileを作成。中身はこんな感じに。
BOARD_TAG = uno ARDUINO_PORT = /dev/tty.usbmodemfd121 include /usr/local/share/Arduino.mk
Arduinoのシリアルポートはls /dev/tty.usb* で見つかるはず。あとはmakeでプログラムを転送する。
$ make upload
LEDが点滅したら成功!
Emacsの設定
スケッチ編集時にsyntaxハイライトが効くようにbookest/arduino-mode · GitHub を入れとく。init.elには以下を追記。
(add-to-list 'load-path "~/.emacs.d/vendor/arduino") (setq auto-mode-alist (cons '("\\.\\(pde\\|ino\\)$" . arduino-mode) auto-mode-alist)) (autoload 'arduino-mode "arduino-mode" "Arduino editing mode." t)
これでCUIベースのArduino開発環境がひと通り出来上がった。