Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Śledź rozwój swojego dziecka za pomocą cyfrowego wzrostu
W dzieciństwie moja mama była przyzwyczajona do okresowego mierzenia mojego wzrostu i zapisywania go na karteczkach, aby śledzić mój wzrost. Oczywiście, nie mając w domu stadiometru, stałem przy ścianie lub ościeżnicy, a ona mierzyła taśmą. Teraz mam nowonarodzoną wnuczkę i kiedy zacznie chodzić, jej rodzice z pewnością będą zainteresowani jej wzrostem. Tak narodził się pomysł cyfrowego wzrostuomierza.
Jest zbudowany wokół Arduino Nano i czujnika "Time of Flight", który mierzy, ile czasu zajmuje maleńkie światło lasera, aby odbić się z powrotem do czujnika.
Krok 1: Części i komponenty
- Arduino Nano wer. 3
- Czujnik laserowy CJMCU 530 (VL53L0x)
- KY-040 Obrotowy Enkoder
- Wyświetlacz SSD1306 OLED 128x64
- Brzęczyk pasywny
- Rezystory 2x10KΩ
Krok 2: Czujnik
ST Microelectronics VL53L0X to nowej generacji moduł laserowego pomiaru czasu przelotu (ToF) umieszczony w niewielkiej obudowie, zapewniający dokładny pomiar odległości bez względu na współczynnik odbicia celu, w przeciwieństwie do konwencjonalnych technologii.
Może mierzyć odległości bezwzględne do 2m. Wewnętrzny laser jest całkowicie niewidoczny dla ludzkiego oka (długość fali 940 nm) i spełnia najnowsze standardy bezpieczeństwa. Integruje szereg SPAD (diody lawinowe pojedynczego fotonu)
Komunikacja z czujnikiem odbywa się przez I2C. Ponieważ projekt obejmuje również zainstalowaną kolejną I2C (OLED), potrzebne są rezystory pullup 2 x 10KΩ na liniach SCL i SDA.
Użyłem CJMCU-530, który jest modułem typu breakout wyposażonym w VL53L0X firmy ST Microelectronics.
Krok 3: Operacje i pozycjonowanie czujnika
Po zbudowaniu i przetestowaniu urządzenie powinno być zamontowane na środku górnej części ościeżnicy; Dzieje się tak dlatego, że jeśli zamontujesz go zbyt blisko ściany lub przeszkody, wiązka lasera IR zostanie zakłócona i stworzy zjawisko przesłuchu na mierniku. Inną opcją byłoby zainstalowanie urządzenia za pomocą przedłużacza, aby odsunąć je od ściany, ale jest to bardziej niewygodne.
Ostrożnie zmierz odległość między podłogą a czujnikiem (przesunięcie do ustawienia) i skalibruj urządzenie (patrz następny krok). Po skalibrowaniu urządzenie może być używane bez konieczności ponownej kalibracji, chyba że przesuniesz je w inne miejsce.
Włącz urządzenie i ustaw się pod nim w prostej i stabilnej pozycji. Pomiar zostanie wykonany, gdy urządzenie wykryje stałą długość przez ponad 2,5 sekundy. W tym momencie wyemituje dźwięk „sukcesu” i utrzyma pomiar na wyświetlaczu.
Krok 4: Kalibracja offsetu
Jak wspomniano wcześniej, należy ustawić prawidłową wartość (w centymetrach) przesunięcia, czyli odległości między urządzeniem pomiarowym a podłogą. Można to osiągnąć, naciskając pokrętło enkodera obrotowego (które ma przełącznik przyciskowy). Po włączeniu trybu kalibracji ustaw odpowiednią odległość obracając pokrętłem (zgodnie z ruchem wskazówek zegara dodaje centymetry, przeciwnie do ruchu wskazówek zegara odejmuje). Offset mieści się w zakresie od 0 do 2,55 m.
Po zakończeniu wystarczy ponownie nacisnąć pokrętło. Wewnętrzny brzęczyk wygeneruje dwa różne tony w celu uzyskania akustycznego sprzężenia zwrotnego. Tryb kalibracji ma limit czasu wynoszący 1 minutę: jeśli nie ustawisz przesunięcia w tym czasie, urządzenie wyjdzie z trybu kalibracji i powróci do trybu pomiaru, bez zmiany zapisanego przesunięcia. Przesunięcie jest przechowywane w pamięci EEPROM Arduino, aby zachować je podczas kolejnych wyłączeń.
Krok 5: Kod
Firma ST Microelectronics wydała pełną bibliotekę API dla VL53L0X, w tym wykrywanie gestów. Na potrzeby mojego urządzenia znalazłem łatwiejszą w użyciu bibliotekę Pololu VL53L0X dla Arduino. Ta biblioteka ma zapewnić szybszy i łatwiejszy sposób rozpoczęcia korzystania z VL53L0X z kontrolerem kompatybilnym z Arduino, w przeciwieństwie do dostosowywania i kompilowania interfejsu API ST dla Arduino.
Ustawiłem czujnik w trybie WYSOKIEJ DOKŁADNOŚCI i DŁUGIEGO ZASIĘGU, aby mieć większą swobodę w zakresie wysokości instalacji i ustawienia przesunięcia. Spowoduje to wolniejszą prędkość wykrywania, która i tak jest wystarczająca do celów tego urządzenia.
Offset jest przechowywany w pamięci EEPROM Arduino, której wartości są zachowywane po wyłączeniu płytki.
W sekcji pętli nowy takt jest porównywany z poprzednim i jeśli upłynie 2,5 sekundy na tym samym takcie (i jeśli NIE jest to wartość Offrange lub Timeout), takt jest odejmowany od przesunięcia i stale wyświetlany na wyświetlaczu. „Udana” krótka muzyka jest odtwarzana przez brzęczyk piezoelektryczny, aby dźwiękowo powiadomić użytkownika.
Krok 6: Schematy
Krok 7: Obudowa/obudowa i montaż
Ponieważ moja nieumiejętność wycinania prostokątnych okienek na pudełkach komercyjnych jest bardzo dobrze znana, wybrałem drogę do zaprojektowania obudowy za pomocą CAD i wysłania jej do druku 3D. Nie jest to najtańszy wybór, ale nadal jest to wygodne rozwiązanie, ponieważ daje możliwość bardzo precyzyjnego i elastycznego pozycjonowania wszystkich elementów.
Mały chip laserowy jest montowany bez szkiełka ochronnego, aby uniknąć przesłuchów i błędnych pomiarów. Jeśli chcesz zainstalować laser za osłoną, musisz wykonać złożoną procedurę kalibracji, jak opisano w dokumentacji ST Microelectronics.