IchigoJamSWITCH

液晶シールドで携帯ゲーム機

液晶パネルをつけてみた

IchigoJamBasicには"SWITCH"という命令がある。入力すると……画面が消えます。
液晶パネルを接続してビデオ出力のかわりに画面表示をする機能がある。通常I2Cコマンドで制御するのだが
FSTN液晶モジュール(SPI) [CH12864F-SPI] aitendoにリンク
仕様・機能 液晶モジュールの完成品、解像度:128x64、表示色:グレー、バックライト付き、バックライトの発光色:白、バックライト動作電源(LEDA):3.3V、内蔵コントローラチップ:ST7567R、接続インターフェース:4線SPI、2.54mmピッチ16Pスルーホール、動作電源(VDD):3.3〜5V
このモジュールはIchigoJamBASICが直接制御してくれるのである。
液晶モジュールは16ピンだが、接続するのは8ピンのみ。3.3vとGNDには2本ずつ接続する。
液晶モジュール - IchigoJam
7(SCL) - IN1
8(SI) - VIDEO2
9(VDD) - VCC
10(VSS) - GND
11(LEDA) - VCC
12(/CS) - GND
13(/RST) - IN4
14(A0) - IN2

IchigoJamに載せるシールド作った

携帯ゲーム機にするので、運用時にはキーボードとビデオ出力は外す。
電源はモバイルバッテリーから供給。液晶のバックライトが点灯しているのでバッテリーからの給電は続く
IN1,2,4は接続してしまうので、OUT1,2,3,4に-1を設定してIN5,6,7,8とする。BTNはIN9でアクセスできる。3.3v GND LEDも並んでいるので8本の配線を両端ロングピンヘッダで引き出す。
圧電素子・CN5相当のEEPROM端子(+5vはNC)・TXD,RXD端子をシールド上に設置する。GND OUT5 OUT6のピンも立てた。
配線はポリウレタン銅線で行った。


IchigoJamをケースに入れていると、ピンの長さが足りないので、拡張シールドで延長する。
液晶が常時点灯しているのでモバイル電源でも給電中止にはならないようだ。

ゲームパッド作ってみた


IN5,6,7,8,9にタクトスイッチを接続。1MΩでプルアップ。IN9(BTN)はIchigoJamの基板でプルアップされている。
タクトスイッチは左下上右ボタンの順で配線が短くなるようにした。必要ならば接続ケーブルで順番を差し替える。

川下りゲームを作ってみる

IchigoJamの定番"川下り"をミニゲームに改造する。

1'KAWAKUDARI
10 CLS:X=15
20 LC X,5:?"V"
30 LC RND(30),23:?"*"
35 WAIT 3
36 X=X-BTN(28)+BTN(29)
37 IF SCR(X,5) END
38 IF X<0 OR X>29 END
40 GOTO 20

画面は横16×縦8 座標の最大値を変更 表示位置の調整
OUT n,-1でポートを入力に設定
スイッチは押したときに0 離すと1を返す。!で反転してBTNと同じにする。
左右で左右移動。上下ボタンは使用しない。
ボタンを押しながら電源を入れるとLRUN0が実行される。ボタンをはなすとスタートする。
ゲームオーバー ボタンを押してはなすとRUN

テストプレイはキーボードを接続してRUN ESCで停止できる。
SAVE0 ボタンを押しながら電源を入れると自動起動する。

メニュープログラムを作ってみた

10 'MEMU
20 SWITCH1:FORI=1TO4:OUTI,-1:NEXT:UART1
30 CLS:LC0,0,1:?"IchigoJamSWITCH";:BEEP5
40 GSB@W
50 L=5:M=0:N=0:IFF=0F=1
60 @F:BEEP
70 IFF<4CLS:FILES1,3:LC0,F-1,1:WAIT30:GOTO@LP
80 S=F/5*5:G=S+L-1:IFG>163G=163
90 IFN<>S:CLS:FILESS,G:N=S
100 LC0,F-S,1: WAIT30
110 @LP:M=F
120 IF!IN(9)*!IN(5)END
130 IF!IN(9)BEEP10:WAIT10:BEEP5:LRUNF
140 F=F+!IN(6)-!IN(7)+(!IN(8)-!IN(5))*L
150 IFF<1F=1
160 IF(F>=4)*(F<60)IFIN(3)F=100:N=0:ELSEF=1
170 IF(F>=60)*(F<=99)F=1
180 IFF>=163F=163
190 IFF=MGOTO@LP:ELSEGOTO@F
200 @W:IF!BTN()CONT:ELSEBEEP2
210 IFBTN()CONT:ELSEBEEP5:RTN
ボタンを押しながら電源を入れLRUN0で実行される。
ボタンをはなすとプログラムのリストを表示
上下左右でプログラムを選び、ボタンで実行。

ターミナルマクロ JamPot.xlsm

PCとIchigoJamをシリアルインターフェイスで接続し、プログラムの読み書きを行うエクセルのマクロ
JamPot.xlsm
選択範囲を送信・保存、アクティブセルに受信・読込
テキストボックスに入力して送信

ミニゲーム

川下り
KEY TEST
IchigoFighter mini
苺と猫
LIGHTS
KNIGHT
BALL
SNAKE
AsteroidBelt
Meteo
ソリティア

タブを閉じる

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。