Sommario:

Guida all'uso del Raspberry Pi con tastiera a un pin: 9 passaggi
Guida all'uso del Raspberry Pi con tastiera a un pin: 9 passaggi

Video: Guida all'uso del Raspberry Pi con tastiera a un pin: 9 passaggi

Video: Guida all'uso del Raspberry Pi con tastiera a un pin: 9 passaggi
Video: Raspberry Pi: installare il sistema operativo e configurare la scheda 2024, Dicembre
Anonim
Guida all'uso del Raspberry Pi con tastiera a un pin
Guida all'uso del Raspberry Pi con tastiera a un pin

DISCLAIMER: QUESTA È UNA GUIDA ALL'UTILIZZO DI UN PRODOTTO OPEN SOURCE: LA TASTIERA A UN PIN. QUESTO NON È UN PROGETTO FAI DA TE. SE VUOI REALIZZARE LE SCHEDE DA SOLO, I FILE EAGLE SI TROVANO ALLA FINE DEL TUTORIAL

Che cos'è la tastiera a un pin?

One Pin Keypad rende l'utilizzo di una tastiera a matrice molto più semplice e ti consente di riservare i tuoi preziosi pin I/O per altri scopi. Una tastiera a matrice di 16 pulsanti richiede in genere 8 ingressi digitali su un microcontrollore o un computer a scheda singola. Gli Arduino più popolari ti limitano a soli 14 pin digitali, quindi una tastiera a 16 pulsanti ti lascia solo 6 pin per il resto del tuo progetto. Questa carenza di risorse può portare a un costoso compromesso di progettazione o a un aggiornamento del microcontrollore più costoso. Il modulo One Pin Keypad elimina la necessità di tutti questi ingressi digitali. Come suggerisce il nome, One Pin Keypad utilizza un solo pin (un ingresso analogico) più le connessioni GND e VCC, quindi il cablaggio della tastiera è un gioco da ragazzi! Per gli utenti di Raspberry Pi (il pubblico di destinazione di questo tutorial) richiede anche un convertitore analogico-digitale ADS1115, che è davvero facile da cablare. Il pacchetto Python One Pin Keypad (incluso) semplifica anche la programmazione necessaria per elaborare gli input della tastiera, risparmiando più tempo e fatica.

Per la guida all'uso di Arduino, fare clic qui.

Passaggio 1: raccogli tutte le parti

Raccogli tutte le parti!
Raccogli tutte le parti!

Per iniziare con la tua tastiera One Pin Keypad, avrai bisogno di:

  • Una tastiera a un pin
  • Un Arduino di qualche gusto (in questo caso è stato utilizzato un Arduino Nano)
  • 3 cavi jumper M/F,
  • 4 cavi jumper M/M o altri 4 M/F, a seconda del tipo di intestazioni presenti sul tuo Raspberry Pi
  • Una tastiera a membrana a 16 pulsanti
  • Tagliere (qui ne viene usata una molto piccola)
  • Un modulo ADS1115 (da Adafruit o un clone)
  • Un Raspberry Pi con una connessione Internet e sistema operativo Raspbian (ho usato Stretch)
  • Accessori Raspberry Pi (un cavo HDMI, un alimentatore, dongle, monitor, ecc. Dipende dal sapore del tuo Raspberry Pi)

Passaggio 2: cablaggio

Cablaggio!
Cablaggio!
Cablaggio!
Cablaggio!

Collega il One Pin Keypad secondo lo schema di Fritzing, la foto o entrambi, come preferisci.

Nota: la nota sul diagramma di Fritzing rappresenta la One Pin Keypad (e le sigle GND VCC e AOUT designano i pinout della scheda One Pin Keypad)

Passaggio 3: installazione del pacchetto Python

Installazione del pacchetto Python!
Installazione del pacchetto Python!
Installazione del pacchetto Python!
Installazione del pacchetto Python!

Apri una finestra di terminale e digita i seguenti comandi:

sudo apt-get update

poi

pip3 install Progetto-One-Pin-Keypad

per installare il pacchetto e le sue dipendenze necessarie

Passaggio 4: installazione degli esempi

Installazione degli esempi
Installazione degli esempi

Ho creato una cartella dev per ospitare il repository sotto home/pi se desideri fare lo stesso (è completamente facoltativo), esegui questo comando:

mkdir dev

quindi, per navigare nella cartella, digitare:

sviluppo cd

Infine, per clonare il repository, inserisci il seguente comando:

git clone

Passaggio 5: abilitazione di I2C

Abilitazione di I2C
Abilitazione di I2C
Abilitazione di I2C
Abilitazione di I2C
Abilitazione di I2C
Abilitazione di I2C

L'ADS1115 ADC (Analog to Digital Converter) si basa sul protocollo I2C (Inter-Integrated Circuit) per comunicare con il Raspberry Pi, per impostazione predefinita il bus I2C è disabilitato, per abilitarlo digitare:

sudo raspi-config

