2016/08/21

[FreeRTOS]音を鳴らす

せっかくなので、音も鳴らしてみた(github)。

うちにあったのは、京セラの圧電スピーカだった。
圧電なんとかって、全部ブザーかと思っていたのだが、電池をつないでなるのがブザーで、ちゃんと制御せんといかんのがスピーカーだとか。

これを、片方をNUCLEOのPWM/D9に、片方をGNDに突っ込んだ。
電気的によいのかはわからないが、音は出る。

 

まあ、細かいことはさておき、PWMで周波数を変えるとちゃんと音程が変わったので、満足だ。
音だけのアップロードをどうやってよいかわからないので、ファイルを置いた。
動画さえ入れれば、YouTubeでもよいらしいが。。。
https://drive.google.com/open?id=0B2_3hJpJ5Ui2cHhuM0FLbV94OG8

イメージはこの音なのだが、まあだいたいこんなもんだろう。
人造人間キカイダー ギルの笛の音 - YouTube

 

今回は、SW入力でON/OFFするタスクと、音程を制御するタスクの構成にした。
PWMなので、OFFのときはPWMを止めればよいのだが、そうすると音程タスクの方で音楽が進んでしまうので、Suspended状態にすることにした。
スケジューラ開始前にもSuspendしているが、ちゃんと止まっているようだ。
たぶん期待通りだと思うが、時間計測をしていないので、どの辺で停止したのかよくわかっていない。

OSを使っていると、音程を制御するのは楽だった。
音程の設定をして、流したいだけの間vTaskDelay()するだけだからだ。
改めて、OSは楽をするためだけに導入するものだ、と認識した。

 

しかし、こういう単調な音は、テストしている間がきつかった。
何かが破壊されてしまいそうだったよ。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。