Laserowy czujnik odległości V53L1X i zestaw X-NUCLEO-53L1A1 (1)

Bezstykowy pomiar odległości jest wykorzystywany w wielu zastosowaniach: czujnikach zbliżeniowych stosowanych w układach automatyki przemysłowej, systemach automatycznego ustawiania ostrości w aparatach fotograficznych, kamerach wideo, w urządzeniach do automatycznego pomiaru prędkości, czy sterowaniu zarządzaniem działania automatów do sprzedawania żywności. Przykładem zastosowania pomiaru odległości mogą być „inteligentne” urządzenia konsumenckie takie jak bezobsługowe kosiarki do trawy, samobieżne odkurzacze, układy automatycznego sterowania drzwiami, drony itp. Pomiar odległości jest wykorzystywany w algorytmach wykrywania przeszkód i unikania kolizji w trybie pracy autonomicznej.

Realizacja pomiaru odległości może się odbywać w różny sposób. Najprostsza metoda wykorzystuje promieniowanie podczerwone IR. Pomiar polega na mierzeniu siły sygnału odbitego, który jest proporcjonalny do mierzonej odległości. Niestety poziom sygnału odbitego może silnie zależeć od współczynnika odbicia powierzchni przedmiotu. Powoduje to wiele problemów z pomiarem odległości od różnych powierzchni i konieczność skomplikowanej kalibracji dla osiągnięcia zadanej dokładności.

Takiej wady nie mają czujniki pracujące w oparciu o zasadę pomiaru czasu przejścia wiązki światła od źródła do detektora. Ogólna zasada pomiaru została pokazana na rysunku 1.

 

Rys. 1. Pomiar odległości przez pomiar czasu

 

Zmierzoną odległość można wyliczyć z zależności:

odległość = (czas przelotu wiązki fotonów /2) x prędkość światła

Czas przejścia wiązki fotonów nie jest zależny od charakterystyki powierzchni i mierzona odległość może być precyzyjnie wyliczana. Ta metoda wymaga mierzenia bardzo małych czasów. Załóżmy, że przedmiot jest w odległości 1 cm od czujnika. Światło musi przebyć dystans 2 cm, czyli 0,02 m. Czas na to potrzebny to ok 0,02 m/300000000 m/s= 67 ps. Pomiar takich czasów nawet bardzo szybkim mikrokontrolerem ogólnego przeznaczenia praktycznie jest nie do zrealizowania. Do takich celów są wykorzystywane specjalizowane układy scalone. Jednym z nich jest VL53L1X produkowany przez firmę STMicroelectronics.

Jest to układ z rodziny nowej generacji czujników zbliżeniowych opartej na technologii FlightSense Time-of-Flight (ToF). VL53L1X (rysunek 2) jest układem zawierającym w swojej strukturze:

  • Tablicę detektorów SPAD (Single Photon Avalanche Diode)
  • Nadajnik laserowy ze sterownikiem i driverem będący źródłem światła o długości 940 nm
  • Specjalizowany mikrokontroler z interfejsem I2C

Długość fali światła laserowego jest spoza zakresu fal widzialnych (bliska podczerwień). Pozwala to w połączeniu z filtrami podczerwieni na wyeliminowanie zakłóceń spowodowanych światłem widzialnym. Żeby czujnik mógł być bezpiecznie eksploatowany nawet przez nie przeszkolony personel zastosowano laser VCESL klasy 1. Klasa 1 definiuje takie parametry źródła światła laserowego, że jest ono bezpieczne dla oczu w każdych warunkach eksploatacyjnych.

Czujnik VL53L1X został zaprojektowany z myślą o ultra-niskiej poborze mocy i z tego powodu bardzo dobrze nadaje się do zastosowań bezprzewodowych i Internetu Rzeczy.

 

Rys. 2. Schemat blokowy VL53L1X

 

