えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

もはやVSCode!?最新のArduinoを試してみた(Arduino IDE 2.0.0-beta3)

 皆さんはArduinoで開発されるときはどの環境を使っているのでしょうか?おそらくArduino IDEVSCodeの2択になると思います。私はこれまでそれほどArduinoのコードを書いていなかったので、純正IDEを使っていました。VSCodeでの環境構築を行ったこともありましたが、パスを探すのが大変だった記憶があります…

 Arduino IDEの最新版の説明に"autocompletion"(自動補完)とあったので、興味を持ちインストールしてみました。意外と使いやすそうなので、従来の1.8.13と比較して簡単に紹介します。

Arduino IDE 2.0.0-beta3のインストール方法

 現在のArduino IDE 2はベータ版のリリースがあります。

Arduinoのダウンロードページへのリンク:https://www.arduino.cc/en/software

f:id:Ray_ar:20210316185259p:plain

ダウンロードされたexeファイルをクリックしてインストールを進めます。インストールは特殊な環境でない限りはデフォルトの設定で問題ないと思います。1.8以前のバージョンと共存させる場合はzipインストールをお勧めします。

起動後

 起動すると次のような画面が出ます。

f:id:Ray_ar:20210316185638p:plain
起動後

デザインは4種類から選ぶことができます。VSCodeではダークテーマを使用しているので試しにダークテーマを選択すると…

f:id:Ray_ar:20210316185804p:plain
ダークテーマのArduino

もはやVSCode!!

新機能

 Arduino2.0以降だとツールバーがあるみたいです。

f:id:Ray_ar:20210316185920p:plain

新しくデバッグツールが実装されています。ボードマネージャーやライブラリマネージャーは埋め込み式になったみたいです。

 その他にも、VSCodeでお世話になる「Ctrl+P」による機能検索や便利な文字検索、文字補完機能も継承されています。

f:id:Ray_ar:20210316190630p:plain

f:id:Ray_ar:20210316190840p:plain
文字検索

(個人的に)惜しいところ

 明らかに便利になるであろうArduino2.0.0ですが、少し個人的に物足りないところもあります。これは、今後の改善で修正されうるので期待しています。

その1. どうしても表記上のエラーが出る場合がある。

 M5Stackのような対象のターゲットを対象にするライブラリの場合、#if defined(ESP32)で条件分岐をすることがありますが、現時点ではこの条件を自動補完してくれません。そのため、実際にはエラーではないが、エラーになる場合があります。現時点ではM5Stackのライブラリに行って#define ESP32を補完することが必要です。

その2. Git機能はついていない

 VSCodeと機能比較をするなら、これはどうしても劣ってしまいます。そもそもArduinoは、「もっとシンプルに、もっと安価に、技術者でない学生でもデジタルなものを作ることができるようにする」(https://ja.wikipedia.org/wiki/Arduino より)というコンセプトに立ち上がったプロジェクトなので、仕方のないことなのかもしれませんが…

その3: メモリ消費量が多い

 VSCodeを引き継いでいるので、仕方のないことかもしれませんが、かなりメモリを消費します。その量は環境にもよりますが、私の場合はGoogle Chrome以上でした。

 Arduino IDEは小学生・中学生もターゲットにしている開発環境なので、低スペックなPCにやさしくない仕様といえます。ただし、コンパイル速度は従来のArduinoと同じくらいです。(実際に10回ほど測ったところ、2.0.0のほうが少し速かったです)

f:id:Ray_ar:20210316192651p:plain
メモリ消費量の比較

その4: 進捗の確認が少し微妙

 Arduinoコンパイラの特色だった進捗バーが実装されておらず、コンパイル結果の色表示もないため、コンパイルされても少し分かりにくいです。慣れればいいだけの話かもしれませんが。

f:id:Ray_ar:20210316192132p:plain

おわりに

 現在、M5 Stackやros2arduino関連でArduinoを使用しており、そのコードに関しては問題なくコンパイルが通りました。面倒な環境構築をすることなくVSCodeのような操作感をArduinoで実現できることを考えれば、かなり便利なエディタに進化したと思います。

 まだ使っていない人は、ぜひこの機会に2.0.0-betaをインストールしてみてはいかがでしょうか?