パソコンでFM放送が聴けるなんて!!(その1)

FM Radion Maru
FM ラジオン丸
FMラジオン丸
 名前からすぐ想像がつくように,これはシリアルポートに接続するFMラジオです。本体の他にシリアルポートの9ピン−25ピン変換ケーブルとサウンドカードのライン入力に接続するオーディオケーブル,T型の簡易アンテナケーブル,それとドライバソフトの入ったFDが1枚付属しています。電源はシリアルポートから供給されますので,あのうっとおしいACアダプタなどはありません。

 これも大阪日本橋のソフマップ「SAURUS館」で購入しました。ジャンク品ではなく正規品です。価格はたしか5000円ぐらいだったと記憶しています。

 接続はいたって簡単です。25ピンのcomポートを使用するなら直接に,9ピンのcomポートを使用するなら変換ケーブルを使ってラジオン丸本体とPC本体を接続します。そしてラジオン丸本体にあるオーディオジャックとサウンドカードのライン入力を付属オーディオケーブルで接続します。最後にアンテナケーブルをアンテナジャックに接続して準備完了です。

 Windows95を立ち上げ,付属FDからSETUPプログラムを起動すればドライバのインストールは完了です。接続したcomポートが1,2のどちらであっても自動的に判断してくれます。付属するアプリケーションもなかなかのものです。自動選局機能もありますし,流れている音楽などをWAVEレコーディングする機能も備わっています。PCMやMIDI音源と違ってCPU負荷となるようなものではありませんのでワープロソフトで文書作成中にバックグラウンドミュージックとしてラジオを鳴らしっぱなしにしても全然問題ありません。なお,名前にもありますようにこれはFM専用です。もちろんステレオで鳴ってくれます。最近は,これにAMラジオの機能を付加したものも出回っているようです。

 以上メーカに成り代わっての商品紹介でした。この程度の話なら何も面白くありません。ここからが自作派にとっての面白い話です。

 なかなかの面白グッズであるこの「FMラジオン丸」ですが,悲しいかなWin95でしか動作しません。私はWin95以外にDOSやLinuxをよく使用します。やはりDOS環境やLinux環境でも使いたいというのが人情です。でもこのままでは動いてくれません。ドライバーソフトが必要です。無いなら作ればいいやというわけで,早速解析作業に取りかかりました。シリアルポートでコントロールしているわけですからそこを流れる信号をモニターすれば何か分かるはずです。WAVEレコーディング機能などはサウンドカードをコントロールするだけですのでラジオン丸のコントロールとは関係ありません。

 さて,シリアルポートを流れる信号のモニタリングですが,DOS用の通信ソフトであるWTERMを使って調べることにしました。Win95のマシン以外にWTERMを動かすマシンをもう一台用意し,WTERMの動いているマシンのシリアルポートのRD端子とWin95マシンのラジオン丸を接続したシリアルポートのSD端子とを接続し,Win95からラジオン丸に流れる信号をモニターしました。次に,WTERMの動いているマシンのシリアルポートのRD端子をWin95マシンのラジオン丸を接続したシリアルポートのRD端子に接続を変更し,ラジオン丸からWin95マシンに流れる信号をモニターしました。早い話がWTERMをプロトコルアナライザ替わりに使うのです。これによる解析結果は次のとおりでした。
 シリアルポートの速度:9600BPS,データ8ビット,1ストップビット,ノンパリティ
 ラジオン丸への電源供給:シリアルポートのER端子より供給(+12V)
 ラジオン丸への制御信号:
    電源オン "\x1d\x23\x01\x23"
    電源オフ "\x1d\x23\x02\x23"      
    選  局 "\x1d\x23\x05\x23"+"freq"
                   freq = 000〜300(000=76.00Mhz,300=91.00Mhz, 0.05Mhz/Step)
    受信確認 "\x1d\x23\x08\x23"

 ラジオン丸からの応答信号:
    選局応答    "\x1d\x23\x06\x23"
    ステレオ未受信 "\x1d\x23\x07\x23" 
    ステレオ受信中 "\x1d\x23\x04\x23"
 ここまで分かれば後はもうプログラムを書くだけです。単にシリアルポートで送受信するだけですのでLinux環境ではドライバソフトまで手を出す必要はありません。comポートをオープンし信号をやりとりするだけの簡単なアプリケーションプログラムを起こせばよいわけです。問題はマンマシンインタフェースです。コマンドラインからの操作プログラムでは,あまりにも簡単すぎて芸が無さ過ぎます。やはりここは一発,Xウィンドウ上で動くGUIプログラムにしたい所です。ともかくこうしてできたのが次のプログラムです。
  Stereo:ステレオ受信表示
  [1]〜[5]:プリセットされた選局ボタン
   < :チューニングボタン(周波数ダウン)
   > :チューニングボタン(周波数アップ)
   << :スキャンボタン(周波数ダウン)
   >> :スキャンボタン(周波数アップ)
   Power :電源オン・オフボタン
    Quit  :終了ボタン
 Xウィンドウでと欲張った割には味気ない表示ですが,一応これでも5局のプリセット,0.05Mhz毎のアップダウンチュニーング機能を持たせてあります。自動選局(スキャン)機能もつけようかとも思ったのですが,私の自宅ではFM電波の受信状態が良くなく,受信可能な局がKISS−FMとNHK−FM神戸の2局だけであり,スキャン機能はあまり意味もなくプログラムしませんでした。一応スキャンボタンの表示だけはプログラムしています。プログラムのソースはここにあります。

 スキャン機能は,現在設定されている周波数から順にアップダウンしていく選局信号をラジオン丸に送り込み,ステレオ受信中の応答が帰ってきた所で選局信号の送信を停止するようにすれば実現できます。Win95のソフトもそのように行っています。ラジオン丸自体に自動スキャン機能があるわけではありません。

 DOS用のソフトも同様にプログラム出来ますが,マルチタスクでないDOS環境ではTSRプログラムにする必要があります。そうしないとラジオを鳴らしている間は何も出来ません。また,シリアルポートを直接制御するコードも必要になります。特段難しい課題があるわけではありませんが,コーディングやデバッグが面倒そうです。ということで面倒くさいのでまだ作っていません。今更DOSのソフトを作るなんてという気持ちもありますが。

 たかがFMラジオで長々と書きましたが,実はまだまだ尽きない話があります。続きは(その2)でどうぞ。
  戻る