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

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

ESPboy』というESP8266マイコンボードを使った面白そうな携帯ゲーム機が前々から気になっていたので作ってみました!

ESPboyはWeMos D1 Mini(Lolin)という小型なESP8266開発ボードを使ったオープンソースの携帯ゲーム機です。
オープンソースハードウェアとして開発が進められているようで、いくつかのバージョンがあるようです。
ESPboy公式サイトには初代バージョンとなるESPboyとその改良版にあたるESPboy2が完成品(製品版)として販売もされています。

オープンソースハードウェアなので、回路図や基板ファイルなど詳細なデータが公開されています。
そのため、サイトに公開されているこれらの情報を参考にして製品版として販売されているESPboyと同じ仕様のものを自分で作ることや、カスタマイズして自分仕様のESPboyなんかを作ることも出来ます!

そしてESPboy用に作られた専用ゲームやパソコン用のレトロゲームなどをインストールして遊ぶことが出来ます。
また、Wi-Fi経由でAppStoreからゲームをダンロードしたりする事も出来ます。
マイコンを使って携帯ゲームを動かし遊ぶことが出来る・・・これは非常に楽しいものです!

ESPboyの基本的な回路構成は非常にシンプルなので、ESP8266を使った学習用としても面白いかと思います。
入手しやすい汎用性のあるパーツで作れるので、ブレッドボードやユニバーサル基板を使い組むことも出来ます。
まずは試しに組んで動かしてみるのも面白いかと思います。

ESPboy公式サイトを参考にブレッドボードで組んで動かしてみましたが、これが非常に楽しく・・・
ユニバーサル基板を使い携帯ゲーム機っぽく操作しやすいように組み直してみました。

また回路だけではなく基板データも公開されているので、基板を製作する事により製品版として販売されている完成パッケージのようなものを作ることも出来ます。

ESPboyをブレッドボードやユニバーサル基板で組んで動かしてみる!

ESPboyとは?

ESPboyはESP8266開発ボードを使った携帯ゲーム機です。
前々から非常に気になっていたのですが、最近KiCadを使った基板設計の勉強も始めたことから作ってみようかななんて思いつき、まずブレッドボードで組んで動かしてみました。

なかなか面白い携帯ゲーム機となり多くの方が作られているようです。
多数の動画がアップされているので見ていると作ってみたくなりますよね!

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

また基板データも公開されているので、気に入れば基板を製作し製品版として販売されているようなものを作ることも出来ます。
こちらは表面実装パーツが必要なので、パーツの入手は少し大変かもしれません!

興味ある方は以下ESPboy公式サイトから詳細を確認してみて下さい!

参考 multi-gadgetESPboy

上記ESPboyのサイトから初代バージョンにあたるESPboyやその改良版となるESPboy2の製品版を購入する事も出来ます。

またESPboyはオープンソースハードウェアなので詳細な情報が公開されています。
電子工作をやられている方ならブレッドボードを使って簡単に組むことができ、そのまま遊ぶことも出来ます。

私はブレッドボードで組んで遊んでみて非常に面白かったので、ユニバーサル基板でも組んでみました。
携帯ゲーム機なのでボタン配置など、この方が操作性はいいと思います。

ESPboyの内部構成

ESPboyのコアとなるマイコンは、ESP8266開発ボードの中で非常に有名なWeMos D1 Miniが使われています。
WeMosは最近ブランド名をLolinと変えたようなので、今ではLollin D1 Miniと言った方がいいかもしれませんね。

WeMos D1 Miniに関してはこちらの記事で詳しく解説しているので一緒に見て頂ければと思います。

ESP8266開発ボード『WeMos D1 mini(Lolin)』の基本的な使い方!

WeMos D1 Miniは小型で使いやすいESP8266開発ボードとなり、電子工作で便利に使えます。
これまでいくつか製作物を作りました。
小型で便利に使えるESP8266マイコンボードです。

ESP8266で動かすミニウェザーステーションの製作!【WeMos D1 Mini】
【電子工作】ESP8266で動かすミニラジコン「Mini Tank」の製作!【WeMos D1 Mini】

