Projekt polegał na zastosowaniu nowego na rynku czujnika ruchu HLK-LD2450. Czujnik nie ma jeszcze zbyt obszernej dokumentacji, bibliotek. Nie ma również zbyt wielu gotowych projektów.
Należało więc szukać informacji szczątkowych u różnych producentów. Problemem okazało się niestandardowe przeliczanie danych z protokołu UART oraz ukryte właściwości czujnika.
[przykładowe - prosimy o edycję]
1. czujnik ruchu HLK-LD2450
2. ESP32, kabel USB-a
3. wyświetlacz LED - kolorowy
4. płytka stykowa
5. kable arduino męsko-żeńskie
1. laptop
1. Odtwarzanie projektu
1.1 Schemat
Aby odtworzyć projekt należy zastosować schemat połączenia do ESP32:
"""
SCHEMAT PODŁĄCZENIA:
EKRAN:
VCC -> 3.3V
GND -> GND
CD -> D5
RESET -> D4
DS -> D2
SDI -> D23
SCK -> D18
LED -> 3.3V
SDO -> D19
CZUJNIK:
VCC -> VIN
GND -> GND
RX -> TX2
TX -> RX2
"""
1.2 Problemy
!UWAGA! nie można skorzystać z UART0 - zarezerwowany dla konsoli. Stąd użyto UART2.
!UWAGA! czujnik piny UART czyta z perspektywy hosta. Oznacza to, że RX podłączamy do TX2, a TX do RX2 (odebrało mi to 2 godziny życia)
!UWAGA! czujnik grzeje się przy zasilaniu 5V. Jednocześnie nie funkcjonuje na 3.3V, więc po prostu jest ciepły :)
!UWAGA! niestandardowe przeliczanie signed int z bitów UART'a - manualna korekta w kodzie
2. Opis działania
Czujnik obserwuje do 3 osób. Jeśli cel (osoba) jest jeden, reszta bitów odpowiedzialna za nie jest zerowa, wartości są ignorowane. Wszystkie osoby wykryte mają następujące dane: położenie x [mm] , położenie y [mm] , prędkość [cm/s], dokładność(?) odległości [mm].
W kodzie zaimplementowano również średnią arytmetyczną dla 10 pomiarów, aby zmniejszyć niedokładność i szum pomiarowy.
Cele są również rysowane na wyświetlaczu dla wizualizacji danych. Dzięki temu widać, czy czujnik podaje sensowne wartości.
LINK DO FILMU YOUTUBE PONIŻEJ
Ustaw odpowiedni język programowania (ostatnia ikona powyżej)