WASY-LOG

たいした話はしません

Vim + terminal でArduino開発を行う環境を構築する

はじめに

研究でArduino UNOを扱うことがあり,当初は開発環境としてArduino IDEを使用していたのですが,IDE特有の重さやマウス操作が多くなる(ショートカットを覚えていないだけ?)ことに対して徐々にフラストレーションが溜まってきたため,VimコマンドラインでのArduino開発環境を整えることにしました.メモ書きです.また使用OSはLinux Mint 18 Cinnamonです.

Inoの導入

Inoはコマンドライン上でボードへの書き込みなどをするのに使うツールです.
まずはArduino IDEが必要となるのでインストールします.

$ sudo apt-get install arduino

次にInoをインストールします.pythonが用いられているみたいですね.$ pip installします.setuptoolsとかpipとか入れてない人は入れてください.

$ sudo apt install python-setuptools
$ easy_install pip

Inoは管理者権限なしでインストールしようとすると怒られました.

$ sudo pip install ino

シリアル通信にはpicocomというパッケージをインストールする必要があります.やっておきましょう.

$ sudo apt-get install picocom

シンタックスハイライト

NeoBundleを導入している前提で進めます.
sudar/vim-arduino-syntaxプラグインをインストールします.
以下を~/.vimrcに追加し,:NeoBundleInstallします.

NeoBundle 'sudar/vim-arduino-syntax'

使ってみる

まずプロジェクトを格納するディレクトリを作ります.今回はホームディレクトリに~/arduino/ledを作成しました.
$ ino initでプロジェクトを作成します.カレントディレクトリにsrclibの2つのフォルダが生成されます.

~/arduino/led $ ino init

srcの下にsketch.inoというファイルがあるはずなので,そこにスケッチしていきます.

int outPIN = 13;
 
void setup(){
    Serial.begin(9600);
    pinMode(outPIN, OUTPUT);
}

void loop(){
    digitalWrite(outPIN,HIGH);
    Serial.println("HIGH");
    delay(500); //[ms]
    digitalWrite(outPIN,LOW);
    Serial.println("LOW");
    delay(500); //[ms]
}

$ ino bulidでビルドします.

~/arduino/led $ ino build

ビルドが通ったら$ ino uploadでボードに書き込み.sudoしたほうがいいと思います.

~/arduino/led $ sudo ino upload

無事光りました(写真なのでわかりませんがちゃんと点滅もしてました).

あとシリアル通信のほうも確認しておきましょう.$ ino serialを入力します.Ctrl+a Ctrl+xでシリアルモニタを抜けられます. f:id:beybr6:20160811170520p:plain

UNO以外のボードの使用について

$ ino list-modelsで対応している機種の一覧が表示されます. f:id:beybr6:20160811171534p:plain
$ ino build -m proのように,使用しているボードの機種に合ったオプションをつけて実行します.

いちいちオプションつけるのが面倒ならホームディレクトリに~/.inorcを作成して設定する方法もあるみたいですが,今回は割愛します.