Cosa è ToF Tecnologia (Time-of-Flight)?
Time-of-Flight (ToF) è un metodo di misurazione della distanza che calcola quanto tempo impiega un segnale (di solito un impulso di luce o laser) a viaggiare verso un obiettivo e tornare al sensore. Il ToF HAT utilizza questo principio con una sorgente di luce laser e rilevatori altamente sensibili per calcolare la distanza con alta precisione.
-
Emissione di Luce: Il sensore emette un impulso laser.
-
Riflessione: L'impulso si riflette su un oggetto bersaglio.
-
Misurazione del Tempo: Il sensore registra il tempo impiegato dalla luce per tornare.
-
Calcolo della Distanza: Utilizzando la velocità della luce e il tempo impiegato dal impulso per tornare, il sensore calcola la distanza dall'oggetto.

Questo metodo di misurazione della distanza è altamente preciso e opera in modo indipendente dalla riflettività della superficie, un vantaggio significativo rispetto ai tradizionali sensori ad ultrasuoni.
Come Usare Il Cappello ToF
Materiali richiesti
-
M5StickCPlus2: Funziona come il controller principale ed è responsabile della visualizzazione dei dati.
-
M5StickC ToF HAT: Sensori di distanza laser ad alta precisione per la misurazione della distanza
Parte del codice
importa os, sys, io
importa M5
da M5 importa *
from hardware import *
from hat import ToFHat
label0 = Nessuno
etichetta1 = Nessuno
i2c0 = Nessuno
pin19 = Nessuno
pwm2 = Nessuno
hat_tof_0 = Nessuno
definizione setup():
global label0, label1, i2c0, pin19, pwm2, hat_tof_0
M5.inizio()
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 ciclo():
global label0, label1, i2c0, pin19, pwm2, hat_tof_0
M5.aggiorna()
label0.setColor(0x33ff33, 0x000000)
label1.setColor(0x33ff33, 0x000000)
label0.setText(str('distanza'))
label1.setText(str(hat_tof_0.get_distance()))
se (hat_tof_0.get_distance()) <10: pin19.valore(1)
pwm2.dovere(512)
altro:
pin19.valore(0)
pwm2.dovere(0)
if __name__ == '__main__':
Tentativo:
impostare()
mentre Vero:
ciclo continuo()
eccetto (Eccezione, KeyboardInterrupt) come e:
Tentativo:
from utility import print_error_msg
messaggio_di_errore_di_stampa(e)
eccetto ImportError:
print("per favore aggiorna al firmware più recente")
Flusso di interfaccia utente M5Stack
Inizializza l'IIC, imposta GPIO19 in modalità output per controllare l'accensione/spegnimento della luce e imposta GPIO2 sulla frequenza PWM e sul ciclo di lavoro per controllare il buzzer.

Visualizza la distanza misurata sul M5stickCplus2 e imposta la distanza alla quale desideri ricevere un avviso.

