Arduino開発環境の選び方(2020年10月)

概要

Arduinoの開発環境は複数あるので、その一覧と特徴などを説明したいと思います。基本的にはArduino IDEを利用するのが基本となります。

Arduino純正開発環境

Arduinoの純正開発環境は上記のURLからアクセスするのが基本となります。Arduinoはイタリア生まれですが、基本的には英語のみのサポートになります。

上記がリファレンスの言語指定ですが、「英語」「ドイツ語」「ポルトガル語(ブラジル)」のみですね。ドイツは話者数はあまり多くない気がしますが、電子工作だと結構強いですね。

上メニューから「SOFTWARE」→「DOWNLOADS」で上記のダウンロードページにいきます。

Arduino Web Editor

一番上にありますが、個人的には非推奨です。ブラウザ上でプログラミングが可能ですが、ファームウエアの転送には転送用のアプリをインストールする必要があります。そして、無料でプログラムできる範囲に制限があるので次のArduino IDEの方が利点は多いです。

Arduino IDE

Windows環境の場合には、3種類あるので注意してください。

  • Windows Installer(セットアップして使う一番普通のやつ)
  • Windows ZIP file(セットアップせずに使うバージョン)
  • Windows app(アプリストア経由のセットアップ)

Windows appのアプリストア経由が良さそうに見えるのですが、アプリストア経由のセットアップはおすすめしません。アプリストアはセットアップしたファイルをセキュリティ的に分離して、隠匿します。そのため、細かい設定を変更しようしたり、実行ファイルを直接コマンドラインで実行しようとするとエラーになってしまいます。

Windows Installerが一番一般的な開発環境ですので、こちらをまずは使ってみてください。

Arduino IoT Cloud

対応デバイスを利用している場合、Web上の連携ができるアプリをかんたんに作成することができるプラットフォームです。しかしながら、日本でWi-Fiが使える純正ボードはほとんど手に入らないのでおすすめしません。。。

Arduino Pro IDE

Arduino IDEは関数名などを自動補完することができません。テキストエディタとしては最低限の機能しか実装されていません。そこで、現在作成中なのでArduino Pro IDEです。しかしながら、まだ完成していないのでおすすめしません。こちらを使うのであればあとで紹介するVisual Studio Codeをおすすめします。

Arduino CLI

こちらはコマンドライン用のArduinoツールです。Arduino IDEはエディタと開発環境の統合環境でしたが、開発環境のみを切り出してコマンドラインで呼び出すことが可能です。

こちらを利用すれば好きなエディタを利用して、ビルドはコマンドラインから実行することなどができます。ただしArduino IDEの環境に微妙に依存しており、設定ファイルも一部独自になります。Arduino IDEはJavaで開発されているのでjson形式なのですが、Arduino CLIはおそらくPythonで開発されているのでYAML形式と設定ファイルの互換性もありません。

特殊なエディタを利用している場合か、Jenkinsなどを使ってCI(継続的インテグレーション)環境を構築する場合のビルドツールなどに使うのが適していると思います。Arduino CLIは一般ユーザーにはおすすめしません。

Arduino IDE+好きなエディタ

Arduino IDEを使っていて、エディタ部分に不満が出た場合にはまずはこの構成をおすすめします。

設定から「外部のエディタを利用する」を選択することで、Arduino IDE上のエディタが編集できなくなります。この状態で他のエディタで編集をするとArduino IDEに反映されます。この状態でビルドすることでプログラムを行うことができます。

エディタ以外はすべてArduino IDEと同じ環境ですので、まずは他のエディタを使っている場合に適しています。

Visual Studio Codeのプラグイン

最近よく使われるエディタとしてVisual Studio Code(VSCode)があります。

このエディタはマイクロソフトの統合開発環境のVisual Studioのエディタ部分を無料で公開しているものになります。プラグインを使うことで、いろいろな開発環境を構築することが可能です。

C言語のプラグインを入れてエディタのみで使う

Arduino IDEの外部エディタオプションを利用して、C/C++言語用のエディタとしても利用できます。

拡張機能からC/C++で検索するとマイクロソフト製のプラグインがあります。これを使うことで関数名などの自動補完ができるようになります。しかしながら、個人的にはエディタのみとしてVSCodeを使うのはもったいないので、他のプラグインをおすすめします。

Arduinoプラグイン

拡張機能からArduinoで検索すると一番上にでてくると思います。Microsoft製のArduino開発プラグインになります。こちらは裏側ではArduino IDEの設定を利用しています。エディタはVSCode上なのですが、ビルドするとArduino IDE環境で実行されるコマンドを同じように呼び出しています。

設定やライブラリはArduino IDE側で行ったものがそのまま利用できます。一応VSCode側からもライブラリの追加などは可能ですが、使い方がわからなくなったらArduino IDE側で設定をすれば問題ありません。

Arduino CLIは一部独自設定ファイルがありますが、こちらのプラグインはエディタ設定以外のArduinoに関係する部分はすべてArduino IDEと同一環境になります。

欠点として、ビルド時に日本語が文字化けしてしまう問題があります。こちらは上記のブログを参照にして該当部分を修正するか、Arduino IDEの環境設定から英語にすることで回避することができます。実際のところ英語にしても問題がない場所が文字化けしているので、英語でもいいかな?

日本語化の仕方や、開発環境の説明などもきれいにまとまっているのでおすすめです!

