Co to jest ToF Technologia (Time-of-Flight)?
Time-of-Flight (ToF) to metoda pomiaru odległości, która oblicza, jak długo sygnał (zazwyczaj impuls świetlny lub laserowy) potrzebuje, aby dotrzeć do celu i wrócić do czujnika. Nakładka ToF wykorzystuje tę zasadę z użyciem źródła światła laserowego i wysoce czułych detektorów do precyzyjnego obliczania odległości.
-
Emisja światła: Czujnik emituje impuls laserowy.
-
Odbicie: Impuls odbija się od obiektu docelowego.
-
Pomiar czasu: Czujnik rejestruje czas, jaki zajęło światłu powrócenie.
-
Obliczanie odległości: Korzystając z prędkości światła i czasu, jaki zajmuje powrót impulsu, czujnik oblicza odległość do obiektu.

Ta metoda pomiaru odległości jest wysoce dokładna i działa niezależnie od refleksyjności powierzchni, co stanowi istotną przewagę nad tradycyjnymi czujnikami ultradźwiękowymi.
Jak korzystać z nakładki ToF
Materiały wymagane
-
M5StickCPlus2: Pełni funkcję głównego kontrolera i odpowiada za wyświetlanie danych
-
M5StickC ToF HAT: Wysokoprecyzyjne laserowe czujniki odległości do pomiaru dystansu
Część kodu
import os, sys, io
importuj M5
z M5 importuj *
z hardware import *
z hat importuj ToFHat
label0 = None
label1 = None
i2c0 = Brak
pin19 = None
pwm2 = Brak
hat_tof_0 = None
def setup():
globalny label0, label1, i2c0, pin19, pwm2, hat_tof_0
M5.begin()
label0 = Widgets.Label("label0", 0, 0, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18)
label1 = Widgets.Label("label1", 100, 0, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18)
Widgets.setRotation(1)
i2c0 = I2C(0, scl=Pin(26), sda=Pin(0), freq=100000)
hat_tof_0 = ToFHat(i2c0)
pin19 = Pin(19, tryb=Pin.OUT)
pwm2 = PWM(Pin(2), freq=5000, duty=512)
def loop():
globalny label0, label1, i2c0, pin19, pwm2, hat_tof_0
M5.update()
label0.setColor(0x33ff33, 0x000000)
label1.setColor(0x33ff33, 0x000000)
label0.setText(str('odległość'))
label1.setText(str(hat_tof_0.get_distance()))
jeśli (hat_tof_0.get_distance()) < 10:
pin19.value(1)
pwm2.duty(512)
w przeciwnym razie:
pin19.value(0)
pwm2.duty(0)
if __name__ == '__main__':
spróbuj:
setup()
while True:
pętla()
z wyjątkiem (Exception, KeyboardInterrupt) jako e:
spróbuj:
z modułu utility zaimportuj print_error_msg
print_error_msg(e)
z wyjątkiem ImportError:
print("proszę zaktualizować do najnowszego oprogramowania układowego")
M5Stack UIflow
Zainicjuj IIC, hat, ustaw GPIO19 w tryb wyjścia, aby kontrolować włączanie/wyłączanie światła, oraz ustaw GPIO2 na częstotliwość PWM i współczynnik wypełnienia, aby kontrolować buzzer.

Wyświetl zmierzoną odległość na M5stickCplus2 i ustaw odległość, przy której chcesz otrzymać ostrzeżenie.

