Mega64でLED GAMEの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
http://star.gmobb.jp/koji/data/LED_GAME_1.JPG
!AVRでポータブルゲーム機
USBキーボードの製作で参考にした「[USB機器の製作|http://nicotak.com/usb/index.html]」の[nicotakさん|http://nicotak.com/]はAVRの本「[AVRマイコン活用ブック|http://nicotak.com/avr/index.html]」も著作されておりその中に「[LED GAME for AVR|http://nicotak.com/avr/ledgame.html]」というマイコンボードがあります。
キット化され、ゲーム機になるということもあり当時(2007年頃)結構売れたようです。
USBキーボードの製作で参考にした「[USB機器の製作|http://nicotak.com/usb/index.html]」の[nicotakさん|http://nicotak.com/]はAVRの本「[AVRマイコン活用ブック|http://nicotak.com/avr/index.html]」も著作されておりその中に「[LED GAME for AVR|http://nicotak.com/avr/ledgame.html]」というマイコンボードがあります。キット化され、ゲーム機になるということもあり当時(2007年頃)結構売れたようです。

http://star.gmobb.jp/koji/data/LED_GAME_t.JPG [拡大|http://star.gmobb.jp/koji/data/LED_GAME_tl.JPG] http://star.gmobb.jp/koji/data/LED_GAME_b.JPG [拡大|http://star.gmobb.jp/koji/data/LED_GAME_bl.JPG]
ソフトウェアがサイトに公開されているので、自前で作ってみることにしました。
本家は[ATmega168|http://akizukidenshi.com/catalog/g/gI-03033/]を使用し、シリアル変換して16×16ドットLEDを駆動していますが、[ATmega64A|http://akizukidenshi.com/catalog/g/gI-04255/]でパラのまま駆動する方法で作ることにします。
構成はシンプルになりますが、配線は逆にちょっと多くなるのかな。
16×16ドットLEDは[鈴商さん|http://www.suzushoweb.com/category_2.php?c2_id=92]でたまたま見つけた40mm角の緑色単色(LJ1621-11T-HE)ですが、秋月電子の赤色([C-2AA0SRDT|http://akizukidenshi.com/catalog/g/gI-00789/])と同等(VFは勿論違うが)かと思います。

ソフトウェアがサイトに公開されているので、自前で作ってみることにしました。本家は[ATmega168|http://akizukidenshi.com/catalog/g/gI-03033/]を使用し、シリアル変換して16×16ドットLEDを駆動していますが、[ATmega64A|http://akizukidenshi.com/catalog/g/gI-04255/]でパラのまま駆動する方法で作ることにします。構成はシンプルになりますが、配線は逆にちょっと多くなるのかな。16×16ドットLEDは[鈴商さん|http://www.suzushoweb.com/category_2.php?c2_id=92]でたまたま見つけた40mm角の緑色単色(LJ1621-11T-HE)ですが、秋月電子の赤色([C-2AA0SRDT|http://akizukidenshi.com/catalog/g/gI-00789/])と同等(VFは勿論違うが)かと思います。

[回路図|http://star.gmobb.jp/koji/data/LED_GAME_cir.PNG]

何の仕掛けも無い回路で説明は不要でしょう。
!製作
http://star.gmobb.jp/koji/data/LED_GAME_w.JPG [拡大|http://star.gmobb.jp/koji/data/LED_GAME_wl.JPG] http://star.gmobb.jp/koji/data/LED_GAME_p.JPG
単四電池二本でDC-DCコンバータ3.3V駆動。スピーカとSDカードスロット付きで、おなじみのプラケース[SK-5|http://akizukidenshi.com/catalog/g/gP-00076/]に収まるように作りました。
電池ボックスは入らないので基板に直接ゼムクリップを加工して作っています。
GAME BOY用のバッテリパック(ニカド2セル)を持っていたのでそれ用のDCジャックも付けました。
製作途中でちょっとまずいことが発覚。
公開されているゲームのプログラムは、電源を切り忘れても電池がなくならないように終了するとスリープ状態になるようにできていますが、Mega64はピン変化割込みが無いんです。
そこでA,Bキーを外部割込みができるEポートに変更しました。(最初はGポートだった。全部Eポートに移すのがベスト)
なのでウェイクアップできるキーはA,Bキーのみとなります。

単四電池二本でDC-DCコンバータ3.3V駆動。スピーカとSDカードスロット付きで、おなじみのプラケース[SK-5|http://akizukidenshi.com/catalog/g/gP-00076/]に収まるように作りました。電池ボックスは入らないので基板に直接ゼムクリップを加工して作っています。GAME BOY用のバッテリパック(ニカド2セル)を持っていたのでそれ用のDCジャックも付けました。

製作途中でちょっとまずいことが発覚。公開されているゲームのプログラムは、電源を切り忘れても電池がなくならないように終了するとスリープ状態になるようにできていますが、Mega64はピン変化割込みが無いんです。そこでA,Bキーを外部割込みができるEポートに変更しました。(最初はGポートだった。全部Eポートに移すのがベスト)なのでウェイクアップできるキーはA,Bキーのみとなります。
!ソフトウェアの変更
LEDの駆動部分以外はCPUの違いを合わせるだけの修正です。
公開されているプログラムはだいたい一定のルールで作られており、共通のライブラリを使用しているのでライブラリのみ入れ替えればメインのプログラムは変更無しで動作します。
修正が必要だったものは、rand.c, beep.c, sio.c, sw.c, led.c, sleeping.c のみなのでこれらを上書きしてMakeすれば、本機用のhexが出来上がります。
[ゆきさんのMMCブートセレクタ|http://yuki-lab.jp/hw/MMCboot/index.html]も本機用に修正しました。SDカードが使えます。
LEDの配線はややこしくて間違えると、表示が上下左右が逆になったりしますが配線を直すよりソフトの方を修正した方が楽です。
私は1ポート分間違え左右逆になりました。詳細はled.cのコメントを参照してください。
LEDの駆動部分以外はCPUの違いを合わせるだけの修正です。公開されているプログラムはだいたい一定のルールで作られており、共通のライブラリを使用しているのでライブラリのみ入れ替えればメインのプログラムは変更無しで動作します。修正が必要だったものは、rand.c, beep.c, sio.c, sw.c, led.c, sleeping.c のみなのでこれらを上書きしてMakeすれば、本機用のhexが出来上がります。

[ゆきさんのMMCブートセレクタ|http://yuki-lab.jp/hw/MMCboot/index.html]も本機用に修正しました。SDカードが使えます。LEDの配線はややこしくて間違えると、表示が上下左右が逆になったりしますが配線を直すよりソフトの方を修正した方が楽です。私は1ポート分間違え左右逆になりました。詳細はled.cのコメントを参照してください。

{{ref LED_GAME_64.zip,Mega64でLED GAME,変更したソフトウェア}}

製作は自己責任でお願いします。
!!関連リンク
NICO, Corp.
http://nicotak.com/
ゆきの研究室
http://yuki-lab.jp/index.html
その他AVR関連の製作
AVRパラレルライターの製作
AVR学習リモコンの製作
AVRとZ80でCP/M
AVRとZ80でTK-80
----
{{comment}}