2016年6月8日

懷念的掌上新玩具:GB+樹梅派 (GameBoy Pi)


懷念的掌上新玩具:GB派 GameBoyPi

一開始只是想幫樹莓派找個獨特的外殼,後來看到很多國外玩家的Gameboy製作案例後,剛好手邊有台Gameboy,那就決定來動手做一台吧。





使用材料:
. Nintendo GameBoy DMG-01外殼  (請找壞掉GB的來拆,如果功能正常請好好愛惜他)
. Raspberry Pi 2
. micro SD (8G以上)
. 3.5吋LCD倒車螢幕(AV端子輸入)
. PAM8403數位功率放大模組
. 1W 8Ω小喇叭
. 85mm*85mm電木萬用板(洞洞板)
. 行動電源
. 3.5mm耳機轉RCA接頭
. 5V->12V升壓模組
. 杜邦線、熱溶膠、導電膠帶、絕緣膠帶、電鑽、鋸子、烙鐵焊錫

一、Raspberry Pi
二、顯示器
三、聲音
四、按鍵
五、電源
六、外殼
七、測試&組裝
八、完成


一、Raspberry Pi 

Raspberry Pi(樹莓派)是來自英國的LINUX單板機電腦,外觀只有一張信用卡的大小,其低廉的售價和適合自由軟體開發的特性,主要用於推廣學校的電腦教育,推出後被許多玩家拿來設計無人車、架設物聯網…等諸多有趣的小裝置,當然也被用於改裝做遊戲機。


本次組裝是使用Raspberry Pi2搭配模擬器整合平台RetroPie,建議可以在組裝前先花一段時間在大螢幕上安裝設定試玩,把整個系統摸熟後再開始,我最初是拿一個超級任天堂SFC卡匣挖空作為暫時的外殼。


到[RetroPie網站]下載最新的映像檔後用Win32DiskImager把系統寫到記憶卡中。
流程可以參考[這篇],關於RetroPie的詳細的設定可以參考其他網路資源本篇不做詳述。

二、顯示器

使用3.5吋的LCD倒車螢幕上面有兩組AV端子可以接收訊號,樹莓派端的影像訊號則是由3.5mm孔直接輸出。


由於LCD的電源是吃12V所以另外使用一個升壓模組來供電,不過國外討論區有研究出繞過螢幕降壓電路直接使用5V供電的方式可以參考[這裡]。

上面連結中可以發現這些車用3.5吋螢幕外型雖然都一樣但是內部的電路板卻有很多種,有些寬度甚至超過GameBoy本身的外殼。所以必須拆開後才能知道抽到哪張電路板。

剛開始是使用一個簡單的升壓模組調至12V後用膠水黏起來固定。後來很幸運發現[這篇]也是使用和我相同規格的螢幕,因此找到了5V接點,節省了一些內部空間。

圖-螢幕接腳配置

很多其他的製作案例都會把Gameboy的螢幕內框切開因為他的尺寸剛好可以搭配底下的3.5吋螢幕,但是我這邊是使用另一種方式配合原本的2.45吋螢幕框用軟體設定來縮小顯示範圍,一方面可以維持GameBoy原本的外觀,透明框也可以保護底下的螢幕。

畫面信號的傳輸是由樹莓派上的耳機孔透過"3.5mm耳機轉RCA接頭"直接連到螢幕的顯示接腳。不過雖然已經買了比較小的L型的接頭但組裝時空間依舊塞不下所以最後只好直從樹莓派上拉線接到螢幕和喇叭上。

圖-樹莓派影音接腳配置

另外要注意一般市售的"3.5mm耳機轉RCA接頭"規格沒有統一,主要差異是在接頭的第三跟第四段影像接地位置有兩種版本,買錯的話可以剪開後把影像跟接地重新分配。

縮小顯示範圍
直接在config.txt裡面設定調整螢幕上下左右顯示範圍。
經過多次的重開機微調後大概得到下列的數值:

/boot/config.txt

disable_overscan=0
overscan_left=119
overscan_right=60
overscan_top=21
overscan_bottom=7
framebuffer_width=320
framebuffer_height=240



選單字太小怎麼辦?
直接到下列路徑修改/etc/emulationstation/themes/裡面對應主機路徑的theme.xml。
找到底下的第69行跟110行把"0.03"改成"0.06"即可。
詳細可以參考[這篇]


三、聲音

把樹莓派上3.5mm的音源連接至PAM8403將聲音放大到喇叭上,PAM8403本身需要5V電源來驅動。如果有需要還可以在中間加上耳機座跟可變電阻來調整音量,也可以使用軟體快速鍵調整音量。


四、按鍵

