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

【電子工作】Arduino Pro Microで動かすArduboy互換機を作ってみる!

マイコンを使ったミニゲーム機をこれまでいろいろと製作してきました。

【ESPboy】ESP8266で動かす携帯ゲーム機ESPboy。基板を製作して完成させました!【JLCPCB】
【電子工作】ミニAVRマイコンATtiny85で動かすミニゲーム機『Tiny Joypad』互換ボードを作ってみました!【JLCPCB】

マイコンを使ったこのようなミニゲームを動かすオープンソースプロジェクトはまだまだたくさんあります。

前回、Arduinoをベースとした『Arduboy』をブレッドボードを使い組んでみました。

Arduboyもマイコンを使ったゲームを動かすオープンソースプロジェクトとして非常に有名です。
回路図やライブラリ・ゲームデータなどが公開されているので、製品版として販売されているArduboyの構成に近い互換機をブレッドボードやユニバーサル基板を使い簡単に組んで楽しむことが出来ます。

【Arduboy】Arduino Leonard(Pro Micro)でArduboy互換機を自作する!

ユニバーサル基板を使い組み直したArduboyが面白かったので、今回も基板を製作してオリジナルArduboy互換機として完成させました!

Pro Microで動かすArduboy互換機を作る!

ArduboyはArduinoをベースとした携帯ゲーム機で、Arduboy / Arduboy mini / Arduboy FXが製品版として販売されています。
マイコンを使った電子工作をやられている方なら名前くらいは聞いたことがある方多いと思います。

Arduboyはオープンソースプロジェクトとして非常に有名で、公式サイトには回路図やArduboy上で動く多くのゲームデータなどが公開されていて無料でダウンロードして遊ぶことが出来ます。

参考 ArduboyArduboy公式サイト

製品として販売されている本家のArduboyはMCUにATmega32U4が使われています。
ATmega32U4はArduinoボードではArduino LeonardやPro MicroなどのLeonard系のボードで使われているマイコンチップです。

まずArduboyがどんなものか試してみたい場合、これらArduinoボードを使えばブレッドボードやユニバーサル基板に組んで簡単に試してみることが出来ます。

私もブレッドボードでまず組んで試してみたのですが、結構面白いゲーム機なのでユニバーサル基板を使い組み直してみました。
ミニゲーム機として遊ぶにはこれくらいのサイズ感にまとめた方が操作がしやすく面白く遊べると思います。

そして今回はオリジナルの基板を作りArduboy互換機を作った話となります。

Arduino LeonardやPro MicroでArduboy互換機を組む

Arduboyを組むためのベースとなる回路図は公式サイトに公開されています。

Arduboy互換機をArduinoボードを使って組む場合、Arduino Leonardを使うのが一番簡単です。

Arduino LeonardはUnoと同じボード形状なのでこのように少しサイズが大きくなってしまいますが、Arduboyを動かすのに必要なATmega32U4のI/O端子が全て使えるので組むのは簡単です。

さらにミニサイズに収めるにはPro Microを使うと小型化出来ます。

接続も上記公式サイトにある回路図よりかなり簡略化出来ます。

MEMO
Pro MicroではATmega32U4の全てのI/O端子が引き出されていないので、一部ピンアウトの変更が必要となってきます!

JLCPCBで基板を製作

ユニバーサル基板を使って組んだArduboy互換機の構成をそのまま流用し基板をデザインして完成させました!

Pro Micro/0.96インチOLEDディスプレイ/タクトスイッチというシンプルな構成で作れます。
駆動する電源は16340リチウムイオン電池を使い、DC-DCコンバーターを介して5Vに昇圧してPro Microを駆動しています。

CR2032などのボタン電池を使う予定でしたが、どうもPro Micro起動時の電圧降下でリセットがかかってしまうようなのでPro Microの駆動にはリポバッテリーやリチウムイオン電池を使うのが望ましくなるようです。

基板は今回もJLCPCBさんにお願いしました。
送料込み(OCS NEP)で基板5枚の製作料金が500円ほど、そして10日ほどで手元に届いてしまうのは驚異的です!

一応基板データ(ガーバーファイル)もダウンロード出来るようにしておきます。
オリジナルのArduboy互換機製作の参考になればと思います。

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

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

必要なパーツ一覧

こちらが必要なパーツ一覧です。
ブレッドボードやユニバーサル基板で組んだパーツをそのまま使うことが出来ます。

使用パーツ一覧
Arduino Pro Micro
0.96インチOLEDディスプレイ
タクトスイッチ(12mm角)×6
タクトスイッチ(6mm角)×1※リセット用
DC-DCコンバーター(5V昇圧タイプ)
スピーカー(16mmサイズ)
16340(CR123A)電池ボックス
3Pスライドスイッチ
LED&抵抗(300Ω程度)
7Pピンソケット
※その他 M2×10mmスペーサー&ビスナット

タクトスイッチにキーキャップを取り付けてゲームをプレイしやすいようにしています。
その際にディスプレイの固定にピンソケットを取り付け9mmほど嵩上げして見やすいようにしました。

ディスプレイの下側2ヶ所に9~10mmのM2スペーサーを使い固定すれば安定します。

これは無くても問題ありませんが、タクトスイッチにキーキャップを取り付けて使う場合ディスプレイの高さも上げることにより見やすくなります。

ゲームデータのインストール

基板が完成したらゲームデータの書き込みです。

Arduino IDEを使いPro Microにゲームデータを書き込み動かすには、Arduboyに対応したボードパッケージと各種ライブラリのインストールが必要となってきます。

必要なボードパッケージ
  • Arduboyボードパッケージ
必要なライブラリ
  1. Arduboy2
  2. ArduboyTones
  3. ArduboyPlaytune
  4. ArdBitmap
  5. ArdVoice
  6. ATMlib
  7. Arduboy-TinyFont
  8. FixedPointsArduino

またPro MicroではATmega32U4の全てのI/O端子が引き出されていません。
そのためArduboyを動かすのに必要なI/O端子が使えない部分が出てくるので(主にOLEDディスプレイ接続部分です)、ライブラリで定義されている一部端子のピンアウトの変更作業が必要となります!

Arduboyのピンアウトは[Arduboy2]ライブラリで定義されています。
Arduinoのライブラリフォルダ[libraries]の中にある[Arduboy2]→[src]フォルダ内の[Arduboy2Core.h]ファイルをテキストエディッタ等で開き、ディスプレイ表示で使われているCS端子の割り当てを空いている端子に変更する必要があります。

今回作った基板ではCS端子はPro MicroのD3端子に割り当てました。(デフォルトではD12が指定されています。)

ボードパッケージやライブラリのインストール、またピンアウトの変更に関してはこちらの記事で詳しく解説しているので参考にして下さい。

【Arduboy】Arduino Leonard(Pro Micro)でArduboy互換機を自作する!

作業が完了したらArduboy公式サイトに公開されている多くのゲームデータを書き込んで遊ぶことが出来ます!

参考 Browse, share and play games made by the community.Arduboy

最後に!

Arduboyは製品版として販売されていますが、Arduino LeonardやPro Microを使えばブレッドボードなどで簡単に組んで試すことが出来ます。

そしてオープンソースプロジェクトなので回路図等詳細なデータが公開されているので、今回のようにオリジナル基板を製作してArduboy互換機を作ってみるのも面白いと思います。

コメントを残す