ここから本文です
Dr.KIKKIE(KIKI) MSX DeuxLaque
免責:記載誤りによる損害一切

書庫デフォルト

記事検索
検索

2.5インチモニタ(3)

イメージ 1
■承前
さて、完成バージョンである。
最後まで未解決だった、「追加ボードをどうくっつけるか?」について一応の解決をみた。
液晶パネルのスタンドに利用するため加工したカード立ての残りの部分にくっつけ、それを液晶パネルのスタンドにくっつけるという方法である。当然のことながら、アクリル板の曲げ角度が同じなので、ピッタリである。
ずいぶん奥行きが大きくなったが、重心が後ろに移動して安定した。

■正面(写真上)
1ChipMSXに載せて、「グラディウス」を表示。
カートリッジに描かれたイラストより一回り小さいことが分かる。
それでも「大きさが今イチ分からないよう」という声を頂戴したので、誰でもみんな知っているソニーのウォークマンをサイズ比較として並べてみた。
この機種は1982年発売の「WM-7」。
ドルビーノイズリダクション搭載、オートリバース機能付き。高機能と引き換えに、ずんぐりと大きく、バッテリーの消耗が激しいという特徴があった。

■裏面(写真中)
白と黄色のRCAプラグが大きく見える。
大きい丸いのは剥き出しのスピーカー。小さい丸いのは音量可変抵抗器。
スピーカーの下のコイル状のものは、スピーカーのコードをコイル状に巻いたもの。ハンダ付けし直すのが面倒だったためだが、アンプが高利得過ぎるので少しはハイインピーダンスになっていいかもしれない。知らんけど。
その下のカールコードはUSBに繋ぐ電源コード。

■側面(写真下)
プラグが所狭しと挿し込まれて、サイバーパンクな雰囲気が漂う。
剥き出しの基板と無造作にくっつけたスピーカーも退廃的雰囲気を醸し出している。

■それなりの工夫的なもの
電源部には470μFの電解コンデンサを並列に入れた。これは気休めである。
また、音声入力に直列に10kΩの抵抗を入れた。この効果は大きく、無駄な高利得を相殺して、普通に音量調節できるようになった。
ノイズはかなりマシになったが、音量を絞ると一定の低周波ノイズだけが残る。どうせMSXだからいいけど。
映像信号ケーブルは、なんとなく2線を捩ってツイストケーブルにしてみた。LANケーブルなどではノイズ対策としてツイストケーブルが使われるが、映像の場合は逆効果かもしれない。知らんけど。

■まとめ
まったくもって自画自賛であるが、音声と映像をMSXと一体化して持ち運べるのは予想外に便利である。特に、別電源を用意しなくていいのが、いい。
名曲「グラディウスのテーマ」(っていうのか?知らんけど)が流れたときは、感動モノである。画面が小さすぎてゲームにはならないが。

残るは、スロットからの5V取り出しアダプタの作成であるが、カードエッジの加工が面倒で、また今度、である。
この連休の(=今年前半の)最大の成果は、実はこの2.5インチモニタだったかもしれない。
両面テープ仕上げだから、すぐバラバラになるかもしれないけどね。

2.5インチモニタ(2)

イメージ 1
■承前
2.5インチモニタの改修中。改修ポイントはふたつ。
 (1)音声出力を加える。
 (2)MSX本体から電源をとる。
今回は途中経過。

■付加ボード(写真上)
2.5インチモニタの背面に収まるサイズのユニバーサル基板に音声及び映像用RCA端子とDC電源コネクタを配置、空いた部分に別基板のアンプを配置。
とりあえずは、音声関係のみ配線。

電源は、百均ショップで購入の「USBから携帯電話に充電するアダプタ」のコネクタ部分をDC電源プラグに取り替えたもの。
また、スピーカーは、これも百均ショップで購入の「テレビの音を近くで聞けるスピーカー」から取り出したもの。

■アンプ部分(写真下)
今回の改造の心臓部ともいうべきアンプは、これも百均ショップで売られていた「ボリュームアンプ」。このアンプ、すでにネットでは有名らしく、多くの人が各種改造に用いている。
ステレオ化してみたり、ギターアンプにしてみたり、とさまざまである。
当初、LM386を使って回路を組もうかと思っていたが、人が使っていると面白そうだし、なにしろ100円でアンプに必要な一式が揃うし、というわけで方針転換した次第。

本来は、低電圧駆動のICの特性を生かし、乾電池2本の3Vで使用するよう設計されているが、データシートで5VでもOKを確認。むしろ、MSX本体の過負荷にならないか気になるが、気にしないことにする。

ちなみに、ナナメになっているのは、垂直だと出力ジャックにプラグが入れられず、水平だとモニタの横にはみ出るためである。

