何かが空中や自由空間に浮かんでいるのを見るのはとてもエキサイティングです。それはまさに反重力プロジェクトの目的です。オブジェクト(基本的には小さな紙またはサーモコール)は、音響音波を生成する2つの超音波トランスデューサーの間に配置されます。反重力のように見えるこれらの波のために、物体は空中に浮かんでいます。これは見栄えの良いArduino浮揚プロジェクトであるだけでなく、多くの実用的なアプリケーションもあります。研究者はこれと非常によく似た働きをする超音波ロボットグリッパーに取り組んでおり、これらのグリッパーは物体に触れずに移動するのに役立ちます。
必要なコンポーネント
- Arduino Uno / Arduino Nano ATMEGA328P
- 超音波モジュールHC-SR04
- ICまたはL239dHブリッジモジュールL239D
- ベロボードドットベロ
- ダイオード4007
- コンデンサ(PF)104
8vから12vの電源装置の追加要件
- 電圧レギュレーターLM7809
- LEDドライバー電源12V2Amp
追加資料:フックアップワイヤー、オスヘッダー、メスからメスへのジャンパーワイヤー
超音波浮上回路図
完全なArduinoLevitation回路を以下に示します。回路の動作原理は非常に単純です。このプロジェクトの主要コンポーネントは、Arduino、L239Dモーター駆動IC、および超音波センサーモジュールHCSR04から収集された超音波トランスデューサーです。一般的に、超音波センサーは25kHzから50kHzの周波数信号の音波を送信しますが、このプロジェクトでは、HCSR04超音波トランスデューサーを使用しています。私たちは以前、HCSR04が主に距離の測定に使用される多くの超音波センサープロジェクトを構築しました。このプロジェクトでは、モジュールからトランスデューサーをはんだ付けしました。
データシートによると、この超音波トランスデューサの動作周波数は40kHzです。したがって、Arduinoとこの小さなコードを使用する目的は、超音波センサーまたはトランスデューサー用に40KHzの高周波振動信号を生成することであり、このパルスはデュエルモータードライバーIC L239D(Arduinoのピン2および6)の入力に適用されます。 A0&A1ピン)超音波トランスデューサーを駆動します。最後に、この高周波40KHz発振信号を、駆動ICを介した駆動電圧(通常、L239D ICの8番目のピンVcc2に与えられる8〜12の電圧)とともに超音波トランスデューサーに印加します。その結果、超音波トランスデューサーが音響音波を生成します。2つのトランスデューサーを反対方向に向かい合わせに配置し、それらの間にいくらかのスペースが残されるようにしました。音響音波は2つのトランスデューサー間を伝わり、物体を浮かせます。
L293Dにはデュアル電圧入力があることに注意してください。1つはこのプロジェクトのArduino5vから電力を供給されるIC自体に電力を供給し、もう1つは出力コンポーネントの駆動電圧に適用されるVcc2(8番目)であり、このVCCピンは最大36vを受け入れることができます。このICには、2つのイネーブルピン、4つの入出力ピン、4つのグランドピンがあります。このICを使用するという概念は、マイクロコントローラーとこのチップを使用するという概念に由来します。このチップでは、マイクロコントローラーから論理信号またはデジタル信号を提供するだけで、2つのモーターの方向と速度を個別に変更できます。
この回路では、IC L293Dの2つの入力、入力ピン1(2)と入力ピン2(7)のみを使用します。これらの2つのピンを有効にするには、IC有効PIN 1をハイに保つ必要があるため、このピンを入力Vcc 1であるICピン16に接続しました。詳細については、L293Dデータシートに従ってください。
100nfコンデンサの使用は、IC電源を保持するためのオプションであり、電源として、12V 2Amp LEDドライバを使用し、電圧レギュレータIC LM7809を使用して電圧を9vに下げ、共通のグラウンドでL139Dの8番目のピンに供給します。 。Arduino、Cc、およびArduinoフォーラムによると、Arduino UNOボードは7〜12ボルトの入力をサポートしますが、最大9Vを配置する方が安全です。
超音波浮上のためのArduinoのプログラミング
コーディングは非常に単純で、数行しかありません。タイマーと割り込み関数の助けを借りてこの小さなコードを使用して、ハイまたはロー(0/1)を作成し、ArduinoA0およびA1出力ピンに40Khzの発振信号を生成しています。
まず、位相シフトアレイから始めます。
バイトTP = 0b10101010;
そして、1つおきのポートがこの反対の信号を受信します。その後、voidセットアップの下で、このコード行を使用してすべてのアナログポートを出力として定義します。
DDRC = 0b11111111;
次に、タイマー1を初期化し、すべての割り込みを無効にしてゼロに設定します。
このコードによって、
noInterrupts(); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
次に、タイマー1は、80KHZで比較割り込みクロックをトリガーするように構成されます。Arduinoは16000000MHZで動作します÷200 = 80,000kHzの方形波がこの関数を使用して生成されます。
OCR1A = 200; TCCR1B-=(1 << WGM12); TCCR1B-=(1 << CS10);
その後、この行がアクティブになり、タイマー割り込みを比較します。
TIMSK1-=(1 << OCIE1A);
そして最後に、このコードを使用して割り込みをアクティブにします。
割り込み();
各割り込みはアナログポートの状態を反転させます。これにより、80kHzの方形波信号が40Khzの全波サイクリング信号に変わります。次に、値をArduinoの出力A0およびA1ポートに送信します。
ISR(TIMER1_COMPA_vect){PORTC = TP; TP = 〜TP; //次の実行のためにTPを反転します}
そして、ループの下で実行するために置くまたは必要なものは何もありません。
超音波浮上セットアップの構築
このプロジェクトでは、超音波トランスデューサーを正しく取り付けることが重要であることに注意してください。それらは非常に重要な反対方向に向かい合う必要があり、超音波が反対方向に伝わり、交差できるように同じ線上にある必要があります。このために、2つの小さな木片またはMDボード、ナットボルト、および接着剤を使用できます。ドリルマシンでトランスデューサーに完全にフィットするように2つの穴を開けることができます。スタンドには、超音波トランスデューサーの配置を吊るすことができます。
この場合、私は2枚のボール紙を使用し、次に接着剤銃からの接着剤の助けを借りて超音波トランスデューサーを固定しました。その後、スタンドを作るために、簡単な配線ケーシングボックスを使用し、すべてを接着剤で固定しました。
これは、プロジェクトの動作を示す超音波浮揚の写真です。
超音波浮揚または音響浮揚は、片側に超音波トランスデューサーが取り付けられている場合にも機能しますが、その場合、将来のホバーボードや反重力輸送で使用できるように障害物として機能する反射板が必要になります。以下の完全な作業ビデオをチェックすることもできます。
プロジェクトをご理解いただき、楽しいもの作りを楽しんでいただけたでしょうか。ご不明な点がございましたら、下のコメントセクションに残してください。他の技術的な質問については、フォーラムを使用することもできます。