[電子工作]GS-0004:ESP32-S3 4人打ち麻雀ゲーム機(点数計算機能搭載)

 ESP32-S3 2.8型LCDタッチパネルボード+麻雀ゲーム

 IoT(WiFiやBluetooth)の学習やソフト開発に最適

価格:4500円

在庫品はメルカリ(匿名で購入できます)で「GS-0004」で検索購入下さい。

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

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

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

保証内容はこちら

 

GS0004ボードの特徴

 IoT(WiFiやBluetooth)の学習やソフト開発に最適

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

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

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

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

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

 ・2.8型、感圧式タッチパネル付き、240x320画素、液晶パネル搭載。

 ・SDカード(32GB以下)スロット搭載。(ArduinoIDEのサンプル使用可)

 ・圧電スピーカを1個搭載。PWM制御。可変抵抗により音量調整可能。

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

 ・サンプルプログラムとして、Bluetoothキーボード、電卓、各種ゲーム

  などを準備。

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

 ・鉛フリー半田使用。

 

麻雀ゲームの特徴

 本格4人打ち麻雀 銀河☆麻雀をGS-0004に移植

 ・本格的4人打ち麻雀。

 ・イカサマ無しの思考ルーチンを持つコンピュータと対戦。

  (強い/ふつう/弱いの3段階)

 ・一般的な役はほぼ網羅。

 ・チー及びカンに複数の候補がある場合、牌選択可能。

 ・ノーテンでのリーチや上がりは、チェックして禁止。

 ・フリテン、役無しによるチョンボあり。

 ・点数計算機能搭載。(刻子/順子の簡単入力機能あり)

 

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

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

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

 

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

ーーーー目次ーーーー

1.仕様

2.ソフト開発環境

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

 (2)ライブラリの準備

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

3.サンプルプログラム

 (1)タッチパネルによる10進/16進対応関数電卓

 (2)Bluetooth対応液晶キーボード

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

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

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

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

 (7)ゲーム:パクパク

 (8)ゲーム:YEVIOUS

 (9)ゲーム:本格4人打ち麻雀(銀河☆麻雀を移植)

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

 (11)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)

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

表示機能

2.8型液晶パネル:解像度240x320、65536色、SPI接続

  感圧式タッチパネル付き

  SDカードスロット

キー入力

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

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

入力機能

感圧式タッチパネル(1点)

サウンド

圧電スピーカー:1個

  発振周波数は、4KHz前後

  可変抵抗により音量調節可能

電源

USB Micro-B

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

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

付属品

タッチペン

サイズ

99mm×99mm、厚さ約25mm

その他

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

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

一部ソフトでは、データを格納するためのSDカード(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パネルの表示ライブラリ

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

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

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

       Adafruit_GFX_Library:Adafruit社のライブラリ

     ・タッチパネルライブラリ

       XPT2046_Touchscreen:タッチパネルのライブラリ

     ・BLEライブラリ

       ESP32_BLE_Arduino:Bluetoothキーボードを実現するためのライブラリ

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

     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)タッチパネルによる10進/16進対応関数電卓

  

   説明:タッチパネルによる10進/16進対応関数電卓です。小数点以下も16進表記

     できる点がポイント!

     ・10進/16進の切り替え可能。

     ・メモリ機能あり(「M=」でメモリに記憶。「M」でメモリの呼び出し。)

     ・バックスペースによる修正機能あり。(「<」)

   2024' 6/9

 

 (2)Bluetooth対応液晶キーボード

  

   説明:タッチパネルを利用したBluetooth対応のキーボードです。Bluetoothに対応した機器で

     「ESP32_keyboard」と接続することで使えるようになります。

     ・半角/全角やShift/Ctrl/Altも使用可能。Ctrl+Alt+Delも入力可能。

   2024' 6/9PCやタブレットとBluetooth接続して使用

 

 (3)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」にアクセスすると、

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

     できます。

     思考ルーチンは、昔、PCで作ったものを移植。Computer4は私と互角の強さです!

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

 

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

  

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

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

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

  2024' 6/9

 

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

  

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

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

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

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

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

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

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

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

 

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

  

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

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

     高速化を図っています。

  2024' 6/9

 

 (7)ゲーム:パクパク

  

   説明:youtubeを見ながら、気合を入れて作ってみました。結構、再現出来たかな。

     右ボタン(A)を押すとゲームがスタートし、後はアナログジョイスティックだけで

     操作します。

  2024' 6/9

 

 (8)ゲーム:YEVIOUS

  

   説明:youtubeを見ながら、気合を入れて作ってみましたが、再現できませんね。

     右ボタン(A)を押すとゲームがスタートし、アナログジョイスティック、右ボタン(A)

     で空中、左ボタン(B)で地上を攻撃できます。

     なお、SDカードが必須で、下記ファイルを展開し、dataフォルダーのファイルを

     SDカードのルートにコピーして、本体にセットして下さい。

  2024' 6/9dataフォルダーのファイルをSDカードにコピー

 

 (9)ゲーム:本格4人打ち麻雀(銀河☆麻雀を移植)

  

   説明:自作のWindows用ソフト銀河☆麻雀を移植

     ・イカサマ無しの思考ルーチンを持つコンピュータと対戦します。

      (強い/ふつう/弱いの3段階)

     ・一般的な役はほぼ網羅しています。

     ・チーの牌選択対応。

     ・ノーテンでのリーチや上がりは、チェックして禁止。

     ・フリテン、役無しによるチョンボあり。

     ・点数計算機能搭載。(刻子/順子の簡単入力機能あり)

   詳細はこちらをご覧ください。

  2024' 6/9

 

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

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

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

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

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

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

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

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

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

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

 

 (11)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

専用端子

SD

LCD

TOUCH

BUTTON/STICK/BUZZER

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

BUZZER

IO18

IO18

IO8

IO8

IO19

IO19

USB D-

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

T_DIN

IO12

IO12

FSPI CLK

SD_SCK

SCK

T_CLK

IO13

IO13

FSPI Q

SD_MISO

T_DO

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

T_IRQ

IO39

IO39

T_CS

IO40

IO40

IO41

IO41

IO42

IO42

RXD0

IO44

RXD0

TXD0

IO43

TXD0

IO2

IO2

IO1

IO1

GND

GND

 (2)回路図 PDF

 

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

 

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

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