BLDCモーターで音楽演奏
Note 2022/05/06:
これは前ブログからの移行記事です。一部表現や文体の調整を行った箇所がありますがご了承ください。
明けましておめでとうございます。
新年一発目は一般的にはあいさつ的な記事や今年の意気込みや目標を記事に書き綴ることが多いそうですが、そんなの誰も興味ないと思うので技術的なネタ記事を書こうと思います。
BLDCで曲を鳴らしてみた
まずはこちらをご覧ください。
みんな見て見て!!パンダくんのBLDC励磁音𝐌𝐮𝐬𝐢𝐜 𝐒𝐡𝐨𝐰がはじまるよ!!とっても上手に演奏していてかわいいね!!#NyanCat pic.twitter.com/5UeUApedFn
— しろくま🥒胡瓜 Root41 (@robokichi41) December 27, 2021
今回はこれについて解説していきたいと思います。
説明@初心者向け
Note:
この章はロボットや工学に精通のない方、まだ初心者の方、小学校高学年程度を対象とした解説です。この解説がToo Easyな方は次の章まで飛ばしていただいてかまいません。また説明を簡単かつ直感的にするために一部不正確な表現や擬音語や擬態語を用います。
まず白熊や人間などの動物がどのように「音」を聞いているのでしょうか。「音」とはすなわち空気の震え方のことです。
スピーカーやイヤホンなどの音源は震えている電気信号で薄い板を振動させて空気を振動させています。その振動が空気を伝わって耳の鼓膜を振動させ、私たちは「音」を認識することができます。
具体的にはスピーカーに取り付けられたコイル(=導線をぐるぐるとらせん状に巻いたもの)に震えている電気を流すことで薄い板を振動させています。ではここで今回の記事の主役ブラシレスDCモーター(略:BLDC)の構造を見ていきましょう。
中央部に120°間隔で配置された電磁石があり、その周りを永久磁石が取り囲んでいます。音を鳴らす仕組みとは大きく関わりませんがせっかくなのでBLDCの特徴についてひとつ学んでいきましょう。BLDCは一般的なDCモーターとは異なり永久磁石が回転します。(つまり電磁石は回転しない)
音の話に戻します。今回のBLDC演奏ではスピーカーと同じように電磁石(≒コイル)に震える電気信号を入力することでぶるぶると振動させ、それが音となって聞こえる仕組みになっています。
ちゃんとした説明
Note:
この解説を理解するには中学校卒業程度の電気の知識に加え、弧度法、PWMの基礎的知識、DCモーターの回転原理の知識が必要です。また便宜上やや不正確な表現を使う場合はそこをイタリックで表記して差別化します。
今回のBLDC演奏で使用した駆動方式は矩形波強制転流です。BLDCの構造や原理があまり理解できていない方は、まずこちらの記事をご覧ください。
今回の動作デモでは回転速度一定で制御しています。各相の波形はこちらの画像の通りです。(画像は先ほどの記事からの引用です。)
各相の波形は2π/3[rad]ずつずれているだけなので、今回は一相だけに注目して解説していきます。
横軸が時間で縦軸が電圧です。緑色で示した時間がモーターが1回転する時間です。黄色で示した矢印がモーターに加わる電圧です。矩形波強制転流では、緑色矢印の時間を短くプログラムするとモーターはより高速に回転し、黄色で示した電圧を高くするより高トルクになります。
BLDCの知識がある方向け補足説明:
お分かりかと思いますが今回の解説では簡素化のためにBLDCを3相2極のものとして解説を進めています。そのためこの解説では電気角と機械角を区別して扱うことはしません。実際に今回のデモで使用したBLDCは12相14極のものです。
今回の駆動の目的は演奏なのでモーターにかける電圧は100%である必要はありません。つまり黄色矢印の電圧を低くする必要がありますが、今回使用した回路ではそれは無理なのでPWMを使用して擬似的に再現します。
このPWM周波数(ON・OFFの切り替えの速さ)が実際に聞こえる音階の周波数になります。あとは脳筋でこれを変化させる楽譜を配列に格納しておきます。
ではこの周波数がなぜ音として聞こえるかについてです。電磁石は鉄心の周りをコイルがぐるぐると取り囲む構造になっています。鉄心などの磁性体は時間と共に大きさや向きが変化する磁界(=交番磁界)が加えられるとわずかに伸び縮みする性質があります。これを磁歪と言います。
この磁歪が空気に振動を伝え、音として聞こえる仕組みです。これを励磁音と言います。
これは実際のBLDCの中身です。鉄心をコイルがぐるぐる取り囲んでいるのが確認できますね。
身近にある励磁音としては電車が発車する時に聞こえるヴオォォォォオオオオン(‘ω’)))という音がそれです。もう退役してしまいましたがドレミファインバータなどと呼ばれたものもそれにあたります。
STM32マイコンの知識がある方向け補足説明:
今回のESCの制御マイコンには秋月で100円未満で帰る激安のSTM32L010F4を使用しました。しかしこのマイコンのFlashは16kB、RAMは2kBしかなくHALで記述したら容量を軽々とオーバーしてしまったので、頑張ってLLで記述しました。
公開データ
こちらにデータを公開しておきました。ライセンスはCC BY-NC-SA 4.0です。
終わりに
最後まで読んでくださってありがとうございました。BLDCを学び始めてここまでくるのに相当な努力と時間がかかったので、こういう形で一つ世にリリースできたことを嬉しく思います。
ではまた🤟
Comments