一部のプロジェクトでは、距離を測定する必要があります。 まあ、あなたはそれを知っている必要があります VL53L0Xはそれらを高精度に測定できる装置です。 さらに、サイズが小さく低価格であるため、DIYプロジェクト、特にArduinoとの統合に最適です。
距離を測定できる装置はたくさんありますが、その中には超音波を利用した音を発する距離計もあり、物体とバウンドすると距離を十分に正確に知ることができます。 ただし、最高の精度が必要な場合は、 光学距離計。 このタイプの測定装置 レーザーに基づいています、VL53L0Xの場合と同様です。
ToFとは何ですか?
Time of FlightまたはToF(Time-of-Flight)カメラ これは、距離を測定するために使用される手法です。 これは光学に基づいており、光ビームの放出からその受信までの経過時間を測定します。 それらはCCD、CMOSセンサーであり、パルスは赤外線、レーザーなどである可能性があります。 システムは同期され、パルスがトリガーされたときに時間測定を開始し、センサーからのバウンスを受信したときにカウンターを停止します。
そうであれば 距離は非常に正確に計算できます。 チップに統合された追加の論理回路だけで、ビームが発射された瞬間から受信されるまでの計算を実行し、距離を決定します。 原則は非常に簡単です。
このタイプのデバイスはで使用されます ロボット工学 ロボットやドローンが障害物を回避できるようにし、ターゲットからどれだけ離れているかを知り、動きや近接を検出し、さまざまなアプリケーションに使用される車のセンサーを使用し、アクチュエータなどの電子メーターを実装して、Arduinoが次の場合に何かを実行できるようにします。オブジェクトなどの特定の近接を検出します。
VL53L0Xとデータシートとは
El VL53L0Xは、この原理を使用して、レーザー赤外線によって距離を測定します。 最後の世代。 Arduinoのようなプロセッサと一緒に使用すると、測定のための強力なツールになります。 具体的には、チップは50mmから2000mmの間、つまり5センチメートルから2メートルの間の距離をキャプチャできます。
より近い距離を測定するには、おそらくVL6180Xと呼ばれるこのチップの変形が必要です。これにより、5〜200 mmの範囲、つまり20〜04センチメートルの範囲を測定できます。 同様のデバイスを見つけたいが、技術的な理由で超音波に基づいている場合は、メーカーに人気のあるもうXNUMXつのかなり安価なモジュールであるHC-SRXNUMXを検討する必要があります。
El VL53L0Xチップ に設計されています 周囲光が非常に高い場合でも機能します。 光学的に作業する場合、環境の光害が大きいほど、信号の跳ね返りを適切にキャプチャすることが難しくなることに注意してください。 しかし、この場合、それほど問題にはなりません。 さらに、統合された補正システムにより、保護ガラスの後ろで使用しても測定できます。
それはそれをXNUMXつにします 最高の距離センサーの あなたが市場で見つけること。 超音波または赤外線(IR)に基づくセンサーよりもはるかに高い精度。 非常に正確である理由は、レーザーが他の場合のように物体からのエコーや反射率の影響を受けないためです。
現在、ミュールに統合されており、約16ユーロの追加料金がかかる場合や、1ユーロまたは3ユーロをわずかに超える単純なプレートに組み込まれている場合があります。 あなたはすでにそれがeBay、AliExpress、Amazonなどのような店で見つかることを知っています。 これらのデバイスのメーカーはさまざまです。購入したモデルの詳細を知る必要がある場合は、確認することをお勧めします。 メーカーのデータシート あなたが選んだこと。 例えば:
El VL53L0X チップ内には、レーザーパルスのエミッターと戻りビームを捕捉するセンサーがあります。 この場合、エミッタは940nm波長レーザーとVCSELタイプ(垂直共振器面発光レーザー)です。 キャプチャセンサーはSPAD(シングルフォトンアバランシェダイオード)です。 また、距離を計算するFlightSenseTMと呼ばれる内部電子機器も統合されています。
El 測定角度またはFOV(視野) この場合は25ºです。 これは、0,44mの距離で直径1mの測定領域に相当します。 測定範囲は周囲の状況により異なりますが。 屋内で行う場合は、屋外で行う場合よりも少し高くなります。 また、ポイントしているオブジェクトの反射率にも依存します。
ターゲット反射率 | 条件 | インテリア | Exterior |
---|---|---|---|
白いターゲット | 典型的な | 200cm | 80cm |
ミミック | 120cm | 60cm | |
灰色のターゲット | 典型的な | 80cm | 50cm |
最小 | 70cm | 40cm |
さらに、VL53L0Xにはいくつかあります 動作モード 結果が異なる場合があります。 これらのモードは、次の表に要約されています。
モード | タイミング | スコープ | 精度 |
---|---|---|---|
デフォルト | 30ms | 1.2m | 以下の表を参照してください |
高精度 | 200ms | 1.2m | + / - 3% |
長距離 | 33ms | 2m | 以下の表を参照してください |
高速 | 20ms | 1.2m | + / - 5% |
これらのモードによると、いくつかあります 標準および長距離の精度 あなたがこの表に持っていること:
インテリア | Exterior | |||||
---|---|---|---|---|---|---|
ターゲット反射率 | 距離 | 33ms | 66ms | 距離 | 33ms | 66ms |
白いターゲット | 120cm | 4% | 3% | 60cm | 7% | 6% |
灰色のターゲット | 70cm | 7% | 6% | 40cm | 12% | 9% |
ピン配置と接続
これらすべてが正しく機能するためには、 外の世界とのインターフェース。 そして、それはいくつかのピンまたは接続を介して達成されます。 VL53L0Xのピン配列は非常に単純で、6本のピンしかありません。 Arduinoとの統合のために、通信はI2Cを介して行うことができます。
それを養うために、あなたはすることができます ピンを接続します そう:
- Arduinoから5vへのVCC
- ArduinoのGNDからGND
- ArduinoアナログピンへのSCL。 例:A5
- 別のアナログピンへのSDA。 例:A4
- 現時点では、GPI01ピンとXSHUTピンを使用する必要はありません。
Arduinoとの統合
他の多くのモジュールと同様に、VL53L0Xにはライブラリもあります(例: アダフール)あなたが書くときに特定の関数を操作するために使用できる利用可能なコードの ArduinoIDEでプロジェクトを処理するためのソースコード。 Arduinoを初めて使用する場合は、お勧めします プログラミングマニュアル.
の例 シリアルポートを介して測定を行い、測定値を表示するためのシンプルなコード したがって、Arduinoボードを接続しているときにPC画面からそれを見ることができます:
#include "Adafruit_VL53L0X.h" Adafruit_VL53L0X lox = Adafruit_VL53L0X(); void setup() { Serial.begin(9600); // Iniciar sensor Serial.println("VL53L0X test"); if (!lox.begin()) { Serial.println(F("Error al iniciar VL53L0X")); while(1); } } void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Leyendo sensor... "); lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug if (measure.RangeStatus != 4) { Serial.print("Distancia (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" Fuera de rango "); } delay(100); }
Adafruit自身のライブラリには、必要に応じてさらに多くの使用例があります...