Arduboy 互換機 (Arduboy Clone)

Arduboy 互換機を作ってみました。



部品購入

いきなりですが完成品です (3.3V 版 / 5V 版)。

Arduboy 互換機を作るのに必要な部品は以下の通りです。

用途 部品名
メインボード Pro Micro
ディスプレイ 0.96 inch OLED ディスプレイ (SPI)
筐体 GAME POKE MIX
乾電池駆動 昇圧 DCDC コンバータ
電源スイッチ (任意) スライドスイッチ
3色 LED (任意) 3色 LED, 抵抗

Pro MicroOLED に関しては詳細な別記事があるのでそちらにも目を通しておいてください。

GAME POKE MIX は元々クレーンゲームのプライズだったようです。探せば 250 円前後で入手できます。品番は HAC5788、JAN コードは 4580278047878 です。クレーンゲームのプライズなので、未開封新品でも中古として売られているかもしれません。POP Station (SY-3040) と同じ物のようですね。

GAME POKE MIX は筐体として最適で、0.96 inch OLED が丁度収まりますし(要加工)、電池 BOX とスイッチも手に入ります。スピーカー (圧電素子) も付いているので、Arduboy 互換機を作るにはうってつけです。 唯一残念なのは、右側の 4 つあるように見えるボタンは実は 1 個で、どれを押しても同じという点です (これ以外のボタンはすべて独立しています)。

昇圧 DCDC コンバータは乾電池駆動のために必要です。また、5V 版と 3.3V 版、どちらの Pro MicroArduboy 互換機を作るかが重要になってきます。5V 版で作るとオリジナルと同じ動作になりますが電池の持ちは悪いです。3.3V 版で作ると電池は持ちますが、ゲーム速度が遅くなります (後述しますがスケッチの転送にもコツが必要です)。特に理由がなければ 5V 版を作るのがいいでしょうね。

スライドスイッチは小さめのものがいいでしょう。

3色 LED ですが、私は実装しませんでした。5mm の LED はこの筐体には少々大きいのです (入れられない事はありませんが...)。

部品代は全部で 2,000円弱といった所でしょうか?



各部詳細

ボタンのアサインなど外観の詳細です。


配線は以下のようになっています。


左上の部品は昇圧 DCDC コンバータです。ボタンは GAME POKE MIX の基板から配線を引き出しています。

ピンアサインは以下のようになっています。

Function Definition Arduboy Clone
LED R RED_LED 10 (NC)
LED G GREEN_LED 11 (NC)
LED B BLUE_LED 9 (NC)
LED TX TX_LED / LED_BUILTIN_TX 30 24
LED RX RX_LED / LED_BUILTIN_RX 17 17
Button UP UP_BUTTON A0 A0
Button DOWN DOWN_BUTTON A3 A3
Button LEFT LEFT_BUTTON A2 A2
Button RIGHT RIGHT_BUTTON A1 A1
Button A A_BUTTON 7 7
Button B B_BUTTON 8 8
Button C (NC) 14
Reset RESET RESET
Speaker 1 PIN_SPEAKER_1 5 5
Speaker 2 PIN_SPEAKER_2 13 (NC)
Display Reset RST 6 6
Display D/C DC 4 4
Display SPI CS CS 12 2
Display SPI SCLK (CLK) PIN_SPI_SCK / SCK 15 (SCK) 15 (SCK)
Display SPI Data In (MOSI) PIN_SPI_MOSI / MOSI 16 (MOSI) 16 (MOSI)
Battery Box (+) RAW
Battery Box (-) GND

ケースに余裕があれば (GAME POKE MIX 筐体を使わないのなら) Da Vinci 32U や Arduino Micro を使うといいでしょう...ライブラリの修正が必要なくなりますので。

3色 LED を実装したいのなら、以下の配線も行ってください。

Function Definition Arduboy Clone
LED R RED_LED 10 10
LED G GREEN_LED 11 3
LED B BLUE_LED 9 9

Arduboy3 色 LED は PWM を要求しますので、ピンアサインを変える場合には注意してください。また、適切な抵抗を付けるのをお忘れなく。



セットアップ

使い方は Arduboy ともちろん同じなのですが、Arduboy Library の core.h を書き換える必要があります。

#ifdef ARDUBOY_10

#define CS 12
#define DC 4
#define RST 6

#define RED_LED 10
#define GREEN_LED 11
#define BLUE_LED 9
#define TX_LED 30
#define RX_LED 17

これを...

#ifdef ARDUBOY_10

#define CS 2
#define DC 4
#define RST 6

#define RED_LED 10
#define GREEN_LED 3
#define BLUE_LED 9
#define TX_LED 24
#define RX_LED 17

このように書き換えます。TEAM a.r.g. のゲームの場合には、Arglib.h を書き換える必要があります。

#ifdef AB_DEVKIT
#define CS 6
#define DC 4
#define RST 12
#else
#define CS 12
#define DC 4
#define RST 6
#endif

これを...

#ifdef AB_DEVKIT
#define CS 6
#define DC 4
#define RST 12
#else
#define CS 2
#define DC 4
#define RST 6
#endif

こうします。修正は OLED のピンアサイン変更によるものですが、CS 信号を見ていないような気もするんですよねぇ...間違ってライブラリの修正をしないままスケッチを転送してもちゃんと動いちゃいましたし (詳細に調べた訳じゃないですけれど)。誤って他の信号線を CS に接続したら OLED の画面が化けたので、見ていない事はないようです。


スケッチの転送

スケッチの転送にはちょっとしたコツがいります (コツがいる場合があります)。

See Also:



ギャラリー

GAME POKE MIX の広告です。360個 (または 180個) 単位で仕入れる必要があるようですね (w

オリジナルの状態の GAME POKE MIX です。LCD ゲーム機です。

分解した状態です。

LCD 固定枠を少し削ると OLED をはめ込めます。GAME POKE MIX のプラスチックは硬い (= 割れやすい) ので注意。ネジ穴もすぐに割れてしまい、バカ穴になってしまいます。OLED のピンヘッダは最終的には取り払っています。OLED の固定はホットボンドで行っています。

元々のゲームチップは不要なので、金切狭でカットし、ここへ Pro Micro を入れます。


ボタンはパターンを追って信号線を引き出しておきます。赤はパターンカット (要テスター確認)、水色は GND です (すべて結線)。左上の灰色のボタンだけは変な所から信号線を引き出す必要があります。パターンカットはPカッターでやると簡単です。紙やすりで削ってそこへジュンフロン線をハンダするのですが、フラックスがあるとハンダの乗りがいいです。

最終的な内部の構造はこんな感じになります。黄色のカプトンテープのトコは電源用スライドスイッチ取り付け用です。カプトンテープは OLEDPro Micro の絶縁にも使っています。

スライドスイッチを取り付けた様子です。これにて完成!

実際に動作している様子はこちら。プレイしているのは TEAM a.r.g. の Sirène

See Also:



5V 版作成時の Togetter まとめ


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: