更新

ワンチップマイコンで作るビデオ信号ジェネレータ[リーフレット(pdf)][懇話会資料(pdf)]
アナログTV再利用プロジェクト[モニターのお願い]

小山智史(弘前大学)

 2011年に予定されているアナログビデオ放送の停波に伴い、アナログテレビの大量廃棄が社会問題となることが予想されます。国内のアナログテレビの台数は1億台以上と推計されていますから、想像を絶する大量のゴミが生まれることになります。まだ使えるモノを捨てるというのは甚だもったいないことです。人であれモノであれ、この世に生まれ出た限り、その役割を全うしたいものです。ここでは、ワンチップマイコン(ATMEL社のAVRマイコン)を使い、アナログテレビの再利用の可能性をさまざま試してみました。

 [1]の記事を見た時には、ワンチップマイコンでビデオ信号を直接作ることができることに驚きました。また、[2]〜[4]では、マイコンの内蔵メモリをVRAMとして使い、基本的な関数群を用意することにより、ビデオ装置のプログラム開発が容易になることを知りました。以下の装置はこれらを参考に製作したものです。

 屋外で小雨を避けるために「テレビ小屋」も作ってみました。

 なお、表示内容をプログラムできる小型ビデオ表示装置の初期のアイディアは2004年度の情報技術演習(院)の中で高橋学氏より出されたものです。また、表示内容を変えられるわけではありませんが、「ビデオバルブ」という小型のビデオ装置も商品化されているようです[5]。

製作例

TV電光掲示板画面写真 字幕オーバレイ
TV電光掲示板・字幕オーバレイ
TV時計画面 TV時計オーバレイ画面
TVクロック・オーバレイ
発表会用タイマー画面写真
発表会用タイマー
多目的タイマー画面写真
多目的タイマー
タイムエイド画面写真
タイムエイド
PONGゲーム画面写真
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ならではです。


ATmega88でモノクロの文字と画像表示

 ここでは1024バイトのSRAMの内の960バイトを横96×縦80ドットのモノクロビデオRAMとして用いました。同じラインを2本ずつ繰り返すことで縦160ラインの表示にしています。

○ 16×16ドット文字を6文字×5行表示

 文字表示には16×16ドットのbdfフォントを用いました。日本語フォントをすべてメモリ上に持つことはできません。

○ 96×80ドットモノクロBMPファイルの表示

 ペイントで描いた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


ATtiny45によるカラーバービデオ信号

 以前、アセンブラで書いたカラーバー信号のプログラムをCで書いてみました。また、チップはATtiny45を使い3ビットDACにしました。VRAMのビットマップ画像に自由に色をつけられるということではありませんので念のため。

(写真)

画面写真基板写真

(回路図)

回路図

(プログラム)...color45.c(WinAVR-20060421のgccで-Osのオプションをつけてコンパイル)


AT90S2313によるカラーバービデオ

2004.6.24 アセンブラで書いた初期のバージョン

 AVRマイコンを使ったビデオ信号ジェネレータです。テレビのAV端子に接続すると、

9→8→...→2→1→カラーバー
のように、表示が変化します。また、「3→2→1」の表示の時にはブザー音が鳴ります(音はおまけです)。

 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


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