皆さんはもう地デジへの対応は済みましたか? 新しいテレビを購入し、システムを一新した人も多いと思います。そのとき不要になった古いテレビはどうしていますか。処分しそびれて、部屋の片隅で眠っているというケースも多いのではないか、と推測します。
今回はテレビに接続して遊べる電子工作キットを紹介します。古くなってしまったアナログテレビにつなぐことで、8bitテイストのビジュアルを楽しむことができます。
最初に紹介するのはオープンソース・8bit・ゲームコンソールFUZEBOXです。
【動画】今回はまず動画からいきましょう。FUZEBOXのキラーアプリ、Megatrisをプレイ中の様子。落下してくるパズルピースを並べるゲームです |
FUZEBOXの特徴をまとめると次のとおりです。
・240×224ドット 256色表示
・NTSC RCA端子/S端子 (PALには非対応)
・コントローラ用端子×2
・タイル/スプライトにソフトウエアで対応
・4チャンネルのモノラルサウンド(ハードウエア的には1チャネル)
・AVRマイコン搭載 Flashメモリ=64KB、RAM=4KB
FUZEBOXはキットとして提供されるハードウエアの名称で、Alec "Uze" Bさんによって進められているプロジェクト全体はUZEBOXと呼ばれています。ハードウエアの情報はクリエイティブコモンズ、ソフトウエアはGPL3で公開されているオープンソースプロジェクトです。誰もが自由にゲームプログラミングを楽しめるよう、シンプルで低コストなハードウエアを前提にしています。
ダウンロードして遊ぶことができるソフトは少しずつ増えているところです。公開されている作品のリストを見ると、完成しているものが14本、開発中のものが5本あります。
アプリ群のなかから1本紹介するとしたらこれはどうでしょう。Peter Hedmanさんによるシューティングゲーム Zombienator。十字キーで移動しながら、ABXYボタンで射撃方向を指定し、Rボタンで発射という習熟を要する操作系です。たぶん、作者はこの操作系を試してみたくて、このゲームを作ったのでしょう |
FUZEBOXのような8bitゲーム開発キットは他にもあります。最新のものではNurve NetworksのChameleon AVR 8-Bit Systemが、とても興味深い製品です。デュアル・プロセッサ構成になっていて、扱いやすいArduino互換のAVRマイコンと高性能な並列処理型のマイコンPropellerがクレジットカード大の基板の上に集約されています。
こうしたキットを使って、ゲームプログラミングの基礎を学んだり、オリジナルのアイデアをプロトタイピングしたり、他者の作品をダウンロードして楽しんだり、といったことをしている人々が、どうやら世界中にいるようです。
次に紹介するキットもテレビにつないで使います。内容を言葉で説明するのは難しいので、まずは動画をご覧ください。
【動画】CRITTER and GUITARIのセルラオートマタ・ビデオシンセサイザ・キットを「プレイ」しています。好きな人はハマる世界です |
キットの中身です。部品数は多くなく、先ほどのFUZEBOXよりもハンダ付けはカンタンでしょう。汎用的な半導体だけでビデオ信号を生成しています(ビデオ信号を生成するための専用チップを使っていません) |
完成したボード。キットの中身はこれで全部です。プログラムは書込済みなので、すぐに試せます |
後ろ側から見たところ。9Vの電源が必要です。電池(006P)でも動作しました |
3つある可変抵抗器(VR)でセル・オートマトンのパラメータをリアルタイムに変更します |
3つの可変抵抗器(VR)はスピード、ルール、セルの横方向の数に対応しています。ここでいうルールが何を意味しているのかよくわからないのですが、色の変化に影響しているように見えます。ソースリストはGPLで公開されているので、自由に改変して異なる挙動を実験することができます。回路についての情報は公開されていないようです。
我々が遊んだ印象では、映像以上に音の面白さが際立っていました。裸の8bitサウンドもいいのですが、エフェクタをかけて少し聞きやすくすると、環境音楽(映像付き)としてもいけるのではないでしょうか。
作者のCRITTER and GUITARIというユニット(?)がどういう人たちなのかわかっていません。他にも面白いキットを出していて、なかでもArduino用のシンセサイザはとても魅力的なサウンドです。回路図やソースコードが公開されており、使用する部品もわずかなので、キットなしでも試すことができます。
キットならば問題が起こることはそうないはずですが、自作の機械をテレビにつなぐのは心配という人もいるかもしれません。そういう場合は、車載用のビデオトランスミッタを使うと、物理的に接続する必要がなくなり、ハンダ付けのミスなどが原因で万が一のダメージを与える可能性を排除できます。写真の製品は大自工業のAV-T1。内蔵電池で動作するので実験に便利です |
今回の作例はすべて9V電池で動作しています(FUZEBOXのプログラム書き込み時はACアダプタでないと動作しませんでした)。写真のような2.1mmプラグのアダプタを作っておくと便利です |
テレビに情報を表示させてみたいけど、回路やプログラムを作る手間を最低限に抑えたい、という人は、Arduino用の拡張ボード TellyMate shield を使ってみてはどうでしょう。国内ではスイッチサイエンスが取り扱い中です。
【動画】この動画は連載第1回に掲載したものと同じです。壊れた古のパソコンZX-81のなかにArduinoとTellyMateを内蔵しています。蘇ったZX-81は素数を計算しテレビに表示するのがシゴトです。しかし、ご老体のためすぐに眠ってしまいます。ケースを軽く叩くと目を覚まして計算を続けます。桁が増えるにしたがって、遅くなっていきます |
TellyMateのおもな仕様をまとめておきます。
・PAL/NTSCコンポジットビデオ出力
・38×25文字白黒表示
・通信スピード300~57,600bps(自動検出機能あり)
・倍角、倍高表示
・VT52準拠のコントロールコード
TellyMateはいわゆるシリアルターミナルです。表示できるのはキャラクターだけですが、エスケープシーケンスを組み合わせることで、カンタンなアニメーションも可能です。作者のページにはライフゲームなどの動きのある作例も用意されています。
TellyMateのような(ちょっと原始的ですが)廉価なハードウエアを使って、廃品扱いになってしまったアナログテレビを再活用するアイデアを考えるのが、我々の楽しみの1つです。