2006.12.19-

アナログテレビに表示する1人用PONGゲーム(tinyBasic版もあります)

小山智史(弘前大学)

○ アナログTV再利用プロジェクト 2006

 2011年に予定されているアナログビデオ放送の停波に伴い、アナログテレビの大量廃棄が社会問題となることが予想されます。国内のアナログテレビの台数は1億台以上と推計されていますから、想像を絶する大量のゴミが生まれることになります。まだ使えるモノを捨てるというのは甚だもったいないことです。ここでは、アナログテレビ再利用のひとつとして、PONGゲームを製作してみました。[1]~[5]のような多くの試みがあり、特別なものではありません。

PONGゲーム画面写真 PONGゲーム装置写真
主な仕様
表示画面48×32ドットの白黒表示
ビデオ信号毎秒61フィールドのモノクロノンインタレース信号です。テレビ信号の規格を満たしてはいませんが、何台か試したテレビでは特に問題なく表示できました。
出力テレビのビデオ入力端子に接続
電源3V(CR2032) 8mA
大きさ40×55×20mm

○ 使い方

 スイッチを入れ、ボリウムでラケットを上端に移動するとゲームが開始します。ゲームは9点先取です。

○ 技術情報

 「プレイヤー側のラケットにボールが当たってからコンピュータ側のラケットが移動を開始するまでの遅延」を小さくするとコンピュータが強くなり、大きくすると弱くなり、この値を微妙に調整しています。

 マイコンはATMEL社のAVRマイコンATtiny45Vを使いました。ビデオ信号の発生方法については、主にBruce Land氏の資料[1][2]を参考にしました。プログラムはWinAVR(20060421版)のgcc-avrで「-Os」オプションでコンパイルします。

 ATtiny45のSRAM256バイトの内192バイトを、モノクロ48×32ピクセルのVRAMとして使っています。1水平走査時間を64μsとし、256ラインで1フィールド1/61秒になっています。

 出力の整合をとっていないため、画像に少し滲みが出ます。

(回路図)

回路図

(プログラム)...pong.c, vlibnums.c, pong.bat(参考)

○ Arduino版PONG 2016

 上記のArduino版を作ってみました。プログラムはArduino UNO, Studuino, Nanoboard(ちっちゃいものクラブ)で動作を確かめました。TVとの接続はICSPコネクタを使い、抵抗はコネクタに付けました。画面表示や操作方法は上と同じです。

(プログラム)...pong.zip

○ tinyBasic版PONG 2016(詳しくはこちら)

 tinyBasic版も作ってみました。Arduino UNO, Nano, Miniなどで動作しました。

(参考資料)
[1] 瀬戸口豊: ワンチップ・ブレークアウト・ゲームの製作, トランジスタ技術, 1997年5月号, pp.353-360.
[2] Rickard: PIC-Pong, http://www.rickard.gunee.com/projects/video/pic/pong.php
[3] D.B.Thomas: VCR Pong, http://dt.prohosting.com/pic/pong.html
[4] Bruce Land: AVR Video Generator with an AVR Mega163, Atmel Application Journal, Vol.3, pp.8-10(2004).
[5] Bruce Land: Video Generation with Atmel AVR microcontrollers(Cornell Univ. EE476), http://instruct1.cit.cornell.edu/courses/ee476/video/


[ライタ][天文教材][ビデオ][発表会用タイマー][多目的タイマー][タイムエイドforTV][TV時計][テロッパー][PONG][写真立て][オルゴール][ピアノ][時計][貯金箱][ノック][リモコン][チャイム][マウス][テキスト]
koyama@hirosaki-u.ac.jp