Étape 4: Le code source
Le code pour l’Arduino a été écrit par Shachar Geiger, mon professeur et a été modifié par moi pour ce projet.Le code de cube 3D est le code de base sur le site web de traitement. J’ai modifié un peu.
Dans le code, ce morceau convertit l’information brute provenant de la sonde (en général de -180 à 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) ;
Les informations du capteur et l’Arduino va à l’esquisse de traitement pour chaque axe séparé, mais avec une précédente lettre d’axe (pour exp. X12 Y200 Z130), le code suivant supprime la lettre et laisse seulement les valeurs sont envoyées au port COM char de lecture = 0 ; tandis que (lecture! = « x ») {}
while(port.available() == 0) {}
}
while(port.available() == 0) {}
}
lecture = (char)port.read() ;
}
X = port.read() ;
tandis que (lecture! = « y ») {}
while(port.available() == 0) {}
}
lecture = (char)port.read() ;
}
Y = port.read() ;
tandis que (lecture! = « z ») {}
while(port.available() == 0) {}
}
lecture = (char)port.read() ;
}
Z = port.read() ;
Ce morceau de code supprime toutes les valeurs négatives...
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) ;
}
Le fichier ZIP joint contenue du code Arduino et le traitement