Visual MicroでArduinoのお勉強(Windows上でArduinoのソースを読み書きしやすい環境を作る話)

今週のお題「いま学んでみたいこと」

 最近話題のESP8266を触り始めて、みなさんが公開されている情報などをもとにHello World段階までは到達したのですが、次に進むのに情報が見つけられなくて困りました。普段「十分こなれて豊富なサンプルがあって、コピペで事足りるようなヌルい環境」にいるせいですね。で、先達の方に「どうやって調べるの?」と訊いたところ「ソース読むんだよ~」と言われました、そりゃそうだ。Google先生に飼いならされたせいでその筋は無意識に避けてました。
というわけで、久しぶりにライブラリのソースを読もうと決心しました。
 ところが、IDEに飼いならされた(またかよ)身としては、Ctrl+スペースや.(ドット)で候補が出なかったり、コンテキストメニューから定義や実装に飛べなかったりすると、たちまち(約5秒で)へこたれてしまいます。う~ん、どこまで軟弱なんだ>自分。そこで、何かないかとGoogle先生に泣きついたところ、先生はVisual MicroArduino Extension for Visual Studioというプラグインを示されました。結局Google先生の掌の上で踊ってますね...

Arduino Extension for Visual Studio

 Arduino Extension for Visual StudioはVisual MicroのMicroSoftのVisualStudio(以下VS)用のプラグインで、これを使うと、私がへこたれてしまう原因である前述の問題が、きれいさっぱり解消します。また、有償版であればUSBシリアル接続で実機デバッグもおこなえるそうです。VSのプラグインは以前は製品版のVSでないと使えませんでしたが、2013以降は製品版相当の無償のCommunityEditon(※)が使えます。.NET方面から来た人にとってはなじみの深いVSでESP8266(やArduino)の開発ができるのでウレシイですね。組み込み方面やLAMP方面から来た人も、開発機がWindowsだったら試してみる価値があるかもです。エディタでゴリゴリ書くような人からは「VSは動きが鈍重だ」と言われますが、それを補ってお釣りがくるほどの便利さだと思います。
(※)個人や小規模会社なら無償で使える太っ腹なライセンスですが、正確にはライセンス条項を確認してください。

導入手順

Visual Studio

 まずVSが必要です。私は2013の無償のCommunityEditonを使ってますが、2015でもOKです。導入手順は多くの先達が解説されていますので"Visual Studio Community 2015 導入手順"くらいのキーワードでググってください。(2016/1/2追記 VS2015の場合はインストール時にc++もインストールするように追加でチェックしてください)

ArduinoIDE

 ここまで読まれるような方なら、すでに入れられてると思いますがArduinoIDEも必要です。入ってない場合はここに行って、ダウンロード>インストールしてください。お布施はいくらしてもかまいませんが、私は「unoも買ったのでお許し下せ~」とつぶやきつつ"Just Download"しました。

Visual Micro

 Visual Microのページ上方の"Download"をクリックするとダウンロードページへ飛びますので、"Recommended Download"をクリックしリンク先(MSのページ)からダウンロードしてください(VSの機能拡張マネージャからでも入るぽいです)。

使い方

 初期設定は、Documentationページで目のアイコンがついているページを順に開いてその通り実施します、ざくっと説明します。

セットアップ(Setup)

ファイルメニューの下あたりに表示されているプルダウンメニューからConfigration Managerを選び、ダイアログを表示します。
一番下のテキストボックスにESP8266のボードマネージャのリンク(http://arduino.esp8266.com/stable/package_esp8266com_index.json)を入れます。
左から2番目のプルダウンでターゲットにGeneric ESP8266 Moduleを選びます。
メニュー直下中ほどのCOM1などと表示されているプルダウンで、ESP8266を接続するUSB-シリアル変換器を接続したうえで、そのポートを選びます。

プロジェクト作成(Creating a New Project)

プロジェクト作成

ファイル>新規作成>Arduino Projectを選びダイアログでプロジェクト名を入れます。Arduinoのスケッチと同じ場所にプロジェクトが作成されます。

参照の追加

空のスケッチが作成されるので、プロジェクト>Add Library>Built-in>ESP8266関係のライブラリを選択します。プロジェクトファイルにも追加する必要があるのでソースにincludeを書くだけではダメです(この場合includeの下に波線が表示されます。)
依存関係がある場合は依存先も自動的に追加されるようです。
ライブラリのソースまで参照したいのでプロジェクト>Show Arduino Core and Library Sourcesを選びます。

ビルドと実行

デバッグデバッグなしで開始を選びます。(デバッグ有実行は無償版ではちゃんと動かないような..)

ソースの編集・参照

ライブラリの参照を追加しておくことにより、右クリック>定義へ移動 で該当ソースへ移動できます。
ソース編集の際は途中まで打つと候補が出てくるので↑↓で移動してTABキーで入力できます。
ドットを入力するとフィールドやメソッドが出てくるので記憶力&語学力のアヤしい私でもtypoが防げます。
その他VSの機能が普通に使えます(と思ったらリファクタリングがメニューに出ない、ほかにもあるかも... お正月にVS2015に新しいバージョン(1512.28.0)を入れたら「名前の変更」が使えるようになていました、やっほ~)。

まとめ

これでやっとライブラリのソースが読めそうな気になりました。涼しくなってきたことですし、ESP8266の使いこなしをぼちぼち勉強していきたいと思います。

(2016/1/2追記)VS2015でのインストールについて

VS2015の場合、既定のインストールではc++が入らないため、インストールオプションで追加してやる必要があります。VS2015をデフォルトインストールしてしまった場合は、次の手順でc++を追加してください。

(2016/3/27追記)ボードマネージャについて

以前インストールしたときは気づかなかったのですが、Win10 + VS2015にインストールしたところ、ターゲットボード(ESP8266)の追加を次の方法で行うことができました。

  • ハードウェア選択ドロップダウンの横の虫眼鏡のアイコンをクリック
  • Visual Micro Explorerが開くので、Manage Boardsタブをクリック
  • Boards Installerを展開してAll→esp8266を選択
  • esp8266 version XXXを選んでクリック
  • Installedの下にesp8266 version XXXが追加される
  • VisualStudioを再起動すると ハードウェア選択ドロップダウンにGeneric ESP8266 Moduleが現れるのでそれを選ぶ