Na rysunku 2 pokazano schemat blokowy układu VL53L1X. Wbudowany w układ zaprogramowany mikrokontroler wykorzystuje specjalne algorytmy pozwalające bezpośrednio mierzyć odległość w milimetrach od obiektu docelowego w zakresie od 0 do 4000 mm. Pomiar jest możliwy nawet w trudnych warunkach środowiskowych i jak już wspomniałem jest w szerokim zakresie niezależny od współczynnika odbicia powierzchni mierzonego przedmiotu. Światło laserowe w teorii powinno się rozchodzić w postaci równoległej wiązki. W praktyce wiązka nie jest równoległa i im dalej od emitera światła, tym średnica plamki światła jest większa. Jak widać na rysunku 4 dla odległości 4 m średnica plamki wynosi 192 cm. Trzeba to uwzględnić przy próbach pomiaru dużych odległości od małych przedmiotów.

Rys. 3. Wielkość plamki światła z emitera laserowego w funkcji odległości od źródła światła

 

Na rysunku 4 pokazano typowy układ pomiarowy wykorzystujący metodę pomiaru czasu przejścia promienia światła.

Rys. 4. Typowy układ pomiarowy

 

Czujnik w rzeczywistych warunkach eksploatacyjnych powinien by chroniony przed zabrudzeniem spowodowanym na przykład zapyleniem powietrza. Najprostszą barierą dla zanieczyszczeń jest ochronna płytka szklana. Jednak zanieczyszczenia osiadające na powierzchni szkła powodują , ze promień lasera się od nich częściowo odbija i powstają problemy z prawidłowym pomiarem. Pokazano to na rysunku 5.

 

Rys. 5. Odbicia od zanieczyszczeń powodujące problemy z prawidłowym pomiarem

 

Ten problem można stosunkowo prosto rozwiązać stosując specjalną obudowę czujnika chroniącą przed przenikaniem odbitych promieni z lasera do detektora – rysunek 6.

Rys. 6. Układ pomiarowy z obudową zabezpieczającą przed przenikaniem promieni odbitych z zanieczyszczeń do detektora

 

Rys. 7. Projekt obudowy zabezpieczającej

 

VL53L1X jest umieszczony w specjalnej obudowie do montażu powierzchniowego – rysunek 8.

 

Rys. 8. Obudowa czujnika VL53L1X

 

Producent czujnika zadbał o pełne wsparcie dla potencjalnych konstruktorów i użytkowników tego elementu. Jednym z elementów tego wsparcia jest zestaw ewaluacyjny X-NUCLEO-53L1A1. wykonany zgodnie ze standardem Arduino Uno Ver.3. X-NUCLEO-53L1A1 jest przeznaczony do połączenia z firmowym modułem Nucleo-F401REfotografia 9.

Oczywiście standard Arduino pozwala na sprzętowe połączenie z dowolnym modułem mikrokontrolera zgodnym z Arduino, ale zastosowanie Nucleo-F401RE umożliwia testowanie czujnika za pomocą firmowego oprogramowania.

 

Fot. 9. Moduł ewaluacyjny z zestawu X-NUCLEO-53L1A1 połączony z modułem Nucleo-F401RE

 

Na płytce modułu umieszczono czujnik VL53L1X z plastikową osłoną na które można zakładać szkło ochronne. Czujnik odległości jest zasilany napięciem +2,5V. Na umieszczono stabilizator napięcia +2,5V oraz układy dostosowujące poziomu logiczne czujnika (+2,5V) oraz mikrokontrolera (+3,3V).

W skład zestawu oprócz modułu ewaluacyjnego wchodzą dwie dodatkowe płytki z czujnikami VL53L1X. Te płytki można połączyć z modułem ewaluacyjnym za pomocą złącz IDC tak jak to zostało pokazane na fotografii 10. Można je również wykorzystać we własnych autonomicznych aplikacjach pamiętając o napięciu zasilania i napięciach poziomów logicznych.

 

Fot. 10. Podłączone 2 dodatkowe płytki z czujnikami

 

Konfiguracja sprzętowa z dwoma, lub trzema czujnikami może być przydatna do testowania funkcji wykrywania gestów. W skład zestawu wchodzą też 3 ramki (elementy dystansowe) o grubościach 0,25 mm, 0,5 mm i 1 mm symulujące różne szczeliny powietrzne pomiędzy szkłem ochronnym i czujnikiem, oraz dwa różne szkła osłonowe.

Tomasz Jabłoński

Autor: STM32eu

STM32eu