●ESP32( マイコン )も 使ってみよう
プログラム ( スケッチ ) を、ESPマイコン( ESP-WROOM-02 )に 書き込んで、手作りの電子回路基板を動かすことができました。 同機種の上位に、ESP32-DOWDQ6 ( 32bit MCU ) 搭載 の ESP32マイコン ( ESP32-WROOM-32 ) が、あるようですので試してみることにしました。 【 Wi-Fiモジュール ESP-WROOM-32 】
■特長・主な仕様 ・対応無線規格: ・WiFi:802.11 b/g/n ・Bluetooth v4.2 ・デュアルコア Tensilica LX6 ・SRAM:520KB ・電源電圧:2.2V~3.6V ・静電容量タッチインターフェース:x10 ・32kHzオシレータ:x1 ・GPIO:x21 ・UART:x3 ・SPI :x2 ・I2S :x2 ・ADC :x16 ・DAC :x2 ・I2C :x2 ・SDIO:マスター/スレーブ ※工事設計認証(技適)番号:211-161007
・ ・ ・ ・ ・
●勉強しながら … お手頃な、開発ボードを使用します。 【 ESP32−DevKitC ESP−WROOM−32開発ボード 】秋月電子通商
パソコンとUSBケーブルで接続して、Arduino言語のプログラム構築に 伴う開発作業が行えますので、とても便利なユニットです。
●パソコンにUSB接続しました。
・USBケーブル  USB2.0 Aオス−マイクロBオス 0.3m A−microB
●ピンアサインです。……… クリックすれば、拡大します。 【 Wi-Fiモジュール ESP-WROOM-32 】 ………38 ピン 【 ESP-WROOM-32 開発ボード 】 ……… 38 ピン ・GPIO : 32 ピン ・3V3 : 1 ピン ・5V : 1 ピン ・EN : 1 ピン ・GND : 3 ピン *ピン数は同じ(38本)ですが、ピン配置が異なります。
・ ・ ・ ■■■ Arduino 統合開発環境( Arduino IDE ) ■■■ ・ ・
●パソコン ( Windows 10 ) にセットアップします。 既に、ESPマイコン ( ESP-WROOM-02 ) で使用している開発環境 ( Arduino IDE )に対して、ESP32マイコンも使えるように追加設定です。
●ESP32用ボードマネージャのURLを追加です。 ファイル > 環境設定 > 設定
■追加のボードマネージャのURL :   https://dl.espressif.com/dl/package_esp32_index.json
●ESP32も扱えるように、追加ソフトウェアのインストールです。 ツール > ボード > ボードマネージャ
「 esp32 」を検索して、インストールしました。
・ ・ ・ ・ ・
●基板が丸出しでは、壊れそうなので ……… ケースの中に入れました。
■既に、装備している小型のスイッチボタン(2個)を … 幾度も使えば、基板ごと、押し潰して不良を起こしてしまいますので ESP02用と同じ要領で、スイッチボタンを付け加えました。 【 青 】PGM ボタン ……… Boot ( 起動 ) 【 赤 】RST ボタン ……… EN ( リセット )
■スケッチを【書き込み】可能な状態にする … ボタン操作です。


●配線図です。……… クリックすれば、拡大します。
・ ・ ●Arduino IDEの操作を、確認したいので … ・ ・  簡単なスケッチを作成しての試行です。 ・
●スケッチの内容です。
void setup()
{
  pinMode (16, OUTPUT);
}

void loop()
{
  digitalWrite (16, HIGH);
  delay(500);
  digitalWrite (16, LOW);
  delay(500);
}

