2023年8月6日日曜日

音響浮揚装置の実験

今年はじめ頃から、超音波を使って物体を浮かせ、能動的に動かす実験を行いました。





原理

定常波(定在波)

原理は、複数音源からの音波の干渉により音の強弱の勾配を作ると、弱い部分に物体が吸い寄せられるというものです。

今回の実験装置は、向かい合わせて配置した2個の超音波スピーカーで強弱の分布を作り出します。

これは高校物理で学ぶ「定常波」で一部説明されます。向かい合う2方向から同じ周波数と振幅の進行波(音波など)を送ると、2音源からの距離の差によって、常に強め合う場所と弱め合う場所が交互に現れ、その位置は時間変化しないという現象です。高校物理では反射波によるものが主に説明に使われていますが、それを能動的な音源で置き換えた形になります。

定常波についてはWikipedia:Standing_waveにアニメーション付きで解説されており、これを見るとイメージが掴みやすいでしょう。

軸に直交する方向の保持力

前節で「一部」と言ったのは、2音源間の直線上(以下、縦方向とします)のみ考慮したものだからです。細長いパイプ内に音を流すような場合はこれで良いのですが、今回の装置のような開放されている形状の場合、重力に逆らうだけでなく横方向に保持する復元力もなければ浮揚を維持できません。この横方向(音源を結ぶ線に対して直交する方向)については別途解析が必要です。

今回製作した装置では、縦方向より弱いながらも横方向にも復元力を示すことが確認できました。これは設計時には考えていなかったことでした。一つの可能性としては、使用した超音波スピーカーの発音部分が送信方向に開いたコーン状なため、TinyLevのようにお椀型に音源を配置したときと同じような効果が出ているのではないかと予想しています。

既存製品と制作動機

このような上下1対の超音波スピーカーによる装置は、市販品も既にあります。AmazonAliExpressなどでultrasonic levitator等と検索すると、安いものでは1000円程度の完成品が見つかります。しかしそれらの商品説明やユーザーレビューを見る限り、浮かせた物体を能動的に動かす機能のついたものはないようでした。

前述の原理から考えると、2つの音源の位相差を変えれば定常波の節と腹の位置が移動し、物体を動かすこともできるはずだと思いつきました。これを確かめてみたかったので自作することとしました。

制作過程

1. 原理の確認

まず超音波を双方のスピーカーから出して、物体が浮くことを確認しました。

これは最初に作った装置です。超音波スピーカーを固定する部品を3Dプリンタで作り、間隔を変えられるようにしました。電子回路はブレッドボード上にHブリッジドライバIC(TB6612FNG)とSTM32 Nucleoのマイコン基板で組みました。

ここでTB6612は、主にDCブラシモーターの駆動に使われているものです。製品説明にも「Dual DC モータドライバ」と書かれています。スイッチング素子の働きによって電源を出力端子に適宜接続し、信号によって正逆両方の電圧を掛けるというHブリッジ回路ですので、超音波スピーカーの駆動にも使えます。そして、2回路入っているので2つのスピーカーを独立して駆動することができます。単に浮かせるだけで良ければドライバ1回路に2個のスピーカーを並列接続しても良いのですが、先を見越してこのようにしました。

浮かせた物体は納豆の容器から切り出した4mm角ぐらいの発泡ポリスチレン板です。
定常波の節と節のピッチ≒吸い寄せられるスポットの縦幅は波長の半分となります。使用したスピーカーに合わせて40kHzの超音波を使うので、音速を3.4×10^2[m/s]とすると4.3mmぐらいです。これに比べて十分小さいサイズである必要があります。

2.位相差の変更による移動

次に、2音源の位相差を変えて物体を動かすことに成功しました。

ついでに、ブレッドボード上に組んでいた回路をユニバーサル基板に組み直しました。

また、地面(土台)からの反射波が保持力を低下させる悪影響を及ぼしていると考えて、隙間を空けました。



3.プリント基板化


小型化のためにプリント基板を作成しました。回路設計も何箇所か変更しました。

Hブリッジドライバ

ICをTB6612FNGから78H660に変更しました。どちらもデュアルHブリッジドライバですが、サポートされる入力信号の形式に違いがあります。スピーカー1個あたり前者はPWM信号が2本必要なところ、後者はPWM信号1本でも今回必要な動作が可能となるため、後者に変更しました。

MCU

MCUとしてATtiny85を使用しました。これはなるべくコストを抑えるためです。Hブリッジドライバの変更により合計2本のPWM信号を出すだけで良くなったので、これで十分と考えました。
後にATtiny85が入手しづらくなり、また新しい世代のモデルを採用したほうが良いだろうということで、ATtiny202に変更して新バージョンを作りました。ATtiny202を使うのは初めてだったため、念のためブレッドボードを使用した仮組み回路で検証を行ってから新バージョンの基板を発注しました。
ファームウェアのソースコードはGitHubで公開してあります。

電源回路

今回使用した超音波スピーカーでは必要な出力を得るのに12V程度の電源が必要となります。最初の試作では12VのAC/DCアダプタを使っていました。持ち運びを考えるとこれは使いづらいものです(例: Li-ion電池の場合3セル直列が必要)。ノートPCやモバイル充電器を使って供給できるように、USBコネクタから5Vの電源を取って動作するように変更しました。超音波スピーカー駆動のための電源としてはST662(チャージポンプ型DC-DCコンバータ)で12Vの電圧を作ります。

スピーカーの位置

最初作った基板では、基板面での反射の影響を小さくするためと考えてスピーカーを基板の角に配置していました。しかし、音源の位相差と連動して物体の保持位置が横方向(基板の短手方向)にずれる現象が起こりました。中心軸から大きくずれる箇所では横に滑り落ちるような形で落下しやすくなり、望ましくありません。そこで、今度は基板短辺の中央に配置し、左右対称な形としてみました。後者の方が保持位置の中心軸からのずれが小さくなったため、これを採用しました。

製品化

ATtiny85を使った初期バージョンは3月にチバラボで行われたイベント「こっしぇる」で販売しました。今後改良版をMaker Faire等のイベントで販売予定です。

電源分配基板

電源分配用基板を作り直しました。 電源をON/OFFするためのパワーMOSFETと、基板にネジが落ちるなど不慮の事故に備えての安全のための電流ヒューズを載せました。ロボットの操作パネルに付く電源スイッチ(定格5A)は駆動用電流を直接流すためではなく、このMOSFETのゲート電圧を...