せっかく買ったのに使ってくれない物がいくつかある。猫用おもちゃ「コマドリ」もその一つ。最初にちょっとだけ興味を示しめしたが、いまでは見向きもしなくなった。猫用の鳴くオモチャを作ってみることにした。

「こまどり」よくできているのだが

我が家のわがままお嬢様はお気に召さなかったが、「こまどり」はよくできている。動物愛護団体からクレームがつくのではないかと思えるぐらい外観はリアル。振動を与えると3種類の違った声で鳴く。コマドリの鳴き声は聞いたことがないが、本物の小鳥の鳴き声のようである。
お嬢様は、何が気に入らないのか?

どんな鳴き声にするか

ネット検索したが、有用な情報はみつからなかった。見つかったのは
人の可聴周波数帯域は20~20,000Hz
猫の可聴周波数帯域は20~60,000Hz
雀の「チュンチュン」は4,000~5,000Hz
仲間(猫)または獲物(鼠)の鳴き声にしたいのだが分からないので、獲物(?)の雀の鳴き声にしてみることにした。

PICのPWM機能で音を作る

PICのPWM機能を使って、特定の周波数の波形を作り、出力する。
PICはProgramable ICの略だと思い込んでいたが、Peripheral Interface Controllerの略だとのこと。PWMはPulse Width Modulationの略、これは合っていた。
PWMの設定は、PR2レジスタに周期を設定し、CCPR1Lレジスタにデューティ周期を設定する。

PWMの設定を理解できていないが、「当たらずとも遠からじ」でPR2とCCPR1Lの値を計算した。
周期=PR2×4×クロック周期×ブリスケール
デューティ周期=CCPR1L×4×クロック周期×ブリスケール
クロックを4MHz(クロック周期は1sec÷4,000,000=0.25μs)
プリスケールは1 とすると、
5,000Hzの波形を作るには PR2=200 CCPR1L=100
4,000Hzの波形を作るには PR2=250 CCPR1L=125
3,000Hzの波形を作るには PR2=333 CCPR1L=167

振動スイッチで振動を検知してスピーカーを鳴らす

振動スイッチをPICに入力し、振動を感知した時に振動波形をスピーカーに出力する。こんな回路にした。

4番ピンは入力専用で、R1でプルアップし、振動スイッチを接続する。PIC12F683のPWMは5番ピンしか使うことができない。5番ピンでスピーカーを駆動する。PICの出力はスピーカーを直接駆動することができるらしいが、メロディーICのデータシートにあった回路例と同じようにトランジスタで増幅した。

ユニバーサル基板に部品を実装

ユニーバーサル基板に部品を実装し、電池・振動スイッチ・スピーカーを接続した。

100均おもちゃに詰め込む

お嬢様は遊んでくれなかった

お嬢様は「雀のように鳴くカワウソ?何だ?」と言って、通り過ぎた。猫か鼠の鳴き声を作れれば遊んでくれるかも・・・?