Nota

Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto tecnico 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 alle anteprime.

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

  • Promozioni festive e giveaway: Partecipa a giveaway e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

1.1.1 LED Lampeggiante

Introduzione

In questo progetto impareremo a programmare un LED lampeggiante. Grazie alle tue impostazioni, il LED potrà produrre una serie di fenomeni interessanti. Ora, mettiti al lavoro!

Componenti Necessari

Per questo progetto, avremo bisogno dei seguenti componenti.

../_images/1.1.1_blinking_led_list.png

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

Nome

COMPONENTI NEL KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK D’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Schema Elettrico

In questo esperimento, colleghiamo il pin GPIO 17 del Raspberry Pi all’anodo (pin lungo) del LED, poi il catodo (pin corto) del LED a una resistenza, e infine colleghiamo l’altro capo della resistenza al pin GND sul Raspberry Pi. Per accendere il LED dobbiamo impostare GPIO17 su alto (3,3V). Possiamo ottenere questo risultato programmando.

Nota

Pin11 si riferisce all’11° pin del Raspberry Pi da sinistra a destra, e i suoi numeri di pin BCM corrispondenti sono mostrati nella seguente tabella.

Per il contenuto relativo al linguaggio Python, BCM 17 è 17 nella colonna BCM della seguente tabella. Allo stesso tempo, corrisponde all’11° pin del Raspberry Pi, Pin 11.

T-Board Name

physical

BCM

GPIO17

Pin 11

17

../_images/1.1.1_blinking_led_schematic.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/1.1.1_blinking_led_circuit.png

Passo 2: Vai nella cartella del codice ed eseguilo.

  1. Se utilizzi uno schermo, ti consigliamo di seguire i seguenti passaggi.

Trova 1.1.1_BlinkingLed_zero.py e fai doppio clic per aprirlo. Ora ti trovi nel file.

Clicca su Esegui ->Esegui modulo nella finestra e appariranno i seguenti contenuti.

Per interrompere l’esecuzione, basta cliccare sul pulsante X in alto a destra per chiudere e tornare al codice. Se modifichi il codice, prima di cliccare su Esegui modulo (F5) è necessario salvarlo. Quindi puoi vedere i risultati.

  1. Se accedi in remoto al Raspberry Pi, digita il comando:

cd ~/raphael-kit/python-pi5

Nota

Cambia directory nel percorso del codice in questo esperimento tramite cd.

Passo 3: Esegui il codice

sudo python3 1.1.1_BlinkingLed_zero.py

Nota

Qui sudo - superuser do, e python significa eseguire il file tramite Python.

Dopo l’esecuzione del codice, vedrai il LED lampeggiare.

Passo 4: Se vuoi modificare il file di codice 1.1.1_BlinkingLed_zero.py, premi Ctrl + C per interrompere l’esecuzione del codice. Quindi digita il seguente comando per aprire 1.1.1_BlinkingLed_zero.py:

nano 1.1.1_BlinkingLed_zero.py

Nota

nano è uno strumento di editor di testo. Il comando viene utilizzato per aprire il file di codice 1.1.1_BlinkingLed_zero.py tramite questo strumento.

Premi Ctrl+X per uscire. Se hai modificato il codice, verrà visualizzato un prompt che chiede se salvare le modifiche o meno. Digita Y (salva) oppure N (non salvare).

Quindi premi Invio per uscire. Digita nano 1.1.1_BlinkingLed_zero.py di nuovo per vedere l’effetto dopo la modifica.

Avvertimento

Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..

Code

Il seguente è il codice del programma:

Nota

Puoi Modificare/Reset/Copy/Esegui/Ferma il codice qui sotto. Ma prima, devi andare nella directory del codice come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

#!/usr/bin/env python3
from gpiozero import LED
from time import sleep

# Inizializza un LED collegato al pin GPIO 17 utilizzando la libreria GPIO Zero.
led = LED(17)

try:
   # Avvia un ciclo infinito per alternare lo stato del LED.
   while True:
      # Accendi il LED e stampa un messaggio sulla console.
      led.on()
      print('...LED ON')

      # Attendi 0,5 secondi con il LED acceso.
      sleep(0.5)

      # Spegni il LED e stampa un messaggio sulla console.
      led.off()
      print('LED OFF...')

      # Attendi 0,5 secondi con il LED spento.
      sleep(0.5)

except KeyboardInterrupt:
   # Gestisci in modo elegante un'interruzione da tastiera (Ctrl+C) interrompendo il ciclo.
   # GPIO Zero si occupa automaticamente della pulizia delle impostazioni GPIO all'uscita.
   pass

Spiegazione del Codice

  1. Quando il sistema rileva questo, cercherà il percorso di installazione di python nelle impostazioni dell’ambiente, quindi chiamerà l’interprete corrispondente per completare l’operazione. Serve a prevenire che l’utente non abbia installato python nel percorso predefinito /usr/bin.

    #!/usr/bin/env python3
    
  2. Queste righe importano le classi e le funzioni necessarie. LED da gpiozero per il controllo del LED e sleep da time per le pause.

    from gpiozero import LED
    from time import sleep
    
  3. Questa riga crea un oggetto LED collegato al pin GPIO 17.

    # Inizializza un LED collegato al pin GPIO 17 utilizzando la libreria GPIO Zero.
    led = LED(17)
    
  4. Viene avviato un ciclo infinito utilizzando while True:. All’interno del ciclo, il LED viene acceso (led.on()) e viene stampato un messaggio. Il programma quindi si interrompe per 0,5 secondi (sleep(0.5)). Successivamente, il LED viene spento (led.off()), viene stampato un altro messaggio e il programma si interrompe di nuovo per 0,5 secondi.

    try:
        # Avvia un ciclo infinito per alternare lo stato del LED.
        while True:
            # Accendi il LED e stampa un messaggio sulla console.
            led.on()
            print('...LED ON')
    
            # Attendi 0,5 secondi con il LED acceso.
            sleep(0.5)
    
            # Spegni il LED e stampa un messaggio sulla console.
            led.off()
            print('LED OFF...')
    
            # Attendi 0,5 secondi con il LED spento.
            sleep(0.5)
    
  5. Il blocco except cattura un”interruzione da tastiera (come premere Ctrl+C) ed esce in sicurezza dal ciclo. Il comando pass viene utilizzato qui come segnaposto per indicare che non viene intrapresa alcuna azione specifica all’interruzione.

    except KeyboardInterrupt:
        # Gestisci in modo elegante un'interruzione da tastiera (Ctrl+C) interrompendo il ciclo.
        # GPIO Zero si occupa automaticamente della pulizia delle impostazioni GPIO all'uscita.
        pass