【2017年版】Visual Studio で Arduino 開発

Arduino と言えば、普通は開発には Arduino IDE を使うと思いますが、ここでは Visual Studio で Arduino 開発ができますよ、しかもより効率的に開発できますよというお話。

2~3年ごとに、Visual Studio での Arduino 開発の記事を書いています。本当にたまたまなんですが、今回が3回目。
やんごとなき理由 で久しぶりに Arduino を触っておこうと思い、せっかくなのでデバッグあたりも見てみました(と言っても、作ったスケッチは L チカなんですが・・・)。

Visual Studio を使っちゃうと、申し訳ないですが Arduino IDE には戻れないですね。


 

■ Arduino IDE for Visual Studio

Arduino IDE for Visual Studio は、文字通り Arduino 開発用の Visual Studio 拡張機能です。
基本的な無償版とより高機能な有償版(学生・個人利用と商用利用とで利用料が違うようです)があります。

Arduino IDE for Visual Studio

ArduinoIDEforVS

標準の Arduino IDE よりも優れている点には

  • Visual Studio の Intellisense が使える
  • ソースコード管理機能の統合(これも Visual Studio の標準機能)
  • ソリューションを複数プロジェクトに分割して開発可能
  • 無償版でも基本的なデバッグ機能(= 標準の Arduino IDE でも可能なシリアルモニター利用、ただし Visual Studio 版のほうが見やすくて使いやすい)
  • 有償版ならよりリッチなデバッグ機能

などがあります。
Visual Studio も 2015 からは 個人ならば 無償版  が使えるので、Arduino ホビープログラマーでも利用しやすくなりましたね。


 

■ 無償版でのデバッグ機能 ~ シリアルモニター(すべてのボードで利用可能)

無償版でも使える基本的なデバッグ機能、その 1 です。
シリアルモニターを使って任意の文字列、つまり変数の値やトレース文などを母艦 PC のターミナル画面でリアルタイムに確認することができます。

Arduino IDE が対応しているすべてのボードで利用可能な機能ですが、同じ機能を Visual Studio 拡張機能でも利用できます。
Visual Studio を使うメリットは、Arduino IDE より表示が見やすくなっている点だと思います。

Serial Monitor Debug


 

■ 無償版でのデバッグ機能 ~ GDB を使ったブレークポイント設定・変数ウォッチ(一部のボードのみ)

一部のボードでは、GDB を使ってブレークポイント設定、変数値のウォッチなどが可能です。
現時点では、Arduino Zero, Arduino M0 Pro, Texas Instruments LM4F のみの対応です。

・・・が、Arduino M0 Pro に対して、私の手元ではこの機能が動作しませんでした orz

具体的には、Arduino M0 Pro でデバッガーの初期化が終わらず、デバッグ実行できませんでした。ハードウェアデバッガーがあれば動作するのかもしれませんが確認していません。(そもそも M0 Pro はハードウェアデバッガーを内蔵しているので別途用意する必要はないはずですが)

Debugger Initialize

Visual Studio の細かいバージョンと Arduino 拡張機能との相性などがあるのかもしれません。
ということで、ここでは高度なデバッグ機能が使えるはずですよという紹介まで。
VS 自体のアップデートや拡張機能のバージョンアップなどの際に改めて確認してみたいと思います。


 

■ 有償版のデバッグ機能  (2017年10月8日、追記あり)

有償版だとより高度なデバッグ機能が使えます。
私の環境では GDB デバッガーは起動しなかったのですが、有償版のデバッガーは動作してくれました。

(2017年10月8日 追記)
このデバッグ機能のいいところは、デバッグ可能ボードが限定されていないところ。
試した範囲では Arduino Uno R3 でもデバッグ可能、さらに Arduino IDE の標準対応ボードには含まれない ESPr Developer でもデバッグ可能なところ。
Arduino 開発の効率が劇的に上がります。

これで、

  • ブレークポイント
  • 変数の(リアルタイム)ウォッチ
  • 任意のメッセージでトレースログ出力

なんかが使えます。

ブレークポイントで実行を一時停止することもできますが、ログメッセージの出力を指定すれば、Expressions ウィンドウ(ウォッチウィンドウに相当するウィンドウ)でもリアルタイムに変数値を確認することができます。
センサーデバイスを接続している場合などブレークしてほしくない時などに便利ですね。(シリアルモニターでもいいのですが、油断しているとスクロールしてしまうので)

SetAction

ExpressionsWindow

Visual Studio の快適な環境に慣れた身でも、これなら Arduino で遊んでみようという気になります。Arduino はスケッチサンプルやライブラリが充実しているので、これと組み合わせてより快適に開発できそうです。

 

広告
カテゴリー: Arduino, Visual Studio タグ: , , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中