Paso 4: El código fuente de
El código para el Arduino fue escrito por Shachar Geiger, mi maestro y fue modificado por mi para este proyecto.El código 3D cube es el código básico que se encuentra en el sitio web de procesamiento. He modificado un poco.
En el código, este pedazo convierte la información cruda que viene desde el sensor (normalmente -180 a 180 x 10) en 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);
La información de los sensores y el Arduino va el dibujo de procesamiento para cada eje independiente, pero con una letra anterior del eje (para exp X12 Y200 Z130), el código siguiente cae la carta y deja sólo los valores a ser enviado al puerto COM char la lectura = 0; mientras que (leyendo! = 'x') {}
while(Port.Available() == 0) {}
}
while(Port.Available() == 0) {}
}
lectura = (char)port.read();
}
X = port.read();
mientras que (leyendo! = 'y') {}
while(Port.Available() == 0) {}
}
lectura = (char)port.read();
}
Y = port.read();
mientras que (leyendo! = 'z') {}
while(Port.Available() == 0) {}
}
lectura = (char)port.read();
}
Z = port.read();
Este trozo de código gotas todos los valores negativos...
Si ((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);
}
El archivo ZIP adjunto contenía código de Arduino y procesamiento