VL53L0X: yüksek hassasiyetli lazer mesafe sensörü

VL53L0X

Bazı projelerinizde mesafeleri ölçmeniz gerekecek. Peki, bilmelisin ki VL53L0X, bunların yüksek hassasiyetle ölçülmesini sağlayan bir cihazdır.. Ek olarak, küçük boyutu ve düşük fiyatı, DIY projeleriniz için, özellikle Arduino ile entegre olmak için ideal hale getirir.

Mesafeleri ölçebilen birçok cihaz var, bazıları ses yayan ultrasona dayalı mesafe ölçerler ve nesne ile sıçradığında, var olan mesafeyi yeterince hassas bir şekilde bilmeyi sağlıyor. Ancak en yüksek hassasiyeti istiyorsanız, bunun için bir optik mesafe ölçer. Bu tür ölçüm cihazları lazere dayanırVL53L0X'te olduğu gibi.

ToF nedir?

ToF prensibi (şema)

Uçuş Süresi veya ToF (Uçuş Süresi) kamerası mesafeleri ölçmek için kullanılan bir tekniktir. Bir ışık huzmesinin emisyonu ile alım arasında geçen süreyi ölçen optiğe dayanır. CCD, CMOS sensörleri olabilir ve darbeler kızılötesi, lazer vb. Olabilir. Sistem, tam darbe tetiklendiğinde zaman ölçümünü başlatmak ve sensörden sekmeyi aldığında sayacı durdurmak için senkronize edilecektir.

Bu şekilde mesafe oldukça doğru hesaplanabilir. Işının ateşlendiği andan alınana kadar hesaplamaları gerçekleştirmek ve böylece mesafenin ne olduğunu belirlemek için yalnızca çipe entegre ek bir mantık devresi gerekir. Prensip oldukça basittir.

ESP8266
İlgili makale:
ESP8266: Arduino için WIFI modülü

Bu tür bir cihaz, Robotica robotun veya drone'nun engellerden kaçınmasına, bir hedeften ne kadar uzakta olduklarını bilmesine, hareketi veya yakınlığı algılamasına, farklı uygulamalar için kullanılan araba sensörleri için, bir aktüatör gibi bir elektronik ölçüm cihazına geçmesine izin vermek, bir nesnenin belirli yakınlığını vb. algılar.

VL53L0X ve veri sayfası nedir

VL53L0X

El VL53L0X, mesafeleri lazer kızılötesi ile ölçmek için bu prensibi kullanır. Son nesil. Arduino gibi bir işlemciyle birlikte, ölçüm için güçlü bir araç olabilir. Çip özellikle 50 mm ile 2000 mm arasındaki, yani 5 santimetre ile 2 metre arasındaki mesafeleri yakalayabilir.

Daha yakın mesafeleri ölçmek için muhtemelen bu çipin 6180 ila 5 mm, yani yarım santimetre ila 200 santimetre arasında bir aralığı ölçmenize izin veren VL20X adlı bir varyantına ihtiyacınız vardır. Herhangi bir teknik nedenden dolayı benzer ancak ultrason tabanlı bir cihaz bulmak istiyorsanız, o zaman üreticiler arasında oldukça popüler olan oldukça ucuz bir modül olan HC-SR04'e bakmalısınız.

El VL53L0X çip için tasarlandı ortam ışığı oldukça yüksek olduğunda bile çalışın. Optik olarak çalışırken, çevrenin ışık "kirliliği" ne kadar fazlaysa, sinyalin yansımasını yeterince yakalamanın o kadar zor olacağını unutmayın. Ancak bu durumda çok fazla sorun teşkil etmez. Ayrıca entegre ettiği kompanzasyon sistemi, koruyucu cam arkasında kullansanız bile ölçüm yapmasına olanak tanır.

Bu onu bir yapar en iyi mesafe sensörlerinden Piyasada bulacağınız. Ultrason veya kızılötesi (IR) tabanlı sensörlerden çok daha yüksek bir hassasiyetle. Bu kadar hassas olmasının nedeni, lazerin diğer durumlarda olduğu gibi yankılardan veya nesnelerden gelen yansımalardan etkilenmemesidir.

