[PROJEKT] KAmodVL6180X i KAmduino UNO

kamodvl6180x

Nowością w dziedzinie czujników pomiaru odległości są sensory wykorzystujące technologię Time of Flight. Technologia ta została opracowana przez firmę STMicroelectronics i pozwala na precyzyjny pomiar odległości od sensora bez względu na warunki w jakich pracuje. Na odczyt odległości nie wpływa barwa i materiał powierzchni ani oświetlenie pochodzące z otoczenia. Czujniki te są w stanie mierzyć również natężenie oświetlenia otoczenia.

kamodvl6180x-modul-z-czujnikiem-odleglosci-gestow-i-als

Moduł KAmodVL6180X bazuje na sensorze VL6180X działającym właśnie w tej technologii. Prezentowany czujnik ma możliwość wykonywania pomiarów w zakresie od 0 do 100 mm. Moduł został wyposażony w stabilizator napięcia oraz konwerter poziomów logicznych dzięki czemu może być zasilany napięciem 2,8..5,5 V oraz być bez problemu użyty w aplikacjach zasilanych napięciem 5 V jak i 3,3 V. Komunikacja z czujnikiem odbywa się z wykorzystaniem magistrali I2C. Na płytce modułu zostały wyprowadzone dwie linie GPIO wychodzące z czujnika odległości.

W przykładzie posłużymy się gotową biblioteką od SparkFun do obsługi tego czujnika. Proponuję pobrać bibliotekę poprzez polecenie „Zarządzaj bibliotekami…” w menu „Szkic” -> „Dołącz bibliotekę”, programu Arduino (Rysunek 1).

Rys. 1. Menu menedżera bibliotek
Rys. 1. Menu menedżera bibliotek

Następnie w menedżerze bibliotek w prawej górnej części ekranu wpisujemy „VL6180”, oraz wybieramy „SparkFun VL6180 Sensor” i klikamy przycisk „Instaluj”.

Menedżer bibliotek programu Arduino
Rysunek 2. Menedżer bibliotek programu Arduino

 

Obsługa czujnika w Arduino jest niezwykle prosta i ogranicza się do utworzenia obiektu VL6180x z podaniem jako argument adresu czujnika. Odczytu parametru odległości dokonujemy poprzez użycie funkcji getDistance(). Odczyt parametru natężenia oświetlenia otoczenia wymaga podania argumentu, którym jest wzmocnienie brane do przeliczania wyniku pomiaru. Wynik pomiaru zwracany jest w luxach.

Dostępne w bibliotece są następujące definicje wzmocnień:

Pisanie programu rozpoczynamy od dołączenia bibliotek SparkFun_VL6180X oraz Wire (do obsługi interfejsu I2C) do naszego programu.

Kolejnym krokiem jest utworzenie obiektu „sensor”

W funkcji setup() ustawiamy parametry transmisji interfejsu UART, uruchamiamy interfejs I2C oraz ustawiamy domyślne parametry czujnika VL6180X.

Ostatnim krokiem jest odczytanie zmierzonych przez sensor wartości i wyświetlenie ich w terminalu.

Wyniki działania programu przedstawiają poniższe zrzuty ekranu. Rysunek 3 przedstawia nie ruchome położenie czujnika przy zmianie natężenia światła (różne tryby świecenia lampki biurowej, zmiana temperatury barwowej światła), zaś rysunek 4 przedstawia zmianę dystansu między czujnikiem, a obiektem przed nim.

lux
Rysunek 3. Zmiana natężenia oświetlenia otoczenia czujnika

 

distance
Rysunek 4. Zmiana odległości od obiektu przed czujnikiem

Do pobrania

O autorze