Stap 6: Dot Muncher: kompas Code
Nr. In plaats daarvan wil ik me richten op het aanpassen van de kompas kop van een respectieve waarde op true North, naar wat we willen dat het om na te denken is het noorden, in ons geval, wat is de top van ons scherm. Dit proces duurt een beetje betrokkenheid, omdat de nummers handmatig en met een beetje guesstimation moet worden ingesteld.
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. |
Dus, ik heb mijn kompas module liggen plat mogelijk en het vervolgens vastgebout aan mijn robot. Dit helpt verzekeren je krijgt een volledige 360º en zal u behoeden moetend opnieuw kalibreren wat wij zou willen noemen noorden telkens de kompas module misplaatst klopte krijgt.
106-114: Deze modules en de Arduino library zijn beide ontworpen om 0 ° Noord worden, maar we willen onze eigen Noord, videospel Noord. Dat is precies wat lijnen 106-114 over zijn. Ik vond 80º is welke waarde mijn robot aan het lezen was toen hij werd geleid naar de bovenkant van het scherm. Ik moest een manier vinden om dit aanpassen om te geven me de lezing 0 °. Uiteindelijk heb ik met deze eenvoudige code te draaien het kompas.
Ik moest verdelen de aanpassingen in twee gedeeltes voor de wiskunde te eenvoudig blijven. Lijnen 109-111 handvat toewijzing 0-79º op 280-0 °, maken de robot 0-79º vind 280-0 °. Lijnen 112-114 doe hetzelfde voor 80-360º, converteren naar 0-279º.
Eerlijk gezegd, heb ik sommige ruimtelijke-retardatie, dus ik heb een harde tijd denken door dit, ik weet dat het werkt. Dus, als u problemen ondervindt die ik zal beantwoorden e-mails en Skypes en we kunnen samenwerken erdoorheen. En als u indienen een betere uitleg wilt, ik zal post-it en zorg ervoor dat u krediet.
Weet, mijn redneck oplossing was om de richting van de camera te wijzigen. Pfft. Te gemakkelijk.
Bewegen op,
116: Stuurt de robot de kop naar de PC.
117: iComp is een variabele waardoor wij beslissen wanneer u wilt beginnen met het verzenden van gegevens naar de PC. We willen niet om gegevens te verzenden naar de PC voordat het klaar is of voordat de robot opgewarmde is, wij arme lezingen zou behandelen.
118: Dit is een vertraging die ervoor dat we niet zijn bogging langs de seriële lijn zorgt, omdat elke keer als we noemen Serial.println("whatever") zowel de PC als de robot nemen sommige rekenkracht moeten te behandelen. Kortom, is het om ervoor te zorgen dat de robot gaat niet van de computer oor af.