2 modi per aggiungere un pulsante al tuo progetto Raspberry Pi
Imparare a usare i pin GPIO sul tuo Raspberry Pi ti apre un mondo di possibilità. I principi di base appresi attraverso i progetti per principianti aprono la strada verso una conoscenza utile dell'elettronica e della programmazione DIY.
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 disporre dei seguenti componenti:
- 1 x Raspberry Pi (Any will do, il modello 3B è usato in questo tutorial)
- 1 pulsante x
- 1 x LED
- 1 x 220 Ohm Resistor (i valori più alti vanno bene, il LED sarà solo più luminoso)
- 1 x tagliere
- Collegare i cavi
Una volta raccolti, dovresti avere componenti che assomigliano a questo:
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 farlo sono disponibili in questo video:
Impostazione del circuito
Utilizzerai i pin GPIO del Pi per realizzare il circuito, e se non conosci bene 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 schema:
- Il 5v e GND perni collegati alle barre di alimentazione della breadboard.
- Pin 12 (GPIO 18) si collega alla gamba positiva del LED.
- Una gamba del resistore si attacca alla gamba negativa del LED e l'altra gamba si attacca alla barra di terra della breadboard.
- Pin 16 (GPIO 23) si attacca a un lato del pulsante, l'altro lato si attacca al binario di terra della breadboard.
Una volta impostato, ecco come dovrebbe apparire:
Controlla il tuo circuito per assicurarti che sia corretto, quindi accendi il tuo Raspberry Pi.
Metodo 1: la libreria RPi.GPIO
Una volta avviato il Pi, vai al menu e seleziona Programmazione> Thonny Python IDE. Si aprirà un nuovo script Python. Se sei totalmente nuovo a Python, è un ottimo linguaggio per i principianti e ci sono molti posti fantastici per imparare di più su Python dopo aver finito con questo tutorial!
Inizia importando la libreria RPi.GPIO e impostando la modalità scheda.
importare RPi.GPIO come GPIO GPIO.setmode (GPIO.BOARD)
Ora dichiarare le variabili per i numeri dei LED e dei pin dei pulsanti.
ledPin = 12 buttonPin = 16
Da notare che abbiamo la modalità scheda impostata su TAVOLA stiamo usando i numeri dei pin piuttosto che i numeri GPIO. Se ciò ti confonde, una tabella di pinout Raspberry Pi può aiutarti a chiarire.
Impostazione del pulsante
È ora di configurare i pin GPIO. Imposta il pin del LED in uscita e il pin del pulsante da inserire con un resistore di pull-up
GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)
Il testo dopo GPIO.IN si riferisce al resistenza di pull-up interna del Raspberry Pi. È necessario abilitare questo per ottenere una lettura pulita dal pulsante. Poiché il pulsante sta per raggiungere il pin di messa a terra, abbiamo bisogno di un resistore di pull-up per mantenere il pin di input HIGH fino a quando non lo premete.
Prima di andare avanti, esaminiamo i resistori pull-up e pull-down.
Intermission: Pull Up / Pull Down Resistors
Quando si configura un pin GPIO da inserire, legge quel pin per determinarne lo stato. In questo circuito, è necessario leggere se un pin è ALTA o BASSO per attivare il LED quando si preme il pulsante. Questo sarebbe semplice se fossero gli unici stati che un pin può avere, ma sfortunatamente c'è un terzo stato: GALLEGGIANTE.
Un pin flottante ha un valore tra alto e basso, facendo sì che l'input agisca in modo imprevedibile. Resistenze Pull-up / pull-down risolvono questo.
L'immagine sopra è un diagramma semplificato di un pulsante e un Raspberry Pi. Il pin GPIO si collega a terra tramite il pulsante. La resistenza di pull-up interna collega il pin GPIO all'alimentazione interna Pi. Questa corrente scorre e il perno viene sollevato in modo sicuro su HIGH.
Quando si preme il pulsante, il pin GPIO si collega direttamente al pin di messa a terra e il tasto si legge in basso.
I resistori pull-down sono per quando l'interruttore è collegato al pin di alimentazione. Questa volta, il resistore interno collega il pin GPIO a terra, tenendo premuto LOW fino a quando non si preme il pulsante.
La teoria del resistore pull-up e pull-down è confusa a prima vista, ma una conoscenza importante da avere quando si lavora con i microcontrollori. Per ora, se non lo capisci bene, 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) altro: GPIO.output (ledPin, GPIO.LOW)
Il mentre è vero loop esegue continuamente il codice al suo interno fino alla fine del programma. Ogni volta che loops aggiorna il buttonState leggendo l'input dal buttonPin. Mentre il pulsante non viene premuto, rimane ALTA.
Una volta premuto il pulsante, buttonState diventa BASSO. Questo innesca il se la dichiarazione, da falso equivale a BASSO, e il LED si accende. Il altro l'istruzione spegne il LED ogni volta che buttonPin non è False.
Salva ed esegui il tuo script
Salva lo script facendo clic File> Salva come e scegliendo un nome di file. È possibile eseguire lo schizzo facendo clic sul verde Giocare pulsante nella barra degli strumenti Thonny.
Ora premi il pulsante e il tuo LED dovrebbe accendersi! Premere il rosso Stop pulsante in qualsiasi momento per interrompere il programma
In caso di difficoltà, controlla accuratamente il codice e l'installazione del circuito per eventuali errori e riprova.
Metodo 2: GPIO Zero Library
La libreria RPi.GPIO è fantastica, ma c'è un nuovo ragazzo sul blocco. La libreria Zero di GPIO è stata creata dal community manager di Raspberry Pi, Ben Nuttall, con l'intento di semplificare il codice e di leggere e scrivere più facilmente.
Per testare la nuova libreria, apri un nuovo file Thonny e importa la libreria.
da gpiozero import LED, pulsante da pausa importazione segnale
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 Pausa dalla libreria dei segnali, che è una libreria Python per la gestione degli eventi.
Configurare i pin è molto più semplice con GPIO Zero:
led = LED (18) pulsante = Pulsante (23)
Poiché la libreria Zero di GPIO include moduli per LED e pulsante, non è necessario impostare ingressi e uscite come in precedenza. Noterai che sebbene i pin non siano cambiati, i numeri qui sono diversi da quelli precedenti. Questo perché GPIO Zero utilizza solo i numeri pin GPIO (noti anche come numeri Broadcom o BCM).
Il resto dello script ha solo tre righe:
button.when_pressed = led.on button.when_released = led.off pause ()
Il pausa() chiama qui semplicemente arresta lo script dall'uscita quando raggiunge il fondo. Gli eventi a due pulsanti vengono attivati ogni volta che si preme e si rilascia il pulsante. 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 come la maggior parte dei principianti progetti Raspberry Pi lo utilizzano. Per quanto semplice sia questo progetto, la conoscenza può essere usata per un certo numero di cose.
Usare i pin GPIO è un ottimo modo per imparare e inventare i propri dispositivi, ma è lontano da tutto ciò che si può fare con il Pi. La nostra guida non ufficiale al Raspberry Pi Raspberry Pi: The Unofficial Tutorial Raspberry Pi: The Unofficial Tutorial Se sei un attuale proprietario di Pi che vuole saperne di più o un potenziale proprietario di questo dispositivo di dimensioni carta di credito, questa non è una guida vuoi perderti. Leggi di più è ricco di idee creative e tutorial che puoi provare da solo! Per un altro tutorial come questo, guarda come creare un pulsante connesso Wi-Fi Come creare il tuo pulsante connesso Wi-Fi con ESP8266 Come creare il tuo pulsante connesso 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: Esercitazioni sui progetti fai-da-te, GPIO, Python, Raspberry Pi.