■音を出してみる。
電源とスピーカーを接続し、MSXからPLAY”CDEF”を繰り返し出力する。
音量を徐々に上げていくと、何て言ったらいいのかなあ。これは。
大変ノイジーである。小さい音量だとノイズに音が埋もれる感じ。だんだん音量を上げると、まともに聞けるようになってくるが、一定以上だと急に音が出なくなる。で、最後に急に大きな音になる。
なかなかクセのあるアンプであるが、どうせMSXの音声出力だからヨシとしよう。

■まとめ
電源コネクタ、アンプ、スピーカーと、百均のオンパレード。特に、アンプはすごい。
国内で買うとIC(TDA2822M)だけで80円ぐらいと聞いたことがある。それが最低限一式揃えて100円だもんなあ。
音質なんてどうでもいいときのアンプとして、これ以上ないのじゃなかろか?
褒めてるのか、けなしてるのか分からん褒め方じゃが、褒めているんじゃよ。明らかに。

2.5インチモニタ(1)

イメージ 1
■閑話休題
「Arduinoを使って、MSXでタッチパネルを使おう!」プロジェクトの途上であるが、いささか煮詰まってきたので、ここで一息ブレイクを入れる。

■小型液晶ディスプレイ
タッチパネル購入に向け、ネットのあちこちをぶらついていたら、ちょいと興味を引かれるものがあった。
「aitendo@shopping」で見つけた「2.5インチモニターモジュール(低電圧版)」。
仕様等については次のURLを参照されたい。気になるお値段は、税込6,500円。
(同製品の紹介ページ)
http://www.aitendo.co.jp/product/1334

■MSXとの組合せ
解像度は960×240ドットだがコンポジットビデオ接続なので、ドット・バイ・ドットの鮮明さはない。しかしながら、この全く邪魔にならないサイズがいい。接続もハンダ付不要のお手軽さである。

透明アクリルのカード立てを加工して、セットしてみた。小さな1ChipMSXの上にちょこんと載る。
視画角がかなり狭いのが難点だが、真正面からなら最近常用しているKANJI 1 モードの漢字もなんとか読める。(写真A、B)

5.56mmNATO制式弾と較べてもこのとおり、前線基地でMSXを楽しむことも可能である。(写真C)

気になる背面は、基板向き出しでサイバー感たっぷり。(写真D)

■今後の展望
そして何と言っても、4.5V時130mAでも動作するところが魅力的である。
これは、MSXからの電源供給も可能であることを意味する。
汎用I/Oポートは50mA制限で不可であるが、カートリッジスロットなら300mAまで許容されている。1ChipMSXのUSB端子は規格上は500mAまで取り出せるはずである。

今のところはまだ外部電源を用いているが、そのうち、電源回りを加工して持ち運びに便利にしよう。実はさらに小さなアンプとスピーカーも入手していて、これも小さなディスプレイにくっつけてやろうと企んでいる。
これで、面倒な配線から解放されて、どこにでもMSXを持ち出せるようになる!どこでMSXで遊ぶかは自由だあ!!
MSX is freedom, MSX is freedom...
そやけど、その前に、虫メガネ買わなあかんでぇ〜、サンキュー!! Powered by 犬井ヒロシ

Arduino(9)

イメージ 1
■承前
さて前回、「PDL通信は8000bps相当」などと大それたことを書いたが、実際のところどうなのか、試してみた。

■BASICプログラム
今回は、アスキーコード32〜126の95文字をバッファに受信するのに要する時間を計測してみる。
短いBASICプログラムなので、簡単に解説しておこう。

行100で配列変数Dを使用宣言。95個の8ビットデータが保存できる「箱」を用意した。
行110は、Arduinoは32から126までの値を吐き出し続けるが、キリのいいところまで待つループ。
行120で変数TIMEをリセット。この変数は1/60秒ごとにカウントアップされるシステム変数である。
行130でArduinoからのデータを95個、「箱」に取り込む。「箱」には0番から始まる番号が振られているので、「0番から94番までの95個のデータ」という意味になる。
行140で処理に要した時間を表示。
行150は、95個の箱の中身を表示するループ

♪♪奥様BASICこぼれバナシ♪♪
(1) FOR文でいきなり使用した変数 I は、まともな言語なら事前に使用宣言すべきところだが、一般にBASICでは使用宣言しなくても使えてしまう。これは、BASICインタープリターが自動的に必要なメモリ領域を確保してくれるためで、これに慣れると他の言語に乗り換えたときに面食らうことになる。

(2) この変数 I、AでもBでも良さそうなものであるし、実際、それでもいいのだが、ループカウンタには整数型変数を使うので、整数型を示すインテジャーの頭文字 I を使用したのが慣習化したのじゃ、とワシより年寄りに聞いたことがある。ワシより年寄りじゃから、もうくたばったかも知れんの。ほっほっほ。

