Come si collega un pulsante al Raspberry Pi?  Ecco due modi per iniziare, dimostrato utilizzando Python e un LED.

2 modi per aggiungere un pulsante al tuo progetto Raspberry Pi

Annuncio pubblicitario Imparare a usare i pin GPIO sul tuo Raspberry Pi apre un intero mondo di possibilità. I principi di base appresi attraverso progetti per principianti aprono la strada alla conoscenza utile sia dell'elettronica fai-da-te che della programmazione. Questo tutorial ti mostrerà due modi per aggiungere un pulsante al tuo progetto Raspberry Pi.

Annuncio pubblicitario

Imparare a usare i pin GPIO sul tuo Raspberry Pi apre un intero mondo di possibilità. I principi di base appresi attraverso progetti per principianti aprono la strada alla conoscenza utile sia dell'elettronica fai-da-te che della programmazione.

Questo tutorial ti mostrerà due modi per aggiungere un pulsante al tuo progetto Raspberry Pi. Il pulsante verrà utilizzato per controllare un LED. Le istruzioni scritte sono disponibili sotto il video.

Avrai bisogno

Per iniziare, assicurati di avere i seguenti componenti:

  • 1 x Raspberry Pi (qualsiasi cosa, in questo tutorial viene utilizzato il modello 3B)
  • 1 x pulsante
  • 1 x LED
  • 1 resistenza da 220 Ohm (valori più alti vanno bene, il tuo LED sarà solo più scuro)
  • 1 x tagliere
  • Agganciare i fili

Una volta raccolti, dovresti avere componenti che assomigliano a questo:

Parti necessarie per l'esercitazione sul pulsante Pi

Avrai anche bisogno di una scheda SD con il sistema operativo Raspbian installato. Il modo più rapido per farlo è con l'immagine NOOBS (New Out Of the Box Software). Le istruzioni su come eseguire questa operazione sono disponibili in questo video:

Impostazione del circuito

Utilizzerai i pin GPIO del Pi per creare il circuito e, se non hai familiarità con loro, la nostra guida ai pin GPIO di Raspberry Pi ti aiuterà. Il circuito qui è quasi lo stesso del nostro precedente progetto Raspberry Pi LED, con l'aggiunta del pulsante che userai oggi.

Imposta il tuo circuito secondo questo diagramma:

Fritzing Diagram for Pi Button Tutorial

  • I pin 5v e GND si collegano alle barre di alimentazione della breadboard.
  • Il pin 12 (GPIO 18) si collega alla gamba positiva del LED.
  • Una gamba della resistenza si attacca alla gamba negativa del LED e l'altra gamba si attacca alla barra di massa della breadboard.
  • Il pin 16 (GPIO 23) si collega a un lato del pulsante, l'altro si collega alla guida di terra della breadboard.

Una volta impostato, ecco come dovrebbe apparire:

Raspberry Pi collegato a un pulsante e LED su una breadboard.

Controlla il tuo circuito per assicurarti che sia corretto, quindi accendi Raspberry Pi.

Metodo 1: La libreria RPi.GPIO

Una volta avviato Pi, vai al menu e seleziona Programmazione> Thonny Python IDE . Si aprirà un nuovo script Python. Se sei totalmente nuovo in Python, è un linguaggio fantastico per i principianti e ci sono molti posti fantastici per imparare di più su Python dopo aver finito con questo tutorial!

Thonny Python IDE

Inizia importando la libreria RPi.GPIO e impostando la modalità scheda.

 import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) 

Dichiarare ora le variabili per i LED e i numeri dei pin dei pulsanti.

 ledPin = 12 buttonPin = 16 

Si noti che poiché la modalità della scheda è impostata su BOARD, stiamo utilizzando i numeri di pin anziché i numeri GPIO. Se questo ti confonde, un grafico di pinout di Raspberry Pi può aiutarti a chiarirlo.

My Pi Pinout

Impostazione del pulsante

È tempo di configurare i pin GPIO. Impostare il pin LED su output e il pin pulsante su input con un resistore pull-up

 GPIO.setup(ledPin, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) 

Il testo dopo GPIO.IN fa riferimento al resistore pull-up interno del Raspberry Pi. È necessario abilitare questo per ottenere una lettura chiara dal pulsante. Dal momento che il pulsante va al pin di terra, abbiamo bisogno di una resistenza pull-up per mantenere il pin di ingresso ALTO fino a quando non lo si preme.

Prima di continuare, diamo un'occhiata alle resistenze pull-up e pull-down.

Intervallo: Resistori pull up / pull down

Quando si configura un pin GPIO per l'input, legge quel pin per determinarne lo stato. In questo circuito, è necessario leggere se un pin è ALTO o BASSO per attivare il LED quando viene premuto il pulsante. Questo sarebbe semplice se quelli fossero gli unici stati che un pin può avere, ma purtroppo esiste un terzo stato: FLOATING .

Un perno mobile ha un valore tra alto e basso, causando un imprevedibile input. I resistori pull-up / pull-down risolvono questo problema.

Diagramma di esempio della resistenza di pull-up

