コンバットサウンドのダイレクト制御回路 |
前回、コンバットサウンドキットを使って大砲音と機関銃音をPICでON・OFFした時はリレーを使いましたが、リレーではどうしても基盤が大きくなり、消費電力も多く(リレーの値段も高い)サイズ的・経済的に面白くないので、今回はリレーを使わず直接PICでコンバットサウンドをコントロールすることにしました。 例によって、このアイデアは森本さんの入知恵です。(笑) | |
回路図 |
PICのRB7を音の切替に、RB6を音をON・OFFするスイッチに割り当てています。 | |
2種類しか切替わらない!? |
ホントに、これで大丈夫だろうか....とりあえずは、パーツを繋いでテストしたところ、早速問題発生!! PICのRB7(音の切替)をプログラムでON・OFFすると、音は切り替るが...大砲音と光線銃音が切り替るだけで...機関銃音が出ない!! 「ドーン」と「ピューン」だけ....(^^;; そういえば、コンバットサウンドでは、大砲音と機関銃音と光線銃音の3種類の音が出て、ジャンパーで切り替えてる。 PICで切り替えようとすると、ON・OFFの2種類の信号(?)しかないので、3種類の音なんか切替出来ないぞ!! | |
機関銃音は?? |
コンバットサウンドでは、機関銃音はジャンパーを外した状態で出してる....と、言うことは、PICと接続している音の切替の線を切ってしまえば......確かに機関銃音が出る! 要するに、切替スイッチが ONの時 → 大砲音 OFFの時 → 光線銃音 線が繋がってない時 → 機関銃音 と言うことになるけど、線を繋いだり、切ったりってPICの信号じゃ出来ないし、どうしてもやろうとすれば、リレーを使ってON・OFFさせるしかないけど、これじゃ前回の方法と一緒になる........結局、リレーを使うしかないのだろうか??? | |
プログラムで線を切断?? |
なんとか、PICのプログラムで線が繋がってない状態を作れないものだろうか.... たとえば、音切替のON・OFFをパルスのように短い周期で切り替え続けると、コンバットサウンドのICが、線が切れてると誤認識するとか.........ってことは間違っても無かった...(^^ゞ 何か良い方法が無いかと、プログラムを見てて....ふと気が付いた!? そういえば、PICの足は、信号を出力するモードと入力するモードに切替できたんだ。 たとえば、受信機からの信号を受け取る足は入力モードに、アンプやサーボを制御する足は出力モードに、普通はプログラムの先頭で決めちゃってる。 当然、コンバットサウンドを切り替えるPICの足「RB7」は出力モードになってる。 この足を機関銃音を出す時だけ、入力モードにすれば、コンバットサウンドのICは線が切れてるってカン違いしないだろうか!! なんと、これが成功!! いやぁ...何でも試してみるもんだ!(笑) で、変更したのはここ ----------(機関銃音の時)--------------- BSF STATUS,PG ;Change Page1 BSF TRISB,7 ;RB7を入力に切替 BCF STATUS,PG ;Change Page0 BCF PORTB,6 ;PULS6 on(機関銃音) ----------(大砲音の時)--------------- BSF STATUS,PG ;Change Page1 BCF TRISB,7 ;RB7を出力に切替 BCF STATUS,PG ;Change Page0 BSF PORTB,7 ;PULS7 on(音切り換え) BCF PORTB,6 ;PULS6 on(大砲音) | |
タイガー1プログラムの変更 |
早速、タイガー1のプログラムを修正! 修正したプログラムはこれ→「t1d.asm」 | |
1号F型に組み込み! |
プログラムは変更したものの、タイガー1にはすでにリレー方式のPIC基盤が組み込まれているので、これでは使えない。 と言うことで、新作の1号F型に組み込み! この回路を使えば、1号戦車サイズでも音が出せる!! | |
地獄の配線...(^^;; |
これまでのテスト回路は汎用の基盤の上に部品を配置して配線していたが、これだけ部品が多くなると配線が大変.... しかも、汎用基盤を使うと基盤のサイズも大きくなるので1号戦車では基盤を使わずに、パーツ同士を直接繋いで結線した.......が......大変な作業だった(複雑な立体ジグソーパズル??)....とてもじゃないけど2度とやりたいとは思わない...(^^;; ついに、オリジナルのプリント基板を作らないといけない所まで来たかぁ.... |
更新日2001.3.21