1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ESP32でLチカ

Last updated at Posted at 2022-05-31

前提

この記事は、主が開発した流れ、試行錯誤したところなどをまとめた個人的な備忘録です。用語や順序・細かい操作などは説明を省くことが多々ありますのでご了承ください。

基本的に以下の記事を参考にしています。

環境・用意したもの

  • ESP32: ESPRESSIF製 ESP32-WROVER-E
  • LEDライト
  • ジャンバーワイヤー
  • ブレッドボード
  • 抵抗:今回は220 Ω(多分小さすぎなければなんでもいい)
  • Windows11
  • VSCodeの拡張機能: PlatformIO IDE

ESP32はちゃんとしたのを買いたかったので、秋月電子(通販コード:M-15674)から買った。(最初技適マークがなくて使えない800円くらいのしょうもないのをAmazonで買って失敗したのは内緒)

ちなみに↓の画像にある通り、秋月電子は商品等への直接リンクを避けてほしいみたいなので代わりに通販コードを載せている。
image.png

VSCodeからESP32にプログラムを書き込む

PlatformIOで作業用プロジェクトを作成

PIO Home -> New Project
Project Name: blink_led
Board: Espressif ESP32 Dev Module
Framework: Arduino Framework
Location: "Use default location"にチェック

注意事項が2点

  • Remote WSLでの開発は非推奨
  • OneDriveがデフォルトのフォルダになっている人はPIO開発環境のデフォルトフォルダもOneDrive下になってしまう。
  • Remote WSLでの開発は非推奨
    Remote WSLのウィンドウを開いて作業しようとすると、フォルダ名にバックスラッシュが入ってPathの設定でめんどくさい。なのでRemote Windowは開かないことをお勧めする(Remote SSHの場合はよく知らん)

  • OneDriveがデフォルトのフォルダになっている人
    Windows11からか知らんが、なぜかOneDriveでバックアップをしているせいで、デスクトップ、ドキュメント、ピクチャのPathがOneDriveになっている。なので以下でそれを解除してやる。
    やり方は以下の記事を参照。

古いので、自動保存などの名前が異なっていたが大きな違いはなかった(バックアップの停止をするたびに「準備しています...」とかくるくるしてくそイラついた)。

プログラムを書いてビルド&アップロード

main.cpp
#include <Arduino.h>

#define LED_PIN   15

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  delay(100);
  Serial.printf("%s - run\n",__func__);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_PIN, HIGH);
  Serial.printf("%s - LED_PIN - HIGH\n",__func__);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  Serial.printf("%s - LED_PIN - LOW\n",__func__);
  delay(1000);
}

PCにESP32をつないで画像のように配線
S__326868994.jpg

ビルドはうまくいったが、アップロードで以下のようにupload portのエラーを吐かれた。

Looking for upload port...
Error: Please specify `upload_port` for environment or use global `--upload-port` option.
For some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)
*** [upload] Explicit exit, status 1

PIOでDevicesの項目を見てみると確かにNo Itemとなっている。

このエラーは次の2つが原因だった。

  • ケーブル
  • 専用のドライバが入ってない

デバイスマネージャーでESP32が認識されているか確認してみた。
最初、手持ちの適当なケーブルでつないでいたため、そもそも認識されなった(これに気づくまでレガシーなハードウェアの追加とやらで通信ポートを入れたり、入れてもリソース不足で警告出てわけわからんかったり無駄に時間を費やしてしまった、、、)
結局Amazonで別のESP32を買ったときについてきたUSBケーブルでつないだらちゃんと認識した(しょうもないとか言ってごめんありがとう)。

正しいケーブルでつないで、デバイスマネージャーを見てみると認識はしているものの、
image.png
のような警告が出た。ダブルクリックしてみてみると、
image.png
とドライバーがないようなので、Silocon LabsのCP210x USB - UARTブリッジVCPドライバのCP210x Universal Windows Driverをダウンロード。
ダウンロードしたzipファイルを解凍して、再度上の画像のドライバーの更新
コンピュータを参照してドライバーを選択
image.png
ダウンロードしたフォルダを参照してあげればあとは自動的にドライバをインストールしてくれる。

PIOで更新をかけたらしっかり認識してくれた。
image.png

もう一度アップロード。
しっかり機能した。
S__326877186.jpg
お前、そんな色してたんか。。。

以上。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?