表示はAitendoの液晶モジュールを使用しました。操作はAndroidケータイからWiFiを通じて無線で行う、またはUSBからSerial Portを通じて行います。esp32については自分の動画 【ゆっくり解説】 WiFiの使い方2 【電子工作】で紹介しています。
#準備
以下のものを用意します。
- [ESP32-DevKitC] (http://akizukidenshi.com/catalog/g/gM-11819/) ESP32 1480円:秋月
- [M024C9328SPI] (http://www.aitendo.com/product/10944) TFTカラー液晶 1950円:Aitendo
#配線
ESP32と液晶を以下のように配線します。液晶基板裏面の電源設定用ジャンパーパッドJ1/J2は、J2をショートさせることによって5V電源の設定にします。
プログラム
開発環境はArduino-esp32を使います。プログラムは以下になります。
esp32_ILI9328_Sokoban
esp32_ILI9328_Tetris
esp32_ILI9328_15Puzzle
esp32_ILI9328_Pacman
以下の自分の動画と、DrNCXCortexさんのコードを参考にしました。
【ゆっくり解説】 倉庫番の作り方 【ゲームプログラミング】
【ゆっくり解説】 テトリスの作り方 【ゲームプログラミング】
【ゆっくり解説】 15パズルの作り方 【Androidプログラミング】
GitHub - Pacman Game for Arduino Due
コントローラの設定
Serial Portを使うときはテンキーの8(↑ボタン), 6(→ボタン), 2(↓ボタン), 4(←ボタン) と zキー(Aボタン), xキー(Bボタン)を使います。
AndroidケータイではWiFi TCP/UDP ControllerでボタンにSerial Portのときと同じASCIIコードを充てます。TCP/UDPはUDP、IPは192.168.4.1、Portは10000に設定します。これらの設定は手動でも行えますが、プログラムのフォルダにあるWiFi_UDP_Controller_config.txtをAndroidのフォルダマネジャーでホームフォルダ/Controller Backup に置き、WiFi TCP/UDP Controllerでロードすることでも行えます。
ゲームについて
倉庫番: ミクダヨーが主人公です。アニメーション作成にはMMDを使いました。全10面
テトリス: シンプルなテトリスです。プログラミングの学習にもベスト。
15パズル: picture.hの240×320ピクセルの16ビット画像データを変えれば絵を変えれます。
パックマン: Pacman Game for Arduino Dueの移植です。素晴らしいコードです。