TVゲーム、動画
PIC16F84A、PIC12F648Aを使用します。
ブラウン管TVの外部入力からゲームや動画を白黒で表示させます。


作品1:TVゲーム
【PIC16F84A】



当初の予定ではTVゲームなどと大それたことを計画していたわけではなくブラウン管に映像が
映し出せるかという計画でした。しかし意外にも簡単に映し出すことができたのでゲームまで
やってしまおうと思った次第です。
インターネットと言う物は便利なものでブラウン管の映る原理などを紹介しているサイトが数多くあり
無知で理解力の乏しい中でかの有名なブレークアウトゲームの回路図に乗せてプログラムを進めて行ったら
なんと当方の意図する線が映像として浮かび上がり「これは行ける」と言ったわけです。
垂直同期区間が1行目から9行目、映像可能区間が21行目から262行目まで、その行を走査線と呼び
走査線は左から右まで63.5μ秒でそのスタートの基準を水平同期と呼ぶ。
垂直同期は+方向へ立ち上げ水平同期は−方向へ立ち下げそのパルス幅は共に4.8μ秒である。
みたいなことがお勉強してわかりました。
+方向、−方向の意味はわかるのですが実際の出し方がわからなかったのでブレークアウトゲームの
回路図をそのままいただいて接続したらばっちりだったと言うわけでした。
インターネットで「垂直同期」「水平同期」などの語句を検索するとそのようなサイトを見つけることができます。
当方のASMファイルの割り込み設定内にそのあたりの部分がありますので見てください。
その同期信号に別の足から出た映像信号をトランジスタでブレンドして映像出力としてる感じです。
ひっくり返るほどお粗末なプログラムで映像が現れます。
みなさんも一度何かブラウン管に映像を出してみてはいかがですか?簡単ですよ。
ゲームは「落石注意ゲーム(仮題)」です。上から落ちてくる落石から上手く逃げてください。
ただそれだけです。
小学校低学年向きです。

<<<注意>>>こちらで5台のブラウン管TVで動作確認済みですが液晶では映るか不明です。
勇気のある方は自己責任でテストしてみてください。いずれにせよ全て自己責任で行ってください。
テレビを壊さないように気をつけてくださいね。
「PIC16F84AでTV_GAME」のasmとhexと回路図の詰め合わせ(音色違いで2種類入っています。)
ダウンロード

【参考動画】詳細はフリスク電子工作の項をご覧ください。

作品2:ブレークアウトゲームの改造
【PIC16F84A】

ところでみなさんはあの有名なブレークアウトゲーム(ブロック崩し)はもうお作りでしょうか?
あのゲームは元々PIC16C84用でしたのでASMファイルは上手く扱えませんでしたよね。
当方がTVゲームを作る際に参考にしようと思ったときにもASMをシュミレーションすることが出来ませんでした。
またゲーム自体も難易度が高くスコアカウンターが4ケタある割には高得点にはなかなか行けませんでした。
と言う訳でなんとかPIC16F84A用としてASMファイルを完成させ楽に4ケタのハイスコアを狙える運びとなりました。
インチキと言われればそれまでですが結構遊べるシロモノになりました。
一度作って笑ってみてください。
「ブレークアウトゲームの改造」のasmとhexと回路図の詰め合わせ(ノーマルバージョン以外に3種類入っています。)
ダウンロード

9999点を狙いたい方の為に下記をご用意しました。
ダウンロード

【参考動画】


作品3:動画
【PIC16F84A、PIC16F648A】

ブラウン管TVに映す動画を作ってみました。2種類あります。笑ってください。
PIC16F648A用で約3分毎に2種類の動画を繰り返すファイルも作りました。
回路図はPIC16F84Aの物でも使用できます。
PIC16F648A用の回路図はBGMのテンポにあわせて点滅するLED付きです。
カップ麺用3分計としてもご利用頂けます。LEDの色を変えると効果的です。
  「PIC16F84Aで動画」のasmとhexと回路図の詰め合わせ(2種類入っています。)
ダウンロード

【参考動画】



作品4:テトリスの改造
【PIC16F84A】


【参考動画】

PIC16F84Aの傑作、テトリスを改造してみました。
私がまだアセンブラなどを知らなかった頃HEXだけをPICに書き込んで遊んでおりました。
そのときに気になったことがいつくかあり自分がアセンブラを理解した暁にはそこを直してみようと思っていました。
それは、
_罎家にある一部のテレビで映像が画面に映りきらない。
映るテレビでも上の部分の映像が横に流れる。
BGMが4拍子で無いところがある。
ぅ椒織鵑魏,靴討い襪箸映像の一部が消えてしまう。
BGMの音質が悪い。

