Vad är ToF (Time-of-Flight) Teknik?
Time-of-Flight (ToF) är en metod för avståndsmätning som beräknar hur lång tid det tar för en signal (vanligtvis en ljus- eller laserpuls) att färdas till ett mål och tillbaka till sensorn. ToF HAT använder denna princip med en laserljuskälla och mycket känsliga detektorer för att beräkna avståndet med hög noggrannhet.
-
Ljusutsläpp: Sensorn sänder ut en laserpuls.
-
Reflektion: Pulsen reflekteras från ett målobjekt.
-
Tidsmätning: Sensorn registrerar tiden det tog för ljuset att återvända.
-
Avståndsberäkning: Med hjälp av ljusets hastighet och tiden det tar för pulsen att återvända beräknar sensorn avståndet till objektet.

Denna metod för avståndsmätning är mycket exakt och fungerar oberoende av yts reflektivitet, en betydande fördel jämfört med traditionella ultraljudssensorer.
Hur man använder ToF Hat
Nödvändiga material
-
M5StickCPlus2: Fungerar som kärnkontroll och ansvarar för att visa data
-
M5StickC ToF HAT: Högprecisions laseravståndssensorer för avståndsmätning
Koddel
import os, sys, io
import M5
from M5 import *
from hardware import *
from hat import ToFHat
label0 = None
label1 = None
i2c0 = None
pin19 = None
pwm2 = None
hat_tof_0 = None
def setup():
global 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, mode=Pin.OUT)
pwm2 = PWM(Pin(2), freq=5000, duty=512)
def loop():
global label0, label1, i2c0, pin19, pwm2, hat_tof_0
M5.update()
label0.setColor(0x33ff33, 0x000000)
label1.setColor(0x33ff33, 0x000000)
label0.setText(str('avstånd'))
label1.setText(str(hat_tof_0.get_distance()))
if (hat_tof_0.get_distance()) < 10:
pin19.value(1)
pwm2.duty(512)
else:
pin19.value(0)
pwm2.duty(0)
if __name__ == '__main__':
try:
setup()
while True:
loop()
except (Exception, KeyboardInterrupt) as e:
try:
from utility import print_error_msg
print_error_msg(e)
except ImportError:
print("vänligen uppdatera till senaste firmware")
M5Stack UIflow
Initiera IIC, hat, ställ in GPIO19 till utgångsläge för att styra ljuset på/av, och ställ in GPIO2 till PWM-frekvens och arbetscykel för att styra summern.

Visa det uppmätta avståndet på M5stickCplus2 och ställ in det avstånd där du vill ha en varning.

