ESP32-WROOM-32のアダプタソケットを使った書き込み

コンピュータ、組み込み

Arduino環境で使用できるESP32はマイコンモジュール状態で販売されているものもあります。
このモジュールと、モジュール書き込みのアダプタソケットを使ってスケッチの書き込みをしてみます。

紹介するもの

ESP32-WROOM-32

特徴

WifiまたはBT(Bluetooth)を使ったHIDデバイスの開発や、BTのシリアル通信ができる。
モジュール単体では安価で入手性もいい。

動作電圧2.2 ~ 3.6V
フラッシュMemory4, 8, 16MBのラインナップ
ADC16
DAC2
GPIO21
UART3
I2C1
SPI1
外観
ピンピッチ 1.27mm

ESP-WROOM-32 Adapter

特徴

ESP32-WROOMのモジュールのスケッチ書き込みができます。
ESP32の信号がピンヘッダで引き出されているので、モジュールとAdapterがあれば評価ができます。

外観

ESP32-WROOM-32モジュールをAdapterにセットした状態です。

はめ込みにはコツがいります。
画像赤枠のように、モジュール側とソケット側のピンの2辺を合わせた状態でゆっくり押し込みます。

モジュールにスケッチを書きこんだ後にブレークアウト基板に実装することで、小型のESP32-WROOM基板にすることができます。
実装後にスケッチの書き換えもできます。

準備

ライブラリ

ボードライブラリ

Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。

ボードマネージャのURLhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
検索ESP
ボードライブラリesp32 by Espressif Systems バージョン x.x.x※
選択するボードesp32 > ESP32 Dev Module
※ x.x.x Jul/2022 では2.0.4

その他のライブラリ

BLEマウス、BLEキーボードを使用する場合、以下のライブラリを利用させていただいてます。

BLE Mouse ライブラリのURLGitHub – T-vK/ESP32-BLE-Mouse: Bluetooth LE Mouse library for the ESP32 (Arduino IDE compatible)
BLE KeyboardライブラリのURLGitHub – T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

BLE MouseのAPIマニュアル

BLE KeyboardのAPIマニュアル

スケッチの書き込み方

スケッチの書き込み方法①
NODE MCU ESP-32SなどのようにUSBケーブルを使用した書き込み方法です。
アダプタから引き出されているIO0端子とGND端子をジャンパワイヤでショートさせます。
Arduino IDEから書き込みを行います。

スケッチの書き込み方法②

USB-シリアル変換アダプタを使用して書き込む方法です。
モジュールを組み込み、はんだした後はアダプタソケットが使用できなくなるので覚えておきたい方法です。

アダプタから引き出されているIO0端子とGND端子をジャンパワイヤでショートさせます。
以下の配線状態にします。
Arduino IDEから書き込みを行います。

USB-シリアル変換アダプタ配線色ESP32-Adapter
5V5V
GNDGND
TXTX
RXRX
通常TXとRXはクロスで接続しますが
GAOHOU のシリアルコンバータの場合、シルク通りのピン配置ではTX-TX, RX-RXで接続します。
お手持ちのシリアルコンバータの仕様または、シルクをよく確認して接続してください。

<記事訂正 2022/9/12>
この方法で書き込めるUSB-シリアル変換アダプタには条件があるようで現在調査中です。
紹介したUSB-シリアル変換アダプタ以外でも書き込みができます。
当方ではこちらのUSB-シリアル変換アダプタを使用しています。

GAOHOU USB2.0 TO TTL 6ピン シリアルコンバータ UARTモジュール CP2102 STC
アマゾンで購入できます。

BTペアリング

BT通信をする場合こちらの作業が必要になります。

ノートPC、スマートフォン、タブレットまた、BTレシーバを準備してください。
ペアリングの方法については一般のBT製品と同じですので詳細は省略します。
個々のマニュアルを参照してください。

今回当方の確認方法としてAndroidスマートフォンでのペアリングを掲載します。

1.スケッチを書き込み、マイコンボードを起動させます。
※GPIO0とGNDをショートさせている場合は、ショートを解除してから再起動します。

2.BT設定画面から周囲のBT機器を検索します。
  今回のサンプルでは [NODE MCU ESP32]という名前で見つかります。

3.シリアル通信をする場合、シリアル通信用のアプリケーションをインストールします。
  参考として当方が利用している「Serial Bluetooth Terminal」を紹介します。

基本スケッチ

NODEMCUで使用したサンプルを流用します。
確認でき次第記事のメンテナンスをします。

GPIOアナログ出力(PWM, DAC)

配線

LEDホタルにて動作を確認します。
GPIO33 Anode -> Cathode -> 保護抵抗200Ω -> GND
GPIO25 Anode -> Cathode -> 保護抵抗200Ω -> GND

サンプルスケッチ

/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence

【スケッチの説明】
NODE MCU ESP32 基板で使用できます。
ESP32 WROOM で使用できると思いますが、NODE MCU ESP32のみ動作確認をしています。

アナログ出力制御によりLEDホタルを行います。
PWM制御とDAC制御を行います。

【ライブラリ】
esp32 > ESP32 Dev Module
(Ver 2.0.2)

【準備】
NODE MCU ESP32      LED
GPIO33              Anode -> Cathode -> 保護抵抗200Ω -> GND
GPIO25              Anode -> Cathode -> 保護抵抗200Ω -> GND

【バージョン情報】
2022/8/8 : 新規
**********************************************************************/

#define LED_DAC   25          //DAC出力ピン (25か26)
#define LED_PWM   33          //PWM出力ピン

void setup()
{
  pinMode(LED_DAC, OUTPUT);   //出力設定は同じ
  pinMode(LED_PWM, OUTPUT);
}

void loop()
{
  int i;

  //出力諧調 0 - 255
  for (i = 0; i < 256; i ++)
  {
    dacWrite(LED_DAC, i);             //DAC出力関数(DACピンでも、analogWriteを使うとPWM制御になります)
    analogWrite(LED_PWM, i);          //PWM出力関数
    delay(5);
  }

  for (i = 0; i < 256; i ++)
  {
    dacWrite(LED_DAC, 255 - i);       //DAC出力関数
    analogWrite(LED_PWM, 255 - i);    //PWM出力関数
    delay(5);
  }
}

スケッチの説明

比較としてPWMでのアナログ出力と、DACでのアナログ出力をしています。
出力の関数が違いますが、設定値はどちらにも同じ値を設定します。

結果

PWMとDACでの変化が見えます。
結果は、NODE MCU ESP-32Sでの紹介と同じです。

関連リンク

コメント

タイトルとURLをコピーしました