[電子工作]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)サンプルプログラムをダウンロード (4)ボードへのプログラム書き込み方法 3.サンプルプログラム(6)ゲーム:3Dシューティング(私が作成したオリジナルゲーム) (10)WebServer(ArduinoIDEのサンプル) 4.各種資料5.トラブルシューティングーーーーーーーーーー 1.仕様
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キーボードを実現するためのライブラリ 次のファイルをダウンロードし、librariesフォルダーにコピーする。 Windows:「PC\ドキュメント\Arduino\libraries\」 Linux:「~/Arduino/libraries/」 (3)サンプルプログラムをダウンロード 下記サンプルプログラムをダウンロードし、ArduinoフォルダーにコピーするとArduinoIDE のファイル−スケッチブックから読めるようになります。 Windows:「PC\ドキュメント\Arduino\」 Linux:「~/Arduino/」
(4)ボードへのプログラム書き込み方法 (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.サンプルプログラム 説明:タッチパネルによる10進/16進対応関数電卓です。小数点以下も16進表記 できる点がポイント! ・10進/16進の切り替え可能。 ・メモリ機能あり(「M=」でメモリに記憶。「M」でメモリの呼び出し。) ・バックスペースによる修正機能あり。(「<」)
説明:タッチパネルを利用したBluetooth対応のキーボードです。Bluetoothに対応した機器で 「ESP32_keyboard」と接続することで使えるようになります。 ・半角/全角やShift/Ctrl/Altも使用可能。Ctrl+Alt+Delも入力可能。 2024'
6/9
説明: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は私と互角の強さです!
説明:私が作成したオリジナルゲームです。一番上のバーが消えるまでに全てのフルーツを 取って、ゲートに入れば1面クリア。なお、全てのフルーツを取るまで、ゲートは現れません。 左右で移動し、右ボタン(A)でジャンプします。
説明:私が作成したオリジナルゲームです。30年以上前に、PCで作成したソフトを移植。 迷路の地図は、展開したフォルダーの中の「*.dat」で、SDカードのトップに書き込んで 本体にセットする必要があります。 ・左右で回転、上で前に進み、下で後退。 ・行き止まりの黄色のゲートに入ればクリア。 ・途中、同じような景色で迷子になるので、緑や青のゲートを頼りにゴールを目指して下さい。 ・時間制限も無いので、気長にやって下さい。 2024'
6/9
(6)ゲーム:3Dシューティング(私が作成したオリジナルゲーム) 説明:私が作成したオリジナルゲーム。上記の3D迷路の3D表示ルーチンを使った3Dポリゴンの シューティングゲーム。3Dポリゴンの塗りつぶしは時間がかかりますが、自作のライブラリで 高速化を図っています。 注意.最初に公開したソフトは、端子番号の設定を間違えていました。申し訳ありません。
説明:youtubeを見ながら、気合を入れて作ってみました。結構、再現出来たかな。 右ボタン(A)を押すとゲームがスタートし、後はアナログジョイスティックだけで操作します。
説明:youtubeを見ながら、気合を入れて作ってみましたが、再現できませんね。 右ボタン(A)を押すとゲームがスタートし、アナログジョイスティック、右ボタン(A) で空中、左ボタン(B)で地上を攻撃できます。 なお、SDカードが必須で、下記ファイルを展開し、dataフォルダーのファイルを SDカードのルートにコピーして、本体にセットして下さい。 注意.SDカードの初期化をミスする場合がありますので、エラー発生時は、 SDカードの抜き差しやリセットを何度か行って下さい。 2024'
10/20
(9)ゲーム:本格4人打ち麻雀(銀河☆麻雀を移植) 説明:自作のWindows用ソフト銀河☆麻雀を移植 ・イカサマ無しの思考ルーチンを持つコンピュータと対戦します。 (強い/ふつう/弱いの3段階) ・一般的な役はほぼ網羅しています。 ・チーの牌選択対応。 ・ノーテンでのリーチや上がりは、チェックして禁止。 ・フリテン、役無しによるチョンボあり。 ・点数計算機能搭載。(刻子/順子の簡単入力機能あり) 詳細はこちらをご覧ください。
(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です。
説明: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が使えます。SDカードも使えます。
説明:ESP32S3でアーケードエミュレータgalaginoが動作します。しかし、元のままでは、 端子名を変更しても動作しません。ESP32-S3ではSPIとI2Sでエラーが発生します。 また、アナログジョイスティックにも対応していません。GS-0004ボードはI2Sオーディオ に対応していないため音は出ませんが、次の方法でゲームをすることは可能です。 (1)galaginoをダウンロードし、次のフォルダーに置きます。 Windows:「PC\ドキュメント\Arduino\」 Linux:「~/Arduino/」 >>cd ~/Arduino >>git clone https://github.com/harbaum/galagino (2)galagino/romsの「README.md」を参考に、ネットで各ROMを見つけ、このフォルダーに コピーする。「Z80-081707.zip」のみZIPファイルのままで、その他は、展開したファイル をコピーする。(分からなければ、ネットで他の方の情報を参照下さい。) (3)galagino/romconvで、「conv.sh」を実行する。 >>bash conv.sh (4)下記ファイルをダウンロードし、galaginoフォルダーの3つのファイルを差し替える。 (5)ArduinoIDEを起動し、ファイル−スケッチで、galagino−galaginoを開く。 (6)ツール−ライブラリを管理 で、FastLEDを検索する。FastLED by Daniel Garciaを見つけ、 バージョン3.6.0を選択して、インストールを押す。(他のバージョンでは、エラーが出ることあり) (7)GS-0004ボードを書き込みモードにし、→を押し、GS-0004ボードに書き込む。 (8)RSTボタンを押すと起動。USRボタンを押すとゲーム開始。SW4でFire。(SW5は未使用)
説明:ESP32S3でNESエミュレータNofrendoが動作します。しかし、ネットにあるコードでは、 リブートを繰り返したり、音が出なかったりします。 なんとか、GS-0004ボードで動くようにしましたので、動かし方を説明します。 なお、PWMでブザーで音を出しているため、音が悪い点はご了承願います。 また、キーが足りないため、SELECTボタンは使えません。どうしても必要な場合は、 20番端子とGNDの間にスイッチを取り付けて下さい。 (1)ESP32-S3に対応したESP32-S3_Uno-nofrendをダウンロードし、次のlibrariesフォルダーに 置きます。 Windows:「PC\ドキュメント\Arduino\libraries\」 Linux:「~/Arduino/libraries/」 >>cd ~/Arduino/libraries >>git clone https://github.com/twtomato/ESP32-S3_Uno-nofrendo (2)下記ファイルをダウンロードし、次のArduinoフォルダーにおきます。 Windows:「PC\ドキュメント\Arduino\」 Linux:「~/Arduino/」 (3)*.nesファイルを、SDカードに書き込む。最大40個のファイルから選んで起動できます。 (4)ArduinoIDEを起動し、ファイル−スケッチで、ESP32S3_ILI9341_nofrendoを開く。 (5)ツール−ライブラリを管理 で、Arduino_GFX_libraryを検索する。私は、 GFX Library for Arduino by Moon On Our Nationをインストールしました。 (6)GS-0004ボードを書き込みモードにし、→を押し、GS-0004ボードに書き込む。 (7)RSTボタンを押すと起動。USRボタンを押すとファイルを選択できるので、上下キーで 選んで、SW4かSW5を押して下さい。なお、AはSW4、BはSW5、STARTはUSRキー、 SELECTはありません。(20番ピンとGND間にスイッチを接続する必要あり) 注意.SDカードの初期化をミスする場合がありますので、エラー発生時は、 SDカードの抜き差しやリセットを何度か行って下さい。 4.各種資料
(2)回路図 PDF
5.トラブルシューティング
その他、ESP32-S3の標準のサンプルや、MicroPythonなども使えます。詳細は、次のページをご覧下さい。 「ESP32-S3-WROOMの使い方」はこちら。 |