PlatformIOプラグイン

VSCode以外のエディタでも利用できるプラグインなのですが、おそらくArduino IDE以外では一番ユーザーが多い開発環境です。Arduino以外のいろいろな開発環境をかんたんに構築することができるツールです。

PlatformIOはArduino IDEとはまったく別の開発環境を構築します。そのため、Arduino IDEが入っていなくても動作しますし、お互いに干渉することはありません。そして、PlatformIOはArduinoとほとんど同じように動くのですが独自に拡張されており、より一般的なC/C++開発環境に近くなっています。

Arduino IDEは.inoファイルを利用しますが、PlatformIOは.cppなどを利用する方が一般的です。C/C++開発を行ってきた人がArduino開発をする場合にはPlatformIOの方が楽だと思いますが、Arduino IDEから開発をはじめた人にはちょっと難しいと思います。

まとめ

最初はArduino IDEのインストールアプリ版からはいるのがおすすめです。エディタなどに不満がでたらArduino IDEの外部エディタオプションか、VSCode+マイクロソフトプラグインをおすすめします。

もっとコンパイルオプションを変更したい人、やマップファイルが欲しいって人はPlatformIO。とにかくCLIでって人はArduino CLIもあります。この2つは情報が少ないので、ちょっと苦労すると思います。

PlatformIOは結構詳しく調べたことがあるのですが、ちょっと塩漬けになっているのでもう少ししたら公開できるかもしれません。ちょっとライブラリの管理が特殊で、わかりにくいです。ステップ実行などのデバッグをしたい場合には現状PlatformIO一択となります。

コメント

  1. 私が公開している「つくるっち」はMakeblock社のmBlock3に従ってArduino IDEをCLI環境で使用しています。確認はしていませんがVSCoreのArduinoプラグインも同じ手法ではないかと推察しています。
    以下備忘録として情報共有させて下さい。

    ●Arduino IDE CLI公式資料:
    https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc

    ●つくるっちで使っているCLI機能:
    ・–upload
     build & flash書き込みしてくれる
    ・–verify
     buildしてbinaryを生成してくれる
    ・–save-prefs
     portable/preferences.txtを書き換えてくれる

    特筆すべきはsave-prefsで、つくるっちではtargetの切り替えとbuild.pathの切り替えに使用してます、ESP32ではclean buildに非常に時間がかかるため便利です。不便な点としてsave-prefsとArduino IDEでのinoオープンは同時にできず、CLIでsave-prefs、その後inoオープンする必要があります。あとArduino IDE CLIでは明示的なclean build方法を用意しておらず、「つくるっち」では各プロジェクトについてGUI操作でのclean build方法を提供できていません(手動でプロジェクト内のbuildディレクトリを削除)。

    M5Stackデバイスのようにデバイスごとに細かい設定が必要なケースでは、inoといっしょにsave-prefsを使った設定batファイルを提供してもよいかもしれません。

    いちおうCLIでのboardパッケージのinstall (–install-boards) やライブラリのインストールもあるのですが、非常に時間がかかる等の理由により使用していません。

    ●つくるっちCLIコマンド例(save-prefs):
    arduino_debug.exe
    –board esp32:esp32:m5stack-core-esp32
    –port COMxx
    –pref build.path=プロジェクトごとのbuildディレクトリ
    –pref custom_CPUFreq=esp32_240
    –pref custom_DebugLevel=m5stack-core-esp32_none
    –pref custom_FlashFreq=m5stack-core-esp32_80
    –pref custom_FlashMode=m5stack-core-esp32_qio
    –pref custom_FlashSize=esp32_4M
    –pref custom_PSRAM=esp32_disabled
    –pref custom_PartitionScheme=m5stack-core-esp32_default
    –pref custom_UploadSpeed=m5stack-core-esp32_921600
    –save-prefs

    **end

    • たなかまさゆき より:

      コメントありがとうございます!
      マイクロソフト版のArduinoプラグインもこの方式ですね
      これ使うためにはappストア版じゃなくてインストール版じゃないとだめなんですよね

      Arduino CLIはガラリと設定が違うのでちょっと面倒です、、、

  2. そーたメイ より:

    ご回答ありがとうございます!

    Arduino IDE+ESP32の困ったこととして “260文字パス問題” があります。
    Arduino IDE+ESP32を C:\Users\n-tom\Desktop\FDrobot\mBlock.tmp\TuKuRutch\ (53文字) に展開すると下記のパスが255文字になります、あと5文字パスが長くなるとwindows上でエラーになります。

    C:\Users\n-tom\Desktop\FDrobot\mBlock.tmp\TuKuRutch\Arduino\portable\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\ext\pb_ds\detail\cc_hash_table_map_\constructor_destructor_no_store_hash_fn_imps.hpp

    今後どうなるか分かりませんが、Arduino IDEのESP32 boardパッケージはサイズとパスの深さを何とかしてほしいものです。

    • たなかまさゆき より:

      ユーザー名は人のよって長さが違うので、長い人だとアウトなのですね。。。

      CDでどっちかのPATHを省略するか、環境変数にいれるしかないのかな?
      BATファイルだとなぜか動いた気がするので、一度ファイルに保存してから実行したりもした記憶があります。

      Arduino IDEはAVR環境用なので、他環境向けは若干手薄ですよね
      仕方ないのですが、、、

タイトルとURLをコピーしました