WeMos(Lolin)製品のマイコンボードは他にもWeMos D1 R32やLolin32などいくつか有名なボードがあります。
技適が取得され国内で合法的に使えるボードもいくつかありますが、ESPboyで使われているWeMos D1 Miniは日本での技適が取得されていないのでその使用には注意も必要です。

上記ESPboy公式サイトを見れば、製作に必要な情報は全て詳細に書かれています。
サイトのリンクを辿っていくと簡略化された回路もあるので、ブレッドボードで組んで動かしてみたい場合はこれで十分動作します。

Wemos D1 Miniに1.4インチのTFTカラーディスプレイ(128×128)やタクトスイッチ、スピーカー、IOエキスパンダICなど比較的入手しやすいパーツばかりなので、興味ある方はまずブレッドボードで組んで動かして試してみるのがいいかと思います。

また詳細な回路図も公開されています。
こちらはV4.3のものとなります。

大まかな回路構成は先程の簡易的な回路と同じですが、リポバッテリーの充電用にTP4056モジュールが使われ、ディスプレイを円滑に動作させるためにDAコンバーターやスピーカー用のボリューム(半固定抵抗)やアンプ回路、また拡張ポートなども追加されていますが回路構成は基本的に同じです。
基板データも公開されているので、これを使って基板を製作し表面実装パーツで組む形となります。

ブレッドボードやユニバーサル基板で組んでみる!

ESPboyは先述のように入手しやすいパーツで構成されているので、ブレッドボードを使い簡単に組むことが出来ます。
まずブレッドボードで組んで動かしてみて気に入れば、ユニバーサル基板やPCB基板を製作して本格的に組んでみるのがいいと思います。

私もまずブレッドボードを使い組んで動かしてみました。

ブレッドボードで組む際は先程の簡易的な回路通りに組めば動作させることが出来ると思いますが、タクトスイッチが反応してくれず、またスピーカーの音量も小さかったので一部接続を変えて組みました。

スピーカー部分とプルアップ抵抗(4.7kΩ×2)を接続する部分のみ変えています。
参考になればと思います。

8つのタクトスイッチを制御するのと拡張ポート(今回は付けていません)を付けるとWeMos D1 MiniのIO端子が足りなくなることから、MCP23017というIOエキスパンダチップが使われています。
表面実装タイプのものは少し高価で入手性も悪いのですが、DIPタイプのチップなら安価で国内サイトでも入手する事が出来ると思います。

パーツ一覧

WeMos D1 Miniやタクトスイッチ・スピーカーなどの電子パーツは、Amazonなど国内サイトでも入手出来るパーツばかりです。
ブレッドボードやユニバーサル基板で組む場合、以下のパーツが必要となります。

パーツ一覧
Wemos D1 Mini
1.44インチTFT LCD(128×128)
抵抗(4.7kΩ) ×2
タクトスイッチ ×8
MCP23017(DIP型)
その他(スピーカー/リポバッテリーなど)

WeMos D1 Mini

WeMos D1 MiniはUSB端子がType-CとなったV4タイプのものが最新となりますが、国内サイトではV2タイプのものなら入手が可能です。
ブレッドボードのテストではV2タイプのものを使いましたが、問題なく動作させることが出来ました。

TFT LCD(1.44inch 128×128)

ディスプレイは1.44インチのカラーTFTディスプレイとなり、SPIで制御するタイプで制御チップにST7735が使われたものを選択して下さい。

抵抗

エキスパンダチップ(MCP23017)はI2Cで制御するチップですが、そのプルアップ抵抗として4.7kΩの抵抗が2本必要となります。

また私はスピーカーの音量増大のためにトランジスタを使いましたが、そのベース側にもう1本4.7kΩのものを使いました。

電子工作用途で抵抗はよく使われますが、お持ちでないならバラで買うよりセットものを1つ持っていると便利です!

タクトスイッチ

タクトスイッチは今回6mmサイズのものを使いました。
ブレッドボードで組むなら大きな12mmのものも使えますが、上手くボタン配置するのが配線的に難しいのでこのサイズのものが良いと思いますが、お好みで・・・。

MCP23017(DIP型)

IOエキスパンダチップにDIP型のMCP23017チップが1つ必要となります。
マイコンのIOが足りない時に増やすことが出来る便利なICでDIP型のものはいくつか持っていましたが、調べてみるとこのチップだけ入手が難しいかもしれません。

