Youtube Channel
scrivimi: fraranux@gmail.com
chiamami: 345 04.22.\pi

mercoledì 4 giugno 2014

Arduino Leonardo e altri sensori capacitivi per una tastiera QWERTY


Sfiorando la guaina dei cavetti bianchi, al pc vendono inviati dei caratteri tastiera, da sinistra a destra (per scelta) QWERTYUI.
Il circuito è lo stesso di questo qui, sulla striscia blu del ground della bread bord ho collegato il piede numero 7 che in qualche modo è il "comune", le resistenze un po' grosse non sono tutte uguali (ho montato quelle che avevo).
Questo circuitino mi serve per costruire il controller di un videogame che produrrà l'amica e collega Annalisa. Ci siamo accordati per i quattro pulsanti delle due postazioni che saranno collegati ai caratteri della tastiera QWER e TYUI.
I due giocatori sfioreranno con le mani uno dei quattro tubi opalescenti davanti a loro, questi oltre ad inviare il carattere al pc si illumineranno con dei led colorati, pare...

Lo sketch:
#include <CapacitiveSensor.h>
#include "pitches.h"
CapacitiveSensor Q = CapacitiveSensor(7, 11);
CapacitiveSensor W = CapacitiveSensor(7, 10);
CapacitiveSensor E = CapacitiveSensor(7, 9);
CapacitiveSensor R = CapacitiveSensor(7, 8);
CapacitiveSensor T = CapacitiveSensor(7, 6);
CapacitiveSensor Y = CapacitiveSensor(7, 5);
CapacitiveSensor U = CapacitiveSensor(7, 4);
CapacitiveSensor I = CapacitiveSensor(7, 3);
int soglia = 50;
boolean QTouch = false;
boolean WTouch = false;
boolean ETouch = false;
boolean RTouch = false;
boolean TTouch = false;
boolean YTouch = false;
boolean UTouch = false;
boolean ITouch = false;
void setup()
{
  Keyboard.begin();

Q.set_CS_AutocaL_Millis(0xFFFFFFFF);
W.set_CS_AutocaL_Millis(0xFFFFFFFF);
E.set_CS_AutocaL_Millis(0xFFFFFFFF);
R.set_CS_AutocaL_Millis(0xFFFFFFFF);
T.set_CS_AutocaL_Millis(0xFFFFFFFF);
Y.set_CS_AutocaL_Millis(0xFFFFFFFF);
U.set_CS_AutocaL_Millis(0xFFFFFFFF);
I.set_CS_AutocaL_Millis(0xFFFFFFFF);

Serial.begin(9600);
}

void loop()
{
long start = millis();
long totaleQ = Q.capacitiveSensor(30);
long totaleW = W.capacitiveSensor(30);
long totaleE = E.capacitiveSensor(30);
long totaleR = R.capacitiveSensor(30);
long totaleT = T.capacitiveSensor(30);
long totaleY = Y.capacitiveSensor(30);
long totaleU = U.capacitiveSensor(30);
long totaleI = I.capacitiveSensor(30);
/****************************/


if(totaleQ > soglia && !QTouch){
Serial.println("Q");
Keyboard.write('Q');
QTouch = true;
}
else{QTouch = false;}

if(totaleW > soglia && !WTouch){
Serial.println("W");
Keyboard.write('W');
WTouch = true;
}
else{WTouch = false;}

if(totaleE > soglia && !ETouch){
Serial.println("E");
Keyboard.write('E');
ETouch = true;
}
else{ETouch = false;}
if(totaleR > soglia && !RTouch){
Serial.println("R");
Keyboard.write('R');
RTouch = true;
}
else{RTouch = false;}
if(totaleT > soglia && !TTouch){
Serial.println("T");
Keyboard.write('T');
TTouch = true;
}
else{TTouch = false;}

if(totaleY > soglia && !YTouch){
Serial.println("Y");
Keyboard.write('Y');
YTouch = true;
}
else{YTouch = false;}
if(totaleU > soglia && !UTouch){
Serial.println("U");
Keyboard.write('U');
UTouch = true;
}
else{UTouch = false;}
if(totaleI > soglia && !ITouch){
Serial.println("I");
Keyboard.write('I');
ITouch = true;
}
else{ITouch = false;}

}


2 commenti:

  1. POTRESTI ILLUSRARE MEGLIO LO SCHEMA??
    GRAZIE.

    RispondiElimina
  2. se clicchi sull'immagine si apre, dalla bread si capisce bene dai... no?

    RispondiElimina