※ライフゲーム Advent Calendar 2017にエントリーしました。
Raspberry Piで動くIchigoJam BASIC環境「IchigoJam RPi」が公開されました。
アイ・オー・データ機器からは、ハードも含めた「プログラミングキット」が発売予定です。
http://www.iodata.jp/news/2017/newprod/ud-rp3pki.htm
当初公開のバージョンはキーボードの不具合や画面表示のバグがあったのですが、Facebookで修正版のファームウェアが公開されています。
https://www.facebook.com/groups/ichigojam/1046775638795522/
このファイルをSDカードにコピーして、Raspberry Piに差せば起動できます。
数秒で起動して、すぐにBASICプログラムが書けます。
動作速度検証のため、ライフゲームのプログラムを動かしてみました。
過去に試した記事は以下のとおり。
●IchigoJamボード(1世代更新に約3分)、IchigoJam PC(1世代更新に1秒以内)
http://d.hatena.ne.jp/shiro0922/20160115
●IchigoLatte環境(1世代更新に約30秒)
http://d.hatena.ne.jp/shiro0922/20160814
そして今回のIchigoJam RPi(Pi3 model Bにて構築)ですが、1世代更新は2秒程度。内部計算はかなり速いようです。
動画はこちら。
プログラムはPC版と同じで、以下のとおり。
1 '*LIFE PC 2 CLV 3 '@RESTART 4 FORZ=50TO97:[Z]=(RND(256)<<8)+RND(256):NEXT:BEEP:GSB27 5 '@LOOP 6 L=0:K=0 7 FORY=0TO23:FORX=0TO31:C=0 8 FORE=-1TO1:FORD=-1TO1 9 U=(X+D)&31 10 V=Y+E:V=V+24*)((V<0)-(V>23))( 11 Z=V*2+U/16:M=1<<(U%16) 12 B=[Z]&M:C=C+(B<>0) 13 NEXT:NEXT 14 Z=Y*2+X/16:M=1<<(X%16) 15 B=[Z]&M 16 IFBB=1:C=C-1 17 Q=0 18 IFC=2Q=B 19 IFC=3Q=1 20 IFQ[Z+50]=[Z+50]|M 21 IFB<>QK=1 22 L=L+Q 23 NEXT:NEXT 24 GSB27 25 IFL>0&&K>0GOTO5 26 GOTO3 27 '@PRTLIFE 28 CLS:A=#900 29 FORZ=50TO97:D=[Z]:[Z-50]=D:[Z]=0:FORX=0TO15 30 B=D&1:POKEA,B 31 A=A+1:D=D>>1 32 NEXT:NEXT:RTN
なお、Raspberry PiのGPIOとUSBシリアルを以下のように接続すれば、IchigoJamボードと同様にTerminalソフトやIJUtilitiesなどでプログラムを転送できます。
ラズパイ側−シリアル側
6(GND)−GND
8(TXD)−RXD
10(RXD)−TXD
追記:画面のコンポジット出力
IchigoJam RPiのSDカード内のconfig.txtに、
sdtv_mode=1
の1行を追加すると、これまでのIchigoJamと同じく、コンポジット端子からTVに画面出力できます。
コンポジット端子搭載の初代Raspberry Piにて。