フリスクサイズと言うと看板に偽りありなのだが、ボタン付きLCD HatをAliExpressで買ったので、Raspberry pi zeroWに載せて組んでみた。
今回利用したのは「1.54 LCD Game」モジュール。正式な名称がわからない。メーカー名はSpotpearで6月に
2500円ぐらいで買ったんだけど、今Spotpearのホームページに行くと載ってないし、パチモンかどうかわからないけど800円ちょっとで出してる店もある・・・
先月ぐらいにWaveshareから13ボタン、充電池対応、音声出力付きのpHat、
GamePi15が出てるので、"1.54 LCD Pi zero Game"で検索するとそっちが多く出て来るな。
Waveshareのは機能が盛り盛りなので良いことは良いのだが、完成度が高くてちゃんとしたケースに入れてやりたいけど、ケースまでは出てないんだよね。
というか、検索結果を今今確認したら
GamePi 20 とか言って2.0インチ320x240のLCDと電池とケースまでついたバージョンまで出てる(´Д`;) これ買えばいいじゃん!
それはそれとして。
今回使ったpHatは、240x240の1.54インチカラー液晶と、4方向+押し込みの5Wayキー、表面に6ボタン、ショルダー2ボタン構成。あと、RetroPieでは使えないが、液晶は感圧式のタッチスクリーンコントローラ付き。
以前使ったwaveshareの3ボタンpHatはGPIOソケットが薄型だったのだが、こちらは結構高さがあって、フットプリントはフリスクケースだけど、高さ的には蓋の上に浮いてしまう感じ。(買った時にはソケットの高さなんて分からなかった(^^;)
それもあって数ヵ月放置してたのだけれど、ダイソーでちょうど良いケースを発見。
釘・ネジ入れだったんだけどね。5個で100円。
まずは、pHatに同梱のスペーサが通る穴と、GPIOコネクタの穴を天面に開ける。
こんなこともあろうかと密かに購入していたホットナイフで四角く切ろうとしたんだが、楽に切れたはいいけど溶けたプラスチックが引っ付いたりして思ったほどきれいに切れなかった。
コツを体得するにはもう少しクンフーを積まねばならぬ模様。
USBとHDMIの穴を開け、側面にmicroSDの穴を開けてOKと思ったら、スペーサの下端がケースの底に当たって閉じにくかったので、底面にも3φで穴を開けた。ネジのしっぽがちょうど填まる感じ。
なんか1時間ちょいで物理工作が完了してしまって拍子抜け。外観はこう。
ボタンとLCDのドライバが組み込まれたOSイメージをメーカーが出してるみたいなのだが、より
高速なドライバが公開されてたのでそちらをRetroPie4.5.1に組み込んだ。
こちらも難なく動作確認。
ハード的には、強いて言うならLRがやや押しにくいのと、スティックカバーが載っけているだけなのですぐ外れるのが改善したいところだが、この工作難易度ではこんなものか。
ソフト面で言うと、上記掲示板のキーアサインでスティック押し込みをHotKeyにしてしまうと、頻繁にHotKey+Bでリセットがかかってしまうので、スティック押し込みをLボタン、LキーをHotKeyボタンにすると誤入力起きなくていいよ、ぐらいかなあ。
残っている課題:
・5wayキーのカバー。
上述だが、乗せてるだけなので付けたままカバンに入れると無くなりそう。なんとかしたい。
・HATがむき出し
ソケットの高さがあるので致し方ないのだが、いいケースないかなあ。しかしそこまでやるならPiGame20買えよってことなのが悩ましい。
・音声回り。
HDMIで音が出せているので、こっそり会議室でモニタにつなぐなら問題なし。
モバイルバッテリ運用で音が出せるように、Bluetoothで音回りを解決しようと試行錯誤中。
・MAME関連の設定。
MAME系を動かそうとすると、デフォルトでTABキーでコントロールメニューが出るので、結局Bluetoothキーボードを引っ張り出す羽目になり、ちょっと面倒。
・携帯に便利じゃない。
LiPO充電基盤などと小さい電池を隙間に組み込めば携帯時にモバイルバッテリつながなくていいんだが、いい固定方法を思いつかない。まあ、ケーブルがそんなに邪魔ってわけでもないので優先度は低め。
・GBAが重い
とはいえ、所詮ZeroWHのパワーじゃこんなものなのかも知れぬ。もう少し処理能力があれば。
[2019/9/17追記]
麻雀+PADがMAMEのデフォルトキーセットに準拠したキーコードを吐くので、GAME HATキーパッドのキー定義を少し修正。
/boot/othermod/retrogame.cfg
# Sample configuration file for retrogame.
# Really minimal syntax, typically two elements per line w/space delimiter:
# 1) a key name (from keyTable.h; shortened from /usr/include/linux/input.h).
# 2) a GPIO pin number; when grounded, will simulate corresponding keypress.
# Uses Broadcom pin numbers for GPIO.
# If first element is GND, the corresponding pin (or pins, multiple can be
# given) is a LOW-level output; an extra ground pin for connecting buttons.
# A '#' character indicates a comment to end-of-line.
# File can be edited "live," no need to restart retrogame!
UP 05 # Up
DOWN 16 # Down
LEFT 13 # Left
RIGHT 06 # Right
LEFTSHIFT 21 # Square X
LEFTALT 15 # Cross A
SPACE 20 # Triangle Y
ENTER 12 # Circle B
TAB 23 # Left Trigger
ESC 14 # Right Trigger
1 26 # Start
5 19 # Select
Z 03 # Retroarch
# For configurations with few buttons (e.g. Cupcade), a key can be followed
# by multiple pin numbers. When those pins are all held for a few seconds,
# this will generate the corresponding keypress (e.g. ESC to exit ROM).
# Only ONE such combo is supported within the file though; later entries
# will override earlier.
|
変更したら、/boot/setupcontrols.bash を実行して反映するのを忘れない事。