Kluczowe komponenty M5StickC ToF KAPELUSZ
Światło laserowe Źródło:
Impuls laserowy jest wysyłany i odbija się od obiektu, umożliwiając pomiar odległości.
Tablica czujników:
Czujnik zawiera fotodetektory (często APD - fotodiodę lawinową), które mierzą czas powrotu lasera. Te detektory są zaprojektowane tak, aby być niezwykle czułe na nadchodzące odbite światło.Interfejs I2C:
I2C to prosty, niskomocowy protokół komunikacyjny, który umożliwia M5StickC komunikację z czujnikiem za pomocą zaledwie dwóch przewodów: danych (SDA) i zegara (SCL), wraz z zasilaniem i uziemieniem.
Zasilacz:
Moduł zazwyczaj działa na 3,3V lub 5V, które są dostarczane przez połączenie I2C do M5StickC. Pozwala to sensorowi działać efektywnie, z niskim zużyciem energii odpowiednim dla aplikacji zasilanych bateriami.
Specyfikacje techniczne szczegółowo
Oto bardziej szczegółowa lista specyfikacji dla M5StickC ToF KAPELUSZ:
-
Zakres odległości: Czujnik może mierzyć odległości od 0,05 metra (5 cm) do 2 metrów z wysoką dokładnością.
-
Dokładność pomiaru: Czujnik oferuje dokładność na poziomie ± 3% mierzonej odległości. Oznacza to, na przykład, że jeśli obiekt zostanie wykryty w odległości 1 metra, pomiar odległości może się różnić o około 3 cm.
-
Czas reakcji: Czujnik może dostarczać odczyty odległości mniej więcej co 50 milisekund, w zależności od odległości. Jest wystarczająco szybki do zastosowań w czasie rzeczywistym, takich jak wykrywanie przeszkód i nawigacja robotów.
-
Napięcie robocze: Napięcie robocze mieści się w zakresie 3,3V do 5V, co czyni je kompatybilnym z M5StickC oraz innymi mikrokontrolerami działającymi w tym zakresie napięć.
-
Zużycie energii: Zużycie energii jest dość niskie, zazwyczaj wynosi około 15-20mA podczas pracy. Czyni to urządzenie idealnym do systemów zasilanych bateriami lub o niskim poborze mocy.
-
Temperatura pracy: Czujnik działa skutecznie w zakresie temperatur od -10°C do 60°C, co pozwala na jego użycie w szerokim zakresie środowisk.
-
Wyjście Dane: Czujnik przesyła dane o odległości za pomocą I2C komunikacji, którą można łatwo odczytać za pomocą dowolnego kompatybilnego mikrokontrolera, w tym M5StickC.
-
Tryb wykrywania: Moduł ToF HAT może być używany zarówno w trybie pomiaru ciągłego , jak i w trybie pomiaru wyzwalanego, w zależności od konkretnej aplikacji.
Jak działa M5StickC ToF KAPELUSZ Działa
Czujnik działa poprzez emisję impulsu laserowego, a następnie oczekiwanie na odbicie impulsu od pobliskiego obiektu. Oto podział, jak przebiega ten proces:Emisja impulsu laserowego: Czujnik emituje krótki impuls laserowy, który porusza się z prędkością światła. Wiązka laserowa odbija się od napotkanych obiektów.Detekcja odbitego światła: Odbite światło jest odbierane przez fotodetektor czujnika. To światło jest następnie używane do pomiaru czasu podróży między emisją a odbiorem impulsu.
Obliczanie odległości:
Czujnik oblicza odległość, używając wzoru:
Odległość = \frac{c \times t}{2}
gdzie:
-
CCC to prędkość światła w ośrodku (około 3×10^8 metrów na sekundę).
-
to jest czas potrzebny na to, aby impuls świetlny dotarł do celu i wrócił.
-
Dane Wyjściowe: Po obliczeniu odległości, czujnik wysyła wartość przez I2C. M5StickC może następnie odczytać tę wartość i przetworzyć ją do wyświetlenia, działań lub dalszych obliczeń.
Używanie M5StickC ToF KAPELUSZ w Projektach
-
Wykrywanie zbliżenia dla inteligentnych systemów domowych: Czujnik może być używany w aplikacjach inteligentnego domu do wykrywania, kiedy ktoś znajduje się blisko drzwi lub wejścia. Na przykład, można skonfigurować system tak, aby włączał światła, gdy ktoś się zbliża, lub wywoływał akcję, gdy ktoś stoi w określonym zasięgu.
-
Pomiar obiektów w zastosowaniach przemysłowych: Nakładka ToF może być również używana w automatyce przemysłowej do pomiaru rozmiaru lub położenia obiektów na linii produkcyjnej lub do śledzenia ruchomych części.
-
Wirtualna Rzeczywistość (VR) oraz Rzeczywistość Rozszerzona (AR): W systemach VR/AR dokładne wykrywanie głębokości i odległości jest kluczowe dla zanurzenia i interakcji. Moduł ToF HAT może być używany do śledzenia odległości między użytkownikiem a obiektami w środowisku VR/AR.
Integracja z M5StickC
- Konfiguracja sprzętu:
- Podłącz ToF HAT do portu I2C w M5StickC. M5StickC automatycznie zasili i będzie komunikować się z czujnikiem ToF przez magistralę I2C.
- Programowanie:
- Alternatywnie, możesz użyć Arduino IDE lub MicroPython, aby napisać niestandardowy kod, co pozwala na większą kontrolę i elastyczność w twoich projektach.
- Możesz użyć UIFlow, graficznej platformy programistycznej, aby wchodzić w interakcję z czujnikiem i odczytywać wartości odległości. UIFlow ułatwia programowanie M5StickC i dostęp do danych czujnika ToF za pomocą zaledwie kilku bloków.
- Przykładowy program blokowy UIFlow:
- W UIFlow możesz używać bloków do inicjalizacji czujnika, odczytu odległości oraz wyświetlania wyniku na ekranie lub podejmowania działań na podstawie zmierzonej odległości.
- Przetwarzanie danych:
- Po pobraniu danych o odległości możesz je przetworzyć i wywołać akcje. Na przykład:
- Jeśli odległość jest mniejsza niż próg, włącz buzzer lub uruchom alarm.
- Jeśli budujesz robota, zmień jego kierunek, gdy wykryje przeszkodę.
Wniosek