(3) END文がなくても気にしないとか、先の変数の自動宣言とか、とかくBASICはルーズなところがあって、これを嫌う向きもあるようじゃが、歴史的にはプログラマーの裾野を広げた功績もあり、チャッチャッと手早くやっつけ仕事が出来る点でも、ワシは評価しとるよ。

■実行結果
処理に要した時間は、28×1/60秒。つまり、約0.47秒。
転送された文字数は95個だから1文字当たり約0.0049秒。
ビットレートに換算すると、およそ1600bps相当となる。
MSX用RS232Cカートリッジの説明書に「BASICで使用するときは、1200bps以下を推奨」と書いてあるのも、ま、この辺りがMSX-BASICの処理限界なんでしょうな。
BASICで遊ぶ限り、1600bpsでも御の字であろう。

■まとめ
今回はどちらかというとBASICの解説ばかりになってしもうたが、なにぶん、前回の難解な内容を泣きながら読んだという声があり、ちっと丁寧なフリをしてみた。
とはいえ、唐辛子に砂糖をまぶしたようなもので、唐辛子は唐辛子じゃ。口当たりを良くした分、かえって悪質かもしれん。

余談じゃが、最近はスクリーンモードにKANJI 1 モードを常用しておる。表示は遅いが文字が大きくて眼がラクである。多様な画面モードが選べるのがMSXの良いところじゃな。

Arduino(8)

イメージ 1
■パルス幅とPDL関数値
「MSXでタッチパネルを使う」という目標からどんどんズレていく今日この頃である。
Arduinoがμ秒単位で出力パルス幅を制御できる点に着目し、パルス幅とPDL関数値との関係を調べてみた。
具体的には、delayMicroseconds()の引数を逓増しながら、PDL関数値を測定した。ハード的な接続は、4月18日付けをご参照願いたい。

結果は右表のとおり。(二重線部分は端折った。)
左端の「PDL」がMSXに渡したい値。「最小値」・「最大値」は、Arduino側の引数。例えばMSXに「1」を渡したいときは、Arduino側では7〜17の引数を用いればよい。ただし、「7」や「17」の閾値近くではMSXが「0」や「2」と認識することがあるので、「中央値」の「12」を用いるのが確実であろう。
一部の中央値に丸め誤差が生じているが、この程度のことは気にするな。
なお、基本的には引数が小さいほどPDL関数値は小さくなるが、引数が「ゼロ」のときはパルス幅が小さすぎるため、PDL関数値は「255」となってしまうので要注意である。知らんけど。

さて、このままではArduino側でスケッチを書く際にテーブル参照といった不細工なことになってしまう。そこで、近似的に数式化してみた。
d:Arduino側の引数、PDL:MSXに渡したい値とすると、
 d = PDL × 11.45 + 1
で、ほぼ中央値に近い値が得られた。小数点計算となっているが、それはあとで考えることとする。

■PDL関数を使った通信
正確にパルス幅が制御でき、かつ数式化できるとなれば、MSXとの通信に使えないかと考えるのが人情であろう。
「A」を送信したいときは、上の式から「745」を引数にすればいいはずである。
というわけで、キャラクタに応じてパルス幅を変化させるスケッチを書いてみた。
上で「小数点計算はあとで考える」と書いたが、さっそく考えてみたわけで、Arduino側の引数を10倍で計算し、実際にパルス幅を決めるときに10で割っている。100倍すればもっと正確になるかもしれないが、intの範囲を超えてしまう気がする。

そのうえで、なんだか微妙な数字が並んでいるが、(1)「i+114.5」であるべきところ「i+114」で処理していること、(2)「i/10」の部分で処理ステップ数が増えたこと、のふたつの理由で試行錯誤的に割り出した数字を用いた。

■まとめ
ずいぶん以前に「PDL関数を用いて通信できないものか」と書いたような気がするが、ようやく(実用性は別として)実現の運びとなった。
原理的にはPWM(パルス幅変調)になるのであろうが、キャラクタコードが若いほど通信速度が速くなる。送信に要する時間は、キャラクタコード32の「(スペース)」の367μ秒に対して、キャラクタコード126の「~」は1444μ秒と、4倍近い差になる。
大雑把に1バイトの送信時間を平均1000μ秒(=1ミリ秒)とすれば、1秒間に1000バイト、8000bps相当ってことになるのかな。実際には、受信以外の処理が入るのでフルスピードは出せないけどね。

それにしても、若いほど仕事が早いというのは、身につまされるところである。
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Dr.KIKKIE(KIKI)
Dr.KIKKIE(KIKI)
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン

みんなの更新記事