Androidのメモとか

ポキオの日記です。今日も遅延してない。

Arduino/EPS8266のコードをVisual Studio Codeから書ける歓びを噛みしめる

いやー、体中を電気が走ったような感じがした。

CodeからArduinoが書ける時代

forest.watch.impress.co.jp

要点はこの記事を読んで理解して下さい。サマると、Arduinoのコーディングとかバイナリのアップロードが、Visual Studio Codeから行えるようになるよ!ということ。ただし、

なお、本拡張機能を利用するには「Arduino IDE」v1.6.0以降の導入が必要。“Microsoft ストア”で配布されているバージョンは対応していないため、“Arduino”の公式サイトからインストーラー版かZIP版をダウンロード・インストールする必要がある。

今のところは本家のIDEも必要そうです。

とりあえずやってる

Arduino拡張はMarketPlaceからダウンロード可能。

Visual Studio Code Arduino ESP8266

さくっとインストール。ただ、インストールが完了してもあまり見栄えは変わりません。ただし、.inoファイルを開くと、こんな感じ。F1ボタンを押すと、おなじみのメニューが表示されます。

Visual Studio Code Arduino ESP8266

たとえば、Arduino: Board Configを開くと、Arduino IDEでインストール済みのボートが選択できます。もちろん、ESP8266も選択可能。

Visual Studio Code Arduino ESP8266

ほうほう。意外と使えるのね。

コンパイルには注意が必要

そのままだと、includeしているライブラリを参照できなかったりして、コンパイルが成功しません。

Visual Studio Code Arduino ESP8266

その場合は、Codeで開いているワーキングディレクトリにJSON形式の設定ファイル(c_cpp_properties.json)を作成し、そこにArduinoのライブラリのパスを書く必要がある。コード上のincludeの部分がCode上で怒られてる状態だと、その設定ファイルは簡単に作れる。JSONの、"configurations" -> "browse" -> "path" に、以下の2行を追加した。(僕の環境の場合は、ですが)

"/Users/(ユーザー名)/Library/Arduino15/",
"/Users/(ユーザー名)/Documents/Arduino" 

そうすれば、ちゃんとライブラリのincludeができるようになりました。

いざコンパイル

今回は、ポキオ基板v2(ESPr Developer)にバイナリを流し込んでみました。

ESP-WROOM-02開発ボード

ESP-WROOM-02開発ボード

  • スイッチサイエンス(Switch Science)
Amazon

Visual Studio Code Arduino ESP8266

プログラムの流し込みも基本的にはIDEと変わらず、F1ボタンからBoard Configを選択して、ボードの設定をしてから、Select Serial Portでポートの選択、そしてUploadを押すとコンパイル・流し込みが開始されます。

Visual Studio Code Arduino ESP8266

ただ、本家IDEと決定的に違うのは、ボードをUSB接続したタイミングで、「もしかして、このボードですか?(意訳)」見たいなメッセージが出ること。これは便利!と思いきや、ESPrを挿してるのに、SparkFun製のボードと判定されてしまうハプニング。まぁ、これからの伸びしろということで。

流し込み完了・・・したの・・・?

ボードの設定、ポートの設定を無事に済ませてESPrに書き込もうとすると、最後の罠が。

[Starting] Upload sketch - unko2/unko2.ino
構成をロード中…
パッケージを初期化中…
ボードを準備中…
検証中…
最大1044464バイトのフラッシュメモリのうち、スケッチが231913バイト(22%)を使っています。
最大81920バイトのRAMのうち、グローバル変数が32240バイト(39%)を使っていて、ローカル変数で49680バイト使うことができます。
マイコンボードに書き込んでいます...
Uploading 236064 bytes from /var/folders/jl/xtvx_dl51qg1yn70n399sfv00000gn/T/arduino_build_932727/unko2.ino.bin to flash at 0x00000000
................................................................................ [ 34% ]
................................................................................ [ 69% ]
.........................[Done] Uploaded the sketch: unko2/unko2.ino

こんな感じで、ESP8266へのバイナリの書き込みのProgressが100%に達しない件。正確には100%に達する前にProgressが停止。少し経って[Done]と表示される。これで大丈夫か?と思うけど、ちゃんとプログラムはESPrに書き込まれてるっぽい。こんなんでいいのかな(笑)

サマリ

というわけで、Visual Studio CodeからESP8266へプログラムの書き込みを行ってみました。

Pros

  • Visual Studio Codeから書き込めるワクワク感
  • Syntax Highlightが本家IDEよりリッチな感じがする
  • 補完機能やエディタ本来の機能は本家IDEより上

Cons

  • 現状、Arduino IDEがインストールされている必要がある
  • Codeの独特の操作感に慣れる必要がある

今後、Codeだけでプログラムの書き込みができるようになったらいいなぁ。Codeのエディタとしての基本性能が高いだけに、今後に期待せざるをえない感じです。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。