ショップ

取扱説明書


製品概要

近年様々なモノをインターネットに接続してサービスの高度化を図るモノのインターネット「IoT」が注目されており、IoT サービスを実現するための様々な開発や実験が、企業はもちろん個人でも行われています。そのIoT 装置を実現する中核部品として、WiFi やBluetooth が標準装備されたESP-WROOM-32 が広く使用されています。
ESP32-S3-KEY-R2 はESP-WROOM-32 の次世代モジュールESP32-S3-WROOM-1を利用したIoT 機器の開発や実験を、ブレッドボード上で手軽に行うための開発ボードとして開発されました。ESP32-S3-KEY-R2 はArduino やMicroPythonを使用し、無線LAN 機能を活用した応用に取り組みたい人に最適な開発ボードです。ESP32-S3-KEY-R2 は以下のような特徴を持っています。

  • ESP32-S3の16MFLASH,8MPSRAM 版を搭載しています。
  • 高性能の32 ビットマイクロプロセッサを搭載することで、Arduino UNO R3 などと比較して高速な処理が行えるとともに、大容量のFLASH(16M) と大容量のRAM を利用できます。
  • ネットワークと接続するためのWiFi やBluetooth のネットワーク機能を利用できます。
  • 電子工作で広く利用されているArduino などの無償、便利、高機能な開発環境を利用してソフトウェアを開発できます。
  • Arduino IDE で作成したスケッチを書き込むためのUSB インターフェースを装備しています。
  • MicroPythonのファームウエアを書き込み利用することができます。PSRAMを利用して、8MBのヒープ領域を利用できるため、多量のメモリを使用する画像処理などにも対応できます。
  • ドロップアウトが300mV と少ない1.5Aの電圧レギュレータを搭載し、ESP-S3-WROOM-1 に安定した電源を供給です。
  • ESP32-S3-WROOM-1 の信号線がピンヘッダーを取り付け可能な端子列に引き出されており、ブレッドボードに挿して利用です。
  • 端子列の幅はブレッドボードを最大限に活用できるよう狭く設計されています。
  • 様々な情報を表示できるOLED ディスプレイ(別売) を搭載することができます。
  • カラーLED(WS2812)を3個装備しています。

ESP32-KEY-R2 の特徴

USB インターフェース

Arduino IDE で作成したスケッチを ESP-WROOM-32 に書き込むために、USB インターフェース (microB) を備えています。
USB インターフェースは以下のような用途で使用されます。

  • ESP32-KEY-R2への電力供給。
    • USB からは 5V の電力が供給され、ESP32-KEY-R2では、基板上の電圧レギュレータで3.3V に変換され使用されます。
  • ESP32-KEY-R2へのスケッチ(プログラム) の書き込み。
    • スケッチの書き込み時や、USB を介した受信時には、赤色の LED2(RX)が点滅します。
  • ESP32-KEY-R2と PC 間のシリアル通信。

電圧レギュレータ

ESP-WROOM-32 は無線機能の利用時に300mA 程度の電流を消費します。さらに、瞬間的ではありますが、突入電流として1A 以上を消費することもあるようです。ESP32-KEY-R2 で利用している電圧レギュレータBL8071 は、少なくとも1.5A 以上の電流を供給できますのでESP-WROOM-32 を余裕をもって稼働させることができます。
また、BL8071 の入力電圧から出力電圧のドロップダウンは300mV 程度で、USB から電力を取得する場合、ショットキーダイオードの順方向電圧降下と合わせると電圧低下は0.8V 程度となります。ESP-WROOM-32 が瞬間的に大きな電流を必要としている際に、USB からの供給電圧が定格の5V をある程度下回っても、安定した電源電圧3.3V を維持することができます。

ブレッドボードの利用

ESP32-KEY-R2 の2列の信号の引き出し端子は、ブレッドボードの部品配置領域を最大限に利用できるように、狭い間隔で配置されています。他のESP32 開発ボードでは部品の配置が難しかった一般的なブレッドボードでも、ESP32-KEY-R2 では余裕をもって部品を配置し利用することができます。