L'immagine sopra è un diagramma semplificato di un pulsante e un Raspberry Pi. Il pin GPIO si collega a terra tramite il pulsante. Il resistore pull-up interno collega il pin GPIO all'alimentatore Pi interno. Questa corrente scorre e il pin viene tirato in sicurezza fino a HIGH.

Quando si preme il pulsante, il pin GPIO si collega direttamente al pin di terra e il pulsante legge in basso.

Diagramma di esempio della resistenza di pull-down

Le resistenze pull-down servono per quando l'interruttore è collegato al pin di alimentazione. Questa volta, la resistenza interna collega il pin GPIO a terra, mantenendolo in BASSO fino a quando non si preme il pulsante.

La teoria dei resistori pull-up e pull-down è confusa a prima vista, ma è importante avere conoscenze importanti quando si lavora con i microcontrollori. Per ora, se non lo capisci del tutto, non ti preoccupare!

Continuiamo da dove eravamo rimasti.

Il ciclo del programma

Quindi, imposta il loop del programma:

 while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW) 

Il ciclo while True esegue continuamente il codice al suo interno fino alla fine del programma. Ogni volta che lo fa, aggiorna buttonState leggendo l'input da buttonPin . Mentre il pulsante non viene premuto, rimane ALTO .

Una volta premuto il pulsante, buttonState diventa LOW . Questo innesca l' istruzione if, poiché False è uguale a LOW e il LED si accende. L'istruzione else spegne il LED ogni volta che buttonPin non è False.

Salva ed esegui il tuo script

Salvare lo script facendo clic su File> Salva con nome e scegliendo un nome file. È possibile eseguire lo schizzo facendo clic sul pulsante verde Riproduci nella barra degli strumenti di Thonny.

Pannello di controllo Thonny

Ora premi il pulsante e il tuo LED dovrebbe accendersi! Premere il pulsante rosso Stop in qualsiasi momento per interrompere il programma

Test del pulsante Gif

In caso di difficoltà, controllare accuratamente il codice e la configurazione del circuito per errori e riprovare.

Metodo 2: GPIO Zero Library

La libreria RPi.GPIO è fantastica, ma c'è un nuovo bambino sul blocco. GPIO Zero Library è stata creata dal community manager di Raspberry Pi Ben Nuttall con l'intenzione di rendere il codice più semplice e più facile da leggere e scrivere.

Per testare la nuova libreria, aprire un nuovo file Thonny e importare la libreria.

 from gpiozero import LED, Button from signal import pause 

Noterai che non hai importato l'intera libreria. Dato che stai usando solo un LED e un pulsante, hai bisogno solo di quei moduli nello script. Importiamo anche Pause dalla libreria dei segnali, che è una libreria Python per la gestione degli eventi.

L'impostazione dei pin è molto più semplice con GPIO Zero:

 led = LED(18) button = Button(23) 

Poiché la libreria GPIO Zero ha moduli per LED e pulsante, non è necessario impostare ingressi e uscite come prima. Noterai che sebbene i pin non siano cambiati, i numeri qui sono diversi da quelli sopra. Questo perché GPIO Zero utilizza solo i numeri di pin GPIO (noti anche come numeri Broadcom o BCM).

Il resto dello script è composto solo da tre righe:

 button.when_pressed = led.on button.when_released = led.off pause() 

La chiamata pause () qui semplicemente interrompe la chiusura dello script quando raggiunge il fondo. Gli eventi a due pulsanti vengono attivati ​​ogni volta che il pulsante viene premuto e rilasciato. Salva ed esegui il tuo script e vedrai lo stesso risultato di prima!

Due modi per aggiungere un pulsante a Raspberry Pi

Tra i due modi per impostare il pulsante, il metodo GPIO Zero sembra essere il più semplice. Vale ancora la pena di conoscere la libreria RPi.GPIO poiché la maggior parte dei progetti per principianti Raspberry Pi la utilizza. Per quanto semplice sia questo progetto, la conoscenza può essere utilizzata per una serie di cose.

L'uso dei pin GPIO è un ottimo modo per imparare e inventare i tuoi dispositivi, ma è tutt'altro che tutto ciò che puoi fare con il Pi. La nostra guida non ufficiale al Raspberry Pi Raspberry Pi: il tutorial non ufficiale Raspberry Pi: il tutorial non ufficiale Che tu sia un attuale proprietario Pi che vuole saperne di più o un potenziale proprietario di questo dispositivo di dimensioni di una carta di credito, questa non è una guida vuoi perdere Leggi di più è pieno di idee creative e tutorial che puoi provare tu stesso! Per un altro tutorial come questo, scopri come creare un pulsante di connessione Wi-Fi Come creare il tuo pulsante di connessione Wi-Fi con ESP8266 Come creare il tuo pulsante di connessione Wi-Fi con ESP8266 In questo tutorial, imparerai come per creare un pulsante abilitato Wi-Fi utilizzando NodeMCU e IFTTT. Leggi di più .

Scopri di più su: Tutorial per progetti fai-da-te, GPIO, Python, Raspberry Pi.