ワンダーウィッチ作業室
ワンダーウィッチは、バンダイの携帯用ゲーム機「ワンダースワン」上で走るプログラムを作成するための開発キットです。
このページはワンダーウィッチ関係のアレコレを載せていきたいと思います。 |
■
ワンダーウィッチ専用掲示板 ■
■ 掲示板 ■ |
ワンダースワンに接続 |
|
■ 拡張ストレージ実験 ■ |
![]() 秋葉原の普段は行かないパーツ屋を覗いてみたら、スマートメディア用のコネクタが売られていました。スマートメディアは3.3Vで動作するので、AVR経由でワンダースワンと接続というお得意の手段で読み書きが可能ではないか?と思い、パーツを購入して実験することにしました。
|
■ 小型キー入力デバイス計画 ■ | ||||||||||||||||||||||||||||||||
![]() PS/2キーボード接続計画に続く、ワンダースワン用入力デバイス計画の第二弾としてこんなものを作ってみました。
|
||||||||||||||||||||||||||||||||
12/1追加
AVRワンチップマイコン側のプログラムは完成しました。今回はスワンから電源を取るという設計で、うまく動作するか不安だったのですが、ちゃんと動いてくれたので一安心。
AVR側のプログラムは単純で、キーが押されるまでひたすらスキャンを繰り返し、押されたらそのコードをスワン側へシリアル送信するというだけです。キーが押されると以下のコードを返します。
このままでは単なるテンキーにしかならないので、↓のような配列として使用する事を考えています。
キー配列はまだ試案の段階で、これから変化する可能性大です。 |
||||||||||||||||||||||||||||||||
12/7追加
秋月に行ってみたらコンデンサ内蔵タイプのセラロックは4MHz以上しか無かったため、なるべく回路は手抜きしたいので4MHz動作にしてしまいました(笑)。 消費電力がちょっと気になりますが、必要な時だけスワンに挿して使うという使い方ならたぶん大丈夫でしょう(根拠はないですが)。 動作クロックが上がったついでに、ジャンパを一個付けてシリアル通信のボーレートを9600/38400bpsに切り替えできるようにしてみました。将来的に他のキー入力デバイス、たとえばPalm用キーボードなんかと併用する時に、ボーレート切り替えができるほうがたぶん便利でしょう。 キー入力デバイスのハードウェア側はこれでほぼ完成として、あとはスワン側のプログラムに取りかかる予定です。 |
■ 汎用拡張ボード計画 ■ |
小型キー入力デバイスの基板を作ってる最中に「この回路はワンダースワン用の汎用拡張ボードとして使用できるのでは?」というアイデアが浮かびました。
スワンコネクタを直付けした小型基板に、ワンチップマイコンを乗せてシリアル通信させることで、仮想的なスワンのI/Oポートとして使えないか?というのが基本的な構想です。機能的には↓のようなものを考えています。 ・秋月のCタイプ基板サイズ(72x51mm)という感じ。 最後のコマンド発行というのは、AVRワンチップマイコンのプログラムを組まなくても、スワンからシリアル経由でコマンドを発行することで、I/Oポートを制御できるという意味です。 実現すれば恐らくこんな感じ↓の基板になると思います。 ピンヘッダ部分にはAVRの全I/Oポートと、Vcc、GND、それにスワンのPWM出力が出るようになっています。
もっともこれを自作するのではあまり意味が無く、基板がパターン化されて全てのパーツが揃ったキットか、あるいは完成品でないとお手軽に拡張というわけにはいきません。スワンコネクタをパーツだけで入手するのが不可能という現状もあるので、ここから先をどうするかは全く未定です。
|
12/15追加
こんなものを作ってみましたが。とりあえずやってみただけなので実際に基板を作るところまで行くかどうかは不明。
|
■ ライフゲーム ■ |
なにはともあれ作ってみないと始まらない。ということでワンダーウィッチの記念すべき一発目として「コンウェイのライフゲーム」を作ってみました。
説明しなくても誰でも知っていると思ったら、結構知らない人がいてびっくり。何それ?という人はインターネットの検索エンジンで調べてみましょう。 英語のページですが、↓のページにライフゲームの面白いパターンが紹介されています。Javaアプレットで実行もできるので、ぜひ見てみて下さい。 http://www.math.com/students/wonders/life/life.html |
|
|
実行するとランダムにセルを配置して、あとは自動的にセルの生成と死滅を計算し続けます。何かキーを押すと実行を終了します(長めに押して下さい)。
画面周りの構造がまだ把握し切れていないので、かなりダメダメなプログラムですが大目にみてやって下さい。ご意見ご希望ご感想などありましたら、掲示板のほうへどうぞ。 |
8/17追加
画面の初期化が足りなかったらしく、電源投入直後に走らせると何も画面に出ないという情けないバグがあったので修正しました。これで大丈夫...かなぁ(弱気)。 |
8/25追加
ささおさんのJunk Boxで公開されたシリアルマウスドライバを使わせていただき、マウス対応バージョンに作り直しました。↓のシリアルマウスエミュレータでも動作します。 セル配置画面ではカーソルキーまたはマウスでポインタを動かし、Aボタン(左マウスボタン)でセルを置き、Bボタン(右マウスボタン)でセルを消します。STARTキーまたは画面の左上隅クリックでセル配置画面を抜け、ライフ画面に移ります。 ライフ画面でSTARTキーを押すとシェルに戻ります。 STARTキー以外のキーを押すか、または左右いずれかのマウスボタンをクリックすると、セル配置画面へ移ります。 |
■ シリアルマウスエミュレータ ■ |
ワンダーウィッチにシリアルマウスを接続する実験は既に成功されている方がいらっしゃいますが、そのためにはPICを使用したボーレイト変換回路を自作する必要があります。回路自体は簡単だし、PICに書き込むのも秋月のキットを買ってくればそれほど難しくないのですが、そうは言ってもハードの経験が無い人には敷居が高いと思います。
そこでマウスを使用したプログラムの開発用に、シリアルマウスのエミュレータというのを作成してみました。PCのマウス入力をワンダースワンのボーレートに合わせてシリアルポートに出力するというプログラムで、思いついてから完成まで1時間という超手抜きプログラムですが、とりあえずココのテストプログラムは動作しました。 Win98SEとWin98でしか動作確認は行っておりません。不具合がありましたらご連絡下さい。 |
|
8/21追加
マウスの移動範囲を制限すると使いにくい気がしたので、ウィンドウ範囲を超えると反対側へマウスポインタがワープするように修正してみました。 |
8/25追加
ワンダーウィッチ初のマウス専用ゲームをkakiさんが作成されました。午後の魔女で公開されています。 |
■ 56桁表示実験 ■ |
フォントを横1/2に圧縮して表示桁数を増やすという実験をやってみました。ワンダーウィッチは8x8ドットで漢字も表示するという職人芸なフォントを使用しているので、そのまま横圧縮すると潰れて読めなくなるのが目に見えています。
フォントを4x8ドットに圧縮する代わりに、階調表示を付け加えてなんとか読める状態にならないか?という目的でプログラムを組んでみた結果が↓です。 半角フォントならコントラストを調整すればかろうじて読めますが、やはり漢字は無理ですね。ひらがなとカタカナは結構行けそうな気がします。
|
|