Stap 4: De broncode
De code voor de Arduino werd geschreven door Shachar Geiger, mijn leraar, en werd bewerkt door mij voor dit project.De 3D kubus-code is de basic-code gevonden op de website van Processing. Ik heb het een beetje gewijzigd.
In de code omgezet deze chunk in de ruwe informatie afkomstig van de sensor (typisch-180 180 x 10) 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);
De informatie van de sensor en de Arduino gaat naar de Processing Schets voor elke afzonderlijke as, maar met een voorgaande as brief (voor exp. X12 Y200 Z130), de volgende code druppels van de brief en laat alleen de waarden moet worden toegezonden aan de COM-poort lezing char = 0; terwijl (lezen! = 'x') {}
while(Port.available() == 0) {}
}
while(Port.available() == 0) {}
}
lezen = (char)port.read();
}
X = port.read();
terwijl (lezen! 'y' =) {}
while(Port.available() == 0) {}
}
lezen = (char)port.read();
}
Y = port.read();
terwijl (lezen! = 'z') {}
while(Port.available() == 0) {}
}
lezen = (char)port.read();
}
Z = port.read();
Dit blok van code druppels alle negatieve waarden...
Als ((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;
} else {}
rotateZ(-(float)pY/25.0);
rotateX((float)pX/25.0);
rotateY((float)pZ/25.0);
}
Het bijgevoegde ZIP-bestand bevatte zowel Arduino en Processing code