TU-876CDの操作部の回路構成
エレキットの真空管CDプレーヤーTU-876CDにはリモコンが付いていません。このキットを買ったのはかなり昔なのですが、当時からリモコンが欲しいと思っていました。
右の回路図は操作パネル部分の回路図です。PLAYボタンは信号が別になっていますが、それ以外は抵抗の分圧を使ったA/D変換タイプのボタン検出になっています。 各スイッチと並列にリモコン操作で短絡する回路を取り付ければボタン操作が可能になります。
ところで、REPEATの抵抗だけ4.7kΩと10kΩに分かれています。コストを重視するならば15kΩにすると思いますが何故でしょうか?試しにここから"C"へ接続してみると「INTRO」と表示されました。 TU-876CDには後継機のようなMODEボタンの機能は存在しないはずでしたが、設計時にボタンが取り付けられなかっただけで後継機のようにCDユニット上には機能は残っているということです。 折角なのでこの機能も有効にしない手はありません。
右の回路図は操作パネル部分の回路図です。PLAYボタンは信号が別になっていますが、それ以外は抵抗の分圧を使ったA/D変換タイプのボタン検出になっています。 各スイッチと並列にリモコン操作で短絡する回路を取り付ければボタン操作が可能になります。
ところで、REPEATの抵抗だけ4.7kΩと10kΩに分かれています。コストを重視するならば15kΩにすると思いますが何故でしょうか?試しにここから"C"へ接続してみると「INTRO」と表示されました。 TU-876CDには後継機のようなMODEボタンの機能は存在しないはずでしたが、設計時にボタンが取り付けられなかっただけで後継機のようにCDユニット上には機能は残っているということです。 折角なのでこの機能も有効にしない手はありません。
ハードウエア
仮想スイッチとしてアナログスイッチの74HC4051を使いました。このICはONするスイッチの選択に3bitとON/OFFの指定の合計4bitで操作ができます。端子数が少なくても問題ないためコントローラにはPIC12F629を使いました。
製作中にPICを壊してしまったので後に12F675に置き換えていますが、ピンはコンパチなのでA/Dコンバータを無効にする1行を加えるだけで対応できます。
リモコンコードの処理はPICの割り込みを使って動作させるため、赤外線の受光モジュールはGP2/INTに繋いでいます。 5Vの電源はCDプレーヤーモジュールの電源取得ポイントと同じGLD端子から取ります。
リモコンコードの処理はPICの割り込みを使って動作させるため、赤外線の受光モジュールはGP2/INTに繋いでいます。 5Vの電源はCDプレーヤーモジュールの電源取得ポイントと同じGLD端子から取ります。
リモコンモジュールの基板は操作スイッチ基板の下に取り付けられるサイズに仕上げてあります。
赤外線の受光素子はSTOPボタンの15mm左に位置するようになっているので筐体とフロントパネルにうまく穴を開けます。
穴の大きさが小さいとその分だけ受光範囲が減りますので、デザインとうまくマッチするようにしないといけませんね。
リモコンは千石電商で発見したSparkfunのInfrared Remote Control(COM-11759)を使いました。このリモコンのデータフォーマットはNEC形式です。
SparkfunのホームページのHookup Guideにボタンを押した時に出力されるリモコンコードの一覧が記載されていますが、
受信したビットをMSBファーストで並べた時の数値なのでプログラムを作るときにハマります。シリアル通信はLSBから送信するものだと思うのですがどうなんでしょうね。
以下にLSBファーストのデータを記載します。
Vendor ID | 08 F7 | POWER | 1B E4 |
A | 1F E0 | ||
B | 1E E1 | ||
C | 1A E5 | ||
↑ | 05 FA | ||
→ | 01 FE | ||
↓ | 00 FF | ||
← | 08 F7 | ||
○ | 04 FB |
ソフトウエア
ソースリスト Ver.0.02
リモコンコードの解析
リモコンコードの基本的な解析方法はドリームライトのページで解説しているので割愛します。
CDプレーヤーのリモコンで問題になるのは、リモコンのボタンを押している間はCDプレーヤー側でもボタンを押し続けないといけない事です。
NECのリモコンはボタンを押し続けた時にリピートコードが出力される周期が108msですので、108ms以上待ってリピートが来なくなるまではボタンをリリースしないようにタイマーなどを設けておきます。
この処理が無いとボタンが連打状態になってしまいます。
とは言ってもリピートコードにも有効時間があるので、そのタイマーに関するフラグを流用することで実装を簡略化しました。
電源投入後のオートプレイ機能
リモコンコードの解析のためにフリーランで回しているTimer1は65msごとにオーバーフローします。
この割り込みを15回カウントすると約1秒のタイマーになるので、電源を投入してから設定しておいた秒数だけカウントした後、自動的にPLAYボタンを押す機能を付けました。
この機能を使うと真空管がある程度暖まったタイミングで再生が始まるので、曲の頭からきちんと再生できるようになります。
もちろんこの機能もリモコンからON/OFFが可能で、オートプレイまでの待機時間は1秒~255秒まで設定できます。
動作の仕組み
この機能には一つだけ欠点があって、電源投入後のオートプレイ強制無効化はあくまでリモコンから操作した場合に限られることです。 電源をONにして本体のPLAYボタンで再生スタート後にオートプレイが働くとPAUSEになってしまうので、それまでの間は本体での操作はできません。 真空管が暖まるまではディスクでも選んで静かに待てということです。
動作の仕組み
- 電源投入時にEEPROMから設定値を待機秒数のカウンタにロードします。0で機能OFF、1以上で機能ONです。
- 割り込みルーチンではカウンタが1以上の時にカウンタをデクリメントするようにしています。
- デクリメントで0になったタイミングでPLAYボタンを押し、100ms後にリリースします。
- 0になる前にリモコンが操作された場合は、強制的にカウンタを0にリセットしてオートプレイ機能を無効化します。
この機能には一つだけ欠点があって、電源投入後のオートプレイ強制無効化はあくまでリモコンから操作した場合に限られることです。 電源をONにして本体のPLAYボタンで再生スタート後にオートプレイが働くとPAUSEになってしまうので、それまでの間は本体での操作はできません。 真空管が暖まるまではディスクでも選んで静かに待てということです。
MODEボタンの使い方
隠し機能のMODEボタンを押すごとに動作モードが変わります。
表示 | 機能と操作方法 |
通常モード トラック順に再生して終了する。 | |
イントロモード PLAYを押すと1曲目に戻ってイントロを10秒間再生する。 PLAYをもう一度押すと現在の曲で通常モードに戻る。 | |
シングルプレイモード 現在のトラックだけ再生して終了する。 | |
シャッフルモード トラックが変わるごとにランダム再生する。 | |
プログラムモード FF/REWでトラックを選択しREPEATで再生順を確定。トラック番号00を選ぶと最終トラックになる。 PLAYボタンを押すと登録した順番に再生する。 |
使ってみて分かった事
- 電源の操作をしたい。リモコンを使ってやると言えば電源の操作だ。音楽がうるさく感じたら電源を切らないと真空管の寿命が勿体ない。 残念ながらCDプレーヤーもアンプもミキサーも電源系統はタイマー時計でコントロールしている。 こいつをリモコン化しなければ電源の操作はできなさそうだ。
- 電源の操作ができないから意外とリモコンを使う機会が少ない。これは私の音楽の聴き方のスタイルによるものかもしれない。 CDを入れたらその場でPLAYボタンを押せば済む話で、途中で選曲することなんかよく考えれば今まで無い事に気付いた。 アルバムはすべての曲をその順番で聞いて初めて1枚のアルバムなので、ランダムプレイするなんて以ての外だと思っている。 要はLPレコードの聴き方と同じなんだな。
- オートプレイ機能がとても便利。今までタイマー時計を使って電源ON後のPLAYトリガを作っていたが、0.5秒後にトリガされるため曲の初めがフェードインになってしまっていた。 フェードインはそれはそれで趣があって良いのだけれど、きっちり暖まる時間を待ってトリガーされるのも良いと思った。
製作過程で苦労した点
- Sparkfunのリモコンのドキュメントがおかしかった事。 初めはリモコンが壊れているのかと思っていたが、オシロスコープで波形を見たらビットの解釈が逆になってるのだと気付いた。
- 初めに作った基板では、PICにICソケットを付けて実装すると六角ナットと干渉してネジが締められなかった。 直接実装して動作テストをしたらPICが壊れている事に気が付いたので、急遽ドリームライトで使った12F675を流用することにした。 プログラムを修正したかったが回路の都合上ICSPができないため、改めてPICのソケットとねじが干渉しない基板を作り直した。
- CDプレーヤーの外装に穴を開けるのが大変だった。本体シャーシは鉄でできているのでとても固い。 アルミでできている前面パネルの穴をリーマーで広げようとしたら淵の部分が盛り上がって汚くなった。 ケースの加工はかけた時間分だけ完成度が上がることをまたしても思い知らされた。
200dpiパターンの部品面