Styra tangentbord & mus w / Android app via Arduino (8 / 10 steg)
Steg 8: Bearbetning skissen
ANTECKNINGAR:
* I setup() funktion, måste du ändra "[0]" på raden "myPort = ny följetong (denna, Serial.list() [0], 57600);" till nummer, vilket innebär som någonsin serieporten eller USB-port du har Arduino ansluten till. För att bestämma antalet, köra bearbetning skissa en gång och ser du en lista över de din seriella portar på utdatapanelen. Ändra koden för att spegla ditt val.
Källkoden:
import processing.serial.*;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
Seriella myPort;
röding i = "0";
Robot robot;
int x = 720;
int y = 450;
int amt = 10;
booleska isBackspace = false;
booleska isKeyboard = false;
booleska isMouse = false;
void setup()
{
försök {
robot = nya Robot();
} fånga (AWTException e) {
e.printStackTrace();
}
println(Serial.list());
myPort = ny följetong (denna, Serial.list() [0], 57600);
}
void draw()
{
robot.setAutoDelay(40);
robot.setAutoWaitForIdle(true);
IF(myPort.available() > 0)
{
i = myPort.readChar();
bestämma tangentbord eller mus
om (i == ''')
{
isBackspace = sant;
isKeyboard = false;
isMouse = false;
}
annars om (i == ' ^')
{
isKeyboard = sant;
isBackspace = false;
isMouse = false;
}
annars om (i == ' ~') {
isMouse = sant;
isBackspace = false;
isKeyboard = false;
}
fungera som backsteg
IF(isBackspace)
{
om (i == 'B') type(KeyEvent.VK_BACK_SPACE);
}
fungerar som tangentbord
annat if(isKeyboard)
{
Switch(in)
{
fallet "A":
typeCaps(KeyEvent.VK_A);
bryta;
fallet "B":
typeCaps(KeyEvent.VK_B);
bryta;
fallet "C":
typeCaps(KeyEvent.VK_C);
bryta;
fall skulle ":
typeCaps(KeyEvent.VK_D);
bryta;
fallet "E":
typeCaps(KeyEvent.VK_E);
bryta;
fallet "F":
typeCaps(KeyEvent.VK_F);
bryta;
fallet "G":
typeCaps(KeyEvent.VK_G);
bryta;
fallet "H":
typeCaps(KeyEvent.VK_H);
bryta;
fallet "I":
typeCaps(KeyEvent.VK_I);
bryta;
fallet "J":
typeCaps(KeyEvent.VK_J);
bryta;
fallet "K":
typeCaps(KeyEvent.VK_K);
bryta;
fallet "L":
typeCaps(KeyEvent.VK_L);
bryta;
fallet är ":
typeCaps(KeyEvent.VK_M);
bryta;
fallet 'N':
typeCaps(KeyEvent.VK_N);
bryta;
fallet ' o ':
typeCaps(KeyEvent.VK_O);
bryta;
fallet "P":
typeCaps(KeyEvent.VK_P);
bryta;
fallet "Q":
typeCaps(KeyEvent.VK_Q);
bryta;
fallet "R":
typeCaps(KeyEvent.VK_R);
bryta;
fallet ":
typeCaps(KeyEvent.VK_S);
bryta;
'T i mål ":
typeCaps(KeyEvent.VK_T);
bryta;
fallet "U":
typeCaps(KeyEvent.VK_U);
bryta;
fallet "V":
typeCaps(KeyEvent.VK_V);
bryta;
fallet "W":
typeCaps(KeyEvent.VK_W);
bryta;
fallet "X":
typeCaps(KeyEvent.VK_X);
bryta;
fall "Y":
typeCaps(KeyEvent.VK_Y);
bryta;
fallet "Z":
typeCaps(KeyEvent.VK_Z);
bryta;
fallet "a":
Type(KeyEvent.VK_A);
bryta;
fallet "b":
Type(KeyEvent.VK_B);
bryta;
fallet "c":
Type(KeyEvent.VK_C);
bryta;
fall skulle ":
Type(KeyEvent.VK_D);
bryta;
fallet "e":
Type(KeyEvent.VK_E);
bryta;
fallet "f":
Type(KeyEvent.VK_F);
bryta;
fallet "g":
Type(KeyEvent.VK_G);
bryta;
fallet "h":
Type(KeyEvent.VK_H);
bryta;
fallet "i":
Type(KeyEvent.VK_I);
bryta;
fallet "j":
Type(KeyEvent.VK_J);
bryta;
fallet "k":
Type(KeyEvent.VK_K);
bryta;
fallet "l":
Type(KeyEvent.VK_L);
bryta;
fallet är ":
Type(KeyEvent.VK_M);
bryta;
fallet 'n':
Type(KeyEvent.VK_N);
bryta;
fallet ' o ':
Type(KeyEvent.VK_O);
bryta;
fallet "p":
Type(KeyEvent.VK_P);
bryta;
fallet "q":
Type(KeyEvent.VK_Q);
bryta;
fallet "r":
Type(KeyEvent.VK_R);
bryta;
fallet ":
Type(KeyEvent.VK_S);
bryta;
't i mål ":
Type(KeyEvent.VK_T);
bryta;
fallet "u":
Type(KeyEvent.VK_U);
bryta;
fallet "v":
Type(KeyEvent.VK_V);
bryta;
fallet "w":
Type(KeyEvent.VK_W);
bryta;
fallet "x":
Type(KeyEvent.VK_X);
bryta;
fall "y":
Type(KeyEvent.VK_Y);
bryta;
fallet "z":
Type(KeyEvent.VK_Z);
bryta;
fallet "0":
Type(KeyEvent.VK_0);
bryta;
fall '1':
Type(KeyEvent.VK_1);
bryta;
fallet "2":
Type(KeyEvent.VK_2);
bryta;
fallet "3":
Type(KeyEvent.VK_3);
bryta;
fallet "4":
Type(KeyEvent.VK_4);
bryta;
fallet "5":
Type(KeyEvent.VK_5);
bryta;
fallet "6":
Type(KeyEvent.VK_6);
bryta;
fallet "7":
Type(KeyEvent.VK_7);
bryta;
fallet "8":
Type(KeyEvent.VK_8);
bryta;
fall '9':
Type(KeyEvent.VK_9);
bryta;
fallet "":
Type(KeyEvent.VK_SPACE);
bryta;
fallet "\n":
Type(KeyEvent.VK_ENTER);
bryta;
fallet '.':
Type(KeyEvent.VK_PERIOD);
bryta;
fallet ",":
Type(KeyEvent.VK_COMMA);
bryta;
fallet "/":
Type(KeyEvent.VK_SLASH);
bryta;
ärende ';':
Type(KeyEvent.VK_SEMICOLON);
bryta;
ärende '=':
Type(KeyEvent.VK_EQUALS);
bryta;
fallet "-":
Type(KeyEvent.VK_MINUS);
bryta;
standard:
bryta;
}
}
fungera som en mus
annat if(isMouse)
{
Switch(in)
{
fallet "Z":
robot.mousePress(InputEvent.BUTTON1_MASK);
Delay(100);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
bryta;
fallet "X":
robot.mousePress(InputEvent.BUTTON3_MASK);
Delay(100);
robot.mouseRelease(InputEvent.BUTTON3_MASK);
bryta;
fallet "U":
om (y > 0) y-= amt;
robot.mouseMove (x, y);
bryta;
fall skulle ":
om (y < 900) y += amt;
robot.mouseMove (x, y);
bryta;
fallet "L":
IF(x > 0) x-= amt;
robot.mouseMove (x, y);
bryta;
fallet "R":
IF(x < 1440) x += amt;
robot.mouseMove (x, y);
bryta;
fallet "P":
om (amt < 500) amt += 5.
bryta;
fallet är ":
om (amt > 5) amt-= 5.
annars om (amt > 1) amt-= 1;
bryta;
standard:
bryta;
}
}
}
}
typen void (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);
}