OLED ディスプレイ

ESP32-KEY-R2 にはOLED ディスプレイの接続端子が装備されているため、図2.2 に示すようにOLED を基板に搭載して手軽に使用することができます。

OLED ディスプレイは、128×64 ドットのグラフィックディスプレイになっており、ボードの稼働状態や利用者に伝えたい情報を、画像や文字で分かり易く表示できるようになります。
ネット上などで公開されているESP-WROOM-32 のサンプルスケッチでは、IP アドレスや様々な情報をPC 上でシリアルモニタに表示する例が多いですが、実際の運用ではESP-WROOM-32をPC に接続して使用することは少ないため、運用時に必要な情報を確認することができないという問題があります。
ESP32-KEY-R2 では、面倒な配線等を行うことなく開発ボード上にOLED ディスプレイを搭載できるため、PC と切り離して単独で運用している場合でも、様々な情報をOLED に表示し確認することができます。


MicroPython のプログラム例

LED の点滅

電子工作で定番の LED の点滅プログラムです。ESP32-S3-KEY-R2 に搭載されている LED1を点滅させるプログラムです。

from machine import Pin
import time

led = Pin(46, Pin.OUT) # D46 を出力に設定
while True:
    led.on()
    time.sleep_ms(1000) # 1000ms(1 秒) 待つ
    led.off()
    time.sleep_ms(1000)

WS2812 の点灯

ESP32-S3-KEY-R2 には、WS2812 タイプのカラー LED が3個搭載されています。
ESP32-S3-KEY-R2 に搭載された3つのカラー LED の点灯プログラムです。WS2812 タイプの LED の操作ライブラリ neopixel は、MicroPython の基本的なライブラリとしてあらかじめ組み込まれていますので、個別のインストール作業など行う必要がありません。ただ単にライブラリを import して使用できます。

from machine import Pin
from neopixel import NeoPixel

# NeoPixel の初期化
rgb = NeoPixel(Pin(38, Pin.OUT), 3) # D38 に3個の LED
# 各 LED の色の設定と表示
rgb[0] = (50,0,0) # LED3: 赤
rgb[1] = (0,50,0) # LED4: 緑
rgb[2] = (0,0,50) # LED5: 青
rgb.write() # 色の設定を全ての LED の表示に反映

OLED ディスプレイへの出力

ESP32-S3-KEY-R2 の CN3 に OLED ディスプレイを搭載することができます。OLED ディスプレイを使用するためには、ssd1306 ライブラリをボードに登録します。

from machine import Pin, I2C
import ssd1306

# OLED の設定
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

# OLED への文字列の出力
oled.text("Hello World", 0, 0, 1) # 表
oled.text("MicroFan", 0, 16, 1)
oled.text("ESP32-S3-KEY", 0, 32, 1)
oled.show() # 表示内容の OLED への反映

PSRAM の容量確認

スタックサイズと、PSRAMに確保されたヒープサイズの確認を行う対話的な実行例です。

>>> micropython.mem_info()
stack: 736 out of 15360
GC: total: 8196480, used: 15440, free: 8181040
 No. of 1-blocks: 294, 2-blocks: 36, max blk sz: 42, max free sz: 511281
>>> 


回路図


関連記事

SENSOR-PLUS

ブレッドボードを使用してプロトタイピングを行うと、ディスプレイ、スピーカー、スイッチなど、標準的に使用する回路がいくつかあります。プロトタイピングのたびに、繰り返しそれらの配線を行うことが面倒であったり、配線が入り組んでわかりにくいといったことがよくあります。

SENSOR-PLUSはそのような、よく使う標準的な入出力・センサーを一つにまとめたボードです。

SENSOR-PLUSを使用してプロトタイピングを行えば、よく使う標準的な入出力が既に提供されているので、注目している機能や回路に集中して実験を行うことができます。

ArduinoだけでなくMicroPythonでも手軽に使用することができます。