ESP32-WROOM用のブレークアウトボードを使ってみます。
小さい基板で技適付きESP32-WROOMモジュールを使用することができます。
簡単なスケッチを書きこんで動作を確認します。
紹介するもの
ESP32-WROOMモジュール用ブレークアウトボード
特徴
ESP32-WROOMを実装し、2.54ピッチのピンヘッダ、ピンソケットを使用できます。
アマゾンで購入できます。
梱包物にはボードの他にピンアサインのシートが含まれています。
ESP32-WROOMモジュール、ピンヘッダ、ピンソケットは付属しないので別途用意してください。
ピン配置
モジュールを実装した状態で示します。
基板後方(図の上側)には並列のスルーホールがありますが、こちらにはスケッチを書きこむときにダウンロードモードにするGPIO0があります。
スケッチを書き替えが必要な場合は、このGPIO0とGNDをショートできる状態にする必要があります。
外観
背面の一部にはGPIOピン番号がシルクされています。
電源、GNDはサイドに出ているのでピンヘッダを取り付けることでブレッドボード上で使用できます。
後方の並列スルーホールにはGPIO0があります。
ESP32-WROOMモジュールを実装した状態でスケッチの書き込みを行う場合、ダウンロードモードするためにGPIO0とGNDを導通する機構が必要です。
ESP32-WROOMモジュールを実装した状態です。
当方ではブレッドボードで使用することを前提にサイドにピンヘッダ、後方には並列のピンソケットを取り付けました。
比較(ESP32-WROOM-32Eモジュール)
ESP32-WROOMモジュールを実装した状態で比較します。
以前ESP32-WROOM-32Eのピッチ変換基板への実装モジュールを紹介したのでそちらと比較します。
サイズは幅は同じですが、長手方向では後方の並列スルーホール分大きいです。
ピンヘッダは、ESP32-WROOM-32Eモジュールのほうが、表面実装している分1列狭くなっていますが、基板が屋根になるので実質同じと考えています。
ブレッドボード上で使用できるピンには大差があります。
必要なピンがそろっているのであれば、ESP32-WROOM-32Eモジュールのほうが入手性は悪いですが、はんだ付け作業が不要なので手早いです。
さらに小さい技適付きESP32基板の場合、ESP32-Pico-D4搭載のM5Stamp Pico Mate になります。
使ってみて
ESP32-WROOMの機能を小さい面積で多く使用できるボードですが、初心者には扱いが難しいものだと感じます。
難所はモジュールの半田実装作業で、モジュールのピッチは狭く作業する数も多いので、半田の技量にはそれなりの習熟度は必要です。
スケッチの書き込みと電源の供給も、そのほかの基板のようにUSBコネクタが付いていないので、USBシリアル変換モジュールを経由して電源の供給、スケッチの書き込みを行います。
半田作業と、スケッチの書き込み作業は後述します。
自作で小さくて多機能な組み込みをしたくなってきたときに、安価に製作できる手段として持っておきたい材料の一つだと思います。
面積だけの問題であれば、入手性は悪いですがこちらのESP32-WROOM-32Eモジュールは半田作業は不要です。
価格は少し高いですが、M5Stamp Pico MATEを使用する方法もあります。
工作
用意するもの
材料としては表のとおりですが、
・はんだ吸い取り器、はんだ吸い取り線
があると、作業のリカバリーができます。
絵 | アイテム | 説明 |
---|---|---|
ブレークアウト基板 | ESP32-WROOMを実装します | |
ESP32-WROOMモジュール | 実装するマイコンモジュールです | |
ピンヘッダ | 2.54pitch 1列10pin を 2個 側面の端子に使用します | |
ピンソケット | 2.54pitch 2列8pin を1個 後方の端子に使用します |
手順
初めにブレークアウト基板にESP32-WROOMモジュールを実装します。
1か所はんだで仮止めをします。
すべてのパッドに対して水平、垂直方向のずれがないかを慎重に確認します。
半田はブリッジた場合、あとではんだ吸い取り線で回収するのでそのままにして全周作業を行います。
ピンヘッダを実装します。
ESP32-WROOMモジュールとピンヘッダとの距離が近いので、できるだけブリッジしないように作業します。
ブリッジした場合、後ではんだ吸い取り器で吸い取ります。
最後にピンソケットを実装します。
こちらのページではピンソケットのピン数が多い場合に切断して使用する動画を公開しています。
ルータを使用する作業ですので保護メガネ、保護具など安全を考慮して作業してください。
準備
ライブラリ
ボードライブラリ
Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。
ボードマネージャのURL | https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
検索 | ESP |
ボードライブラリ | esp32 by Espressif Systems バージョン x.x.x※ |
選択するボード | ツール > ボード > esp32 > ESP32 Dev Module |
モジュールライブラリ
機能やモジュールを使用しない場合インストールの必要はありません。
機能/モジュール | ライブラリ名 | 検索 | 確認時のバージョン |
---|---|---|---|
SSD1306 | Adafruit SSD1306 by Adafruit | SSD1306 | 2.5.1 |
ST7735 | Adafruit ST7735 and ST7789 Library by Adafruit | ST7735 | 1.9.3 |
関連 SSD1306 ST7735 | Adafruit GFX Library by Adafruit | GFX | 1.11.3 |
スケッチの書き込み
スケッチの書き込みは、USBシリアル変換モジュールを使用します。
今回はFT232RLを使用し、電源、GND、UARTをモジュールのピンに直接配線します。
FT232RLの電源は3.3Vに設定してください。
書き込みを行うときは以下の配線にしてから電源を投入し、ArduinoIDEより書き込みボタンを押下してスケッチの書き込みを行います。
ESP32-WROOMモジュール | 配線 | FT232RL |
---|---|---|
3V3 | 赤 | VCC |
EN | 赤 | VCC |
GND | 黒 | GND |
TXD | 黄 | RX |
RXD | 青 | TX |
GPIO0 | 灰 | GND |
スケッチの書き込みが終了したら電源を遮断し、GPIO0とGNDの接続を解放してから電源を投入することでスケッチが動作します。
モジュール単体でのスケッチの書き込みはこちら
基本スケッチ
今回はブレークアウト基板の使い方の紹介のため、スケッチについては簡素な紹介にします。
ESP32-WROOM搭載基板のサンプルはこちらを参考にしてください。
PWM
説明
PWMを使ったホタル点滅をします。
配線
ESP32-WROOM-32E | 配線 | FT232RL |
---|---|---|
3V3 | 赤 | VCC |
EN | 赤 | VCC |
GND | 黒 | GND |
GPIO17(OUTPUT) – 保護抵抗(約200Ω) – LED – GND
結果ではTXとRXが繋がれていますが、スケッチの書き込みに使います。
スケッチ書き込み後は外してもかまいません。
スケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence/
【マイコン基板】
ESP32-WROOM32モジュール搭載基板
【スケッチの説明】
PWM出力でのフェード点灯(ゆっくり点灯)とフェード消灯(ゆっくり消灯)を行います。
【ライブラリ】
esp / ESP32 Dev Module
【準備】
【準備】
電源には書き込みに使用したFT232RLを使用します。
ESP32WROOMモジュール <-> FT232RL
3v3 <-> VCC
EN <-> VCC
GND <-> GND
GPIO17(OUTPUT) - 保護抵抗(約200Ω) - LED - GND
抵抗値は使用するLEDにより適切な抵抗値を求めてください。
【バージョン情報】
2023/6/7 : 新規
**********************************************************************/
#define PWM 17 //PWM 出力pin
void setup()
{
pinMode(PWM , OUTPUT);
}
void loop()
{
for(int i = 0; i < 256; i ++)
{
analogWrite(PWM, i);
delay(2);
}
for(int i = 0; i < 256; i ++)
{
analogWrite(PWM, 255 - i);
delay(2);
}
}
結果
LEDがゆっくり点灯し、ゆっくり消灯を繰り返しました。
コメント