Raspberry Pi Zero W に「圧電スピーカ」を繋いで音を鳴らしてみたんですが・・・音の濁りが酷くて。
警報音とか、何か知らせるだけの音というなら、この汚い音でも我慢はできますが。
モールスを長時間に渡り聞き続けるのは・・・堪えられない音ですね。
ということで、このままこんな濁った音は聞きたくないので、少しまともな方法を考えてみました。
PWM で圧電スピーカを鳴らしているんだからその出力は矩形波で、そりゃあ、当たり前のように奇数次の高調波をたくさん含んでいます。それも、基本波より高調波の成分が強かったりするので、ホント、変な変調がかかったような濁った音になってしまいます。
対策としてはフィルタを入れるとか、いろいろあろうかと思いますが、もうあれこれ考えることはしないで、ちゃんと正弦波を作って鳴らすことにしました。
で、今回採用したのは、Twin-T という正弦波発振回路です。
トランジスタひとつと少量のパーツだけという、とってもシンプルな回路構成で作ることができます。
この Twin-T は、簡単な回路で正弦波が作れるので、ハムの世界ではモールス練習機として多用されており、それこそ、ネットを検索することで、数え切れないほどの Twin-T を使った実用例を見つけることができます。
Twin-T 回路
構成として、こんな感じです。
Twin-T 回路の出力を LM386 でアンプしてスピーカを鳴らします。
LTspice で、回路の動作を確認してみました。
Twin-T の回路定数を変化させながら LTspice XVII でシミュレーションしてみました。
発振周波数は、R1 と R2 で変更できます。 (R1=R2)
R1 = R2 = 18KΩ で発振周波数は 714 Hz になっています。
R1 = R2 = 10KΩ にすると、1,000 Hz となり、少し高くなりました。
R1, R2 | 発振周波数 |
5K | 1600Hz |
10K | 1000Hz |
15K | 820Hz |
18K | 714Hz |
20K | 677Hz |
23K | 627Hz |
25K | 590Hz |
ここは好みもありますが、わたしは R1 = R2 = 18KΩ の 約 700Hz に決定です。
まぁ、最終的に基板化するときは、ここのパーツは、VR (R + VR) にしようかと思います。
さて、次は LM386 のオーディオアンプを追加して、シミュレーションしてみます。
使用する回路は、Texas Instruments のデータシートに掲載されている、テスト回路そのままです。
http://www.tij.co.jp/jp/lit/ds/symlink/lm386.pdf
この回路で 20倍 のゲインが得られます。
ピン1と、8の間に 10uF のコンデンサを追加すると、ゲインは 200 倍になります。
まず、200倍 の回路から。
波形がサチって歪が激しすぎです。
画像では分かりずらいですが、ボリュームを一番最低に絞ってみても・・・綺麗な正弦波になりません。
ということで、コンデンサを外して 20倍 でシミュレーションを続行です。
この 10uF をカットして 20倍 のゲインにしてみました。
VR の値を変化させながらシュミレーションしてみました。
まぁ、VR を最大にしてみましたが、許せる範囲になってると思います。
Um... LM386 って仕様的には最大出力は 1W なんだけど・・・。
@10 程度の安ものだからか、それとも中華品だからか、0.2W 程度で急激に歪んじゃうんだよね。。。
実際にスピーカを鳴らして NG だったら、もっと高級なアンプに取り換えることにします。
ということで、今回は Twin-T + LM386 の回路構成でシュミレーションしてみましたが、とりあえずはこの結果を信じることにして、この先の「和文電信 bot」プロジェクトを、進めてみようかと思います。
今日は、これで終わりです。