Nota

Ciao, benvenuto nella Comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri entusiasti.

Perché unirsi?

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

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

  • Anteprime esclusive: Accedi in anteprima a nuovi annunci di prodotti e contenuti esclusivi.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a promozioni stagionali e concorsi a premi.

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

Lezione 07: Modulo Sensore di Velocità a Infrarossi

In questa lezione imparerai a utilizzare il Raspberry Pi Pico W per interfacciarti con un modulo sensore di velocità a infrarossi. Collegando il sensore al GPIO 16, potrai rilevare ostacoli in tempo reale. Il programma monitora l’uscita del sensore e, quando rileva un’ostruzione, stampa «Obstruction detected» sulla console. Se non vi è alcun ostacolo, viene stampato «Unobstructed».

Componenti necessari

Per questo progetto sono necessari i seguenti componenti.

È sicuramente comodo acquistare un kit completo. Ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Sensori Universali per Maker

94

Universal Maker Sensor Kit

Puoi anche acquistare i componenti separatamente dai link sottostanti.

Introduzione ai Componenti

Link per l’acquisto

Raspberry Pi Pico W

ACQUISTA

Modulo Sensore di Velocità a Infrarossi

ACQUISTA

Breadboard

ACQUISTA

Cablaggio

../_images/Lesson_07_Speed_pico_bb.png

Codice

from machine import Pin
import time

# Imposta il GPIO 16 come pin di input per leggere il sensore di velocità
speed_sensor = Pin(16, Pin.IN)

while True:
    if speed_sensor.value() == 1:
        print("Obstruction detected")
    else:
        print("Unobstructed")

    time.sleep(0.1)  # Breve ritardo per ridurre l’utilizzo della CPU

Analisi del Codice

  1. Importazione delle Librerie:

    Il codice inizia importando le librerie necessarie. La libreria machine serve per interagire con i pin GPIO, mentre time è utilizzata per inserire ritardi nel programma.

    from machine import Pin
    import time
    
  2. Configurazione del Sensore:

    Il sensore di velocità a infrarossi è collegato al GPIO 16. È configurato come input, quindi il Pico W leggerà i dati da questo pin.

    speed_sensor = Pin(16, Pin.IN)
    
  3. Ciclo Principale:

    Il ciclo while True: crea un loop infinito. All’interno di questo ciclo, il programma controlla costantemente il valore restituito dal sensore.

    Se speed_sensor.value() restituisce 1, significa che è stata rilevata un’ostruzione. Se invece il valore è 0, non ci sono ostacoli.

    while True:
        if speed_sensor.value() == 1:
            print("Obstruction detected")
        else:
            print("Unobstructed")
    
  4. Ritardo per Ridurre l’Uso della CPU:

    Ogni iterazione del ciclo include un breve ritardo di 0,1 secondi. Questo aiuta a evitare che il loop venga eseguito troppo rapidamente, riducendo il carico sulla CPU.

    time.sleep(0.1)
    
  5. Ulteriori Applicazioni:

    Se viene montato un encoder sul motore, è possibile calcolare la velocità di rotazione del motore contando il numero di volte in cui un’ostruzione passa davanti al sensore in un intervallo di tempo definito.

    ../_images/Lesson_07_Encoder_Disk1.png