●選択するボードですが ……… これで、良いのかしら (^^?
ツール > ボード > ESP32 Arduino > ESP32 Dev Module
●取り合えず、ボード情報の項目を設定しました。
 → この設定で、良いのかしら (^^?
●スイッチ ボタン操作で … 書き込み可能状態にしてからの操作です。 【 マイコンボードに書き込む 】ボタンを押下しました。
■コンパイル → ■書き込み ……… できました。(OK)
●スケッチの実行です。 自動的に、書き込んだスケッチが実行されています。
 → LED点滅 ( 点灯・消灯 )していますので … OKです。
・ ・ ・ ●メモ ・ ・
●スイッチ ボタン操作で、書き込みモードにするのですが … 何故か … 何もしなくても、書き込みできました。?
●スケッチ(プログラム)の命令が違うようです。 ・analogWrite が、ないみたいです。(代用のdacWriteが…なんか、違うかも?)  ・出力の種類   ・デジタル出力 : digitalWrite   ・PWM出力 : ledcWrite   ・アナログ出力 : dacWrite
●新しいモデル( ESP32D )ですが … 何が、違うのかしら? 【 ESP−WROOM−32D 開発ボード 】秋月電子通商
 → 機会があれば … 使ってみます。
・ ・ ・ ●大きなプログラムで … ・ ・
●( 領域不足 )により、コンパイルできない事象が発生しました。 ■ESP32 Dev Moduleの仕様  ・プログラム(FLASH) : 4MB  ・データ(RAM)    : 320KB ■パーティション … FLASH( 4MB )内で   プログラム領域( 1.2MB )に、OTA 【 有効 】 設定していました。 (対応)  ・OTAを、使用しない 【 無効 】 状態にして …   プログラム領域を、拡大(3MB)設定しての対応です。 【 ツール 】 → 【 Partition Scheme 】 → 【 Huge APP... 】
 → コンパイル(OK)→ 書き込みできました。
・ ・ ・ ●新しいモデル( ESP32E )ですが … ・ ・
●8MBメモリです。 【ESP32−DevKitC−VE ESP32−WROVER−E開発ボード 8MB】

●大きさとピン数は同じです。

●設定です。
■使用不可ピン ・GPIO16 : X ・GPIO17 : X ・GPIO15 : ?
・ ・ ・ ●最新の統合開発環境( Arduino IDE )です。 ・ ・
●他のパソコンに、インストールしました。 ( VER 2.1.0 )
 → 試しに、画面色を設定しました。
●コンパイル(OK)→ 書き込みできました。
 → バックアップ環境として … いいかも (^^)
・ ・ ●久しぶりに ・ ・ 「 コンパイルしたら 」… 変な状況になりました。 ・
thread 'main' panicked at 'assertion failed: `(left != right)` left: `0`, right: `0`: Failed to get path name. Error code: 3', main.rs:65:9 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace exit status -1073740791 ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。
●再インストール後、環境設定しました。
http://arduino.esp8266.com/stable/package_esp8266com_index.json https://dl.espressif.com/dl/package_esp32_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json https://dl.espressif.com/dl/package_esp32_index.json
●コンパイルできましたが … PS3コントローラを、BL接続すると再起動を繰り返します。 ■以前にも、同様な事象が … ・最初の頃は、最新環境の維持が必要と考え、バージョンUPをしていましたが  突然、コンパイルできない状況になりました。 ・四苦八苦な大きな労力の作業で、なんとか復旧できました。 ・不要なバージョンUPが、要因でしたので、以降  バージョンUPをせず、現状維持していました。 ■現状で … ・完全なる復旧は、難しく感じていますので、特定のライブラリの活用は  あきらめて、現状の不整合な環境下で、様子みながら使用してみます。  他にも不具合があるかも?

・Arduino ESP32 Boards by Arduino 2.0.18-arduino.5 ・ESP32 by Espressif Systems 2.0.6

・Arduino 1.8.19
------------------------------------------------------- C:\07-Arduino ------------------------------------------------------- C:\Users\ejiri\ドキュメント\Arduino\libraries C:\Users\ejiri\ドキュメント\ArduinoData ------------------------------------------------------- C:\Users\ejiri\OneDrive\ドキュメント\Arduino\libraries C:\Users\ejiri\OneDrive\ドキュメント\ArduinoData -------------------------------------------------------
■ボード[ESP32 Dev Module]  ESP32E ■Upload Speed [ 115200 ]  スケッチの書き込む通信速度 ■CPU Frequency [ 240MHz (WIFI/BT) ]  CPUクロック周波数 ■Flash Frequency [ 40MHz ]  フラッシュ周波数 ■Flash Mode [ QIO ]  4本のデータラインを使用しての通信 ■Flash Size [ 8MB(64Mb)]  外部SPIフラッシュメモリの容量 ■Partition Scheme [ 8M with spiffs (3MB APP/1.5MB SPIFFS) ]  パーティション設定 ■Core Debug Level [ なし ]  デバッグ情報 ■PSRAM [ disabled ]  SPIで接続された外部メモリ ■Arduino Runs On [ Core 1 ]  Arduinoコードの実行CPU(APP) ■Events Run On [ Core 1 ]  イベント処理の実行CPU(APP) ■Erase All Flash Before Sketch Upload [ disabled ]  書き込み前のフラッシュメモリの消去 …【 disabled : 無効 】 ■JTAG Adapter [ disabled ]  JTAGを使用してデバックを行う時の設定
●ESP32内のフラッシュメモリ全体を消去する場合 以下の設定で、コンパイルして書き込みます。…【 Enable : 有効 】 ■Erase All Flash Before Sketch Upload : Enable
・ ・ ・ ・ ・