Componenti Chiave di M5StickC ToF HA
Luce laser Fonte:
Il impulso laser viene emesso e riflesso dall'oggetto, consentendo la misurazione della distanza.
Matrice di sensori:
Il sensore contiene fotodetettori (spesso un APD - Fotodiodo a valanga) che misurano il tempo impiegato dal laser per tornare. Questi rivelatori sono progettati per essere estremamente sensibili alla luce riflessa in arrivo.Interfaccia I2C:
I2C è un protocollo di comunicazione semplice e a bassa potenza che consente al M5StickC di comunicare con il sensore utilizzando solo due fili: dati (SDA) e clock (SCL), insieme a alimentazione e massa.
Alimentazione elettrica:
Il modulo opera tipicamente a 3.3V o 5V, che viene fornito attraverso la connessione I2C al M5StickC. Questo consente al sensore di funzionare in modo efficiente, con un basso consumo energetico adatto per applicazioni alimentate a batteria.
Specifiche Tecniche in Dettaglio
Ecco un elenco più completo delle specifiche per il M5StickC ToF HA:
-
Intervallo di Distanza: Il sensore può misurare distanze da 0,05 metri (5 cm) a 2 metri con alta precisione.
-
Precisione di Misura: Il sensore offre un'accuratezza di ± 3% della distanza misurata. Ciò significa, ad esempio, che se un oggetto viene rilevato a 1 metro, la misura della distanza può variare di circa 3 cm.
-
Tempo di Risposta: Il sensore può fornire letture di distanza circa ogni 50 millisecondi, a seconda della distanza. È abbastanza veloce per applicazioni in tempo reale come il rilevamento degli ostacoli e la navigazione robotica.
-
Tensione di funzionamento: La tensione di funzionamento è compresa tra 3.3V e 5V, rendendola compatibile con l'M5StickC e altri microcontrollori che operano in questo intervallo di tensione.
-
Consumo Energetico: Il consumo energetico è piuttosto basso, tipicamente consumando circa 15-20mA durante il funzionamento. Questo lo rende ideale per sistemi a batteria o a bassa potenza.
-
Temperatura di funzionamento: Il sensore funziona efficacemente in un intervallo di temperatura di -10°C a 60°C, permettendo di essere utilizzato in una vasta gamma di ambienti.
-
Output Dati: Il sensore fornisce i dati di distanza tramite I2C comunicazione, che possono essere facilmente letti da qualsiasi microcontrollore compatibile, incluso l'M5StickC.
-
Modalità di Rilevamento: Il ToF HAT può essere utilizzato sia in modalità di misurazione continua che in modalità di misurazione attivata, a seconda dell'applicazione specifica.
Come il M5StickC ToF HA Lavori
Il sensore funziona emettendo un impulso laser e poi aspettando che l'impulso rimbalzi da un oggetto vicino. Ecco una spiegazione di come avviene questo processo:Emissione dell'Impulso Laser: Il sensore emette un breve impulso laser che viaggia alla velocità della luce. Il fascio laser si riflette sugli oggetti che incontra.Rilevamento della Luce Riflessa: La luce riflessa viene ricevuta dal fotodetettore del sensore. Questa luce viene quindi utilizzata per misurare il tempo di percorrenza tra l'emissione e la ricezione dell'impulso.
Calcolo della Distanza:
Il sensore calcola la distanza utilizzando la formula:
Distanza = \frac{c \times t}{2}Distanza=2c\times t
Dove:
-
CCC è la velocità della luce nel mezzo (circa 3×10^8 metri al secondo).
-
è il tempo impiegato per il impulso luminoso per viaggiare verso il bersaglio e tornare.
-
Dati Uscita: Una volta calcolata la distanza, il sensore restituisce il valore tramite I2C. Il M5StickC può quindi leggere il valore e elaborarlo per la visualizzazione, azioni o ulteriori calcoli.
Utilizzo di M5StickC ToF HA nei progetti
-
Rilevamento di Prossimità per Sistemi Domotici: Il sensore può essere utilizzato nelle applicazioni domotiche per rilevare quando qualcuno è vicino a una porta o a un ingresso. Ad esempio, puoi configurare il sistema per accendere le luci quando qualcuno si avvicina o attivare un'azione quando qualcuno si trova entro un certo raggio.
-
Misurare Oggetti nelle Applicazioni Industriali: Il ToF HAT può essere utilizzato anche nell'automazione industriale per misurare la dimensione o la posizione degli oggetti su una linea di produzione o per tracciare i pezzi in movimento.
-
Realtà Virtuale (VR) e Realtà Aumentata (AR): Negli ambienti VR/AR, la rilevazione accurata della profondità e della distanza è fondamentale per l'immersione e l'interazione. Il ToF HAT può essere utilizzato per tracciare la distanza tra l'utente e gli oggetti all'interno dell'ambiente VR/AR.
Integrazione con M5StickC
- Configurazione hardware:
- Collegare il ToF HAT alla porta I2C del M5StickC. Il M5StickC si accenderà automaticamente e comunicherà con il sensore ToF tramite il bus I2C.
- Programmazione:
- In alternativa, puoi utilizzare Arduino IDE o MicroPython per scrivere codice personalizzato, consentendo maggiore controllo e flessibilità nei tuoi progetti.
- Puoi utilizzare UIFlow, la piattaforma di programmazione grafica, per interagire con il sensore e leggere i valori di distanza. UIFlow rende facile programmare l'M5StickC e accedere ai dati del sensore ToF con solo pochi blocchi.
- Esempio di programma UIFlow Block:
- In UIFlow, puoi utilizzare i blocchi per inizializzare il sensore, leggere la distanza e visualizzare il risultato sullo schermo o intraprendere un'azione in base alla distanza misurata.
- Elaborazione dei dati:
- Una volta recuperati i dati sulla distanza, puoi elaborarli e attivare azioni. Ad esempio:
- Se la distanza è inferiore a una soglia, attivare un buzzer o suonare un allarme.
- Se stai costruendo un robot, cambia la sua direzione quando viene rilevato un ostacolo.
Conclusione
