2019年9月1日日曜日

TINY ARCADEの筐体にRaspberry Piを組み込む(前篇)

以前、TINY ARCADEの中身を使って制作した余りの筐体があるのでこれを利用してRaspberry Piを組み込んで遊べるゲーム筐体を作ってみようと思う。

[関連記事]
レトロアップライト筐体の改造
DCのVMにTINY ARCADEを組み込む




TINY ARCADEの筐体にRaspberry Pi Zeroを組み込んで見る


目標は、遊べるゲーム筐体を作成すること。


用意したもの
用意したパーツ


今回用意したもの(金額はAliExpressでの購入価格)
Raspberry Pi Zero v1.3
LCD Module IPS 1.3inch 240x240 (243円)
MAX98357 アンプモジュール (296円)
・Micro USB メスコネクタモジュール (97円)
・スライドスイッチ、タクトスイッチ

TINY ARCADEの筐体
TINY ARCADEのLED
TINY ARCADEのコントローラー部


Raspberry Pi Zeroにはヘッダピンを取り付け。
RetroPieをインストールして基本的な設定は済ましておく。



LCD Moduleの取り付け


LCD Module IPS 1.3inch
LCD Module IPS 1.3inch

正直、こんな商品があるから単体でのLCD取り付けも余裕かと思って購入したのだが、ネット調べてみると失敗例はあるのに成功例が無い。
いや実際動いている動画はあったがそれを解説しているページを見つけることができなかったのだが、海外ばかり見ていたが実は意外と身近な所に成功例を発見した。

[参考サイト]
超ちっちゃいCS無しの激安IPS液晶にRaspberry Piから画面を出す方法。

超感謝!!
正直ここまでのピンポイントで解説してくれて大変助かりました。
参考にさせてもらったブログの方はRaspbianでしたが、RetroPieでもまったく同じやりかたで問題ありませんでした。
というか、GPIOの配線から画面の設定までまったく真似させていただきました。
ありがとうございます。

LCDの問題は解決したのだが、本格的なゲーム機に挑戦する場合高速なディスプレイドライバーが必要になるかもしれないから、以下に参考サイトを記す。(試してはいません)

[参考サイト]
Adding CS Pin to ST7789 1.3" IPS LCD
A blazing fast display driver for SPI-based LCD displays for Raspberry Pi A, B, 2, 3 and Zero



アンプモジュールの取り付け


アンプモジュール
MAX98357 アンプモジュール


Raspberry Pi Zero にはHDMI(とUSB?)以外から音をだす手段が無いのでMAX98357 アンプモジュールを取り付ける。

MAX98357 アンプモジュールとRaspberry Piの接続
・Vin→4番ピン(5V)
・GND→39番ピン
・DIN→40番ピン
・BCLK→12番ピン
・LRC→35番ピン

以下コマンド
----------------------------------------------------------------------
sudo vi /etc/asound.conf

#ここから
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}
#ここまでを追加

sudo vi /boot/config.txt

#dtparam=audio=on (#を追加)
dtoverlay=hifiberry-dac (一文追加)

sudo reboot
----------------------------------------------------------------------



コントローラーの取り付け


TINY ARCADEのコントローラー
TINY ARCADEのコントローラーを取り付け

TINY ARCADEのコントローラー部とタクトスイッチを取り付ける。
コントローラー部についての記事は以下参照。

[関連記事]
TINY ARCADEの改造 (その2)


・LEFT→3番ピン
・RIGHT→5番ピン
・UP→11番ピン
・DOWN→7番ピン
・'A' button→36番ピン
・'B' button→38番ピン

・ESC→33番ピン
・Select→31番ピン
・Start→29番ピン

以下コマンド
----------------------------------------------------------------------
cd ~

wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh

sudo bash retrogame.sh (Zeroは3、Pi3は1 を選択)
---------------------------------------------------------------------

REBOOT NOW? [y/N]で再起動後、/boot/retrogame.cfgを変更。
コマンドが面倒ならSDカードを外して、PCで直接編集するのが楽。


/boot/retrogame.cfgの内容 (※数字はピン番号では無くGPIO番号)
---------------------------------------------------------------------
LEFT 2 # Joypad left
RIGHT 3 # Joypad right
UP 17 # Joypad up
DOWN 4 # Joypad down
Z 16 # 'A' button
X 20 # 'B' button
ESC 13 # Esc ROM; PiTFT Button 1
5 6 # 'Select' button; PiTFT Button 2
1    5 # 'Start' button; PiTFT Button 3
---------------------------------------------------------------------

後から変更できるのでとりあえず、MAMEのキーで登録してみた。
再起動後、ゲーム(MAME)内ではこれで動かせるはず。



組み込み用ハーネスの作成


Raspberry Pi GPIO
Raspberry Pi GPIO

今回使用したRaspberry PiGPIO接続をまとめてみた。
LEDは筐体のマーキー用。
Powerは電源用USBコネクタを背面より出したいので、Micro USB メスコネクタモジュールの接続用に。
あとはRetroPie側でシャットダウンするとマーキーやLCDのバックライトが消灯しないので、スイッチを取り付けたいと考えている。



作成したハーネス
作成したハーネス

テスト用配線からヘッダピンに接続できるようにコネクタをつけたハーネスを作成してみた。
貧乏臭く、Raspberry Piを他用途にも使用出来るようにしたかったからだ。
あと電源用USBコネクタの取り付けでスペースが厳しそうなので、スピーカーを小型のものに変更した。



ハーネスのテスト
ハーネスのテスト

作成したハーネスは特に問題なく動作することができた…が
実はここで重大な問題が発覚したのであった。


[中篇]へ続く

0 件のコメント:

コメントを投稿