Ho costruito un paio di anni fa un controller per questo gioco al museo, richiedeva i caratteri QWERT, con Arduino Duemilanove è stato un pasticcio, inviao i caratteri sulla seriale e poi li leggevo con il monitor e poi il gioco in qualche modo (ma per me è ancora un mistero) se li ciucciava.
Poi è arrivato il Leonardo, carichi la libreria giusta ed il gioco è fatto.
Poi è arrivao il micro, idem come sopra.
Il Micro lo colleghi direttamente all'USB, lo programmi come un Arduino normale, i pin sono gli stessi. Fine.
In questo post pubblico semplicemente qualche foto del lavoro, i pochi componenti li ho saldati direttamente sulla scheda, un lavoro veloce veloce. Pubblico in fondo anche il codice.
Sulla sinistra in alto le 5 resistenze di elevato valore, in alto a destra i led che indicano la "pressione" del pulsante.
il collegamento dei pin verso l'esterno è affidato ad una serie di 5 coccodrilli (che verranno presumibilmente collegati ad oggetti modellati con il play doh)
questi i comandi inviati al PC
E qui sotto il lavoro completo e chiuso
Il circuitino a Fritzing:
Altre importanti informazioni in merito al circuito ed al sistema in quest'altro post.
#include <CapacitiveSensor.h>
CapacitiveSensor Q = CapacitiveSensor(13, 12); CapacitiveSensor W = CapacitiveSensor(13, 11); CapacitiveSensor E = CapacitiveSensor(13, 10); CapacitiveSensor R = CapacitiveSensor(13, 9); CapacitiveSensor T = CapacitiveSensor(13, 8); int soglia = 100; int ledQ= 6; int ledW= 5; int ledE= 4; int ledR= 3; int ledT= 2; boolean QTouch = false; boolean WTouch = false; boolean ETouch = false; boolean RTouch = false; boolean TTouch = false; void setup() { pinMode(ledQ, OUTPUT); pinMode(ledW, OUTPUT); pinMode(ledE, OUTPUT); pinMode(ledR, OUTPUT); pinMode(ledT, OUTPUT); 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); 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); if(totaleQ > soglia && !QTouch){ //Serial.println("Q"); Keyboard.write('Q'); QTouch = true; digitalWrite(ledQ, HIGH); delay(100); } else{QTouch = false;} digitalWrite(ledQ, LOW); if(totaleW > soglia && !WTouch){ //Serial.println("W"); Keyboard.write('W'); WTouch = true; digitalWrite(ledW, HIGH); delay(100); } else{WTouch = false;} digitalWrite(ledW, LOW); if(totaleE > soglia && !ETouch){ //Serial.println("E"); Keyboard.write('E'); ETouch = true; digitalWrite(ledE, HIGH); delay(100); } else{ETouch = false;} digitalWrite(ledE, LOW); if(totaleR > soglia && !RTouch){ Serial.println("R"); Keyboard.write('R'); RTouch = true; digitalWrite(ledR, HIGH); delay(100); } else{RTouch = false;} digitalWrite(ledR, LOW); if(totaleT > soglia && !TTouch){ //Serial.println("T"); Keyboard.write('T'); TTouch = true; digitalWrite(ledT, HIGH); delay(100); } else{TTouch = false;} digitalWrite(ledT, LOW);
}
|
Nessun commento:
Posta un commento