![見出し画像](https://assets.st-note.com/production/uploads/images/117493569/rectangle_large_type_2_a92da7e122fd27ebccc21b0e723dd18a.png?width=1200)
ESPBoyの作り方(1)
みなさんこんにちは
あと少しで10月になりますが、まだ涼しくなりませんね!
さて、今日のnoteでは、ESPBoyの作り方をみなさんと共有したいと思います。
ESPBoyの作り方をネットで調べるといろいろ出てきますが、今回私が制作している過程でまとめたものを共有します。
内容が少し多いので、二回に分けて皆さんにお届けしようと思います。
今回のnoteでは、ESPBoyプロジェクトが公開しているPCBで実装した内容となります。次回のnoteでは私のオリジナルPCBの内容を紹介します。
300円の値段設定していますが、最後まで読めます。
さて始めましょう!
ESPBoy
ESPBoyといえば、知っている人も多いかもしれません。
ESPboyはオープンソースハードウェアとして開発されています。製品版もあります。今回作ったのは、公開されているバージョンです。Free ESPboy1 DIY v4.3
より詳細な情報は下記の本家のウェブサイトをご参照ください。
上記のサイトにもリンクがありますが、今回作るFree ESPboy1 DIY v4.3 です。
上記のサイトでは、ESPBoyの説明、回路図、必要な部品など詳しく記載しています。
回路図はこちらです:
![](https://assets.st-note.com/img/1695950451640-1y9zjrQOp3.png)
こちらの内容を参照すれば、基本は問題なく制作できるはずです。
ここでは、単体のESP8266ではなく、ESP8266をベースにしたWeMos D1 Mini(Lolin)を使っています。
WEMOS D1についてはこちらのメーカーのサイトにありますが、ところが、そこは最新のバージョンしかないようです。https://www.wemos.cc/en/latest/d1/d1_mini.html
今回使っているのは、すこし古いのバージョンのWeMos D1 Mini(Lolin)です。
ちなみに、ブレッドボード版もあります。
こちらです:
![](https://assets.st-note.com/img/1695947683889-6sChKyqUEx.png?width=1200)
今回はPCB版のほうを作りました。
ESPBoy PCBを注文する
![](https://assets.st-note.com/img/1695948110883-nI65UkLCdH.jpg?width=1200)
PCBを簡単に注文する手順をご説明します。
まず、oshwlabのサイト(https://oshwlab.com/ESPboy/espboy_v4-3)から、下記のように、「Open in Editor」をクリックします。
![](https://assets.st-note.com/img/1695948421224-VNtP5Xz7no.png?width=1200)
そうすると、EasyEDAを開くことができます。(ユーザ登録が必要な場合があります。)
EasyEDAが開いて、PCBのデザイン画面でPCBのデザインを確認できます。
気になるところは、ここで修正することも可能ですが、今回はそれを我慢して、そのままのデザインで発注したいと思います。
![](https://assets.st-note.com/img/1695948415207-yycpCjLVZh.png?width=1200)
次は、一番上の「Fabrication(製造)」メニューをクリックして、「One-click Order PCB/SMT 」をクリックすします。
![](https://assets.st-note.com/img/1695948722550-Xjo7A6y5Bh.png?width=1200)
「Yes, Check DRC」をクリックします
![](https://assets.st-note.com/img/1695948781406-a2t5bv77LR.png?width=1200)
次は、「One-click Order PCB/SMT」を選んで、次に進みます。
![](https://assets.st-note.com/img/1695948781546-tKXwNFfz2p.png?width=1200)
「OK」をクリックして、進みます。
そうすると、JLCPCBのウェブサイトに飛んで、Gerberファイルも自動的にアップロードされます。
普段はこの手順はいつも手動でやっていましたが、ちょっと感動です!
![](https://assets.st-note.com/img/1695948781773-SUwzSy4fix.png?width=1200)
あとは、全部JLCPCBでPCBを注文すると同じ手順なので、ここで割愛します。
半田付け
配送の選択によりますが、一番安い配達プランでも大体一週間程度で届きます!
PCBデザインにうるさい人は、これを見ていろいろ言いたいことがあるかもしれませんが、ここで我慢してこのPCBを使って半田付けをします。
![](https://assets.st-note.com/img/1695949097477-57tIagx75O.jpg?width=1200)
PCBを注文している間、ほかの必要な部品もLCSCやAliExpressから調達できましたので、すぐ半田付けができるようになっています。
半田付けの過程は割愛します。
出来上がったのはこちらです!
![](https://assets.st-note.com/img/1695949239030-egGx686g4I.jpg?width=1200)
ボタンが注文し忘れて、別のボタンで代用しました!苦笑
UMH3Nのような小さい部品もあって、半田付けは苦労した箇所があります。
WeMos D1 Mini(Lolin)は写真のように、ピンヘッダーにさして使います。
この制作した後、音がとても小さくて、原因は指定した50Ωのスピーカーが手元になくて、下記のスピーカーを使っていたからです。
![](https://assets.st-note.com/img/1695950212399-xjOeixcCQN.jpg?width=1200)
音を大きくするために、シンプルな5V駆動D級アンプをつけてみました。そうすると、音が大きくなって問題を解決しました。
皆さんの場合は、説明の通りに制作すればこの部分の変更は不要です。
![](https://assets.st-note.com/img/1695950212318-UVYRKd9JKQ.jpg?width=1200)
プログラミングの部分
ESPBoyを遊ぶためには、「Little Game Engine」が必要です。
「Little Game Engine」はGitHubに公開しています。
これから、「Little Game Engine」を動作させるまでの手順を説明します。
GitHubのほうにも説明がありますので、合わせてご参照ください。
(「Little Game Engine」を頭文字をとってLGEと言います。)
環境
今回はArduino IDEを使います。
ArduinoIDEの最新版も試しましたが、うまく行かず、すこし古いバージョン1.8.19でうまく行きましたので、こちらをお勧めします。
まず、GitHubのページからLittle Game Engineのファームウェアをダウンロードします。
![](https://assets.st-note.com/img/1695950987234-qtHlqmwJig.png?width=1200)
zipファイルので、解凍した後、そのフォルダをArduinoフォルダ(librariesフォルダが入っている場所)に移動させます。
![](https://assets.st-note.com/img/1695951097973-0MO7Bl2cfZ.png?width=1200)
ESP8266ボードパッケージインストール・確認
ESPboyは上述のようにWeMos D1 MiniはESP8266開発ボードなので、Arduino IDEでスケッチのコンパイルとボードへの書き込みするためにESP8266ボードパッケージが必要となります。
![](https://assets.st-note.com/img/1695951236472-pI0WmOzs8w.png?width=1200)
Arduino IDEの環境設定画面で、追加ボードマネジャーのURLにesp8266ボード情報(https://arduino.esp8266.com/stable/package_esp8266com_index.json)を入れて、ボードを使えるようにしましょう。
ESPboy_little_game_engine.ino
次は、[ESPboy_little_game_engine]フォルダ内にある「ESPboy_little_game_engine.ino」を開きます。
![](https://assets.st-note.com/img/1695951451275-yATXcsEWm3.png?width=1200)
このままだとまだ動かないので、必要なライブラリなどをインストールします。(ほかのプロジェクトですでにインストールされたライブラリはスキップしてもよい)
Adafruit_MCP4725
Arduino IDEのメニューバーから、「スケッチ」>「ライブラリをインクルード」>「ライブラリを管理」へと進んで、下記の画面でAdafruit_MCP4725を入れてライブラリを検索します。
![](https://assets.st-note.com/img/1695951680552-cCBlb7xO2T.png?width=1200)
見つけたライブラリをインストールします。
TFT_eSPI
同様にTFT_eSPIもインストールします。
![](https://assets.st-note.com/img/1695951761753-2UwCsrR3X2.png?width=1200)
Adafruit-MCP23017-Arduino-Library
最新版が動かない場合は、バージョン1.1.0を入れる必要があります。
![](https://assets.st-note.com/img/1695951873835-vKkB0amFE5.png?width=1200)
ESP_EEPROM
![](https://assets.st-note.com/img/1695951953450-FgjeEi03dj.png?width=1200)
coos
最後に「ESPboy_little_game_engine」フォルダ内に[libraries.7z]という圧縮ファイルがあるのでこれを解凍します。
![](https://assets.st-note.com/img/1695952415496-RNzTn7DThp.png?width=1200)
解凍して出来たフォルダ内に[coos]というライブラリが入っているのでこれをArduinoの「libraries」フォルダに移動します。
TFTディスプレイのドライバの関連設定
上の手順でTFT‗eSPIのライブラリをインストールして用意しましたが、それを使えるためには、ESPBoyが使うディスプレーにあわせていくつかの設定を直す必要があります。
User_Setup.h
まず、Arduinoの「libraries/TFT_eSPI」のフォルダにある「User_Setup.h」ファイルを開いて編集します。
![](https://assets.st-note.com/img/1695952701560-Np1HxXAVu3.png?width=1200)
47行のコメントアウトを外して、ST7735ディスプレードライブを使うよと宣言する。ESPBoyはST7735のディスプレードライバを使って制御するタイプの液晶ディスプレーを使っているからです。
![](https://assets.st-note.com/img/1695952848979-Lqh4npvhZe.png?width=1200)
次は、ディスプレーの縦横のピクセル数を設定します。85、89行面目コメントアウトを外します。
![](https://assets.st-note.com/img/1695952973282-9bgk8xIsB4.png?width=1200)
次は、104行コメントアウトを外します。
![](https://assets.st-note.com/img/1695953063445-KOAs3gNGP9.png?width=1200)
次は、上のように、169-172行まで、ディスプレーのピンを設定します。-1はそれを使わないことを意味しています。
最後、357行のSPI動作周波数を下記のようになることを確認して、ファイルを保存します!
当然ですが、保存しないと有効にならないので、ご注意ください。
![](https://assets.st-note.com/img/1695953170574-R7qbIKhc3H.png?width=1200)
これで一通り準備ができました。
次は、スケッチを実際にESPBoyに書き込みます。
スケッチの書き込み
まずArduino IDEのメニューバーから、「ツール」>「ボード」に進み、「ESP8266 Boards」を選びます。
続いて、「LOLIN(WEMOS D1 R2 & mini)」を選びます。
![](https://assets.st-note.com/img/1695953616139-2gX86YO0CP.png?width=1200)
書き込みに関する設定は下記の通りにしておいてください。
![](https://assets.st-note.com/img/1695953745148-huxg3lLOLR.png)
ESPBoyをUSBケーブルでパソコンに差し込んで、シリアルポートを選んで、書き込みを実行します。
問題なく書き込めたら、ゲームが一つ入っています!
早速遊ぶことができます!
おめでとうございます!
![](https://assets.st-note.com/img/1695954500760-WX0OMzBggr.jpg?width=1200)
しかし、ご覧の通り、私の作りがとても雑だということもあって、とてもプレーしにくい仕上がりになっています!
笑
なので、次回は独自のPCBを設計して、すべてをきれいにまとめるバージョンをご紹介します!
ちょっとチラ見せします!
![](https://assets.st-note.com/img/1695954723959-rZ6y4cGwyJ.png?width=1200)
次回はこちらの詳細を書きます!
ではまた次のnoteで会いましょう!
ここから先は
¥ 300
Amazonギフトカード5,000円分が当たる
株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world