3D luft mus | Arduino + bearbetning (4 / 5 steg)
Steg 4: Källkoden
Koden för Arduino var var skriven av Shachar Geiger, min lärare, och av mig för detta projekt.3D-kub koden är den grundläggande koden finns på webbplatsen för bearbetning. Jag modifierade det lite.
I koden konverterar denna bit raw-informationen kommer från sensorn (normalt-180 till 180 x 10) till 0-255
getHeading();
Serial.write ('x');
x = (x + 1800) / 14;
Serial.write(x);
Serial.write('y');
y = (y + 1800) / 14;
Serial.write(y);
Serial.write('z');
z = (z + 1800) / 14;
Serial.write(z);
Information från sensorn och Arduino går till bearbetning skiss för varje separat område, men med ett föregående axel brev (för exp. X12 Y200 Z130), följande kod droppar bokstaven och lämnar endast värdena som ska skickas till COM-porten char läsning = 0; medan (läsa! = "x") {
While(port.available() == 0) {
}
While(port.available() == 0) {
}
läsning = (char)port.read();
}
X = port.read();
medan (läsa! = "y") {
While(port.available() == 0) {
}
läsning = (char)port.read();
}
Y = port.read();
medan (läsa! = "z") {
While(port.available() == 0) {
}
läsning = (char)port.read();
}
Z = port.read();
Denna del av koden sjunker alla negativa värden...
om ((X! = -1) & & (Y! = -1) & & (Z! = -1))
{
rotateZ(-(float)Y/25.0);
rotateX((float)X/25.0);
rotateY((float)Z/25.0);
pX = X;
pY = Y;
pZ = Z;
} annat {
rotateZ(-(float)pY/25.0);
rotateX((float)pX/25.0);
rotateY((float)pZ/25.0);
}
Den bifogade ZIP-filen som finns både Arduino och bearbetning kod