現実世界からロボットやデータ収集システムに入力する必要がある場合、選択できるオプションがいくつかあります。
• 光検出 (赤外線センサー、光依存抵抗器、コンピュータービジョンセットアップ)
• 磁場に基づくセンサー
• 超音波センサー
超音波センサーはどのように機能するのでしょうか?
超音波センサーは、人間には聞こえないほど高い周波数の音波を発することで機能します。次に、音が反射して戻ってくるのを待ち、所要時間に基づいて距離を計算します。これは、レーダーが電波が物体に当たってから戻ってくるまでの時間を測定する方法に似ています。
一部のセンサーでは別々のサウンドエミッターとレシーバーを使用しますが、これらを1つのパッケージデバイスに統合し、超音波要素で信号の送信と受信を交互に行うこともできます。このタイプのセンサーは、個別の要素よりも小さなパッケージで製造できるため、サイズが重要視されるアプリケーションに便利です。
レーダー センサーと超音波センサーは、同じ目的に使用できますが、音ベースのセンサーは簡単に入手でき、場合によっては数ドルで購入でき、状況によってはレーダーよりも効果的に物体を検出できる場合があります。
たとえば、レーダーや光ベースのセンサーでは透明なプラスチックを正しく処理するのが難しいですが、超音波センサーでは問題ありません。実際、感知している物質の色による影響を受けません。
一方、物体が音を吸収する素材で作られていたり、音波を受信機から反射するような形状であったりする場合、測定値は信頼できません。
センサーからの特定の距離を測定する必要がある場合は、次の式に基づいて計算できます。
距離 = ½ T x C
(T = 時間、C = 音速)
20°C (68°F) では音速は343メートル/秒 (1125フィート/秒) ですが、これは温度と湿度によって異なります。
特別に改造された超音波センサーは水中でも使用できます。しかし、水中での音速は空気中の4.3倍なので、この計算は大幅に調整する必要があります。
超音波センサーは何に使用されますか?
では、これらのセンサーはどこで使用できるのでしょうか?ロボットナビゲーションや工場自動化などが思い浮かびます。水位検知も別の優れた用途であり、水面上に1つのセンサーを配置することで実現できます。もう1つの水中用途は、これらのセンサーを使用して、水中を移動しながら水底の表面で反射して水域の底を「見る」ことです。
すぐには分からないかもしれませんが、正しく構成されていれば、超音波センサーは流体の流量を測定することもできます。最も単純なケースでは、エミッターとレシーバー (この構成では別々) が流体の流れに沿って配置されます。音は移動する媒体を通って伝わるため、これらの要素に対する音速は流体の速度によって増加または減少します。これをパイプ内の流れに適用するには、これら2つの要素を互いに角度をつけて配置し、2つの要素間の三角関係に基づいて有効速度の増加を計算します。
複数の超音波素子からのデータを使用することで流量の精度が向上し、わずか1パーセント以内の精度で結果が得られます。
超音波センサーを Arduino プロジェクトに組み込む
これらすべてが興味深いと思われる場合は、ArduinoとHC-SR04センサーを使用して、自分で簡単に試すことができます。上記はコンパクトで安価な Arduino Nanoですが、他の開発ボードでも動作するはずです。コンポーネント (Arduino、HC-SR04、ワイヤー、ブレッドボード) を集めて、Arduino IDEに入り、「NewPing」センサー ライブラリをインストールします。
インストールすると、いくつかの新しいサンプルスケッチから選択できるようになります。
「NewPing3Sensors」スケッチを開きます。
プログラムで定義されているように、ArduinoのピンをHC-SR04に接続し、Arduinoからグランドと5Vを追加します。
プログラムを開発ボードに送信し、115200ボーでシリアル モニターを開きます。何かを前に置くと距離が表示されます。距離を正しく読み取れない場合は「0」と表示されることに注意してください。
さまざまな形や素材を試してみて、何が機能し、何が機能しないかを確認してください。音響フォームパネルは信号を返さないのに対し、携帯電話の画面や紙のような平らで滑らかな表面は非常によく感知されることがわかって嬉しかったです。