せっかくなので、音も鳴らしてみた(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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。