Laserowy czujnik odległości V53L1X i zestaw X-NUCLEO-53L1A1 (2)
Testy modułu X-NUCLEO-53L1A1 połączonego z modułem Nucleo-F401RE nazywanego przez producenta zestawem P-NUCLEO-53L1A1 rozpoczynamy od pobrania ze strony www.st.com oprogramowania testowego umieszczonego w spakowanym pliku en.STSW-IMG008.rar. Żeby to zrobić trzeba mieć aktywne konto użytkownika i się na nie zalogować. W spakowanym pliku en.STSW-IMG008 jest umieszczona instrukcja obsługi aplikacji testowej VL53L1X GUI w formacie pdf i plik instalacyjny aplikacji VL53L1X_Setup.exe. Instalacja aplikacji przebiega standardowo i zawiera niezbędną do działania instalację driverów łącza USB.
Pakiet STSW-IMG008 zapewnia:
- Wyświetlanie on-line odległości w centymetrach przedmiotu od czujnika
- Wyświetlanie on-line siły odbitego sygnału
- Ustawienia wybranego obszaru na matrycy czujnika. Rozmiar i położenie tego obszaru na matrycy jest określane programowo
- Możliwość wykonania procedur kalibracji
- Zapisywanie danych wyjściowych do pliku (logi)
- Zapisywanie przebiegu transmisji danych po magistrali I2C
Pierwszą czynnością po uruchomieniu będzie wgranie firmware sterującego do modułu mikrokontrolera Nucleo-F401RE. W tym celu należy podłączyć moduł mikrokontrolera łączem USB z komputerem, wybrać zakładkę About i kliknąć na Flash Fw – rysunek 11.
Rys. 11. Wgranie firmware do pamięci mikrokontrolera
Jeżeli wszystko jest sprawne i poprawnie połączone, to program sterujący zestawem zostanie automatycznie wgrany do pamięci mikrokontrolera i moduł jest gotowy do pracy.
Rys. 12. Identyfikacja podłączonego zestawu
Po zaprogramowaniu pamięci zestaw powinien zostać wykryty i zidentyfikowany. Mona to również zobaczyć w zakładce About – rysunek 12.
Komputer z uruchomionym GUI jest hostem sterującym pracą czujnika VL53L1X. Host wysyła do czujnika komendy przez wirtualny port szeregowy Virtual COM. Oprogramowanie uruchomione na mikrokontrolerze „tłumaczy” te komendy na polecenia wysyłane do czujnika magistralą I2C. Mikrokontroler następnie odczytuje magistralą I2C dane z czujnika i odsyła je wirtualnym portem szeregowym do hosta. Zostało to pokazane na rysunku 13.
Rys. 13. Przesyłanie danych pomiędzy hostem i czujnikiem
Przed użyciem czujnika można go skalibrować jeżeli jest taka potrzeba, lub użyć domyślnych danych kalibracyjnych. Kalibrowanie wykonuje się w zakładce Calibration przez kliknięcie na CalRefSpads, CalOffset i Cal X-Talk– rysunek 14.
Rys. 14. Kalibracja czujników
Kalibracja SPAD dostosowuje czułość detektora do poziomu sygnału laserowego. Jest wykonywana po to, żeby uwzględnić rodzaj szkła chroniącego czujnik. Powinna być wykonywana dla każdego nowego czujnika podłączonego do GUI. W wyniku kalibracji są ustawiane 2 parametry: Ref SPAD Location i Number of Ref Spads. Po poprawnie wykonanej kalibracji Calibration Status powinien mieć wartość 0.
Kalibracja Offsetu wprowadza stała wartość wyrażoną w mm, która jest dodawana do każdego zakresu pomiaru. Wprowadzenie kalibracji offsetu pomaga uzyskać dużą wymaganą dokładność pomiaru. W trakcie kalibracji offsetu odległość od mierzonego przedmiotu domyślnie wynosi 140mm, ale można ja zmienić w oknie Call Height Zaleca się by do dokładnej kalibracji użyć przedmiotu odbijającego światło w min 88%. Ja wykonałem próbę kalibracji dla sufitu oddalonego ok 1,5m od powierzchni stołu (przy Call Height 140mm) i uzyskałem wartość Offset Value -1514mm (rysunek 14) Oczywiście pomiary po takiej kalibracji nie będą się nadawały do użycia.
Kalibracja X-Talk (Cross Talk Compensation Factor) ma za zadanie dodatkowo skompensować przesłuchy pomiędzy sygnałem nadawanym i odbieranym przez detektor spowodowanym stosowaniem szkła ochronnego tak jak to zostało pokazane na rysunku 5 Alternatywnie można skutecznie redukować przesłuchy stosując specjalną obudowę pokazaną na rysunku 7. W naszym module szyba ochronna nie jest przedzielona obudową i przesłuchy mogą wystąpić w mniejszym lub większym natężeniu. Przed uruchomieniem kalibracji należy w odległości 6cm (określana programowalnym polem Call Height) umieścić czarny lub szary przedmiot o niskim współczynniku odbicia.
Ja na próbę wywoływałem te kalibracje bez spełniania koniecznych warunków układowych. To oczywiście powodowało, ze układ po takim kalibrowaniu dział nie prawidłowo. W każdej chwili można jednak kliknąć na przycisk Reset, żeby przywrócić domyślne ustawienia kalibracji zapisane w aplikacji STSW-IMG008. Jeśli jednak kalibracja została przeprowadzona rzetelnie, to jej wynik można zapisać w pliku o dowolnej nazwie klikając na przycisk Save i ponownie wczytać. Kliknięcie na przycisk Load powoduje wczytanie pliku z danymi kalibracji do bufora, a klikniecie na Write powoduje fizyczne wczytanie kalibracji do czujnika.
Przy wstępnym testowaniu działania czujnika kalibracje możemy pominąć i zdać się na domyślne ustawienia oferowane przez STSW-IMG008. Warto jednak wiedzieć jak ją wykonać, by uzyskać lepszą dokładność pomiaru w docelowym układzie pomiarowym.
W podstawowej zakładce programu STSW-IMG008, czyli w Low-Power Autonomous są wyświetlane dane pomiarowe w czasie rzeczywistym w formatach: graficznym i numerycznym. Oprócz tego umieszczono tam elementy sterujące pomiarami.
Rys. 15. Okno wyświetlania pomiarów odległości
W oknie Range jest wyświetlany wykres odległości od przedmiotu mierzonej przez czujnik w czasie rzeczywistym Dolne okno Signal Rate pokazuje również w czasie rzeczywistym pomiar siły sygnału w umownych jednostkach Mega Counts Per Seconds.
Środkowe okno wyświetla dodatkowe informacje w postaci numerycznej:
- Status – informuje o prawidłowości zakresu pomiarowego. Każda inna wartość niż 0 oznacza błąd (kody błędów opisane w instrukcji do aplikacji STSW-IMG008).
- Range jest mierzoną odległością od przedmiotu
- Signal Rate (mcps) określa siłę sygnału w mcps
- Ambient Rate – określa siłę sygnału zakłócającego pomiar w mcps (siłę sygnału światła otoczenia)
Okno z prawej strony zawiera szereg ustawień wykorzystywanych do zmiany parametrów pomiarów. Wszystkie one są dokładnie opisane w instrukcji programu STSW-IMG008. Najciekawsze z nich to Distance mode i Threshold Selection.
Zakres pomiaru Distance mode można ustawić w trzech wartościach:
- Long – pełny zakres pomiarowy do 4 m
- Medium – średni zakres pomiarowy do 2,8 m
- Short – najniższy zakres pomiarowy do 1,4 m
Przy ustawieniu najdłuższego zakresu pomiarowego trzeba się liczyć z większym wpływem światła otoczenia na pomiar odległości. W pewnych sytuacjach może to powodować problemy z prawidłowym pomiarem. Ustawianie zakresu short jest rekomendowane do pomiarów na zewnątrz budynków, gdzie światło słoneczne może stanowić czynnik zakłócający pomiar.
Thereshold selection filtruje mierzone dane zależnie od zmierzonej odległości. Można tu wybrać opcje:
- Below – pomiar jest wyświetlany, kiedy odległość jest mniejsza od wartości min (domyślnie 500 mm)
- Above pomiar jest wyświetlany, kiedy odległość jest większa od wartości max (domyślnie 1000 mm)
- Outside pomiar jest wyświetlany, kiedy odległość jest mniejsza od wartości min (domyślnie 500 mm), lub większa od wartości max (domyślnie 1000 mm)
- Inside pomiar jest wyświetlany, kiedy odległość jest pomiędzy wartością min (domyślnie 500 mm) i wartością max (domyślnie 1000 mm)
Na rysunku 16 pokazano ekran zakładki Low-Power Autonomous dla pomiaru w trybie wyzwalania Inside.
Rys. 16. Pomiar w trybie Threshold Inside
Pokazałem tu przygotowany przez STMicroelectronics kompletny zestaw testowy od strony sprzętowej: zestaw X-NUCLEO-53L1A1 i programowej STSW-IMG008. Krótkie testy praktyczne potwierdziły prawidłowe działanie czujników. Trzeba jednak sobie zdawać sprawę, że praca w układzie docelowym może wymagać dostosowania parametrów pomiarów do środowiska pomiarowego. Bardzo dużym ułatwieniem jest możliwość przeprowadzenia prób w docelowym układzie pomiarowym, używając do tego celu jednej płytek rozszerzeń pokazanych na rysunku 10 połączonych przewodami z płytką X-NUCLEO-53L1A1. Duże możliwości kalibracji, ustawień parametrów pomiaru i w końcu samego pomiaru programu STSW-IMG008 pozwalają ocenić przydatność czujnika we własnej aplikacji bez konieczności budowania własnej platformy sprzętowej i pisania oprogramowania testowego.
Tomasz Jabłoński