グ奮阿魯リアできました。
´△砲弔い討榔覗の高さを縮めて画面の上部にすきまをあけて映像の同期が狂う部分を空白にしました。
ASMファイルでいろいろと調整が出来るようにしてありますのでお試しください。
は楽譜のプログラムの不備を直して必要な拍だけ音符を追加しました。少しアレンジがしてあります。
い魯廛蹈哀薀爐量簑蠅任呂覆回路の問題でした。
以前、製作した回路図は某大学のオープンキャンパスで公開された資料のあるサイトから写しました。
この回路が実はクセモノでした。プログラムを見ると映像が作られている時間中PORTBは全て出力ポートなのです。
サイクル時間のある一部だけが入力となって押しボタンのオンオフを確認しています。
つまり出力となっているポートを押しボタンによってGND側へショートさせていることになります。
PICは出力がショートされて電圧がある一定以下になると出力を止めてしまいます。
このテトリスのプログラムではPORTBがRRF命令によってRB0側へ送り出されそれが映像となります。
つまりあるポートがショートされるとそこはHであってもLに書き換えられて信号が出ません。
つまり映像が消えてしまうのです。
しかし、この大学のサイトを見てみなさんはテトリスを作られていると思うのですが気が付いていましたか?
その対策は簡単です。2KΩの抵抗1本で済みます。1KΩでも3KΩでも構いません。
しかしこれでも不充分で複数のボタンを一度に押すとやはり消えてしまいます。
しっかりと作りたいときはそれぞれ押しボタンひとつずつに抵抗を入れてGNDに落としてください。
イ砲弔い討藁鷲埖で出来ませんでした。そのかわりに違うBGMが流れるプログラムを作りました。
下記からダウンロードをして御使用ください。
ファイル名ntsctetrisがノーマルバージョン、tetria_1が横流れ対策、tetris_2がBGM変更版です。

ダウンロード



作品5:1人用壁打ちテニスゲーム
【PIC12F675 629】

【参考動画】

8ピンのPICでテニスゲームを作ってみました。
ピン(足)が足らないために音は出ません。映像だけの出力です。
また製作者の力不足から上手く出来ていない部分がありますがとりあえず遊べます。
不具合は。
.薀吋奪箸亮蠢阿妊棔璽襪打ち返されてしまう。
∧病任舛諒匹映像に現れていない。
F静世良充┐所々切れている。
ぅ押璽爛ーバーの表示が「OTL(orz)」のつもりが見えづらい。
ザ未良充┐ぶれる。 などと書き出せば結構あります。
プログラムのファイルはラケットの高さ(長さ)の長い物と短い物の2種類を用意しました。
プログラムもASMファイルに注釈をつけてありますので簡単に改造が出来ると思います。
一度お試しください

このプログラムを作成中に「Error - section '.org_2' can not fit the absolute section.
Section '.org_2' start=0x00000004, length・・・・・・
というエラーが発生しましたが解決法が見つかりました。
プログラミング関連の作品6をご覧ください。


ダウンロード



作品6:μPONGの改造
【PIC12F675】

【参考動画(video)】

西洋のテレビ映像方式のPAL方式用でしかプログラムが無かったため日本ではあまり取り上げられていませんでしたが
PIC12F675を使ったとても優秀なピンポンゲームの作品です。
今回このプログラムを日本のテレビの映像方式のNTSC方式に調整しなおしてゲームを再現してみました。
実際に遊んでみた感想としては充分遊べる仕上がりになっていますがバグらしき部分もわずかですがあります。
そのバグは元々存在していた物なのか改造したときの不備によってなのかは不明です。
本元のサイトはここ です。
ここに回路図が出ていますがこの回路では上手く動作しませんでしたので変更箇所を説明します。
この回路図の番号に沿って説明します。
上の方から説明します。C1は0.1μF、R1は300Ω、R2は1KΩとしましたが回路図通りで良いと思います。
D1とD2は無くても動作しました。D3の代わりにLEDを使いました。100〜200Ωの抵抗でも動作しました。
R3、R4は1KΩでは上手く行きませんでした。10KΩにしました。
P3、P4は半固定抵抗です。このままでは上手く行かず隣にある10KΩボリウムとの間に4.7KΩの抵抗を入れました。
半固定抵抗は4.7KΩとなっていますが国内では5KΩが一般的ですのでそれを使用しました。
audio outの部分はこの回路通りです。150pF、47KΩ、0.01μFです。これらでノイズを除去しているようです。
発振子はセラロックなどと呼ばれている3本足の青い錠剤ような部品を使いました。コンデンサーは不用です。
GP3に接続されているのはモード変更用スイッチです。電源投入時に1人用/2人用が決定されます。
その後の変更でボールの高速/低速を選択できます。
ボリウム付近にある押しボタンはサーブボタンです。半固定抵抗はラケット位置の調整用です。
ブレッドボードなどで仮組みをする場合でもボリウムや押しボタンはしっかり配線をしておかないと
ノイズの影響でAD変換値が変動してラケット位置やサーブのボールが誤作動します。
以上の内容をまとめた回路図を示します。
D1、D2、D3は元の回路図の方が安心かも知れませんがこの回路で40型アクオスで映って遊べました。

回路図とHEX
ダウンロード

ASMファイルは本元のサイトでもアップロードされていませんのでこちらでもアップロードしていません。
ご了承ください。


作品7:スペースインベーダー釣りゲーム
【PIC16F84A】

2つの押しボタンで餌(白い四角い物)を左右に移動させてインベーダーを捕まえるゲームです。
電源は3Vでも動きます。一般的に外部クロックに20MHzを使用する場合は電源電圧は
4.5V以上が必要とデータシートを見てもなっています。
しかし84Aや648Aなどは3Vでも、又、それを下回っても20MHzで動きます。
抵抗値もそのままで行けそうです。不安な場合は少し高めを選定してみてください。

【参考動画(video)】

PIC16F84Aで作るスペースインベーダー釣りゲームです。
回路図とASMとHEXの詰め合わせ
ダウンロード




ご意見ご感想質問何でもどうぞの掲示板はこちら <<<クリック>>>

 

内緒でお話がしたい人はこちらまで
picdetukuttemimasita@yahoo.co.jp

トップページへ戻る