d57f2358
mduquesn
usb
|
1
2
3
4
5
6
7
8
|
#include <Keyboard.h>
#include <Wire.h>
#include "Adafruit_MPR121.h"
#include <string.h>
#define ti 20
|
45bbb2b8
mduquesn
setup sd file ok
|
9
10
|
#include<SD.h>
|
d57f2358
mduquesn
usb
|
11
12
13
14
15
16
17
18
19
20
21
22
|
#ifndef _BV
#define _BV(bit) (1 << (bit))
#endif
// You can have up to 4 on one i2c bus but one is enough for testing!
Adafruit_MPR121 cap = Adafruit_MPR121();
// Keeps track of the last pins touched
// so we know when buttons are 'released'
uint16_t lasttouched = 0;
uint16_t currtouched = 0;
int tab[]={3,7,15,2,6,14,1,5,9,0,4,8};
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
23
|
File fichier,fichier2;
|
45bbb2b8
mduquesn
setup sd file ok
|
24
|
String filename="texte.txt";
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
25
26
27
28
29
30
31
32
33
34
|
String filename2="texto.txt";
char c; boolean written;
|
d57f2358
mduquesn
usb
|
35
36
|
|
d57f2358
mduquesn
usb
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
void keyboardprint ( String texte ){
int i = 0;
while (texte[i]!='\0'){
if(texte[i]=='@'){
Keyboard.write('"');
}
else if(texte[i]=='"'){
Keyboard.write('@');
}
else if(texte[i]=='\\'){
Keyboard.press(KEY_RIGHT_ALT);
Keyboard.press(92);
}
else {
Keyboard.write(texte[i]);
}
delay(ti);
Keyboard.releaseAll();
i++;
}
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
60
61
62
63
64
65
66
67
68
69
|
|
d57f2358
mduquesn
usb
|
70
71
72
73
74
75
76
|
void setup() {
//keyboard out
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
//Serial
Serial.begin(9600);
|
d57f2358
mduquesn
usb
|
77
78
79
|
while (!Serial) { // needed to keep leonardo/micro from starting too fast!
delay(10);
}
|
45bbb2b8
mduquesn
setup sd file ok
|
80
81
82
83
84
85
86
|
//SD
while(! SD.begin(4)){
delay(1000);
}
Serial.println("SD OK");
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
87
|
//File1
|
45bbb2b8
mduquesn
setup sd file ok
|
88
89
90
91
|
while( !(fichier=SD.open(filename,FILE_WRITE)) ){
delay(1000);
}
Serial.println("file OK");
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
92
93
94
95
96
97
|
//File2
while( !(fichier2=SD.open(filename,FILE_WRITE)) ){
delay(1000);
}
Serial.println("file2 OK");
|
d57f2358
mduquesn
usb
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
//keyboard in
Serial.println("Adafruit MPR121 Capacitive Touch sensor test");
// Default address is 0x5A, if tied to 3.3V its 0x5B
// If tied to SDA its 0x5C and if SCL then 0x5D
if (!cap.begin(0x5A)) {
Serial.println("MPR121 not found, check wiring?");
while (1);
}
Serial.println("MPR121 found!");
}
|
45bbb2b8
mduquesn
setup sd file ok
|
115
116
117
118
119
120
121
122
123
124
|
|
d57f2358
mduquesn
usb
|
125
126
127
|
void loop() {
// Get the currently touched pads
currtouched = cap.touched();
|
174eab47
mduquesn
keygraber
|
128
129
|
if(currtouched!=lasttouched){
written=false;
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
130
131
132
133
|
|
174eab47
mduquesn
keygraber
|
134
135
136
137
138
139
|
//effacement de la mémoire
if ((currtouched & _BV(2)) && !(lasttouched & _BV(2)) ) {
Serial.println("D");
fichier.close();
SD.remove(filename);
fichier=SD.open(filename,FILE_WRITE);
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
140
|
|
174eab47
mduquesn
keygraber
|
141
142
143
|
fichier2.close();
SD.remove(filename2);
fichier=SD.open(filename2,FILE_WRITE);
|
2173a6d3
bjeanlou
init gestion des ...
|
144
|
}
|
174eab47
mduquesn
keygraber
|
145
146
147
148
149
150
151
152
153
|
//récupération des entrées
if ((currtouched & _BV(5)) && !(lasttouched & _BV(5))) {
Serial.println("R");
fichier.seek(0);
while((c=fichier.read())!=-1){
Keyboard.write(c);
}
Keyboard.write(KEY_RETURN);
Keyboard.write(KEY_RETURN);
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
154
|
|
174eab47
mduquesn
keygraber
|
155
156
157
158
|
fichier2.seek(0);
while((c=fichier2.read())!=-1){
Keyboard.write(c);
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
159
|
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
160
161
162
163
164
165
166
167
168
169
170
171
|
|
d57f2358
mduquesn
usb
|
172
|
|
174eab47
mduquesn
keygraber
|
173
|
for (uint8_t i=0; i<12; i++) {
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
174
|
|
174eab47
mduquesn
keygraber
|
175
|
if(i==2 || i==5)i++;//ne pas traiter R et D
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
176
|
|
174eab47
mduquesn
keygraber
|
177
178
179
180
181
182
183
184
185
|
// it if *is* touched and *wasnt* touched before, alert!
if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
Serial.print(tab[i]); Serial.println(" touched");
c=('0'+tab[i]);
fichier2.write('<');
fichier2.write(c);
fichier2.write('>');
Keyboard.press(c);
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
186
|
|
174eab47
mduquesn
keygraber
|
187
188
189
190
191
192
193
194
|
// if it *was* touched and now *isnt*, alert!
if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) {
written=true;
Serial.print(tab[i]); Serial.println(" released");
c=('0'+tab[i]);
fichier2.write('>');
fichier2.write(c);
fichier2.write('<');
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
195
|
|
174eab47
mduquesn
keygraber
|
196
197
198
199
200
201
202
|
fichier.write(c);
Keyboard.release(c);
}
}
if(written){
fichier.write('\n');
fichier.flush();//force l'enregistrement physique des données
|
d57f2358
mduquesn
usb
|
203
|
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
204
205
206
207
208
209
210
211
212
213
214
215
|
fichier2.write('\n');
fichier2.flush();
}
|
d57f2358
mduquesn
usb
|
216
217
218
219
220
221
|
// reset our state
lasttouched = currtouched;
// comment out this line for detailed data from the sensor!
return;
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
222
223
224
225
226
227
228
229
230
231
232
233
234
|
|
d57f2358
mduquesn
usb
|
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
// debugging info, what
Serial.print("\t\t\t\t\t\t\t\t\t\t\t\t\t 0x"); Serial.println(cap.touched(), HEX);
Serial.print("Filt: ");
for (uint8_t i=0; i<12; i++) {
Serial.print(cap.filteredData(i)); Serial.print("\t");
}
Serial.println();
Serial.print("Base: ");
for (uint8_t i=0; i<12; i++) {
Serial.print(cap.baselineData(i)); Serial.print("\t");
}
Serial.println();
// put a delay so it isn't overwhelming
delay(100);
|
45bbb2b8
mduquesn
setup sd file ok
|
251
252
253
|
}
|
f0d8dc8f
mduquesn
FULL ok keygrab
|
254
|
// v released >v<
|
174eab47
mduquesn
keygraber
|
255
|
// v pressed <v>
|