LcdTap: TinyJoyPad や Arduboy を大画面で遊ぶ
TinyJoyPad や Arduboy など、SSD1306 ディスプレイを使った小型ゲームを PC 用モニタやテレビなどの大画面で遊ぶ方法を紹介します。
映像出力用にコネクタのハンダ付けが必要ですが、ファームウェアに関してはコンパイル済みバイナリをドラッグ&ドロップするだけなのでプログラミング不要です。

Arduboy の SPI 信号引き出しについて、当初基板のレジストを削って銅箔を露出させる手順を掲載していましたが、基板裏のバッテリーの下に TP があることを教えて頂きました (thx: chamekan さん)。
TinyJoyPad
TinyJoyPad は Daniel C 氏によって開発された携帯ゲーム機で、8 bit マイコンの ATtiny85 と SSD1306 OLED、5 つのスイッチ、スピーカーから構成されるシンプルな構成が特徴です。
Arduboy
Arduboy は Kevin Bates 氏によって開発された携帯ゲーム機で、ATmega32u4 と SSD1306 OLED、6 つのスイッチ、スピーカーから構成されます。
LcdTap
LcdTap は、Raspberry Pi Pico2 を使って、I2C 接続や SPI 接続の LCD モジュールの表示内容を DVI で出力して大きなディスプレイにミラー表示したりキャプチャしたりできるライブラリです。
用意する物
-
TinyJoyPad
-
Arduboy
- 公式版の価格は高騰していますが、クローンが Amazon や AliExpress で手に入ります。
- Raspberry Pi Pico2
- Pico-DVI-Sock
-
- 画面の回転方向を切り替えるために使用します。普通のスライドスイッチやジャンパピンで代用も可。
- 抵抗 10kΩ x2
- ポリウレタン線などの細い導線 (Arduboy 用)
- ビニールテープやカプトンテープなどの絶縁用テープ (Arduboy 用)
- TypeA-MicroB USB ケーブル
- HDMI ケーブル
-
1280x720@30Hz または 640x480@60Hz の DVI-D 信号を入力可能なディスプレイ
- PC 用モニタなら少なくともどちらかは大丈夫じゃないかと思いますが、保証はできません。
組み立て (TinyJoyPad)
Pico-DVI-Sock を Pico2 にハンダ付けし、その他の部品を下図のように接続します。
- Pico2 と TinyJoyPad の間はできるだけ短距離で配線してください。
- SDA/SCL は TinyJoyPad の OLED から引き出してもかまいません。
- Pico2 には GND 端子がいっぱいありますが、どれに繋いでもかまいません。
- Pico2 から出ている 3.3V で TinyJoyPad に給電することもできますが、その場合は TinyJoyPad の電源が Pico2 へ逆流しないよう、ショットキーバリアダイオード (例: 11EQS03L) を挿入してください。
- SDA/SCL を 10kΩ でプルアップすれば、TinyJoyPad 側の OLED を外しても動作します。

組み立て (Arduboy)
Pico-DVI-Sock を Pico2 にハンダ付けし、その他の部品を下図のように接続します。
- Pico2 と Arduboy の間はできるだけ短距離で配線してください。
- 各信号は Arduboy の基板裏のバッテリーを剥がしたところにあるテストポイントから引き出すことができます。
- Pico2 には GND 端子がいっぱいありますが、どれに繋いでもかまいません。
- RST は Open、CS は GND に接続することもできますが、この場合 Arduboy の電源 On/Off で画像が崩れることがあります。
Arduboy の背面は Li-Po バッテリーの端子がむき出しになっているので、 金属の上に置いたりしてショートしないように注意してください。
追加した配線と Li-Po バッテリーの間がショートしないように ビニールテープやカプトンテープ等で絶縁することをお勧めします。


ブレッドボードに組み立てた例

Pico2 へのファームウェアの書き込み
- リリースページからファームウェア (lcdtap_vYYYYMMDD.zip) をダウンロードします。
- zip ファイルを展開して lcdtap_pico2_ssd1306.uf2 を取り出します。
- Pico2 の BOOTSEL ボタンを押しながら USB ケーブルで PC に接続します (マスストレージデバイスとして認識されます)。
- マスストレージデバイスに lcdtap_pico2_ssd1306.uf2 をコピーします。
書き込みが成功すると、Pico2 の LCD が点滅し、コネクタから DVI-D 信号が出力されます。
使用方法
- 先に Pico2 の電源を入れる。
- 次に TinyJoyPad / Arduboy の電源を入れる。
- モニタに画像が表示されたら、ロータリースイッチで画面の向きを合わせる。
GP20 (CFG_OUT_720P) は DVI 映像出力の解像度 (アスペクト比) を指定します。もしモニタに映らない場合はここを切り替えて Pico2 をリセット (USB ケーブルを抜き差し) してみてください。
- 接続時: 1280x720@30Hz (16:9)
- 切断時: 640x480@60Hz (4:3)
動作の様子
関連リンク
-
SNS 投稿