Étape 6: Dot Muncher : boussole Code
Lol Au lieu de cela, je veux me concentrer sur l’ajustement de la boussole d’une valeur respective de true North, à ce que nous voulons qu’il pense est au nord, dans notre cas, tout ce qui est le haut de notre écran. Ce processus prend une petite participation, puisque les numéros doivent être réglés manuellement et avec un petit guesstimation.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | if (iComp >=30){ int adjHeading =0; //The "floor" part makes the float into an integer, rounds it up. headingDegrees = floor(headingDegrees); if (headingDegrees >=280){ adjHeading = map(headingDegrees, 280, 360, 0, 79); } elseif (headingDegrees <=279) { adjHeading = map(headingDegrees, 0, 279, 80, 360); } Serial.println(adjHeading); iComp=0; } iComp++; delay(10); //For serial stability. |
Donc, j’eu mon module compas plat que possible et ensuite il boulonné sur mon robot. Cela aide à assurer votre obtenir un plein 360º et vous empêchera de devoir re-calibrer ce que nous aimerions appeler Nord chaque fois que le module boussole obtient frappé hors de propos.
106-114 : Ces modules et la bibliothèque de l’Arduino sont tous deux conçus pour avoir 0 ° être vers le Nord, mais que nous voulons créer notre propre Nord, au nord de jeux vidéo. Qui est exactement ce qui concernent les lignes 106-114. J’ai trouvé 80º est quelle valeur mon robot lisait quand il a été dirigé vers le haut de l’écran. J’ai dû trouver un moyen de régler cela pour me donner la lecture 0º. J’ai fini avec ce code simple pour faire tourner la boussole.
J’ai dû diviser les ajustements en deux sections pour les maths de rester simple. Les lignes 109 à 111 poignée cartographie 0-79º sur 280-0º, faire le robot 0-79º paraît 280-0º. Lignes 112-114 idem avec 80-360º, converti en 0-279º.
Honnêtement, j’ai quelques spatiale-retard, donc j’ai mal à penser par ce biais, je sais juste que ça marche. Donc, si vous avez des problèmes, à que je vais répondre courriels et Skypes et nous pouvons collaborer à travers elle. Et, si vous voulez soumettre une meilleure explication, je vais le poster et n’oubliez pas de vous donner du crédit.
Ne sais pas, ma solution de redneck devait modifier l’orientation de la caméra. Pfft. Trop facile.
Passer,
116 : Position du robot envoie le PC.
117 : iComp est une variable nous permettant de décider quand commencer à envoyer des données vers le PC. Nous ne voulons pas envoyer des données vers le PC avant il est prêt ou avant que le robot est réchauffé, nous aurait affaire à des mauvaises lectures.
118 : Il s’agit d’un temps qui fait que nous ne sommes pas embourber la ligne série, puisque chaque fois que nous appelons Serial.println("whatever") le PC et le robot doivent prendre quelque puissance de traitement pour y faire face. En bref, c’est pour s’assurer que le robot ne parle pas l’oreille de l’ordinateur hors tension.