[ESP32]IoTマイコンを動かしてみる5 -VSCodeでLチカ編‐

前回構築したVSCode(+PlatformIO)の環境で、Lチカしてみます。

先週はバイクの点検で往復300km走ったり、その疲れで次の日は一日中寝てしまったりと全くESP32に手を付けず。

今週は壊れたノートPCをなんとかしようともがいて、なぜか買ったばかりのmicroSDカードをバキッと壊してしまうという…説明を省くと経緯が全く分からないですね。

いっさい使うことなく無残な姿になったmicroSD(本編とは全く関係ありません)

とにかく後回しにしちゃってたESP32。言い訳はほどほどに少しでも進めます。


VS Codeでサンプルを試すには

VS Codeを開いたときのPlatformIO Home画面に「Project Examples」があったので試してみる。

適当なサンプルを選ぶと必要な構成情報なんかをインポートしてプロジェクトが自動生成される。

「”日付”-“時間”-“サンプル名”」というフォーマットで勝手に作られちゃうので少し気持ち悪い。人によるか。

ただ、このGUI上から選択できるサンプルは最初に使っていたArduino core for the ESP32のサンプルとは連動していないようですごく少ない。

ここにあるサンプルしかない。

ひと手間かかるけどArduino IDEでサンプル開いてコピペする方が色々試せるかも。

#この辺改善してほしいところです。

VS CodeでLチカ

そんな数少ないPlatformIOから開けるサンプル arduino-blinkでLチカをチェック。

(ちなみにArduino系はarduino-blinkとarduino-wifiscanの二つしかない。絶望。)

Platformio.iniの設定情報が気になったので先にwifiscanサンプル

ちなみにちなみに自動生成されるPlatformio.iniをのぞくとboardやらplatformやらの設定情報が見れるのだけど、このサンプルだとesp-wrover-kit/esp32doit-devkit-v1/lolin32が設定されてた。

LEDつなげる前にarduino-wifiscanの方のサンプルで挙動を確認してみる。

ツールバーのボタンでビルドを開始するとやたらと時間がかかる。

結果を見るとどうやらPlatformio.iniに書かれている全ての環境用にビルドしているようで171秒もかかっている。

wifiscanサンプルの場合、4種類もビルドしている。他にも色々コンパイルしているけど妥当なものかは不明。

自分でプロジェクト作成するときは削れると思うので要確認ですね。

前回適当にEspressif ESP32 Dev Module選んでおけばいいんじゃね?とか思ってたが、とりあえずサンプルの設定そのままで試してみる。ガッテン!

アップロード失敗。

アクセス権の問題?エラーメッセージのリンク先を確認してみる。

リンク先に従い、packagesフォルダーを削除してみる。

と、ばっちり動いた。

ボードへのアップロードも4種類分実行しているみたいで気持ち悪いけど。

arduino-blinkサンプルの実行

PIO HomeのProject examplesからarduino-blinkを選ぶ。

ソースコードを見てみるとLED_BUILTINがアウトプットに指定されているので、評価ボードに乗っかっているLEDが光るのかな、とダメ元でそのまま書き込む。

(静止画なので分からないが)点滅はしていない

ダメみたいですね。他のボードだと使えるのかも。

てか回路図見とけって話ですね。

Espressif社のESP32-DevkitC関連の資料置き場は↓

ここを当たっておけば間違いないけど、情報が多すぎたり中国語(?)だったりするので、↓のGetting Started Guideの下の方から辿るので十分かも。

電源周りの回路図

ああ、外部電源直結ですね。常に光ってる系でした。

ということで、ソースコードをちょい変。

コメント通りにLED_BUILTINを定義しましょう。といってもデフォルトの2のままでアンコメントしただけ。

回路の方は久々にFritzingで書いてみようかと思ったけど、まだデフォルトでESP32は無いようだし、何よりたいした回路ではないので、映像で。

GPIO2->1kΩ抵抗->LED->GND

抵抗の値の計算はめんどいのでてきとー。多分XBee用に一緒に買ったLEDと抵抗なので問題ないでしょう。

LEDチカチカできた。ふぅ。

まとめ

大分遠回りしてやっと電子工作らしくLチカしてみた。

VSCodeは定義を参照できたり、インテリセンス使えたり、色分けしてくれたりとArduino IDEと比較すると超便利。

しかしながら構成とかちゃんと考えないと無駄にビルドに時間がかかったりする。それとときどきInclude errorで定義が参照できなくなったりと少し不安定。

サンプル動かすくらいならArduino IDEで、組み合わせたりしてちゃんと作るときはVSCodeって感じがよいかも。

次回はLCDかなぁ。I2Cとかも試してみたいが変換ボードが必要だな。

あとFritzingでESP32のパーツも使えるようにしておきたい。

それでは。おやすみなさい。

余談

今回の投稿からScreenpressoを使ってみた。

ハウツー系の記事なんかでよく見るスクショへの注釈が簡単にできるソフト。さてはみんなこれ使ってたんだな。

簡単にそれっぽい注釈付きのスクショがつくれちゃうのでついついコメント書き込んでしまう。わざわざビルドボタンとかの注釈付き画像作ったけど、オフィシャルなインストラクションページに似たような画像があって無駄なことをしてしまった。。

ただPrt ScキーがScreepresso起動キーに置き換わっちゃうので個人的には常駐させておくのは気持ち悪い。