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で動くことが利点なので、そこをうまく活用できるといいかなと思ってます。
せっかくなので、活用できそうな事例があれば、ぜひ使ってみて下さい。
-
動作確認がMacのみなので、ぜひWindowsで確認してもらえると助かります。 ↩