create every day - 福野泰介の一日一創

秋月電子からIchigoJam用外部記憶キット「IchigoROM」登場!EEPROM活用テクニック

2017/08/30 23:55:00
#IchigoJam #KidsIT 

IchigoJamの本体に保存できるプログラムは4つ(SAVE0〜SAVE3)
いろいろ作っていて足りなくなったらEEPROMという外部記憶を使いましょう。
秋月電子通商さんから便利なキット、IchigoROM 280円 が登場!

IchigoJam UとTの両対応。付属のピンソケットを両側にはんだづけすれば、UとTに両対応。
IchigoJam T で使う場合は、I2Cと書かれた5ピン部分にピンソケットを縦にはんだづけしてもOKです!
書込み禁止にするジャンパーがついてきますが、接続しなければ読み書き可能な状態となります。(仕様書より

白く書かれたGNDなどの文字(シルク)を参考に、逆に刺さないようにだけ注意!

SAVE0〜3に加え、100〜163の64ファイル、新たに保存できるようになります!

LOAD 0 loaded xxxbyte OK SAVE 100 saved xxxbyte OK

早速本体に保存してあるファイルをバックアップしておきましょう。
友達に上げるのも簡単ですね!
足りなくなったら、IchigoROMをもういっこ買って、シールなどで区別できるようにするのもいいですね。

更に、付属の説明書にも書かれた便利な使い方!

IchigoROMは、1Mbit = 128kbyte の容量がありますが、ファイルとして保存できるのは前半分。
後ろ半分は汎用的なデータの読み書きとして使えます。(I2Cアドレスは81)

例えば、文字列を保存しておいて、画面の好きな場所に表示する方法

[0]=0:R=I2CW(81,#800,2,"TEST",4) OK X=10:Y=20:R=I2CR(81,#800,2,#900+X+Y*32,4) OK

HELPコマンドでみると、#800は配列と変数が入った領域。先頭は配列の0番目、[0]=0 で保存する場所を指定して、I2CWコマンドで4文字、書込み。
#900は、画面用のメモリ VRAM の領域、X座標Y座標分ずらして、I2CRコマンドで読み込むと、保存してある文字列が表示されます。

IchigoROMで使っているEEPROMの仕様書を見ると一度に書ける量は256byte。
big endian(先頭が上位byte)の2byteで書き込む場所を指定するので、256byteを1ブロックと考えると、[0]=1 とすると、ちょうど次のブロック、256byte目を指定できます。
後半分64kbyteあるので、全部で256ブロック、好きに使えちゃいます!

スクリーンショットの撮り方(後半の3ブロック、32x24=768byteを使います)

FOR I=0 TO 2:R=I2CW(81,#8DC,2,#900+I*256,256):NEXT

変数 I の値は、メモリ#8DCと#8DDに入っているのを利用して、3ブロック書き込み。

I=0:R=I2CR(81,#8DC,2,#900,768):WAIT120

読み出しはまとめて読めるので、一気に1画面分768byteを#900のVRAMへ読み込み。

ハイスコア、RPGのステータス、たくさんの敵キャラクターパターンなど、保存でいろいろ夢が広がります。

自分だけの大作ゲームカセットづくりに挑戦してみましょう!
文字もたくさん保存できるので、日記や、お小遣い帳などにも使えますよ。

大作できたら、ぜひPCNこどもプロコンへ応募ください!秋月電子さんも協賛!
PCNこどもプロコン! / PCN Kids Programming Contest 2017 in Summer

締切、いよいよ今週末!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image