記事掲載時、秋月電子さんでは在庫切れとなっていましたが定期的に入手はされているようです。

1個 MCP23017-E/SP DIP-28 MCP23017 16-Bit I/O Expander I2C Interface IC
TYSQXQ

その他

ブレッドボードで動かすならUSB端子から電源供給させ動かすことが出来ますが、ユニバーサル基板で作り独立させて動かしたい場合はリポバッテリーも必要となります。

動作確認

ESPboy Flasherを使いゲームをインストール

ブレッドボードで回路が組めたら、まず動作確認です。
ESPboy Flasherを使いゲームをインストールしてみます。

ESPboy Flasherを使えば、PCと接続してWebサイトからデモゲームをESPboyにインストールする事が出来ます。

参考 ESPboy FlasherESPboy AppStore Demo

WeMos D1 MiniをPCと接続し上記ESPboy Flasherサイトからゲームを選択して[INSTALL]をクリックします。

接続しているシリアルポートを選択し[接続]をクリックするとゲームがインストールされます。

インストールは数秒で完了します!

MEMO
インストールに失敗する場合は、WeMos D1 Miniのリセットスイッチを押して再度やってみて下さい!

ESP8266でこんなレトロゲームが動いちゃうんですね!

AppStoreを使いWi-Fi経由でインストール

ESPboyは専用に作られたゲーム以外にもゲームボーイ用ソフトなど様々なゲームやアプリを動かすことが出来るようです。
出来ることが多すぎてまだ遊びきれていないのですが・・・

ESPboyにはAppStoreが用意されていて、Wi-Fi機能を使いゲーム等を直接ダウンロード&インストールする事も出来ます。

テスト動作としては上記ESPboy FlasherのサイトにあるAppStore2をインストールして試してみるのがいいと思います。(インストール方法は先程と同じです)

インストールが完了したらAppStoreに接続することが出来ますが、まずWi-Fi環境の設定が必要となります。

アプリを起動するとこのように表示されます。
【Aボタン】(上記回路図の右から4つ目のボタン)を押しながら起動すると以前設定したWi-Fiネットワークで接続、【Bボタン】(3つ目のボタン)を押しながら起動するとWi-Fi環境の設定を行うことができます。

まず【B】ボタンを押しながら起動するとWi-Fi設定画面になります。
接続可能なネットワークを選択し、SSIDを入力したらAppStoreに接続する事が出来ます。
入力内容は記憶されるので、以後【A】ボタンを押しながら起動すると前回接続したネットワークでAppStoreに接続する事が出来ます。

ここからゲームやアプリを選択してWi-Fi経由でダウンロード&インストールしてプレイすることが出来ます。

動作確認としては以上です。

これはESPboyで出来ることのごく一部です。
他のゲームや、また今回は付けていませんが拡張ポートを使ってネットラジオにしたりGPSを付けて・・・なんてこともいろいろと出来るようです。

ESPboyを使った作例はネットを探せば多数出てきます。
公式サイトのリンクを辿っていろいろと試してみると面白いと思います。

この時点で私はハマってしまい、ブレッドボードではどうしても配線が邪魔で操作しにくいことからユニバーサル基板を使って組み直しました。
少し不格好ですが操作はしやすくなりました。

また基板も発注しているので、製品版のような外形のものも作ってみようと考えています。
こちらは表面実装パーツが必要となり、国内サイトだけでは入手しにくいパーツも多いことから製作には時間がかかりそうです。

PCB基板を製作し製品版と同じ仕様のものを作ることも可能

ESPboyの基板データも公式サイトに公開されているので、製品版ESPboyと同様な仕様のものを作ることも出来ます。

公式サイトのリンクを辿っていくと、ESPboy V4.3のページがあります。
V3.7など他のバージョンのものも見つけることが出来ますが、2022.10月現在、V4.3が最新バージョンになるようです。

参考 ESPboy_v4.3ESPboy

回路構成などはほぼ同じですが、バージョンによって使われているパーツが微妙に異なり表面実装パーツのサイズなどの違いもあるので、基板を製作しパーツを入手する際は注意が必要です!

上記V4.3のページに詳細な回路図および基板データが掲載されています。
[Open in editer]をクリックしEasyEDA(Webで動作する基板設計ソフト)で確認する事ができます。

