見出し画像

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の説明、回路図、必要な部品など詳しく記載しています。
回路図はこちらです:


こちらの内容を参照すれば、基本は問題なく制作できるはずです。
ここでは、単体のESP8266ではなく、ESP8266をベースにしたWeMos D1 Mini(Lolin)を使っています。

WEMOS D1についてはこちらのメーカーのサイトにありますが、ところが、そこは最新のバージョンしかないようです。https://www.wemos.cc/en/latest/d1/d1_mini.html

今回使っているのは、すこし古いのバージョンのWeMos D1 Mini(Lolin)です。
ちなみに、ブレッドボード版もあります。
こちらです:


写真は上記サイトから引用

今回はPCB版のほうを作りました。

ESPBoy PCBを注文する


ESPBoy PCB

PCBを簡単に注文する手順をご説明します。
まず、oshwlabのサイト(https://oshwlab.com/ESPboy/espboy_v4-3)から、下記のように、「Open in Editor」をクリックします。

そうすると、EasyEDAを開くことができます。(ユーザ登録が必要な場合があります。)
EasyEDAが開いて、PCBのデザイン画面でPCBのデザインを確認できます。
気になるところは、ここで修正することも可能ですが、今回はそれを我慢して、そのままのデザインで発注したいと思います。

次は、一番上の「Fabrication(製造)」メニューをクリックして、「One-click Order PCB/SMT 」をクリックすします。

「Yes, Check DRC」をクリックします

次は、「One-click Order PCB/SMT」を選んで、次に進みます。

「OK」をクリックして、進みます。
そうすると、JLCPCBのウェブサイトに飛んで、Gerberファイルも自動的にアップロードされます。
普段はこの手順はいつも手動でやっていましたが、ちょっと感動です!

あとは、全部JLCPCBでPCBを注文すると同じ手順なので、ここで割愛します。

半田付け


配送の選択によりますが、一番安い配達プランでも大体一週間程度で届きます!
PCBデザインにうるさい人は、これを見ていろいろ言いたいことがあるかもしれませんが、ここで我慢してこのPCBを使って半田付けをします。

PCBを注文している間、ほかの必要な部品もLCSCやAliExpressから調達できましたので、すぐ半田付けができるようになっています。
半田付けの過程は割愛します。
出来上がったのはこちらです!

完成したESPBoy

ボタンが注文し忘れて、別のボタンで代用しました!苦笑
UMH3Nのような小さい部品もあって、半田付けは苦労した箇所があります。

WeMos D1 Mini(Lolin)は写真のように、ピンヘッダーにさして使います。

この制作した後、音がとても小さくて、原因は指定した50Ωのスピーカーが手元になくて、下記のスピーカーを使っていたからです。

音を大きくするために、シンプルな5V駆動D級アンプをつけてみました。そうすると、音が大きくなって問題を解決しました。
皆さんの場合は、説明の通りに制作すればこの部分の変更は不要です。

プログラミングの部分

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のファームウェアをダウンロードします。

zipファイルので、解凍した後、そのフォルダをArduinoフォルダ(librariesフォルダが入っている場所)に移動させます。

ESP8266ボードパッケージインストール・確認


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

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」を開きます。


このままだとまだ動かないので、必要なライブラリなどをインストールします。(ほかのプロジェクトですでにインストールされたライブラリはスキップしてもよい)

Adafruit_MCP4725


Arduino IDEのメニューバーから、「スケッチ」>「ライブラリをインクルード」>「ライブラリを管理」へと進んで、下記の画面でAdafruit_MCP4725を入れてライブラリを検索します。

見つけたライブラリをインストールします。

TFT_eSPI

同様にTFT_eSPIもインストールします。 

Adafruit-MCP23017-Arduino-Library

最新版が動かない場合は、バージョン1.1.0を入れる必要があります。

ESP_EEPROM


coos

最後に「ESPboy_little_game_engine」フォルダ内に[libraries.7z]という圧縮ファイルがあるのでこれを解凍します。

解凍して出来たフォルダ内に[coos]というライブラリが入っているのでこれをArduinoの「libraries」フォルダに移動します。

TFTディスプレイのドライバの関連設定

上の手順でTFT‗eSPIのライブラリをインストールして用意しましたが、それを使えるためには、ESPBoyが使うディスプレーにあわせていくつかの設定を直す必要があります。

User_Setup.h

まず、Arduinoの「libraries/TFT_eSPI」のフォルダにある「User_Setup.h」ファイルを開いて編集します。

47行のコメントアウトを外して、ST7735ディスプレードライブを使うよと宣言する。ESPBoyはST7735のディスプレードライバを使って制御するタイプの液晶ディスプレーを使っているからです。


次は、ディスプレーの縦横のピクセル数を設定します。85、89行面目コメントアウトを外します。


次は、104行コメントアウトを外します。

次は、上のように、169-172行まで、ディスプレーのピンを設定します。-1はそれを使わないことを意味しています。

最後、357行のSPI動作周波数を下記のようになることを確認して、ファイルを保存します!
当然ですが、保存しないと有効にならないので、ご注意ください。

これで一通り準備ができました。
次は、スケッチを実際にESPBoyに書き込みます。

スケッチの書き込み


まずArduino IDEのメニューバーから、「ツール」>「ボード」に進み、「ESP8266 Boards」を選びます。

続いて、「LOLIN(WEMOS D1 R2 & mini)」を選びます。


書き込みに関する設定は下記の通りにしておいてください。

ESPBoyをUSBケーブルでパソコンに差し込んで、シリアルポートを選んで、書き込みを実行します。

問題なく書き込めたら、ゲームが一つ入っています!
早速遊ぶことができます!
おめでとうございます!

しかし、ご覧の通り、私の作りがとても雑だということもあって、とてもプレーしにくい仕上がりになっています!

なので、次回は独自のPCBを設計して、すべてをきれいにまとめるバージョンをご紹介します!
ちょっとチラ見せします!

次回はこちらの詳細を書きます!
ではまた次のnoteで会いましょう!

ここから先は

0字

¥ 300

株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world