Nota

Ciao, benvenuto nella Comunità degli Appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Immergiti più a fondo in Raspberry Pi, Arduino e ESP32 con altri entusiasti.

Perché Unirsi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.

  • Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa ai giveaway e alle promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca [qui] e unisciti oggi!

Lezione 21: Sensore di Distanza Micro-LIDAR Time of Flight (VL53L0X)

In questa lezione imparerai a usare il Raspberry Pi per connetterti con un Sensore di Distanza Micro-LIDAR Time of Flight (VL53L0X). Sarai guidato nella configurazione del sensore, nell’inizializzazione della comunicazione I2C e nella misurazione delle distanze in tempo reale. Questo progetto migliorerà la tua comprensione nel collegare hardware con il Raspberry Pi e nell’utilizzare Python per applicazioni pratiche. Inoltre, approfondirai l’adattamento dei parametri di misurazione per soddisfare diverse esigenze di accuratezza e velocità.

Componenti Necessari

Per questo progetto sono necessari i seguenti componenti.

È decisamente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Sensori Universali

94

Universal Maker Sensor Kit

Puoi anche acquistarli separatamente dai link sottostanti.

Introduzione al Componente

Link per l’Acquisto

Raspberry Pi 5

ACQUISTA

Sensore di Distanza Micro-LIDAR Time of Flight (VL53L0X)

ACQUISTA

Breadboard

ACQUISTA

Cablaggio

../_images/Lesson_21_vl53l0x_pi_bb.png

Installazione della Libreria

Nota

La libreria adafruit-circuitpython-vl53l0x dipende da Blinka, quindi assicurati che Blinka sia stato installato. Per installare le librerie, fare riferimento a Installazione di Adafruit_Blinka (CircuitPython) - Opzionale.

Prima di installare la libreria, assicurati che l’ambiente Python virtuale sia attivato:

source ~/env/bin/activate

Installa la libreria adafruit-circuitpython-vl53l0x:

pip3 install adafruit-circuitpython-vl53l0x

Codice

Nota

  • Assicurati di aver installato la libreria Python necessaria per eseguire il codice secondo i passaggi di «Installazione della Libreria».

  • Prima di eseguire il codice, assicurati di aver attivato l’ambiente virtuale Python con Blinka installato. Puoi attivare l’ambiente virtuale usando un comando come questo:

    source ~/env/bin/activate
    
  • Trova il codice per questa lezione nella directory universal-maker-sensor-kit-main/pi/, oppure copia e incolla direttamente il codice qui sotto. Esegui il codice eseguendo i seguenti comandi nel terminale:

    python 21_vl53l0x_module.py
    
# Copyright: 2021 ladyada for Adafruit Industries
# Licenza: MIT

# Dimostrazione semplice del sensore di distanza VL53L0X.
# Stampa la distanza rilevata ogni secondo.
import time

import board
import busio

import adafruit_vl53l0x

# Inizializza il bus I2C e il sensore.
i2c = busio.I2C(board.SCL, board.SDA)
vl53 = adafruit_vl53l0x.VL53L0X(i2c)

# Opzionalmente, regola il budget di tempo di misurazione per cambiare velocità e accuratezza.
# Vedi l'esempio qui per più dettagli:
#   https://github.com/pololu/vl53l0x-arduino/blob/master/examples/Single/Single.ino
# Ad esempio, un budget di tempo più veloce ma meno accurato di 20ms:
# vl53.budget_di_tempo_di_misurazione = 20000
# O un budget di tempo più lento ma più accurato di 200ms:
# vl53.budget_di_tempo_di_misurazione = 200000
# Il budget di tempo predefinito è di 33ms, un buon compromesso tra velocità e accuratezza.

try:
    # Il ciclo principale legge la distanza e la stampa ogni secondo.
    while True:
        print("Range: {0}mm".format(vl53.range))
        time.sleep(1.0)
except KeyboardInterrupt:
    print("Exit")  # Uscita con CTRL+C

Analisi del Codice

  1. Importazione delle Librerie

    import time
    import board
    import busio
    import adafruit_vl53l0x
    
    • time: Usato per implementare ritardi.

    • board: Fornisce accesso ai pin fisici del Raspberry Pi.

    • busio: Gestisce la comunicazione I2C tra il Pi e il sensore.

    • adafruit_vl53l0x: La libreria specifica per il sensore VL53L0X. Per maggiori dettagli sulla libreria adafruit_vl53l0x, si rimanda a adafruit/Adafruit_CircuitPython_VL53L0X.


  2. Inizializzazione del Sensore

    # Inizializza il bus I2C e il sensore.
    i2c = busio.I2C(board.SCL, board.SDA)
    vl53 = adafruit_vl53l0x.VL53L0X(i2c)
    
    • Questo imposta la comunicazione I2C utilizzando i pin SCL (linea di clock) e SDA (linea dati).

    • Il sensore VL53L0X è quindi inizializzato con questo bus I2C.


  3. Configurazione (Opzionale)

    # Opzionalmente regola il budget di tempo di misurazione...
    # vl53.budget_di_tempo_di_misurazione = 20000
    # ...
    

    Questa parte del codice, che è commentata, permette di regolare il budget di tempo del sensore, influenzando l’equilibrio tra velocità e accuratezza.

  4. Ciclo Principale

    try:
        while True:
            print("Range: {0}mm".format(vl53.range))
            time.sleep(1.0)
    except KeyboardInterrupt:
        print("Exit")
    
    • In un ciclo infinito, la portata del sensore è letta e stampata ogni secondo.

    • Il ciclo può essere interrotto con un’interruzione CTRL+C, che è gestita dall’eccezione KeyboardInterrupt.