使用Gameboy的[上下左右]、[開始選擇]、[AB]之外還預留了線路未來來當作[XY]和[LR]鈕,按鍵主要使用樹莓派上的40針GPIO接口來控制,原本的USB孔也可以外接手把鍵盤。

[4][6]腳是提供樹莓派的5V電源,[7]~[26]是用來對應到鍵盤按鍵和接地。


使用導電膠帶來設計按鍵線路,另外順便做了插座方便替換維修以及整合所有的5V電源。




GPIO的驅動是使用Retrogame Program詳細可參考[這篇]

安裝流程:
git clone https://github.com/adafruit/Adafruit-Retrogame.git
cd Adafruit-Retrogame
nano retrogame.c

取代下列配置
----------------------------------------------------
{  24,     KEY_LEFT       },   // Left
{  10,     KEY_UP         },   // UP
{  22,     KEY_RIGHT      },   // Right
{  23,     KEY_DOWN       },   // Down 
{  27,     KEY_RIGHTSHIFT },   // Select 
{  18,     KEY_ENTER      },   // Start
{  17,     KEY_S          },   // B
{   4,     KEY_D          },   // A
{   9,     KEY_Q          },   // L
{  25,     KEY_A          },   // X
{  11,     KEY_E          },   // R
{   8,     KEY_W          },   // Y
{   7,     KEY_ESC        },   // ESC
-----------------------------------------------------

make retrogame
sudo nano /etc/udev/rules.d/10-retrogame.rules
------------------------------------------------------------------------
SUBSYSTEM=="input", ATTRS{name}=="retrogame", ENV{ID_INPUT_KEYBOARD}="1"
------------------------------------------------------------------------

測試正常後設定啟動自動執行:
sudo nano /etc/rc.local
/home/pi/Adafruit-Retrogame/retrogame &
sudo reboot

五、電源

總共有樹莓派、螢幕、聲音這三個部分需要使用5V電源。
原本是計畫在內部放電池,最後決定直接使用外接電源,主要是擔心機殼內溫度過高,再來就是原本準備的電池裝上去後續航力大概只有1~2小時。
圖-整體配線圖

六、外殼

配合要裝進去的零件用鋸子和電鑽把內部多餘的塑膠隔版拆除,保留原本電池盒的螺絲孔。

注意!切割時請注意安全!

七、測試&組裝

經過多次把所有配件連接測試都正常後,就可以把他們都裝進機殼內了。
由於內部空間狹小要注意把可能因為擠壓造成短路的地方用絕緣膠帶隔離。
圖-測試組裝連線




 

八、完成


 圖-接上鍵盤滑鼠透過Dosbox玩"War2"也是OK的

 圖-當然玩GameBoy不能少了專用放大鏡!

九、後記

如果沒有打算把樹莓派的RJ45根USB拆掉的話空間其實很勉強,還是比較建議使用Pi Zero內部配置會自由很多。
螢幕的部分"升壓模組"和"RCA轉接頭"最後都沒有裝到機器裡,只有在剛開始測試配線時有用到。
按鍵控制板上的導電膠帶是用一條直線的空隙來短路,但是實際操作後發現並不是很靈敏,應該是要改成像一般手把電路板上下交錯的方式來增加接觸面積或是直接用專門的PCB板。
不過說實話在這個手持式裝置發達的時代用2.45吋小螢幕的Gameboy玩遊戲只是用來短暫滿足那份懷舊感而已,噱頭大於實際的可玩性。大部分的時間我還是會選擇輸出到螢幕上遊玩,不過就像做模型拼圖一樣享受整個設計組裝的過程才是真正的樂趣所在。


這裡還有很多其他在製作時可以參考的範例網站:
https://superpiboy.wordpress.com/
http://www.sudomod.com/
http://www.instructables.com/id/RaspiBoy-Raspberry-Pi-Gameboy-SuperPiBoy-A-Raspber/
http://www.instructables.com/id/Gameboy-LCDRaspi-Upgrade/







3 則留言:

Galileo's Blogger 提到...

請問您用 PAM8403會不會有雜音阿?
我用的版子長得跟您圖片一樣 ,
用RetroPie沒遊戲時雜音大聲 ,
遊戲時感覺還好

HH Li 提到...

一開始也是有很多雜音,後來拆了一條內層有鋁箔包覆的USB線來使用,有改善一些但還是無法完全消除...

Galileo's Blogger 提到...

如果您還持續再改造這個 , 我最近發現了一個麥克風造型的手機擴音喇叭 , 大概NT一百多 , 內建電池 , 我把它拆了裡面機版跟 PAM8403差不多大 , 電池3.7v輸入我拆掉用pi 的5V輸入看起來是ok (3.3v推不動) , 喇叭更換比較小1W的 . 效果比PAM8403好太多 . 給您參考 . 我還在佈線基本上會用這來取代PAM8403 , 有機會再交流 .