11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【電子工作】WeMos D1 Mini(ESP8266)で動かす携帯ゲーム機『ESPboy』にLittle Game Engineをインストールして遊んでみる!

先日、『ESPboy』というWeMos D1 Mini(ESP8266)で動かすオープンソースハードウェアの携帯ゲーム機をご紹介しました。

ESPboy用に作られたオリジナルゲームやゲームボーイなどのレトロゲーム、また拡張機能を使ったガジェットなどに使えたりと・・・普段電子工作でよく使っているマイコンボードで面白いことがいろいろと出来るデバイスでハマってしまいました。

ESPboyは公式サイトから初代となるESPboyやその改良版となるESPboy2の製品版を購入する事も出来ます。

またESPboyはオープンソースハードウェアで開発が進められているようで、公式サイトには詳細な情報が公開されています。
回路図や基板データなどが公開されているので、製品版として販売されているものと同様の仕様のものを作ることや、自分仕様にアレンジして作り変えるなんてことも出来そうです。

ESPboyの回路構成はシンプルでパーツも比較的入手しやすいものばかりなので、ブレッドボードやユニバーサル基板を使って組んで動かすことも簡単に出来ます。

私もまずブレッドボードで組んでみて非常に面白かったので、操作しやすいようにユニバーサル基板を使い組み直しました。
もうこれは製品版として販売されている仕様と同じものを作りたくなり、基板も発注しています。

【電子工作】ESP8266(WeMos D1 Mini)で動かすオープンソースの携帯ゲーム機『ESPboy』が面白い!

上記記事ではブレッドボードやユニバーサル基板を使ってESPboyを組み、デモゲームのインストールやWi-Fi経由でAppStoreから直接ゲームをダウンロード&インストールするなどの基本的な使い方をご紹介しました。

これはESPboyで出来ることのごく一部となり、公式サイトにはいろんなゲームエンジンをインストールしてプレイする方法などが紹介されており出来ることはかなり多くなります。

その中の一つとして『ESP8266 Little Game Engine』というものがあり面白そうなミニゲームが多数紹介されています。
自分でゲームを作成してESPboy上で動かす事も出来ます!

GitHubにプログラム(ファームウェア)が公開されているので、早速ユニバーサル基板で組んだESPboyくんにインストールしてみようとしたのですが・・・これがなかなか上手くいかず・・・。

かなり手こずったので、このLittle Game EngineをESPboyにインストールして遊ぶ方法を残しておこうと思います。
上記記事の追記的な内容となります。

ESPboyにLittle Game Engineをインストールする

ESPboyはWeMos D1 Mini(ESP8266)で動かすオープンソースハードウェアの携帯ゲーム機です。

製品版も販売されていますが、詳細な情報が公式サイトに公開されているので基板を製作して同様な仕様のものを作ることや自分仕様にアレンジして作ったりする事も出来ます。

興味ある方は、以下ESPboy公式サイトをご覧ください!

参考 multi-gadgetESPboy

また回路構成は比較的シンプルでスルーホールパーツを使えばブレッドボードやユニバーサル基板を使って簡単に組むことも出来ます。
前回の記事で詳しく紹介しているので、こちらも参考にして頂ければと思います。

【電子工作】ESP8266(WeMos D1 Mini)で動かすオープンソースの携帯ゲーム機『ESPboy』が面白い!

そして上記ESPboy公式サイトのリンクを辿っていろいろ見ていると出来ることが多すぎて非常に迷ってしまいます。
その中の一つに『ESP8266 Little Game Engine』というものがあります。
Web上でゲームの作成や動作確認など出来るようで、面白そうなミニゲームがたくさんあります。

これをインストールしてESPboy上で動かしてみたい・・・
GitHubにはこのゲームエンジン用のファームウェアが公開されています。
Arduino IDEを使いESPboyにサクッとインストールして動かしてみようとしたのですが、これがなかなか上手くいかず非常に手こずりました。

