LoginSignup
5
2

More than 5 years have passed since last update.

arduinoのコマンドラインビルドツール 👉 leo

Last updated at Posted at 2017-11-30

leo とは?

ざっくりまとめると、次の3点となります。

  • Arduinoのコマンドラインビルドツール
  • node.js を使ってる
  • Ino(python) にインスピレーションを得ている

詳しいことは、makewitharduino/leoをどうぞ。

なぜ、leo?

理由は、

  • Arduino IDE をうまく活用している
  • node.js で動くツール

だからです。

正直、上記の点が不要なら、今だとPlatformIO一択だと思います。あと、Arduino IDEにも標準のCLIツールもあるけど、正直コマンド叩くとアプリが起動するので好きじゃないです。

leoの概要

できることは少ないです。
ただ、その分さくっと使えます。

インストール

$ npm install -g leo

コマンド

プロジェクトを作って、ビルドして、Arduinoに書き込み、コンソール表示まで一気にできます。

leo new Blink
cd Blink
leo build -b uno
leo upload -b uno -p /dev/tty.usbmodem1141
leo console -p /dev/tty.usbmodem1141 -b 9600

ビルドについて

leoは、ビルドツールです。

これに対して、例えば、avrgirl-arduinoは結構有名なnode.jsのコマンドラインツールですが、あくまで Arduino IDE でビルドされたhexファイルを書き込めるものです。
とても惜しい。

他に、node.jsでビルドして書き込めるツールがあれば、ぜひ教えてください。

leoの仕組み

leoは、ビルド実行時に、Arduino IDE から /java/hardware/arduino/avr/cores/arduino/ フォルダをごっそり .build フォルダにコピーしてきて、 Build Process のプロセスを内部で実行しているようです。

この部分が、Arduino IDE をうまく活用していると感じた点です。(前述の ino がこの仕組み)

leoの現状

実は、開発元のAdamMagaluk/leoは2年前に開発が停止してます。
このため、最新のArduino IDE v1.5系までしか対応してませんでした。(今は、v1.8系)

これでは使えないため、 makewitharduino/leoで、最新のVersionに対応させました 1

なお、Versionによって何が違うかというと、Version毎にIDEで参照するフォルダ位置が若干変更になっているようです。

このバージョンの違いを吸収しているところが、makewitharduino/leo-platform-arduino になります。

追加コマンド

アップデートついでに、ライブラリを追加するコマンドも実装してみました。
例えば、下記のコマンドでライブラリをダウンロードしてきて、Arduinoに追加できます。

$ leo library https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip

leoの今後

正直、leoは今あるツールなどと比べると、できることは極端に少ないです。
ただ、node.jsで動くことが利点なので、そこをうまく活用できるといいかなと思ってます。
せっかくなので、活用できそうな事例があれば、ぜひ使ってみて下さい。


  1. 動作確認がMacのみなので、ぜひWindowsで確認してもらえると助かります。 

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2