Arduinoで超音波レベーション(浮遊)装置を自作:ステップバイステップガイド
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO(またはNano ATmega328P) | 1 | |
| 超音波センサー HC-SR04 | 1 | 送受信トランスデューサーを取り外して使用 |
| L298 デュアルHブリッジドライバー | 1 | トランスデューサー駆動用 |
| ユニバーサル基板 | 1 | |
| 7.4Vバッテリーまたは電源 | 1 | 2A以上推奨 |
| 配線材料 | 一式 |
必要な工具
- はんだごて、無鉛はんだ
- ジャンパーワイヤー(5cm×10本程度)
使用ソフトウェア
- Arduino IDE
プロジェクト概要
原理:音響レベーションの仕組み
2つの超音波トランスデューサーを向かい合わせに配置し、同じ周波数・位相の音波を出すと「定在波」が形成されます。定在波には「節(圧力最小)」と「腹(圧力最大)」があり、節の位置に軽い物体(発泡スチロール、紙片等)を置くと、上下からの音響放射圧が釣り合って浮遊します。重力に抗う見かけの「反重力」効果です。
ステップ1:仕組みの理解
- 音波は媒質(空気)の圧縮(密度高)と疎通(密度低)で伝播
- 反射波と干渉させて定在波を作る
- 節の位置では圧力変化が最小、物体を保持可能
- トランスデューサー間距離を波長の整数倍に調整
ステップ2:トランスデューサーの準備
HC-SR04モジュールから送信側(T)と受信側(R)のトランスデューサーをはんだ吸い取りで取り外し、長めのリード線をはんだ付け。保護カバーも外します。向かい合わせに固定(フォームシートとナット・ボルトで位置決め)。同軸上に正対させることが重要。
ステップ3:回路構成
Arduinoで40kHzの矩形波を生成(Timer割り込み使用) → A0/A1ピンから出力 → L298の入力へ → L298出力で2つのトランスデューサーを逆位相駆動(プッシュプル) → 7.4Vで駆動。両グランドは共通接地。
ステップ4:プログラミング
タイマー割り込みで40kHz(周期25μs)の方形波をA0/A1に出力するシンプルなコード。GitHub Gistで公開。
ステップ5:重要なポイントと改善
- トランスデューサーの位置合わせが最重要(同軸・対向・距離精度)
- 浮遊できるのは超軽量物のみ(発泡スチロール、薄い紙等)
- 最低2Aの電流供給が必要
- 複数トランスデューサーで大型物を浮かせる試みは、配列を曲面(凹面)にする必要あり(位相合わせが困難)
- 高電圧化だけでは解決せず、幾何学的配置が鍵
回路図
配線図が提供されています。Arduino A0/A1 → L298 IN1/IN2、L298 OUT1/OUT2 → 2つのトランスデューサー、電源7.4V → L298 VS、グランド共通。
製造プロセス
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- ESP8266・Arduino・超音波センサーで作るスマートIoTジャー:リアルタイム中身監視
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoで地球の質量を測定:ステップバイステップDIYガイド
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- Arduino超音波センサーとProcessingで作るリアルタイム距離測定ソナー
- スマート駐車場カウンター:Arduino、Processing、PHPでリアルタイム車両管理
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- ArduinoとProcessingで作るリアルタイムデジタルコンパス