せっかく組んだESPboyなので、いろいろと遊んでみたいという方のために少し手順を残しておこうかと思います。

ESPboy Little Game Engineをインストールする!

ESPboyで動かす事が出来る「Little Game Engine」はGitHubに公開されています。
動かすのに必要なライブラリやその設定変更項目など書かれているのでその通りやれば上手く動くはずなんですが、ライブラリのバージョン等かなり手こずったので最短ルートで順を追ってやっていきます。

参考 ESPboy_little_game_engineGitHub

今回の作業はArduino IDEを使って行っていきます。
Arduino IDEのインストールがまだという方は、こちらの記事を参考にインストールを行って下さい。

Arduinoの開発環境を構築する。Arduino IDEのインストール方法!

上記GitHubのページからLittle Game Engineのファームウェアをダウンロードします。

zipファイルを解凍するとフォルダ名が[ESPboy_little_game_engine-master]となりますが、これを[ESPboy_little_game_engine]とフォルダ名を変更します。

そしてこのフォルダをArduinoフォルダ(librariesフォルダが入っている場所)に移動させます。
Arduinoスケッチが格納される通常のフォルダですね。

ここから必要なライブラリのインストールやディスプレイの仕様変更などを行っていきます。

ESPboyのコアとなるWeMos D1 MiniはESP8266開発ボードとなります。
Arduino IDEでスケッチのコンパイル&ボードへの書き込みの際にESP8266ボードパッケージが必要となります。

ESP8266ボードパッケージのインストールがまだという方は、こちらの記事を参考にまずインストールを行って下さい。

Arduino IDEでESP32やESP8266を使う時の環境設定を行う手順!

上記準備ができたら、[ESPboy_little_game_engine]フォルダ内にあるメインのファイル[ESPboy_little_game_engine.ino]を立ち上げます。
いくつかのヘッダーファイルも一緒に読み込まれます。
スケッチを見ると必要となるライブラリが複数あります。

必要なライブラリのインストール

必要となるいくつかのライブラリをインストールしていきます。

[Adafruit_MCP4725]

ブレッドボードで簡易的に組む場合は使っていませんが、ESPboyに使われているMCP4725というD/Aコンバータモジュールを制御するためのライブラリのインストールが必要となります。

Arduino IDEの[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理]へと進みます。

[MCP4725]で検索すると[Adafruit_MCP4725]というライブラリが見つかります。
これをインストールします。

[TFT_eSPI]

同様に[TFT_eSPI]ライブラリをインストールします。

他のライブラリはGitHubからダウンロードします。

[ESP_EEPROM]

こちらのページから[ESP_EEPROM]ライブラリをダウンロードします。


ダウンロードしたzipファイルを解凍してできた[ESP_EEPROM-master]フォルダをArduinoの[libraries]フォルダ内に入れて完了です。

[Adafruit-MCP23017-Arduino-Library]

次に[Adafruit_MCP23017]ライブラリです。
ESPboyにはMCP23017というIO端子を増やすためのIOエキスパンダチップが使われています。
これを制御するためのライブラリなんですが、使用するバージョンは非常に手こずりました。

このライブラリはバージョン2.0.0のアップデート以降、Adafruit_MCP23017.hがAdafruit_MCP23X17.hに変わっているようで、ESPboyのファームウェアに合わすため古いバージョンのものが必要となります。

こちらからV1.1.0をダウンロードして、解凍したフォルダ[Adafruit-MCP23017-Arduino-Library-1.1.0]を同様にArduinoの[libraries]フォルダ内に入れます。

[coos]

最後に[ESPboy_little_game_engine]フォルダ内に[libraries.7z]という圧縮ファイルがあるのでこれを解凍します。
解凍して出来たフォルダ内に[coos]というライブラリが入っているのでこれを同様にArduinoの[libraries]フォルダに入れます。

他は必要ありません。([TFT_eSPI]ライブラリは先程インストールしました)

TFTディスプレイのドライバのタイプとピン番号の設定

