United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

高精度超音波センサ「Pmod MAXSonar」をArduino Dueで使用する

このプロジェクトでは、Arduino Dueで音響範囲測定器Pmod MAXSonarを3つの異なる測定モードで使用する方法を実演します。

部品リスト

Qty Product 品番
1 Digilent Pmod MAXSONAR Maxbotix Range Finder Expansion Board 240-071 134-6439
1 Arduino, Due Development Board 769-7412

Pmod MAXSonarは、超音波距離センサーモジュールです。MaxBotix® LV-MaxSonar®-EZ1を搭載しており、15~648cmまでの距離を1インチ(2.54cm)精度で50ミリ秒毎に測定します。

Pmod MAXSonarの制御

Pmod MAXSONARは、UARTプロトコル、アナログ出力端子、PWM端子を介してArduinoと通信します。UARTプロトコルは、通信速度9600、8ビット、パリティなし、シングルストップビットで構成されています。モジュールの電源は3.3Vまたは5Vです。以下に端子配列表を示します

端子 シグナル
1 アナログアウトプット(AN)
2 データ受信(RX)
3 データ転送(TX)
4 パルス幅変調(PWM)
5 アース端子(GND)
6 3.3V/5V電源(Vcc)

タイミングについて

Pmod MAXSonarは、電源が立ち上がるまでに250ミリ秒必要で、(RX)端子が浮動またはロジックレベルの高電圧のままになっている場合、49ミリ秒かけて自己補正を行い、さらに100ミリ秒の待ち時間の後、49ミリ秒ごとに測定値を取得できるようになります。

49ミリ秒ごとに、RXがハイまたはオープンで始まり、次にPmod MAXSonarが転送バーストを送信し、その後PWピンがハイに設定されます。物体が検出されると、PW端子はローに下げられます。物体が検出されない場合、PW端子は最大37.5ミリ秒間ハイに設定されます。49ミリ秒のうちの残り時間(4.7ミリ秒を除く)は、アナログ電圧を適正な水準に調整するために使用されます。短距離測定の直後に長距離が測定された場合、アナログ電圧が測定サイクル1回以内に正確な水準に達しないことがあります。最後の4.7ミリ秒の間に、シリアルデータが送信されます。

pmodmaxsonar_timingdiagram1_b922dcc4a94082a4fbc16e26fe8f63d08b65b342.png

TXまたはANPW端子を介して距離を取得する

RX端子が浮動、またはロジックレベルの高電圧で保たれている場合、TX端子から最初にASCIIの大文字「R」、検出された距離を表すASCIIの3桁、およびキャリッジリターン文字(ASCII文字13)の5バイトが送信されます。

また、Pmod MAXSONARの前にある物体の測定距離を表すアナログ信号を読み出すこともできます。出力の分解能は9ビットです。3.3Vの電源では、各インチは~6.4 mVに相当します。一般的な10ビットADCで入力されるアナログ信号を測定しているユーザーは、報告された距離を計算する前に測定値を2で割る必要があります。

Pmod MAXSONARは、パルス幅変調信号を通して距離データも提供します。端子がロジックレベルの高電圧状態で測定される毎147 uSが、1インチの距離に相当します。信号が2.205ミリ秒間ハイと測定された場合、検出された物体はPmod MAXSONARの前面から15インチ離れていることになります。最大測定パルス時間が37.5ミリ秒である場合、Pmodから255インチ以内に物体がないことを示しています。

Arduino Dueに接続する

  1. Pmod VccからArduino Due 3V3
  2. Pmod GNDからArduino Due
  3. Pmod AN からArduino Due A0(アナログモード用)
  4. Pmod PWからArduino Due D2(パルス幅測定用)
  5. Pmod RXおよびTX端子からUART通信のためのシリアル3(端子14と15)

測定結果はシリアルモニターに表示されます。

result_647a999e87619668404be30ca63f729e2c98babe.png

ダウンロード

awong さんはまだ自己紹介を入力されていません...