[電子工作]ESP32-S3-WROOMの使い方ーーーー目次ーーーー 2.Arduino IDEでのESP32/D/EからESP32S3への移行 ーーーーーーーーーー 0.ESP32S3評価ボードの紹介ESP32S3の最上位機種ESP32-S3-WROOM-1-N16R8を手軽に評価できるように、次のようなボードを 開発し、販売を行っております。サンプルプログラムも用意していますので、ご検討をお願い致します。 GS-0004:ESP32-S3 2.8型LCDタッチパネルボード+4人打ち麻雀ゲーム機 GS-0005:ESP32-S3 LCD+I2Sオーディオ搭載ボード
1.ESP32S3とESP32/D/Eの違い中国のEspressif Systems Pte.(ESP)社が開発したマイコンで、240MHzのXtensa 32bit LX7プロセッサを 2個搭載し、512KBのRAMを持ち、802.11b/g/n(Max.150Mbps)のWiFiとBluetooth 5に対応し、1000円 未満で買えてしまうという、コストパフォーマンスの高いマイコンです。 WROOMと呼ばれるモジュールを比較すると、以前からあるESP32/D/Eと置き換え可能なように見えますが 残念ながら一部の機能が削除されていたり、ピンアサインが変更されて同じ機能が使えないなど、互換性は ありませんし、コンパイルし直しても動かないのでご注意下さい。但し、基板を設計し直し、ソフトの ピン番号を書き換えれば、多くのソフトは動きます。 主な違いは次の通り。
ESP32S3はプロセッサが新しくなったので性能を確認するために私が作成したレイトレーシングのプログラム を実行すると、ESP32/D/Eが26.3秒だったのが、ESP32S3では18.9秒で計算でき、同じ周波数でも40%程度 高速に処理できる場合もあるようです。よって、高い性能が必要な用途、USBやカメラを使いたい、GPIOが 沢山必要な場合はESP32S3をお勧めします。 しかし、磁気センサーやDAC(音声出力など)を使っていた場合は、ESP32S3では使えなくなります。
2.Arduino IDEでのESP32/D/EからESP32S3への移行ArduinoIDEでESP32S3を使う方法は、ESP32と同じですのでこちらを参照下さい。 注意点は次の通りです。
(1)端子番号について Arduinoでは各端子に番号を付けてソフトを作成しますが、ESP32/D/EとESPS3は電源、GND、EN、IO0、 TXD0、RXD0だけ同じですが、それ以外は異なっていますので、端子番号の変更は必須です。 そして、私が一番困ったのは、SPIのCK、D、Qの3端子です。回路による高速通信を行うためには これら3端子を決まった端子に設定する必要があります。しかし、ESP32/D/EとESP32S3では 位置が異なります。ESP32/D/E用に作った基板にESP32S3に実装する場合、これら3端子を ショートさせることで、動作させることは可能でした。しかし、端子が無駄になるので、新たに基板を 作り直した方が良いでしょう。 高速SPI(LCDパネル、SDカード、タッチセンサーなど)を使う場合の端子番号
(2)ボードマネージャのバージョンについて ESP32S3を使う場合、ArduinoIDEのツール−ボード−ボードマネージャ で「ESP32」で検索し、 ESP32の開発環境をインストールするのですが、バージョン2.0.xを選択する必要があります。 しかし、ESP32/D/Eでは、逆にバージョン2.0.xではmallocでメモリが確保できなかったりして 動かないソフトもありますので、ESP32/D/EとESP32S3でバージョンを切り替えるなどの 対策が必要です。
(3)ArduinoIDEのESP32用スケッチ例 ArduinoIDEのESP32用スケッチ例ですが、このピンアサインの通り端子を繋ぎ変えれば、多くのソフトが ESP32S3で動きました。一部ソフトではピン番号を変更する必要がありますが、SD、WebServer、 WiFi、Bluetoothなどは動作します。しかし、一部スケッチは動作しなかったり、無茶苦茶遅かったり しますのでご注意下さい。
3.ESP32S3の活用一部端子は使用上の制約がありますので、次の表を参考に、ピンアサインを決めて下さい。
MicroPythonを書き込めば、ESP32S3でPythonを使うことができます。PSRAMも使えるので、 MicroPythonのプラットフォームとして最適です。 MicroPythonのESP32-S3から、Firmwareの[.bin]を選んで、ダウンロードします。その後、 ESP32S3を書き込みモードにして、次のコマンドで書き込みます。 >>esptool.py --chip esp32s3 --port /dev/ttyUSB0 erase_flash >>esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0 ???.bin TXD0/RXD0にシリアル信号を接続し、uPyCraft、gtkterm、TeraTermなどのシリアルモニタを 115200bps、8bit、NoParityで起動すれば、MicroPythonが使えます。 上のピンアサインの通り接続すれば、SDカードにもアクセスできます。
Arduinoの紹介はこちら。
「ESP32の使い方」はこちら
「GS-0004:ESP32-S3 2.8型LCDタッチパネルボード+4人打ち麻雀ゲーム機」はこちら
「GS-0005:ESP32-S3 LCD+I2Sオーディオ搭載ボード」はこちら |