くろねこ日記

ソフトウェアに関する技術メモが多いです.

ArduinoをCLIベースに開発できるino

はじめに

最近は電子工作にArduinoを使うことが多いです. 近年では電子工作の裾野を広げる意味では一躍買っているマイコンですね.

Arduinoの公式では書き込みやプログラミングが行えるIDEが配布されています.多くのユーザはそちらのIDEを使うことが多いかもしれません.しかし,VimEmacsなど自分の好きなエディタやCLIを使いたい方も居ると思います. 僕も普段の開発にはVimを使うので,そのような場合は作成したコードをIDEに読み込ませてからArduinoへの書き込みを行なうという面倒なことをしてました.

今日はそんな面倒なことをしているかもしれない方へinoというCLIで扱えるArduino開発環境を紹介します.

inoを使えばプロジェクトのディレクトリ生成からビルド・書き込み,シリアル通信までできます.

inoのインストールと概要

inoはpythonで作られており,pypiにも登録されているのでpipを使ってインストールができます.

ただし,python3では動作しなかったので,python2.7で導入することを推奨します.

なおインストールは

pip install ino

からできます.

inoはプロジェクト生成からコードのビルド,マイコンへのプログラムアップロード,シリアル通信までサポートしています.

以下に普段の開発で最低限使うコマンドをまとめました.

  • コマンド

    • プロジェクトの生成:init
    • ビルド:build

      • -m:arduinoの種類を設定できる(ArduinoMiniの場合:ino build -m mini)
    • 書き込み:upload

    • serial:シリアルターミナル

といったところでしょうか.他にもコマンドが沢山あります.

ino -h

から確認ができます.

実際に使ってみる

ざっくり説明したところで,具体的な使い方を示しましょう.

ここではArduinoからシリアル経由でHelloWorldをひたすら送りつづけるようなプログラムを作ることを目的に説明します.

まずはプロジェクトを生成しましょう. 空のディレクトリを生成する必要があります.

ここでは

プロジェクト名:HelloSerial(任意)

としましょう.なので

mkdir HelloSerial

でプロジェクトディレクトリを生成できます.

HelloSerialに移動して

cd HelloSerial

そしてプロジェクトの生成をします.

ino init

すると

.
├── lib
└── src
    └── sketch.ino

というディレクトリが作成されます.

あとはsrcにあるsketch.inoにコードを書いていくだけです.

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    Serial.println("HelloWorld");
}

書き込んで保存したら次はビルドです

ino build

で実行できます.

ビルドに成功したら

ino upload

Arduinoにアップロードします.

アップロードしたら今度はHelloWorldがシリアル通信で送られているか確認しましょう.

ino serial

ArduinoからHelloWorldが送られてくれば成功です.

まとめ

CLIベースのArduino開発環境inoの紹介を行った.

inoを使えば,コードのビルド,書き込み,アップロードなどArduinoで開発するときに必要なことが一通りできる.