Tech:pic:gc:tonegen

出典: Tariki

目次

geocaching用問題発生器(2) ある周波数の音を出す

これは『道具が必要』シリーズ第4弾・周波数→座標というマルチの企画のために作った。要求仕様としては、ボタンを押すと2種類の音を出せばよいだけだ。これならプッシュONで電源スイッチにも気を使わなくてよさそうである。

回路としては簡単だ。電池ホルダ→電源スイッチ・パスコンのほかは、周波数選択スイッチ(内部プルアップ負論理)、圧電スピーカを直接駆動である (あまりに簡単なので例によって回路図略)。あまりに簡単なのでPIC12F675 (8ピン)で十分である。

小型化への挑戦

洒落でフリスクケースに入れようとしたが、意外にこのため小型化でてこずった (上記回路なら多分5分で配線が終わると思うが、あーでもないこーでもないといじくり倒して1日くらいかかった)。フリスクケース(の内寸法)が薄すぎるのである。

どのくらい薄いかというと、DIPソケットにPICを刺してそのまま入れようとしただけでもう厚みオーバーである。基板にふつうに実装した場合はこの厚みが最大になるので (ほかにもスイッチとかCR3032ホルダとかあるが)、これを薄くしないことにはどうにもならない。

考えた末

  • PICを刺したICソケットはピンを横に曲げ、曲げた先に1/20 inchピッチの基板を細切れにしたものを装着する
  • スイッチ・CR3032ホルダ・圧電ブザーは空中配線、完成後接着剤でケースに直付けする

というアプローチでなんとか厚さ以内に収めた。

なおフリスクケースは防水性がないので、これ自体をさらにジップロックなどに入れて保護しないといけない。また後日談になるが、結局ダイソーのネオジム磁石(径の小さい方)を3枚重ねにする必要が出たので (この装置 = イニシャルキャッシュの取り方の都合で、表にも磁力が及ぶ必要があったのである)、わずかに0.5mmほど蓋が浮いてしまう結果になってしまった。

カッコ悪いボタン操作

当初、2回路のプッシュボタンを2個使おうとした。1回路は両方のボタンとも電源、もう1回路は片方のボタンだけ入力に信号を与えるボタンとする(この入力をみてどちらの周波数を出すか決定する)。

ところが薄型のタクトスイッチを使ったら、これが1回路である。4ピンあるようにみえるのだが、要するに1回路に2ピンずつついているだけである(笑)。したがって、1個は電源ボタン(押している間だけON)、もう一個は周波数選択ボタンとした。

これだと、1つの周波数を出すときは電源ボタンだけ押し、もう一つの周波数を出すときは電源と選択ボタンを同時押しする必要がある。まあそんなことはキャッシュの説明に書いておけばよいのだが、いささかカッコ悪い。

オクターブがわからない

出力は、圧電ブザーの直接駆動である。この方法が正しいのかどうかよくわかっていないのだが、圧電ブザーというものはダイナミックスピーカなどと違って、インピーダンスが高い。電流も流れているのかどうかよく分からない。したがって、25mA取れるPICの端子で直接駆動しても、壊れることはないようだ (ドライブトランジスタを付ける場合もあるようだが、音量が出ないので電源電圧まで振っているのだ、と思う(?))。

なおポータブルの周波数カウンタを持ってくるひと (そういうひとが何人訪れるかわからないが(笑)) のために、今回保護抵抗を介して計測用の端子も付けておいた (というか私はそれで周波数の校正を行なった)。

これで鳴らしてみると、耳を近づけても音程がよくわからない。

あまり書くとスポイラーになるが、この装置で出すべき周波数というのは、通常圧電ブザーでよく聴こえる周波数の数分の1程度の低い音程である。したがって圧電ブザーがついてきていないのかもしれない。

現にマイクで録って波形を見てみると、ブザーが"1"側にトリガされると正方向から始まって倍音周波数で振動、"0"側では逆方向から始まる倍音周波数が主体になるようだ。これが耳で聴いても低音がよくわからない一因になっているのかもしれない。

また楽器用のチューナではどうか。単体機がなかったので、Androidのアプリケーションで調べてみると、やはり1オクターブ上を表示してしまう。

まあこのへんは仕方がないことなので、周波数レンジを特定できるような記述をキャッシュのdescriptionに付け加えることにした。

今後の改良

用いた12F675は、PWM出力を持っているようだ。これを使えば、5KHz~20KHzをサイクル周波数とするPWMで、正弦波もどきが出せるかもしれない。簡略版で出力する矩形波は、立ち上がり・立ち下がりが急峻だから上のようなあばれが生じるのだと考えられる。

ただしこれにはひとつ、問題がある。PWM出力をそのまま通すと、たとえ20KHzであっても圧電スピーカの再生特性には入ってしまう (ような気がする。少なくとも目的周波数よりは強く出てしまいそうだ)。このためCRでLPFなど作るとすると、こんどは測定用端子にどのような波形が出るかわからない (繰り返すが大半のひとは周波数カウンタで測定しないだろうが)。

まあなによりテストしてみるべき、である。キャッシュはいったん発行してしまって、ソフトのアップデート (ハードのマイナーアップデート) で聴きとりやすくしようかな。