Nyckelkomponenter i M5StickC ToF HATT
Laserljus Källa:
Laserpulsen skickas ut och reflekteras tillbaka från objektet, vilket möjliggör avståndsmätning.
Sensorarray:
Sensorn innehåller fotodetektorer (ofta en APD - Avalanche Photodiode) som mäter tiden det tar för lasern att återvända. Dessa detektorer är utformade för att vara extremt känsliga för det inkommande reflekterade ljuset.I2C-gränssnitt:
I2C är ett enkelt, lågströms kommunikationsprotokoll som gör det möjligt för M5StickC att kommunicera med sensorn med bara två ledningar: data (SDA) och klocka (SCL), tillsammans med ström och jord.
Strömförsörjning:
Modulen drivs vanligtvis med 3,3V eller 5V, vilket tillförs via I2C-anslutningen till M5StickC. Detta gör att sensorn kan köras effektivt med låg strömförbrukning, lämplig för batteridrivna applikationer.
Tekniska specifikationer i detalj
Här är en mer omfattande lista över specifikationer för M5StickC ToF HATT:
-
Avståndsområde: Sensorn kan mäta avstånd från 0,05 meter (5 cm) till 2 meter med hög noggrannhet.
-
Mätnoggrannhet: Sensorn erbjuder en noggrannhet på ± 3% av det uppmätta avståndet. Det betyder till exempel att om ett objekt upptäcks på 1 meter kan avståndsmätningen variera med ungefär 3 cm.
-
Responstid: Sensorn kan ge avståndsmätningar ungefär var 50 millisekund, beroende på avståndet. Den är tillräckligt snabb för realtidsapplikationer som hinderavkänning och robotnavigering.
-
Driftspänning: Driftspänningen ligger mellan 3,3V och 5V, vilket gör den kompatibel med M5StickC och andra mikrokontroller som arbetar inom detta spänningsområde.
-
Strömförbrukning: Strömförbrukningen är ganska låg, vanligtvis omkring 15-20mA under drift. Detta gör den idealisk för batteridrivna eller lågströmsystem.
-
Drifttemperatur: Sensorn fungerar effektivt inom temperaturområdet -10°C till 60°C, vilket gör att den kan användas i en mängd olika miljöer.
-
Utdata Data: Sensorn skickar ut avståndsdata via I2C kommunikation, vilket enkelt kan läsas av vilken kompatibel mikrokontroller som helst, inklusive M5StickC.
-
Detektionsläge: ToF HAT kan användas både i kontinuerligt mätläge och utlöst mätläge, beroende på den specifika tillämpningen.
Hur M5StickC ToF HATT Fungerar
Sensorn fungerar genom att sända ut en laserpuls och sedan vänta på att pulsen ska studsa tillbaka från ett närliggande objekt. Här är en genomgång av hur denna process sker:Laserpulsutsläpp: Sensorn sänder ut en kort laserpuls som färdas med ljusets hastighet. Laserstrålen reflekteras från objekt den träffar.Detektion av reflekterat ljus: Det reflekterade ljuset tas emot av sensorens fotodetektor. Detta ljus används sedan för att mäta restiden mellan utsändning och mottagning av pulsen.
Avståndsberäkning:
Sensorn beräknar avståndet med formeln:
Avstånd=\frac{c \times t}{2}
där:
-
CCC är ljusets hastighet i mediet (ungefär 3×10^8 meter per sekund).
-
det är tiden det tar för ljuspulsen att färdas till målet och tillbaka.
-
Datautgång: När avståndet har beräknats skickar sensorn ut värdet via I2C. M5StickC kan sedan läsa värdet och bearbeta det för visning, åtgärder eller vidare beräkning.
Använda M5StickC ToF HATT i projekt
-
Närhetssensor för smarta hemsystem: Sensorn kan användas i smarta hem för att upptäcka när någon är nära en dörr eller ingång. Till exempel kan du ställa in systemet så att lampor tänds när någon närmar sig eller triggar en åtgärd när någon står inom ett visst avstånd.
-
Mätning av objekt i industriella tillämpningar: ToF HAT kan också användas inom industriell automation för att mäta storlek eller position på objekt på en produktionslinje eller för att spåra delar i rörelse.
-
Virtuell verklighet (VR) och Augmented Reality (AR): I VR/AR-system är noggrann djup- och avståndsmätning avgörande för inlevelse och interaktion. ToF HAT kan användas för att spåra avståndet mellan användaren och objekt inom VR/AR-miljön.
Integration med M5StickC
- Hårdvaruinstallation:
- Anslut ToF HAT till I2C-porten på M5StickC. M5StickC kommer automatiskt att strömförsörja och kommunicera med ToF-sensorn via I2C-bussen.
- Programmering:
- Alternativt kan du använda Arduino IDE eller MicroPython för att skriva egen kod, vilket ger mer kontroll och flexibilitet i dina projekt.
- Du kan använda UIFlow, den grafiska programmeringsplattformen, för att interagera med sensorn och läsa avståndsvärdena. UIFlow gör det enkelt att programmera M5StickC och få tillgång till ToF-sensorns data med bara några block.
- Exempel på UIFlow-blockprogram:
- I UIFlow kan du använda block för att initiera sensorn, läsa avståndet och visa resultatet på skärmen eller vidta åtgärder baserat på det uppmätta avståndet.
- Databehandling:
- När du har hämtat avståndsdata kan du bearbeta det och utlösa åtgärder. Till exempel:
- Om avståndet är mindre än en tröskel, aktivera en summer eller larma.
- Om du bygger en robot, ändra dess riktning när ett hinder upptäcks.
Slutsats