che ti porterà in una finestra di configurazione blu, da lì, usando i tasti freccia e il tasto invio, scegli

  1. Opzioni di interfaccia
  2. I2C
  3. Allora scendi a

Suggerimento: fare riferimento agli screenshot qui sopra può aiutare un po'! Se sei ancora bloccato, non temere! Fare riferimento a questo fantastico how-to di Sparkfun!

Passaggio 6: eseguire le soglie di calibrazione

Esegui Calibratesoglie!
Esegui Calibratesoglie!

Passa al repository se non lo hai già fatto e vai alla cartella degli esempi usando questi comandi:

Suggerimento: digita 'cd Prog' quindi premi Tab, dovrebbe completare automaticamente il nome del repository!

cd Progetto_One_Pin_Keypad_Python_Package

quindi digita:

esempi di cd

quindi, esegui l'esempio calibratethresholds usando questo comando:

python3 calibratesoglie

e segui le istruzioni visualizzate sulla console per calibrare la tua scheda. Dopo che la calibrazione ha attraversato tutti i pulsanti, prova i tuoi nuovi valori analogici per vedere se funzionano premendo alcuni pulsanti quando viene richiesto di "Inizia"., se i nuovi valori si rivelano imprecisi, usa Ctrl C per terminare il programma ed eseguirlo ancora.

L'esempio di calibrazione dovrebbe fornirti 2 righe di codice che ti serviranno nel prossimo esempio, assicurati di tenere la console aperta e/o copiale entrambe!

Passaggio 7: modifica e quindi esegui Readkeypadwithtimeout

Modifica e poi esegui Readkeypad senza timeout
Modifica e poi esegui Readkeypad senza timeout
Modifica e poi esegui Readkeypad senza timeout
Modifica e poi esegui Readkeypad senza timeout
Modifica e poi esegui Readkeypad senza timeout
Modifica e poi esegui Readkeypad senza timeout

Ora che la tua One Pin Keypad è calibrata, è il momento di utilizzarla. Sebbene tu possa farlo dalla riga di comando usando vi, personalmente preferisco usare un IDE come IDLE.

Apri IDLE su (vorrai la versione python3) e modifica le seguenti righe:

Ricordi quell'array di valori analogici che hai copiato? Sostituisci la riga 13 (vedi sotto) con quei valori analogici appena calibrati.

# es: my_thresholds = [i valori calibrati sarebbero qui]

viene sostituito da questo:

mie_soglie = [225, 2116, 3904, 5200, 6300, 7350, 8450, 9325, 10000, 10750, 11500, 12100, 12550, 13100, 13800, 14250]

Quindi, aggiungi la riga di codice successiva dopo la riga 23 (vedi sotto):

keyboard.useCalibratedThresholds(my_thresholds)

viene aggiunto dopo la riga 23:

# es: keyboard.use_calibrated_thresholds (il nome dell'array)

facendo in modo che le righe dalla 22 alla 24 assomiglino a questa alla fine:

# Se vengono utilizzati valori calibrati, utilizzare_calibrated_thresholds di seguito:

# es: keyboard.use_calibrated_thresholds (il nome dell'array)

keyboard.use_calibrated_thresholds(my_thresholds)

Fatto ciò, esegui il codice e provalo premendo alcuni pulsanti! Sentiti libero di adattare lo schizzo di esempio ai tuoi progetti! Ricorda che read_keypad_with_timeout restituisce il pulsante premuto come un carattere e il timeout è impostato in millisecondi! Se non vuoi un timeout usa la costante keyboard. NO_TIMEOUT.

Passaggio 8: come funziona la tastiera a un pin

Come funziona la tastiera a un pin
Come funziona la tastiera a un pin
Come funziona la tastiera a un pin
Come funziona la tastiera a un pin

Gran parte del design del One Pin Keypad si basa sull'implementazione di Hari Wiguna di un divisore di tensione per ottenere un valore analogico univoco per ogni tasto in una tastiera a 16 pin. Il design di One Pin Keypad rimane sostanzialmente lo stesso, con alcune modifiche. Se vuoi un fantastico tutorial su come funziona la One Pin Keypad, sentiti libero di dare un'occhiata al fantastico video di Hari Wiguna qui!

Passaggio 9: conclusione

Conclusione
Conclusione

In questo tutorial, abbiamo spiegato come iniziare con la tua tastiera One Pin Keypad. Ora, i curiosi tra di voi potrebbero essersi chiesti perché lo sketch di esempio readKeypadInstantaneous non è mai stato utilizzato, il motivo è che non è così utile, perché il pulsante deve essere premuto quando viene chiamato, la funzione readKeypadInstantaneous() viene utilizzata principalmente per semplificare readKeypadWithTimeout() nella libreria. Se cattura la tua attenzione, sentiti libero di portarlo a fare un giro. Felice Hacking!

Se hai domande, lascia un commento qui sotto o scrivici a [email protected]. Cordiali saluti, Progetto Company P. S. Come promesso, un collegamento agli Eagle Files della scheda.

Consigliato: