Arduino IDE 2.0 ベータ版を試してみる

投稿者: | 2021/03/05

Evaluated Arduino IDE 2.0 (beta).

3月に入ってすぐ、arduino.cc のブログで Arduino IDE 2.0 のベータ版のリリースがアナウンスされました。従来の 1.x 版に比べて何が新しくなったかというと、

  • テキストエディタにライブラリ関数名の自動補完機能がついた
  • デバッガ機能が付いた

というところがメインのようです。

私は Arduino のプログラムは vi エディタで書いてしまうので、前者はそれほど惹かれなかったのですが、後者にはちょっと興味を持ちました。以前からも Arduino プログラムのデバッグを GDB や Eclipse で実現するというネタがあり、私も記事にさせて頂いたことがあります。ただしそのやり方だと、GDB や Eclipse を別途インストールしセットアップするのは面倒ですので、今回追加されたデバッガ機能は便利かも知れません。

なお、フラッシュ ROM 上のプログラムをデバッグするには通常、JTAG(あるいは SWD)などのハードウェアサポートが必要となり、AVR(ATmega328)マイコンでどうやって実現するのだろう、といぶかしんでいたのですが、どうやら AVR マイコンは対象外で、ARM コアを搭載した SAMD21 マイコン等のための限定機能のようです。Arduino IDE で SAMD21 マイコンを使っているのは少数派のような気がしますが、流行の ESP32 + FT232H 等がサポートされるようになると、利用者は増えるかも知れません。

新しいもの好きなので、とりあえず試してみることにしました。幸い、手元にデバッグ機能がサポートしている Arduino M0 PRO を持っているので、これを使ってみることにします。(残念ながら、Arduno M0 PRO は製造中止となっています。)

Arduino IDE 2.0 beta-3 のインストール

ダウンロードはこちらから可能です。現在(2021年3月5日現在)入手可能なのは 2.0.0-beta3 というバージョンです。なお、私は Mac OS 版を利用しました。

インストールして起動すると、次のような画面が開きます。色合いなどは以前のバージョンと一緒ですが、画面のレイアウトが少し変わっているようです。

Arduino M0 PRO の接続

とりあえずボードを繋ぎます。USB ケーブルは PROGRAMMING というコネクタに接続します。NATIVE USB よりも、こちらのほうが安定して利用できると思います。

Arduino IDE 2.0 をインストールしてもそのままではボードを認識できないので、Boards Manager を開きます。画面左端にあるゲジゲジ IC のアイコンをクリックしましょう。すると Filter your search... というテキストボックスが現れるので、そこに samd と入力します。すると、Arduino SAMD Boards (32-bits ARM Cortex-M0+) という選択肢が出てくるので(Beta Boards ではないほうです)、その下の INSTALL ボタンをクリックします。私が試したときには、1.8.10 版とありました。1分間ほど時間がかかりますが、おとなしく待っていると無事にインストールが終わりました。

サンプルプログラムを動かしてみる

サンプルプログラムとしては、LED チカチカでも良いのですが、今回はシリアルモニタを試してみたいので File → Examples → 01.Basics → AnalogReadSerial を選びます。続いて、メニューから Tools → Board → ... → Arduino M0 Pro (Programming Port) を選びます。ポートとしては(これは皆さんの場合には名前が異なるかも知れませんが)Tools → Port で、/dev/cu.usbmodem1444202 を選びます。

続いて、メニューから Sketch → Upload を選ぶと、コンパイルとアップロードが完了し、次のような画面になります。

もしうまくアップロードできない場合ですが、私の場合には Bootloader を書きこみ直したらうまくいくようになりました。そのためには、メニューから Tools → Programmer → Atmel EDBG を選び、その後 Tools → Burn Bootloader を実行します。

続いてメニューから、Tools → Serial Monitor を選ぶと、アナログ入力ピン(未接続でも良い)のレベルが次々と表示されるようになります。表示されない場合は、Serial Monitor の右上の通信速度設定が 9600 baud になっていることを確認し、ボード上のリセットボタンを押してみましょう。

日本語メニューがない

ところでここまで試してみて気づいたのですが、Arduino IDE 2.0 beta-3 には、日本語メニューが(まだ)無いようです。(もしかしたら、Windows 版にはあるのでしょうか?)

以下に、メニューの Preferences... をキャプチャして貼っておきます。

設定項目が、以前のバージョンに比べてまだ少ないようですね。個人的には、外部エディタの利用機能がなくなっているのが残念ですが、まあ、大きな問題ではありませんし、IDE 2.0 ではエディタの機能向上をうたっているので、外部エディタ利用ボタンは付けたくなかったのかも知れません。

デバッグを試してみる

プログラムのデバッグをするには、画面左上の以下のアイコンをクリックします。

次のような画面となり、なんだこりゃ、と思われる方もあるかも知れません。

Arduino のプログラミングでは通常、setup() と loop() の関数しか見えていないので、このような裏方の関数を目にする機会はありません。ここでは慌てず、画面上のほうにあるタブで AnalogReadSerial.ino を選びます。

続いて、エディタ画面上で void loop() { という行を見つけてその行番号(ここでは 20)の左辺りにマウスカーソルを合わせると、淡い赤色のポッチが表示されますので、そのポッチをクリックします。そうすると、その行にブレークポイント(breakpoint)が設定されます。ブレークポイントというのは、プログラムの実行中にその行に到達したら、動作を一次停止させるためのものです。以下のような画面になるはずです。

そうしたら、画面左上の continue ボタン(昔のテープレコーダのポーズボタンみたいな、下記で赤丸で囲ったのボタン)をクリックします。

すると次のように、loop() 関数の頭まで動作して一次停止します。

ここからは、上記 continue ボタンの隣に並ぶ以下のようなボタンでプログラムを制御できます。

  • Step Over(次の行を実行する。次の行が関数呼び出しの場合、関数内部で停止しない)
  • Step Into(次の行を実行する。次の行が関数呼び出しの場合、関数内部の最初の行で停止する)
  • Step Out(現在実行中の関数の末尾まで実行し、呼び出し元の行に戻る)
  • Restart(プログラムの再開の意味だと思いますが、動作不明)

その他のデバッグ機能

Arduino IDE 2.0 のデバッグ機能は、まだ実装されたばかりのようで、Eclipse CDT のような充実した機能と見た目は揃っていないようですが、次のように、ある程度の機能は用意されているようです。

  • VARIABLES: ローカル変数やグローバル変数の値を確認します。ただし、変数に依ってはコンパイル時の最適化で除外されているかも知れません。現在のところ、コンパイルオプションなどを設定する機能はないようです。
  • WATCH: これも変数や式の値を確認する機能です。
  • BREAKPOINTS: 設定されているブレークポイントの一覧です。マイコンハードウェアの機能にも依存しますが、複数のブレークポイントを設定できます。

まだできたてのデバッグ機能のようですが、今後の機能充実に期待したいところです。

今日はここまで。

お問い合わせはお気軽に!

お問い合わせを頂いた後、継続して営業活動をしたり、ニュースレター等をお送りしたりすることはございません。
御返答は 24時間以内(営業時間中)とさせて頂いております。もし返答が届かない場合、何らかの事情でメールが不達となっている可能性がございます。大変お手数ですが、別のメールアドレス等で督促頂けますと幸いです。