次にSPI接続しているディスプレイの設定です。
先ほど入れた[TFT_eSPI]ライブラリのユーザー設定ファイルを変更します。

Arduinoの[libraries]フォルダ内の[TFT_eSPI]フォルダ内にある[User_Setup.h]ファイルをテキストエディッタ等を使い開いて編集していきます。

ESPboyで使っているTFTディスプレイはSPI接続のST7735ドライバを使い制御するタイプのものとなるためデフォルトから少し設定を変更します。

コメントアウトしている部分を外し[#define ST7735_DRIVER]を有効にします。(他はコメントアウトして下さい!)

次にディスプレイのピクセル数は128×128なので以下の部分のコメントアウトを外します。

次にハードウェアバージョンです。
[#define ST7735_GREENTAB3]を有効にします。

次にディスプレイのピン配列の変更です。
以下の部分を見つけてCS/DC/RSTのピンを以下のように変更します。

最後に動作周波数の変更です。
以下を有効にして完了です。
ファイルを上書き保存するのをお忘れなく!

WeMos D1 Miniにスケッチを書き込む

ライブラリのインストール及びディスプレイの設定変更が出来ました。
これでコンパイル出来るはずなのでWeMos D1 Miniにスケッチを書き込みます。
ボード設定は以下のようになります。

[ツール]→[ボード]に進むと[ESP8266 Boards]という項目があります。

この中の[LOLIN(WEMOS D1 R2 & mini)]を選択します。

特にデフォルト設定から変更する必要はありませんがこのような設定になります。

あとはPCと接続しシリアルポートを選択、通常通りアップロードボタンをクリックしてスケッチの書き込みを行います。
無事スケッチの書き込みが出来れば完了です!
お疲れさまでした!

起動するとミニゲームが1つ入っているので遊ぶことが出来ます。

プラグインを使って他のゲームデータをインストールする

ESPboy little game engineのインストールが完了したら上記のようなテスト用のゲームが1つ入っています。

それでは他のゲームのROMデータもWeMos D1 Miniにアップロードしてみます。
これには[Arduino-esp8266littlefs-plugin]とういプラグインを使ってアップロードします。

一応確認ですが、[ESPboy_little_game_engine]フォルダ内に[data]というフォルダがあります。
このフォルダ内に多数のゲームやテストプログラムが入っているのが確認できます。

それではこれらをWeMos D1 Miniにアップロードします。
まずこちらから[Arduino-esp8266littlefs-plugin]プラグインをダウンロード&解凍します。

[Arduino]フォルダ内に新たに[tools]という名称のフォルダを作成しこの中に解凍したフォルダ[ESP8266LittleFS]を入れます。

参考サイト:arduino-esp8266littlefs-plugin

これでプラグインの準備は完了です!
Arduino IDEを再起動すると、[ツール]の項目に[ESP8266 LittleFS Data Upload]という項目が追加されています。

あとはWeMos D1 MiniをPCと接続し、上記ボタンをクリックすると他のゲームデータもインストールする事が出来ます。

ごっそりとミニゲームをインストールすることが出来ました。

MEMO
ゲームプレイ中に[L][R]ボタンを同時に押すとポーズとなり、[A]ボタンをクリックするとメニュー画面に戻り他のゲームを選択できます!

最後に!

ESPboyにLittle Game Engineをインストールしてみました。
ミニゲームを多数プレイすることができ非常に面白いですね!

そしてGithubには他のゲームエンジンなども多数紹介されているので試してみると面白いかと思います。
ゲーム以外にも拡張端子を使ったアプリなども多数あり試すことが出来ます。

参考 ESPboyGitHub

ブレッドボードでも簡単に組めるので、1台作っておくといろいろと遊べて楽しいですよ!

【電子工作】ESP8266(WeMos D1 Mini)で動かすオープンソースの携帯ゲーム機『ESPboy』が面白い!
【ESPboy】ESP8266で動かす携帯ゲーム機ESPboy。基板を製作して完成させました!【JLCPCB】

コメントを残す