2011年に予定されているアナログビデオ放送の停波に伴い、アナログテレビの大量廃棄が社会問題となることが予想されます。国内のアナログテレビの台数は1億台以上と推計されていますから、想像を絶する大量のゴミが生まれることになります。まだ使えるモノを捨てるというのは甚だもったいないことです。人であれモノであれ、この世に生まれ出た限り、その役割を全うしたいものです。ここでは、ワンチップマイコン(ATMEL社のAVRマイコン)を使い、アナログテレビの再利用の可能性をさまざま試してみました。
[1]の記事を見た時には、ワンチップマイコンでビデオ信号を直接作ることができることに驚きました。また、[2]〜[4]では、マイコンの内蔵メモリをVRAMとして使い、基本的な関数群を用意することにより、ビデオ装置のプログラム開発が容易になることを知りました。以下の装置はこれらを参考に製作したものです。
屋外で小雨を避けるために「テレビ小屋」も作ってみました。
なお、表示内容をプログラムできる小型ビデオ表示装置の初期のアイディアは2004年度の情報技術演習(院)の中で高橋学氏より出されたものです。また、表示内容を変えられるわけではありませんが、「ビデオバルブ」という小型のビデオ装置も商品化されているようです[5]。
![]() TV電光掲示板・字幕オーバレイ |
![]() TVクロック・オーバレイ | |||
|---|---|---|---|---|
![]() 発表会用タイマー |
![]() 多目的タイマー |
![]() タイムエイド |
![]() PONGゲーム | |
マイコンはATMEL社のAVRマイコンATtiny45を使いました。ビデオ信号の発生方法については、主にBruce Land氏の資料[2][3]を参考にしました。プログラムはWinAVRのgcc-avrでコンパイルします。
タイマーや電光掲示板のカラー表示は、サブキャリア(SC)の4倍の周波数(14.32MHz)のクロックでマイコンを動作させ、サブキャリアバーストに対して位相を90°ずつ変えることにより、4色を表現しています。ただし、タイミングもレベルも規格外のため、テレビによってはうまく表示できないことがあるかもしれません。以下のプログラムで、1ドットにつきSC2周期分の波形を作っています。予め、r16にVRAMの1バイト分、r17には0x00、r18には0x02を入れておき、以下のプログラムを8回繰り返すと8ドット分の信号となります。次の1バイト分は予め別のレジスタに入れておき、同様のプログラム(r16の箇所が変わる)とします。このように6バイト分続ければ水平48ドット分のカラー信号となります。レジスタ数が多いAVRならではです。
ここでは1024バイトのSRAMの内の960バイトを横96×縦80ドットのモノクロビデオRAMとして用いました。同じラインを2本ずつ繰り返すことで縦160ラインの表示にしています。
文字表示には16×16ドットのbdfフォントを用いました。日本語フォントをすべてメモリ上に持つことはできません。
ペイントで描いた96×80ドットモノクロBMP画像ファイルを表示できるようにしてみました。BMPファイルをdumpで出力し、awkプログラム(96x80.awk)でCのソースファイル(96x80.h)に変換しています。
(写真)
(回路図)

(文字表示プログラム)...16x16.c, 16x16lib.c, bdf8.awk, bdf16a.awk, bdf16b.awk, bdf16c.awk, 16x16.bat
(BMP画像表示プログラム)...96x80.c, 96x80.awk, 96x80.bat
以前、アセンブラで書いたカラーバー信号のプログラムをCで書いてみました。また、チップはATtiny45を使い3ビットDACにしました。VRAMのビットマップ画像に自由に色をつけられるということではありませんので念のため。
(写真)


(回路図)

(プログラム)...color45.c(WinAVR-20060421のgccで-Osのオプションをつけてコンパイル)
2004.6.24 アセンブラで書いた初期のバージョン
AVRマイコンを使ったビデオ信号ジェネレータです。テレビのAV端子に接続すると、
AVRマイコン(AT90S2313-10)はクロックの上限を超えて使用しているので、再現性があるかどうかはわかりません。ビデオ信号は簡単な4ビットDAC回路で作っています。また、AVRをカラーサブキャリア(SC)の4倍のクロックで動作させ、プログラムで90°ずつ位相を変えて4色のカラーを表示しています。少し工夫すれば色数は増やせるかもしれません。
(写真)



(回路図)

(プログラム)...col2313.asm, video.inc
(参考資料)
[1] 瀬戸口豊: ワンチップ・ブレークアウト・ゲームの製作, トランジスタ技術, 1997年5月号, pp.353-360.
[2] Bruce Land: AVR Video Generator with an AVR Mega163, Atmel Application Journal, Vol.3, pp.8-10(2004).
[3] Bruce Land: Video Generation with Atmel AVR microcontrollers(Cornell Univ. EE476), http://instruct1.cit.cornell.edu/courses/ee476/video/
[4] Bruce Land: Designing with Microcontrollers(Cornell Univ. ECE476), http://instruct1.cit.cornell.edu/courses/ee476/
[5] クワクボリョウタ: ビデオバルブ, http://www.vector-scan.com/, 2000.
[6] ChaN: NTSCビデオ信号タイミング規格(RS-170A)概要, http://elm-chan.org/docs/rs170a/spec_j.html