どーもです。
夏休みになり、勝手に参加させてもらってる部活で「Arduino」を使うことになりました。
↑秋月LCD実験中
さて、Arduinoを動かすには「スケッチ」と呼ばれるプログラムを書かなければいけませんが、
標準エディタ使いにくい
Tabがすぐにスペースに変換されるとかホント許せないです。
ってことで快適にスケッチを書けないものかといろいろ粘った結果、
Vim + Makefile
が個人的に使い勝手が良かったので紹介します。
準備
Arduino IDEをインストールしておいてください。
MakefileがArduino 1.5.xに対応していないようなので、それ以外を選んでください。
また、MakefileのREADMEからの抜粋になりますが、自分の環境に合わせてパッケージを追加してください。
On Debian or Ubuntu: apt-get install libdevice-serialport-perlOn Fedora: yum install perl-Device-SerialPort
On openSUSE: zypper install perl-Device-SerialPort
On Mac using MacPorts: sudo port install p5-device-serialport
and use /opt/local/bin/perl5 instead of /usr/bin/perl
Makefileを使えるようにする
Sudar氏の作成したArduino-Makefileを使わせてもらいました。
https://github.com/sudar/Arduino-Makefile
右側に「Download ZIP」ボタンがあるので、ここからダウンロードします。
僕はDocumentsフォルダにarduinoフォルダを作成し、その中に解凍して出てくる全てのファイル・フォルダをコピーし、さらにsourceフォルダを作成しました。
このsourceフォルダの中に、こんな感じでスケッチを書いていきます。
source ├─スケッチ01 | ├─スケッチ01.ino | └─Makefile ├─スケッチ02 | ├─スケッチ02.ino | └─Makefile └─スケッチ03 ├─スケッチ03.ino └─Makefile
必ず、フォルダと中のスケッチのファイル名は同じにします。
Makefileの中身はこんな感じにします。他にもオプションはありますが、最低限コレだけ書いておけば問題ないです。
BOARD_TAG = nano328 MONITOR_PORT = /dev/ttyUSB* ARDUINO_LIBS = AVR_TOOLS_DIR= /usrinclude ../../arduino-mk/Arduino.mk
BOARD_TAG
そのまんまです。ここに開発しているArduinoの種類を書きます。
ここに書き込む文字列は、「make show_boards」とスケッチの入ったフォルダで実行するか、↓を参考にしてください。
uno atmega328 diecimila nano328 nano mega2560 mega leonardo mini328 mini ethernet fio bt328 bt lilypad328 lilypad pro5v328 pro5v pro328 pro atmega168 atmega8
MONITOR_PORT
Arduinoが接続されているデバイス名を書きます。
僕の環境(Fedora17 x86_64)だと、Unoは/dev/ttyACM*、Nanoは/dev/ttyUSB*でした。
ARDUINO_LIBS
ライブラリが置かれているディレクトリを書きます。
標準状態で/usr/share/arduino/librariesと/home/UserName/sketchbook/librariesを参照しているようなので、特に書き込む必要はないと思います。
AVR_TOOLS_DIR
avrdudeが入っているディレクトリを指定します。僕の場合は/usrでした。
VimでArduinoスケッチをシンタックスハイライトさせる
Sudar氏のvim-arduino-syntaxを使わせてもらいました。
https://github.com/sudar/vim-arduino-syntax
同様にzipファイルをダウンロードします。
ホームフォルダに「.vim」という名前でフォルダを作成し、先ほどダウンロードしたzipファイルを解凍して出てくる「ftdetect」と「syntax」フォルダを突っ込みます。
Linuxの世界ではファイル・フォルダ名の1文字目を「.」にすると隠しファイルの扱いになるので、ファイラーによっては設定を変更しないと表示されない場合があります。注意してください。
また、これは個人の好みによりますが、ホームフォルダに「.vimrc」という名前でファイルを作成し、中身にコレだけは書いておくことをおすすめします。
set autoindent set smartindent
これで、自動インデントが有効になります。
その他の設定に関しては、Vimのブログが参考になるので、試してみるといいと思います。
これで、VimでArduinoのスケッチファイル(拡張子ino)を開くと色が付いているはずです。
ビルド&書き込み
スケッチのある(inoファイルのある)ディレクトリでTerminalを開き、
$ make
でビルドです。
AVR Memory Usage ---------------- Device: atmega328pProgram: 4092 bytes (12.5% Full) (.text + .data + .bootloader)
Data: 501 bytes (24.5% Full) (.data + .bss + .noinit)
こんな感じの文章が出力されたらビルド成功です。エラーが出たらスケッチを確認してください。
次は書き込みです。
$ make upload
で接続されたArduinoにスケッチを書き込むことができます。
一応全て書いたつもりですが、わからないことなどあったら遠慮なくコメントやTwitter、メールなどで連絡ください。(メールかTwitterの返事はかなり早いと思いますw)
では、快適なArduinoライフを〜