Stap 9: Code
De code:*/
#include
CapPin cPin_10 = CapPin(10); pin 10 lezen (D10 op Flora) - verbinding maken met NES B
CapPin cPin_9 = CapPin(9); pin 9 lezen (D9 op Flora) - verbinding maken met NES A
CapPin cPin_6 = CapPin(6); Lees pin 6 (D6 op Flora) - verbinding om te beginnen met NES
CapPin cPin_12 = CapPin(12); lezen van pin 12 (D12 op Flora) - verbinding maken met het selecteren van de NES
CapPin cPin_1 = CapPin(1); lezen van pin 1 (TX op Flora) - verbinding naar NES rechts
CapPin cPin_0 = CapPin(0); Lees pin 0 (RX op Flora) - verbinden met NES omhoog
CapPin cPin_2 = CapPin(2); Lees op pin 2 (SDA over Flora) - NES links verbinden
CapPin cPin_3 = CapPin(3); pin 3 (SCL op Flora) lezen - NES verbinden naar beneden
Pinnen [] capPin = {cPin_10, cPin_9, cPin_6, cPin_12, cPin_1, cPin_0, cPin_2, cPin_3};
check http://arduino.cc/en/Reference/KeyboardModifiers voor meer info over unieke toetsen
WASD D-Stootkussen, selecteer = terugkeer, start = ruimte, LeftButton = z, RightButton = x
char [toetsen] = {'x', 'z', ' ', KEY_RETURN, 'd', 'w', 'a', de '};
pijl D-Stootkussen, selecteer = terugkeer, start = ruimte, LeftButton b, RightButton = = een
char [toetsen] = {'a', 'b', ' ', KEY_RETURN, KEY_RIGHT_ARROW, KEY_UP_ARROW, KEY_LEFT_ARROW, KEY_DOWN_ARROW};
char * toetsen [] = {"Hallo", "winkyface", "you there?", "Hallo", "I 'm bored", "let's meet voor de lunch", "zzz", "bye"};
Booleaanse currentPressed [] {false onwaar, onwaar, vals, onwaar, onwaar, onwaar, onwaar} =;
Capactive touch threashhold, je zou willen knoeien met dit als u zijn te
gevoelige of niet gevoelig genoeg
#define PROPAGEREN 500
float gladgestreken [8] = {0,0,0,0,0,0,0,0};
VOID Setup
{
terwijl (!. Serieel)
Serial.begin(115200);
Serial.println("Start");
Keyboard.begin();
}
void loop
{
for (int i = 0; ik < 8; i ++) {}
delay(1);
lange total1 = 0;
lang starten = millis();
lang totaal = pins[i].readPin(2000);
Controleer als wij zijn sensing dat een vinger de pad raakt
en dat het niet al ingedrukt
Als ((total > THRESH) & & (! currentPressed[i])) {}
Serial.Print ("van de toets #"); Serial.Print(i);
Serial.Print ("("); Serial.Print(Keys[i]); Serial.println(")");
currentPressed [i] = true;
Keyboard.println(Keys[i]); stuurt tekenreeks als toetsenbord persen, eindigend met de ENTER-toets
}
anders als ((totaal < = THRESH) & & (currentPressed[i])) {}
toets werd losgelaten (geen aanraking, en het werd ingedrukt voordat)
Serial.Print ("toets losgelaten #"); Serial.Print(i);
Serial.Print ("("); Serial.Print(Keys[i]); Serial.println(")");
currentPressed [i] = false;
Keyboard.releaseAll();
}
/*
eenvoudige lowpass filter voor voeren uiterlijk sommige van de jitter
Wijzig parameter (0 is min,.99 is max) of op te heffen om aan te passen
gladgestreken [i] = glad (totaal,.8, smoothed[i]);
Serial.Print(i); Serial.Print(":");
Serial.Print (millis() - start); tijd om te voeren in mS
Serial.Print ("ms \t");
Serial.Print(Total); ruwe totaal
Serial.Print ("\t-> \t");
Serial.println((int) smoothed[i]); gladgestreken
*/
delay(5);
}
}
eenvoudige lowpass filter
vereist recycling van de uitvoer in de "smoothedVal" param
soepele int (int gegevens, float filterVal, zweven smoothedVal) {}
Als (filterVal > 1) {/ / check te maken zeker param zijn binnen bereik
filterVal =. 999999;
}
else if (filterVal < = 0) {}
filterVal = 0;
}
smoothedVal = (gegevens * (1 - filterVal)) + (smoothedVal * filterVal);
keren smoothedVal (int);
}