大まかな回路構成は先程の簡易的な回路と同じですが、リポバッテリー充電用にTP4056が使われ、ディスプレイを円滑に動作させるためにDAコンバーターやスピーカー用のアンプ回路、拡張ポートなどが追加されているようです。

同様に基板データもPCBの項目にある[Open in editer]をクリックしEasyEDAから確認する事が出来ます。

WeMos D1 Miniは技適の問題もあるので、技適が取得されたESP-WROOM-02を使った回路構成にカスタマイズさせたりと・・・回路設計が出来る方ならここからカスタマイズ等やってみるのも面白そうですね。

とりあえず私はブレッドボード&ユニバーサル基板で組んでみて面白かったので、公開されているV4.3の基板を作り組んでみようと考えています。

一応EasyEDAでのガーバーファイル(基板データ)のエクスポート方法です。
EasyEDAで上部にある[G]マークをクリックするとこのような画面が表示されます。
デザインルールチェックは公開されているもので問題ないと思いますが、[Yes,Check DRC]をクリック。

[Generate Gerver]をクリックするとガーバーファイルをPCにダウンロードする事が出来ます。

基板製作依頼の際にこのダウンロードしたガーバーファイル(zipファイル)を基板製造メーカーのサイトにそのままアップロードすれば基板の発注が行えます。(JLCPCBを使う場合、上記画面で[One-click Order PCB/SMT]から直接発注することも出来ます)

またJLCPCBでの基板発注方法に関しては、こちらの記事で詳しく解説しているので参考にして下さい。

【電子工作】はじめての基板製作!JLCPCBさんに基板を発注してみました。ユーザー登録・データ納品・基板到着までの一連の流れをご紹介!

基板製造時にランダムで?基板発注番号がシルクプリントされてしまいますが、このV4.3の基板データではピンソケットが入る部分にこれが入るように指定されているので追加料金もかからず、邪魔な発注番号が見えない位置に来るようになっています。

MEMO
JLCPCBでは「JLCJLCJLCJLC」と指定した位置にオーダー番号を持っていくことが出来ます。(無料)

具体的な発注はこんな感じです。
お好みの基板色(レジスト)を選択し、あと[Remove Order Number]の項目は[Specify a location]を指定するだけです。
あとはデフォルト設定で問題ありません。

現在この基板を発注していますが、JLCPCBさんでは海外からの送料も含めて500円ほどで作ることが出来ます。
非常にお安くて、ビックリですよね!

また上部と底面プレートのデータも公開されているので、必要なら一緒に発注するのもいいかと思います。
私はメインの基板のみを発注し、メカ部分むき出しで使おうと考えています。
必要なら3Dプリンタでケースを作ってみるのもいいかもしれません!

とりあえず基板は発注しましたが、こちらで使うパーツは表面実装パーツが主となり国内ショップのみではなかなかパーツを揃えることが出来ないと思います。
また後日ご紹介できればと思います。

【ESPboy】ESP8266で動かす携帯ゲーム機ESPboy。基板を製作して完成させました!【JLCPCB】

【追記】Little Game Engineをインストールしてミニゲームを多数プレイする!

ESPboyに「Little Game Engine」をインストールして多数ミニゲームをプレイできるようにしてみました。

多くのミニゲームが用意されており、自作ゲームを作って動かすことも出来るようですね!

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

最後に!

ESP8266でレトロゲームを動かすことが出来る・・・ちょっと驚きで、動かしてみると非常に面白いですね!

出来ることが多いのでごく一部しかご紹介できませんでしたが、入手しやすいパーツ構成なので興味ある方はまずブレッドボードで組んで動かしてみるのがいいと思います。

気に入ればユニバーサル基板で作ったり、基板を発注して本家のような形状のESPboyを作ったり、または自分仕様にカスタムしたものを作ってみるのも面白そうですね。

1個 MCP23017-E/SP DIP-28 MCP23017 16-Bit I/O Expander I2C Interface IC
TYSQXQ

1 COMMENT

【ESPboy】ESP8266で動かす携帯ゲーム機ESPboy。基板を製作して完成させました!【JLCPCB】 | ぶらり@web走り書き へ返信する コメントをキャンセル