HOME > ものづくり(電子工作) > ビデオ信号ジェネレータ > PONGゲーム
2006.12.19-

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

1. 概要

 PONGゲームを製作してみました。[1]~[5]のように先駆者による多くの試みがあります。

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

2. 使い方

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

3. 技術情報

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

 マイコンは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(参考)

4. Arduino版PONG 2016

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

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

5. 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/


koyama88@cameo.plala.or.jp