Mira&Luna's nursery lab

旅乙女と発明娘の子供部屋

Arduboy の自作🔧電子工作。その3.ブレッドボード上で配線。ゲームの動作確認をします🍊

Mira

小型ゲーム機の自作🎮
     手作りArduboyを作ろう(∂, <🎀/
その配線&動作確認編


      ←本家 Arduboy。これ(の互換機)を作ります。

<目次>
その1.【パーツ準備編
その2.【PC内環境 準備編
その3.【配線&動作確認編】 (この記事)
その4.【実装編
その5.【"Arduventure" クリア動画
その6.【ポート認識トラブル解決編
その7.【"SIRÈNE" プレイ動画
その8.【"CastleBoy" プレイ動画



◆ 完成したときの大きさ。ココアシガレットと同じくらい。

楽しい電子工作🍎 小型ゲーム Arduboy を自作しています。Arduboy はオープンソースソフトウェアのゲームで、Arduino IDE (Arduino 開発環境)を使えば自由にゲームを作ることができる。そしてそれを世界中の人と共有したり、世界中の人が作った自作ゲームをダウンロードしたりできるの。
おもしろいプロジェクトよね。

ゲーム機を自作するためのパーツとソフトウェアを、以前の記事「その1」「その2」で準備したので、今回はそれらを実際に配線してみて動作確認をしていきます。
楽しみ~👒


.配線をする。
◆ ブレッドボード

私、ブレッドボードって好きなの。なんでだろう? 実験するときにはいつも登場するし、どんな配線も簡単にできちゃうからかな? 電子工作を始めたばかりのときのわくわくした記憶がよみがえるからかな? 見た目も好きだし。それに「ブレッドボード」っていう名前も好き。昔は名前の通り、パン切り用の生板を実験道具として使っていたんだって。どこが好きかって訊かれてもわからない。ただ、とっても好きなの。ブレッドボードが。

こんな ↓ かわいいブレッドボードもあります。
  "いぶし銀"の安心感→ 


ボタンやディスプレイなどを Arduino Pro Micro にどう配線するかは Arduboy のライブラリに書かれているので、ArduboyライブラリのHファイルを開いて調べました。
でも Arduboy 公式ページに「DIYの配線」についての質問のやりとりがあって、そこに一覧のように配線が書かれていました。それを見れば簡単に分かったのね(「CSを忘れてるよ」という意見も書かれてたけど)。自作方法を公式ページで教えてくれるなんて、さすがオープンソースのゲームね。
リンクを貼っておきます。→ DIYのための配線一覧についての対話

<配線>
ここでは私が使った「Arduino Pro Micro」用に改変した配線方法を紹介します。Arduino Leonardo を使えば配線を変更する必要はないんだけど、安くて小さい Pro Micro を使ったのでピンが足りないの。そこで行った対処方法が、ライブラリの修正。修正方法については前回の「PC内環境 準備編」を見てくださいね。

Arduino Pro Micro> → <接続パーツ>

            「タクトスイッチ」
・A0           上ボタン
・A1           右ボタン
・A2           左ボタン
・A3           下ボタン
・7            Aボタン
・8            Bボタン

            「スピーカー」
・5           スピーカー1
・(13)          スピーカー2(私は使わなかった)
 本来は1つのスピーカーに5と13をつなぐらしいんだけど、5とGNDでもO.K.

            「OLED(SPIディスプレイ)」
・2(12を2に修正)    CS(わけあって、のちに2からGNDに変更しました)
・4            DC
・(6)           RCT(私が買ったOLEDにはRCT(リセット)がなかった)
・16       MOSI(SDA、D1などの表記もあるかも。データ。)
・15       CLK(SCLK、SCK、SCL、D0などの表記あるかも。クロック。)

            「LED」
・10          赤色LED
・3(11を3に修正)   緑色LED
・9           青色LED
 LEDは青と赤を実装したんだけど、眩しかったのでカットしちゃった。動作には直接関係のないパーツなので、初めから取り付けなくてもいいかも。好みの問題ね。

       


.ゲームを Pro Micro に書き込む。
◆ 早くやりたいな

Arduboy は個人でもゲームを作ることができるから、Arduboy 用のゲームは世界中にいっぱいある。インターネットの海から探し出して、それをハント(ダウンロード)してきましょう。
有名どころでいえば「Team arg」さん。Arduboy のゲームをたくさん作って公開しているの。今回はその Team arg さんから「Arduventure」というRPGゲームをダウンロードしました。
  Thank you, Team arg. I recommend your marvelous Games.
ダウンロードは Team arg さんのページからではなくて、Arduboy 公式ページからするのが分かりやすいと思う。
 このページ→「Arduventure ダウンロードページ
上 ↑ のリンクからサイトへ移動すると、Arduventure のダウンロードボタンがあるのでそこをクリックします。



するとGitHubというプラットフォームのページに移動します。(GitHubって、まるでプログラマ―たちのギルドみたい。)そこに「Arduventure.zip」と書かれたギフトボックスみたいなのがあるので、クリックしましょう。Arduventure のプログラム一式が入った zipファイルがダウンロードされます。(ギフトボックスみたいなのというのは、下の画像の赤い丸で囲んだところです。)ダウンロードしたら、zipファイルを展開しましょう。



展開すると「ID-46-Arduventure-master」という名前のフォルダになると思います(みんなも同じ名前なのかな?)。そのフォルダ内に「ARDU_AB」というフォルダがあって、さらにその中に「ARDU_AB」というArduinoのマークがアイコンになっている INOファイルがあります。それを開くと Arduino IDE でスケッチが開かれます。


<ボードの設定>
◆ Arduino IDE (この画像はまるで違うプログラムのものです)

 ↑ Arduino IDE はパソコン上でこんな姿をしています。画像のスケッチ(プログラム)はサーボモータを動かすためのスケッチね。

これからゲームのプログラムを Pro Micro に書き込むわけだけど、Arduino Pro Micro を Arduino Leonardo として扱います。「ツール」を開いて「ボード」にマウスを合わせると、旧バージョンの Arduino IDE ではずらっとボードが出てきました。もし新しい Arduino IDE 1.8.13にアップデートしていれば、ボードの名前ではなくて大まかなボードのくくりがいくつか出てくると思います(1.8.13になったから、だと思う。たぶん。)。そこから Arduino AVR Boards を選ぶと Arduino Leonardo がいるので選びましょう。そしてシリアルポートを接続しているポートに合わせます(前もって Pro Micro をUSBで接続しておきましょう。)。これで準備O.K.。もしArduboy ライブラリを準備していなければ、前の記事【PC内環境 準備編】に方法を書いたので準備してくださいね。
miraluna.hatenablog.com
miraluna.hatenablog.com

準備ができたら、さっそく「マイコンボードに書き込む」ボタンを押して、 Pro Micro に「Arduventure」を書き込みましょう🐟

◆ ゲームできた!


<トラブルシュート>
さあ、目論み通りいけば、これでゲーム画面が現れて音楽が流れるはず。
なんだけど......。初回から大成功することってあんまりない。たいてい配線のつなぎ間違いとか、接触不良とか、パーツの取り付け忘れとか、なんやかにゃトラブルがあって正常動作しないもの(私の場合はね)。
そんなときに不具合がどこにあるのか分かればいいんだけど、それを見つけるのが大変よね。ゲームのプログラムは複雑だから、エラーを見つけ出すためにはまず、動作の異なるパーツごとに検証するのがいいと思うの。
そこで(∂. ∂🎀† Arduboyライブラリに用意されているスケッチ例を使いたいと思います。
「ファイル」の「スケッチ例」の中には前回ダウンロードした「Arduboy」と「Arduboy2」のライブラリスケッチ例があります。「Arduboy2」を見てみましょう。「BeepDemo」というスケッチ例は、ブザーからメロディを流すというもの。ディスプレイが映らなくても、このスケッチを書き込んだ時に音が出れば、書き込みとスピーカーの配線は上手くいっていることが分かるわね。「HelloWorld」というスケッチ例なら、ディスプレイに「HelloWorld」を表示するシンプルなもの。これでディスプレイが映らなければ、ディスプレイ回りにエラーがありそうだと予想できる。
うまく動作しないときには、こんなふうに部分的に検証していくとエラーを見つけやすいと思います。

<私のトラブル>
私の場合はディスプレイがなかなか正常に動作しなかったの。初めはまったく映らなかったんだけど、47μFの電解コンデンサをVccとGNDの間に入れてしばらくしたら映るようになった。でも画面は激しく動いて正常じゃない。何度も電源を入れ直したり配線を変えたりしているうちに、CSを本来の2番ピンではなくてGNDにつなぐと安定しやすいことが分かったの。理由は分からないけど。それでしばらく動いたんだけどまたバグみたいになったとき、もう一度2ピンに戻してからGNDにつなぎ直すとうまくいった。実装してしまうと配線を変えられないから、CSにスイッチを付けて、2ピンとGNDを切り替えられるようにしたの。でもそのあと100μFの電解コンデンサを追加して147μFにしたら、CSをずっとGNDにつないでおいても安定して動作するようになったので、今はスイッチは使っていません。

◆ リチウムバッテリーから電源をとる

ブレッドボード上でついに正常動作するようになったので、パソコンと接続しているUSBケーブルを外しました。電源にはこの前使えるようにしたリチウムイオンバッテリ―を使うことにしました。↓ そのときの様子。
miraluna.hatenablog.com

◆ これがそのリチウムイオンバッテリー「手作りモバイルバッテリ」

リチウムイオンバッテリーの取り扱いにはくれぐれも注意しましょう。


<お買い物コーナー>
☆ちゃんとリセット付き☆  ☆信頼のサンハヤトさん☆ ☆ジャンパワイヤ☆
   ←7ピン版     



次回はいよいよ、はんだごてを手にゲーム機を実装していきます🐈


<目次>
その1.【パーツ準備編
その2.【PC内環境 準備編
その3.【配線&動作確認編】 (この記事)
その4.【実装編
その5.【"Arduventure" クリア動画
その6.【ポート認識トラブル解決編
その7.【"SIRÈNE" プレイ動画
その8.【"CastleBoy" プレイ動画



作製・紹介はミラでした。