[電子工作]GS-0005:ESP32-S3 LCD+I2Sオーディオ搭載ボード

 ESP32-S3 1.77型LCDパネル+I2Sオーディオアンプ

 IoT(WiFiやBluetooth)とI2Sオーディオの学習やソフト開発に最適

価格:4500円

在庫品はメルカリで「GS-0005」で検索購入下さい。

ESP32-S3評価セット(GS-0004とGS-0005のセット)もございます。

受注生産(料金振込後、製作するため多少納期が必要です)で良ければ、 hge00744@nifty.ne.jp 

にメール下さい。折り返し、納期、金額(割引要相談)、振込先を回答致します。

保証内容はこちら

 

GS0005ボードの特徴

 IoT(WiFiやBluetooth)とI2Sオーディオの学習やソフト開発に最適

 ・ESP32-S3-WROOM-1-N16R8を搭載し、プログラムの書き換えや

  デバッグが可能。(技適あり、16MBフラッシュメモリ、8MB PSRAM、

  USBシリアル変換LSIとしてCH340N搭載)

 ・無線LAN、Bluetooth、SPI、I2Sなどの機能を評価可能。

 ・アナログジョイスティックと4つのキー(1つはリセット専用)を搭載。

 ・1.77型、128x160画素、液晶パネル搭載。

 ・MicroSDカード(32GB以下)スロット搭載。

 ・I2S対応DAC(16bit)、オーディオアンプ、ステレオスピーカを搭載。

 ・単3乾電池4個で動作可能。(電池は付属しません)

 ・サンプルプログラムとして、SDカードのwavオーディオ再生、各種ゲーム

  などを準備。

 ・秋月電子、共立エレショップなど、信用できる販売店より部材調達。

 ・鉛フリー半田使用

 

注意.液晶パネルには保護シートが貼られていますので、購入後、剥がして下さい。

注意.基板形状、搭載部品(特にスイッチの色など)は、出荷時期によって変更される

    場合があります。但し、ソフト互換性は確保し、基本仕様は変更しません

 

サンプルソフト一覧(サンプルは予告なく変更します)

ーーーー目次ーーーー

1.仕様

2.ソフト開発環境

 (1)Arduino IDEのインストール

 (2)ライブラリの準備

 (3)ボードへのプログラム書き込み方法

3.サンプルプログラム

 (1)wavオーディオ再生ソフト

 (2)Web時計

 (3)オセロ(私のオリジナルの思考ルーチン)

 (4)WiFiオセロ(私のオリジナルの思考ルーチン)

 (5)ゲーム:フルーツ(私が作成したオリジナルゲーム)

 (6)ゲーム:3D迷路(私が作成したオリジナルゲーム)

 (7)ゲーム:3Dシューティング(私が作成したオリジナルゲーム)

 (8)WebServer(ArduinoIDEのサンプル)

 (9)MicroPython

4.各種資料

 (1)ピンアサイン

 (2)回路図

5.トラブルシューティング

ーーーーーーーーーー

1.仕様

項目

仕様

プロセッサ

ESP32-S3-WROOM-1-N16R8:Xtensa 32bit LX7(最大240MHz、デュアル)

  フラッシュメモリ:16MB

  RAM:512KB

  PSRAM:8MB

無線通信

802.11b/g/n(2.4GHz、Max.150Mbps)

Bluetooth 5 BR/EDR/BLE

インタフェース

USB Micro-B:シリアルポートとして認識(CH340N)

MicroSDカードスロット:32GB以下

表示機能

1.77型液晶パネル:解像度128x160、65536色、SPI接続

キー入力

アナログジョイスティック

ボタン:2個+2個(リセットスイッチを含む)

サウンド

30mmスピーカー:2個(F0=約1200Hz)

DAC:PT8211(16bit、2ch、I2S)

オーディオアンプ:LM386G

  可変抵抗により音量調節可能、ヘッドホン端子搭載

電源

USB Micro-B

単3乾電池×4本(電池は付属しません)

 逆流防止保護ダイオード搭載

サイズ

152mm×71mm、厚さ約30mm

その他

Arduino IDEが動作する環境が別途必要(Windowsマシン、MacOS、Linux、RaspberryPiなど)

USB Micro-Bと接続するためのケーブルが別途必要

一部ソフトでは、データを格納するためのMicroSDカード(32GB以下)が別途必要