Şu anda, yaklaşık 16 € 'ya biraz ekstra olan katırlarda veya diğer durumlarda 1 € veya 3 €' nun biraz üzerinde daha basit tabaklarda entegre olarak bulabilirsiniz. Bunu eBay, AliExpress, Amazon gibi mağazalarda bulacağınızı zaten biliyorsunuz. Bu cihazların üreticileri çeşitlidir, bu nedenle satın aldığınız modelin detaylarını bilmeniz gerekiyorsa, en iyisi kontrol etmektir. üreticinin veri sayfası seçtiğiniz. Örneğin:

El VL53L0X Çipin içinde lazer darbesinin yayıcısı ve geri dönen ışını yakalamak için sensör vardır. Bu durumda, yayıcı, 940nm dalga boylu bir lazerdir ve VCSEL tipidir (Dikey Boşluklu Yüzey Yayan Lazer). Yakalama sensörüne gelince, bu bir SPAD'dir (Tek Foton Çığ Diyotları). Ayrıca, mesafeyi hesaplayacak olan FlightSenseTM adlı dahili bir elektronik entegre eder.

El ölçüm açısı veya FOV (Görüş Alanı) bu durumda 25º. Bu, 0,44 m mesafede 1 m çapında bir ölçüm alanı anlamına gelir. Ölçüm aralığı çevre koşullarına bağlı olsa da. İçeride yapılırsa, dışarıda yapılmasına göre biraz daha yüksektir. Ayrıca, işaret ettiğiniz nesnenin yansımasına da bağlı olacaktır:

Hedef yansıtma Şartlar Dış
Beyaz hedef Tipik 200cm 80cm
Mimik 120cm 60cm
Gri hedef Tipik 80cm 50cm
mínimo 70cm 40cm

Ek olarak, VL53L0X'te birkaç çalışma modları Bu, sonuçları değiştirebilir. Bu modlar aşağıdaki tabloda özetlenmiştir:

Kip Zamanlama Kapsam Hassas
varsayılan olarak 30ms 1.2m Aşağıdaki tabloya bakın
Yüksek hassasiyet 200ms 1.2m + / -% 3
Uzun mesafe 33ms 2m Aşağıdaki tabloya bakın
Yüksek hız 20ms 1.2m + / -% 5

Bu modlara göre, birkaç tane var standart ve uzun menzilli doğruluklar bu tabloda sahip olduğunuz:

Dış
Hedef yansıtma Mesafe 33ms 66ms Mesafe 33ms 66ms
Beyaz hedef 120cm'de 4% 3% 60cm'de 7% 6%
Gri hedef 70cm'de 7% 6% 40cm'de %12 9%

Pin çıkışı ve bağlantı

VL53L0X çip diyagramı

Tüm bunların düzgün çalışması için ihtiyacınız olan dış dünya ile bir arayüz. Ve bu, bazı pimler veya bağlantılarla elde edilir. VL53L0X’in pin çıkışı oldukça basittir, sadece 6 pime sahiptir. Arduino ile entegrasyonu için I2C üzerinden iletişim yapılabilir.

Beslemek için yapabilirsin pimleri bağlayın Yani:

  • Arduino'dan VCC'den 5v'ye
  • Arduino'nun GND'sinden GND'ye
  • SCL'den bir Arduino analog pinine. Örneğin A5
  • SDA'yı başka bir analog pime. Örneğin A4
  • GPI01 ve XSHUT pinlerinin şu anda kullanılması gerekmez.

Arduino ile entegrasyon

VL53L0X, Arduino'ya bağlı

Diğer birçok modülde olduğu gibi, VL53L0X için de kitaplıklara sahipsiniz (örn. Adafruit) yazarken belirli işlevlerle çalışmak için kullanabileceğiniz mevcut kodun Arduino IDE'de projenizi işlemek için kaynak kodu. Arduino ile ilk kez yapıyorsanız, tavsiye ederim programlama kılavuzumuz.

Bir örnek Seri port üzerinden ölçüm almanız ve ölçüm değerini görüntülemeniz için basit kod böylece Arduino kartınız bağlıyken PC ekranınızdan görebilirsiniz:

#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'in kendi kütüphanesinde, ihtiyacınız olursa daha fazla kullanım örneğine sahipsiniz ...


İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.