Posso creare una tastiera USB completa con Makey Makey + Raspberry Pi


15

Di recente ho comprato il Makey Makey (basato su Arduino Leonardo / ATMega32u4), sperando di costruire una tastiera piena stile steampunk USB da alcune parti metalliche. Prima che arrivasse, ho riletto i dettagli e mi sono reso conto che ha solo 18 possibili ingressi, quindi più di 85 tasti non funzioneranno. Qualcuno ha idee su come potrei creare una tale bestia, possibilmente con un Raspberry Pi? (che si collega abbastanza facilmente, dai post precedenti )


Questo è impressionante.
Jivings,

1
Invece di un input per ogni tasto puoi usare una matrice e usare i 18 input per gestire 81 tasti (una matrice 9x9) per quanto ne so l'RPi ha meno input rispetto all'arduino, quindi non penso che ti aiuterà.
Craig,

@Craig quindi intendi combinare input come questo: arduino.cc/playground/Main/KeypadTutorial
sventechie

@sventech sì. Non ho familiarità con il makey makey, quindi non so come la sua commutazione ad alta resistenza interagirà con la matrice.
Craig,

Risposte:


6

Se vuoi solo creare una tastiera, senza usare Makey Makey, puoi farlo utilizzando la funzionalità GPIO di Raspberry Pi. Ma come commentato prima, il Raspberry Pi non ha pin sufficienti disponibili per creare una tastiera che sia effettivamente utile.

Tuttavia, se sei disposto ad aggiungere 2 IC puoi farti una tastiera con così tanti tasti che avrai un problema a inventare una funzione per ogni tasto!

Il mio suggerimento è di collegare 2 IC I2C al bus I2C sul Raspberry Pi e utilizzarli per creare la propria matrice di scansione.

Se usi un PCF8574 hai 8 pin I / O disponibili, se ottieni un PCF8575 hai anche 16 pin I / O disponibili. Combinando quindi puoi ottenere una matrice di scansione di:

  • 64 tasti: (2x PCF8574)
  • 128 tasti: (1x PCF8574 e 1x PCF8575)
  • 256 tasti: (2x PCF8575)

Devi usarne sempre uno come output e uno come input. Sull'output si lascia un po 'camminare' dal bit 0 al bit n (7 o 15), queste sono le colonne della matrice. Dall'altro leggi costantemente il valore dell'input e queste sono le righe della matrice. La combinazione di quale bit di uscita è attivo e quale bit di ingresso è "1" è il tasto premuto.

principio della matrice di scansione

In realtà creare la matrice è la maggior parte del lavoro, e mentre ci sei, non dimenticare di aggiungere un diodo dopo ogni interruttore inserito nella matrice, questo diodo (un normale 1N4148 andrà bene) deve essere posizionato con l'anodo all'interruttore e il catodo alla linea di fila. La caduta di tensione di 0,6 V su questo diodo non dovrebbe essere un problema, il restante (3,3 V-0,6 V) 2,7 V dovrebbe comunque essere un '1' logico.

matrice di scansione pratica

La ragione di questo carico di diodi è che impedirà cose come il fantasma e il mascheramento delle chiavi. Il fantasma è l'effetto che se si premono più di tre tasti contemporaneamente, è possibile che venga interpretato come un tasto completamente diverso perché più righe avranno un '1' logico. Il mascheramento è l'effetto che, se si premono più tasti e si rilascia un tasto, questo (in alcune situazioni) non verrà rilevato perché la riga per quel tasto è ancora un "1" logico.

esempio di fantasmi

L'immagine mostra un esempio di ghosting, i pulsanti A, B, D vengono premuti e oltre alla riga 1 (per il pulsante A) anche la riga 2 (per il pulsante C) è alta, al momento la colonna 1 è attiva, il che non è corretto.

Dopo l'intera avventura hardware, è necessario scrivere o adattare un driver del kernel per utilizzare effettivamente la tastiera in Linux. Un buon punto di partenza potrebbe essere questo link: Driver per chiavi su TCA6416 I2C IO expander , questa è un'idea simile, ma utilizza solo una tastiera a 16 tasti.

Spero che questo ti aiuti un po '.


3

Se vuoi creare una tastiera completa su cui digitare effettivamente, probabilmente saresti meglio con l'IC fuori da una tastiera USB. O conserva il PCB stesso nascosto nel tuo sistema dove non può essere visto e collega i cavi ai tuoi interruttori, oppure crea qualcosa di personalizzato con la stessa matrice.

Se hai davvero bisogno di cambiare la matrice elettrica, potresti dover creare il tuo progetto da zero, ma altrimenti non è davvero necessario.

Anche con una scheda personalizzata, puoi comunque finire con qualcosa che enumera e funziona come una tastiera USB, eliminando la necessità di driver personalizzati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.