2.ソフト開発環境

 (1)Arduino IDEのインストール

   まず、Arduino IDEをインストールしてください。

   その後、ファイルー環境設定ー追加のボードマネージャのURL に

     https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

   を追加し、ツールーボードのボードマネージャで「esp32」を検索し、インストールします。

   詳細は、Arduino IDEのESP32開発環境を参考にして下さい。

 

 (2)ライブラリの準備

   ライブラリとして、次のものを準備しています。

     ・LCDパネルの表示ライブラリ

       ILI9163:Adafruit社の単純描画ライブラリを改変。(フレームバッファ無し。描画しているのが見える。)

       ILI9163_buf:フレーム単位表示切り替えライブラリ(フレームバッファあり。アニメーションできる。)

     ・グラフィックライブラリ

       Adafruit_GFX_Library:Adafruit社のライブラリ

 

   次のファイルをダウンロードし、

     Windowsの場合、「PC\ドキュメント\Arduino\libraries\」の下

     Linuxの場合、「~/Arduino/libraries/」の下

   にコピーする。

   

 (3)ボードへのプログラム書き込み方法

   (1)でインストールしたArduino IDEを起動し、ESP32S3用のプログラムを開きます。

   ツールを、

     ボード:ESP32S3 Dev Module

     UploadSpeed:921600

     Upload Mode:UART0

     FlashSize:16MB

     PSRAM:OPI PSRAM

     シリアルポート:ボードが繋がっているポートを選択(分からない時は抜き差しして確認)

     書き込み装置:esptool、USBtinyISP

   に設定します。

   ボードのUSRボタンを押したまま、RSTボタンを押して離し、最後にUSRボタンを離します。

   これで、ESP32-S3はライト状態になります。

   Arduino IDEの→ボタンを押すとコンパイルされ、プログラムの書き込みが開始されます。

   終了したら、今度はRSTボタンだけを押して離すか、電源を入れ直すと、プログラムが起動します。

 

3.サンプルプログラム

  (1)wavオーディオ再生ソフト

    

   説明:MicroSDカードに書き込んである、44.1KHz、PCM 16bitのwavフォーマットのオーディオデータを

     再生できます。なお、2段以上深いフォルダーには対応していません。

     私は、Audacity(Windows版とLinux版があります)というソフトで、ネットの音楽を録音したり、

     MP3ファイルを読み込み、44100Hzに変換して、WAVファイルで保存しています。

     なお、GS0005ボードに付いているスピーカでは、低音が全く出ませんので、少しでも良い音で

     聞きたければ、100円ショップのもので十分ですので、重低音の出るイヤホンやヘッドホンを

     接続して聞いて下さい。もちろん、良いアンプやスピーカーに接続すれば、なお良いです!

   2024' 6/9

 

 (2)Web時計

   

   説明:Webから時間を取得し、動作する時計です。それ以外の機能は何もありませんので、

     各自、ソフトを改変ください。

     まず、下記ファイルをダウンロードし、Arduino IDEでファイルを開き、

       const char* ssid = "yourssid";

       const char* password = "yourpasswd";

     をご自分のネット環境の、SSID及びパスワードに変更下さい。そして、LCDパネルに、

       Connecting to yourssid

       CONNECTED

     と表示されれば接続OKです。

   2024' 6/9WiFi接続必要

 

 (3)オセロ(私のオリジナルの思考ルーチン)

   

   説明:私のオリジナルの思考ルーチンを持つコンピュータと対戦できるオセロです。

     Computer4は私と互角の強さです!

     アナログジョイスティックで選択して、右ボタンで決定です。

   2024' 6/9

 

 (4)WiFiオセロ(私のオリジナルの思考ルーチン)

   

   説明:WiFiでPCやスマホと接続し、対戦できるオセロです。

     まず、下記ファイルをダウンロードし、Arduino IDEでファイルを開き、

       const char* ssid = "yourssid";

       const char* password = "yourpasswd";

     をご自分のネット環境の、SSID及びパスワードに変更下さい。そして、LCDパネルに、

       Connecting to yourssid

       WiFi connected.

       IP address: 192.xxx.xxx.xxx

     のように表示されれば接続OKです。

     次にPC/タブレット/スマホ等のブラウザから、「http://192.xxx.xxx.xxx」にアクセスすると、

     上の写真の右側のような画面が出ますので、画面に従って、ボタンを押すと、オセロが

     できます。

     私のオリジナルの思考ルーチンを持つコンピュータと対戦可能で、Computer4は私と

     互角の強さです!

   2024' 6/9PCやスマホとWiFi接続して使用

 

 (5)ゲーム:フルーツ(私が作成したオリジナルゲーム)

  

   説明:私が作成したオリジナルゲームです。一番上のバーが消えるまでに全てのフルーツを

     取って、ゲートに入れば1面クリア。なお、全てのフルーツを取るまで、ゲートは現れません。

     左右で移動し、右ボタン(A)でジャンプします。

  2024' 6/9

 

 (6)ゲーム:3D迷路(私が作成したオリジナルゲーム)

  

   説明:私が作成したオリジナルゲームです。30年以上前に、PCで作成したソフトを移植。

     迷路の地図は、展開したフォルダーの中の「*.dat」で、SDカードに書き込んで本体に

     セットする必要があります。

     ・左右で回転、上で前に進み、下で後退。

     ・行き止まりの黄色のゲートに入ればクリア。

     ・途中、同じような景色で迷子になるので、緑や青のゲートを頼りにゴールを目指して下さい。

     ・時間制限も無いので、気長にやって下さい。

  2024' 6/9「*.dat」は、SDカードに書き込み、本体にセット

 

 (7)ゲーム:3Dシューティング(私が作成したオリジナルゲーム)

  

   説明:私が作成したオリジナルゲーム。上記の3D迷路の3D表示ルーチンを使った3Dポリゴンの

     シューティングゲーム。3Dポリゴンの塗りつぶしは時間がかかりますが、自作のライブラリで

     高速化を図っています。

  2024' 6/9

 

 (8)WebServer(ArduinoIDEのサンプル)

   説明:ESP32はOSを搭載しなくてもWebサーバーを立ち上げることができます。本ボードでは

      ArduinoIDEのサンプルプログラムそのままで、MicroSDカードにアクセス可能です。

      トップページを「index.htm」という名前にして、HTMLファイルや各種画像ファイルなどの

      データをMicroSDカードにコピーしセットします。

      次に スケッチ例−WebServer−SDWebServer を選びます。この中の、

        const char* ssid = "**********";

        const char* password = "**********";

      をご自分のネット環境のSSID及びパスワードに変更し、ボードに書き込んでください。

      http://esp32sd.local にアクセスすればOKです。

 

 (9)MicroPython

   説明:ESP32S3でPythonを使うことができます。

      MicroPythonのESP32-S3から、Firmware(Support for Octal-SPIRAM)の[.bin]を選んで、

      ダウンロードします。その後、ボードのUSRボタンを押しながら、RSTボタンを押して離して、

      最後にUSRボタンを離します。そして、

        >>esptool.py --chip esp32s3 --port /dev/ttyUSB0 erase_flash

        >>esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0 ???.bin

      を実行すると書き込めます。

      ボードをUSBケーブルで接続し、uPyCraft、gtkterm、TeraTermなどのシリアルモニタを

      115200bps、8bit、NoParityで起動すれば、MicroPythonが使えます。

 

4.各種資料

 (1)ピンアサイン

GPIO

専用端子

MicroSD

LCD

I2S

BUTTON/STICK

GND

GND

3V3

+3.3V

+3.3V

EN

Reset (EN)

Reset

RST

IO4

IO4

IO5

IO5

IO6

IO6

STICK_X

IO7

IO7

STICK_Y

IO15

IO15

XTAL_32K_P

BUTTON_A

IO16

IO16

XTAL_32K_N

BUTTON_B

IO17

IO17

IO18

IO18

BCK

IO8

IO8

DIN

IO19

IO19

USB D-

WS

IO20

IO20

USB D+

IO3

IO3

IO46

IO46

IO9

IO9

FSPI HD

IO10

IO10

FSPI CS0

SD_CS

IO11

IO11

FSPI D

SD_MOSI

SDI

IO12

IO12

FSPI CLK

SD_SCK

SCK

IO13

IO13

FSPI Q

SD_MISO

IO14

IO14

FSPI WP

IO21

IO21

IO47

IO47

SPICLK_P

CS

IO48

IO48

SPICLK_N

DC

IO45

IO45

RESET

IO0

IO0(BOOT)

BOOT

USR

IO35

IO35

SPIIO6 (for PSRAM)

IO36

IO36

SPIIO7 (for PSRAM)

IO37

IO37

SPIDQS (for PSRAM)

IO38

IO38

IO39

IO39

IO40

IO40

IO41

IO41

IO42

IO42

RXD0

IO44

RXD0

TXD0

IO43

TXD0

IO2

IO2

IO1

IO1

GND

GND

 (2)回路図 PDF

 

 その他、ESP32-S3の標準のサンプルや、MicroPythonなども使えます。詳細は、次のページをご覧下さい。

 「ESP32-S3-WROOMの使い方」はこちら