Stap 8: De Processing Schets
OPMERKINGEN:
* Bij de Setup-functie, moet wijzigen "[0]" in de regel "myPort = nieuwe Serial (dit, Serial.list() [0], 57600);" aan het juiste nummer, wat betekent dat die ooit seriële/USB-poort u de Arduino aangesloten. Om te bepalen dat nummer, de processing schets eenmalig uit te voeren en u ziet een lijst van de uw seriële poorten in het deelvenster Uitvoer. Wijzig de code zodat uw keuze.
De broncode:
importeren van processing.serial.*;
importeren van java.awt.AWTException;
importeren van java.awt.Robot;
importeren van java.awt.event.KeyEvent;
importeren van java.awt.event.InputEvent;
Seriële myPort;
char in = "0";
Robot robot;
int x = 720;
int y = 450;
int amt = 10;
Boole isBackspace = false;
Boole isKeyboard = false;
Boole isMouse = false;
VOID Setup
{
Probeer {}
robot = nieuwe Robot();
} vangst (AWTException e) {}
e.printStackTrace();
}
println(Serial.List());
myPort = nieuwe Serial (dit, Serial.list() [0], 57600);
}
VOID draw()
{
robot.setAutoDelay(40);
robot.setAutoWaitForIdle(true);
if(myPort.available() > 0)
{
in = myPort.readChar();
bepalen van toetsenbord of muis
Als (in == ''')
{
isBackspace = true;
isKeyboard = false;
isMouse = false;
}
anders als (in == ' ^')
{
isKeyboard = true;
isBackspace = false;
isMouse = false;
}
anders als (in == ' ~') {}
isMouse = true;
isBackspace = false;
isKeyboard = false;
}
fungeren als backspace
if(isBackspace)
{
Als (in == 'B') type(KeyEvent.VK_BACK_SPACE);
}
fungeren als toetsenbord
anders if(isKeyboard)
{
switch(in)
{
Case "A":
typeCaps(KeyEvent.VK_A);
breken;
Case "B":
typeCaps(KeyEvent.VK_B);
breken;
Case "C":
typeCaps(KeyEvent.VK_C);
breken;
geval zou ':
typeCaps(KeyEvent.VK_D);
breken;
Case "E":
typeCaps(KeyEvent.VK_E);
breken;
Case "F":
typeCaps(KeyEvent.VK_F);
breken;
Case 'G':
typeCaps(KeyEvent.VK_G);
breken;
Case "H":
typeCaps(KeyEvent.VK_H);
breken;
Case 'ik':
typeCaps(KeyEvent.VK_I);
breken;
Case "J":
typeCaps(KeyEvent.VK_J);
breken;
Case 'K':
typeCaps(KeyEvent.VK_K);
breken;
geval 'L':
typeCaps(KeyEvent.VK_L);
breken;
geval ben ':
typeCaps(KeyEvent.VK_M);
breken;
geval 'N':
typeCaps(KeyEvent.VK_N);
breken;
geval ' o ':
typeCaps(KeyEvent.VK_O);
breken;
letter 'P':
typeCaps(KeyEvent.VK_P);
breken;
Case "Q":
typeCaps(KeyEvent.VK_Q);
breken;
Case 'R':
typeCaps(KeyEvent.VK_R);
breken;
geval van ':
typeCaps(KeyEvent.VK_S);
breken;
'T geval ':
typeCaps(KeyEvent.VK_T);
breken;
Case 'U':
typeCaps(KeyEvent.VK_U);
breken;
Case "V":
typeCaps(KeyEvent.VK_V);
breken;
Case 'W':
typeCaps(KeyEvent.VK_W);
breken;
Case 'X':
typeCaps(KeyEvent.VK_X);
breken;
Case 'Y':
typeCaps(KeyEvent.VK_Y);
breken;
Case "Z":
typeCaps(KeyEvent.VK_Z);
breken;
geval 'a':
type(KeyEvent.VK_A);
breken;
Case "b":
type(KeyEvent.VK_B);
breken;
Case "c":
type(KeyEvent.VK_C);
breken;
geval zou ':
type(KeyEvent.VK_D);
breken;
Case "e":
type(KeyEvent.VK_E);
breken;
Case "f":
type(KeyEvent.VK_F);
breken;
Case 'g':
type(KeyEvent.VK_G);
breken;
Case "h":
type(KeyEvent.VK_H);
breken;
Case 'i':
type(KeyEvent.VK_I);
breken;
Case "j":
type(KeyEvent.VK_J);
breken;
Case 'k':
type(KeyEvent.VK_K);
breken;
geval 'l':
type(KeyEvent.VK_L);
breken;
geval ben ':
type(KeyEvent.VK_M);
breken;
geval 'n':
type(KeyEvent.VK_N);
breken;
geval ' o ':
type(KeyEvent.VK_O);
breken;
letter 'p':
type(KeyEvent.VK_P);
breken;
Case "q":
type(KeyEvent.VK_Q);
breken;
Case 'r':
type(KeyEvent.VK_R);
breken;
geval van ':
type(KeyEvent.VK_S);
breken;
't geval ':
type(KeyEvent.VK_T);
breken;
Case 'u':
type(KeyEvent.VK_U);
breken;
Case "v":
type(KeyEvent.VK_V);
breken;
Case 'w':
type(KeyEvent.VK_W);
breken;
Case 'x':
type(KeyEvent.VK_X);
breken;
Case 'y':
type(KeyEvent.VK_Y);
breken;
Case "z":
type(KeyEvent.VK_Z);
breken;
Case '0':
type(KeyEvent.VK_0);
breken;
Case '1':
type(KeyEvent.VK_1);
breken;
Case '2':
type(KeyEvent.VK_2);
breken;
Case '3':
type(KeyEvent.VK_3);
breken;
Case '4':
type(KeyEvent.VK_4);
breken;
Case '5':
type(KeyEvent.VK_5);
breken;
Case "6":
type(KeyEvent.VK_6);
breken;
Case '7':
type(KeyEvent.VK_7);
breken;
zaak '8':
type(KeyEvent.VK_8);
breken;
Case '9':
type(KeyEvent.VK_9);
breken;
geval ' ':
type(KeyEvent.VK_SPACE);
breken;
Case '\n':
type(KeyEvent.VK_ENTER);
breken;
zaak '.':
type(KeyEvent.VK_PERIOD);
breken;
geval ',':
type(KeyEvent.VK_COMMA);
breken;
geval '/':
type(KeyEvent.VK_SLASH);
breken;
geval ';':
type(KeyEvent.VK_SEMICOLON);
breken;
kast '=':
type(KeyEvent.VK_EQUALS);
breken;
geval '-':
type(KeyEvent.VK_MINUS);
breken;
standaard:
breken;
}
}
fungeren als een muis
anders if(isMouse)
{
switch(in)
{
Case "Z":
robot.mousePress(InputEvent.BUTTON1_MASK);
delay(100);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
breken;
Case 'X':
robot.mousePress(InputEvent.BUTTON3_MASK);
delay(100);
robot.mouseRelease(InputEvent.BUTTON3_MASK);
breken;
Case 'U':
Als (y > 0) y-= amt;
robot.mouseMove (x, y);
breken;
geval zou ':
Als (y < 900) y += amt;
robot.mouseMove (x, y);
breken;
geval 'L':
if(x > 0) x-= amt;
robot.mouseMove (x, y);
breken;
Case 'R':
if(x < 1440) x += amt;
robot.mouseMove (x, y);
breken;
letter 'P':
Als (amt < 500) amt += 5;
breken;
geval ben ':
Als (amt > 5) amt-= 5;
anders als (amt > 1) amt-= 1;
breken;
standaard:
breken;
}
}
}
}
ongeldig type (int k)
{
robot.keyPress(k);
robot.keyRelease(k);
}
VOID typeCaps(int k)
{
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(k);
robot.keyRelease(k);
robot.keyRelease(KeyEvent.VK_SHIFT);
}