Stap 6: De Code
Ik begon met de eerste logische stap, ik geladen het PING voorbeeldprogramma dat is ingebouwd in de taal van de arduino en testte het uit. Ik heb vervolgens gewijzigd om te lezen van de 7 pings die we gebruikten. Dit werd de Ping testprogramma hieronder, die later werd gebruikt om te zorgen voor goede verbindingen en bij het ontwikkelen van sommige gedeelten van de belangrijkste code.
De volgende stap was een eenvoudige test van de Sabertooth. Dit was de eerste keer dat ik ooit had gebruikt voor, dus ik schreef een klein programma dat reed vooruit, terug, daarna draaide links, vervolgens rechtsaf. Het is een eenvoudig programma, maar opnieuw zeer nuttig. Wij beëindigden omhoog wederopbouw en bedrading van de robot meerdere keren en na elke keer lopen wij dit eenvoudige programma om ervoor te zorgen dat wij de motoren correct had aangesloten.
Het volgende programma is geschreven met behulp van een vroege mock up van onze robot gemaakt van een stuk van schroot aluminium, een paar van servomotoren, pings en karton (Ik afgeplakte de pings op het karton te monteren hen), kunt u een beeld van onze kleine ongewenste bot hieronder. het was gegooid samen ongeveer een uur maar diende zijn doel. Ik begon door het lezen van de rechterkant sensoren. De robot zou vooruit rijden zo lang als de sensor-waardes waren hetzelfde (plein aan de muur) en het één motor sneller dan de andere rijden zou als de waarden verschillend waren. Dit gecorrigeerd elke drift die zou optreden. Dit is erg belangrijk, zelfs als je 2 motoren met dezelfde snelheid rijden ze niet zet altijd precies hetzelfde tempo, vooral als ze in tegengestelde richting draaien.
Zodra deze code werkte begon ik te controleren van de sensor vooraan rechts om te zien dat als het ooit ging dramatisch gestegen, dit zou alleen gebeuren als de robot de rand van een muur bereikt. Na een 90 graden bocht die zouden het nog zien een lange afstand tot de zijwand die een probleem zou kunnen zijn, zelfs als het vooruit van rijden zou er het worden verward wanneer de eerste sensor de volgende muur, raakt dus een speciaal algoritme werd geschreven met de andere sensoren vierkant tegen een andere muur en rijden naar voren tot beide kant sensoren de muur opnieuw lezen. Later voegde ik in sommige meer uitzonderingen te krijgen rond de ingang van elk van de kamers en een controle van de voorste sensoren voor binnen hoeken.
Ik weet zeker dat de meeste mensen lezen dit doen omdat ze willen leren hoe te maken van een obstakel te vermijden robot, dit was een zeer doel robot gebouwd, en sommige delen van de code die wordt gebruikt tijdens onze wedstrijd zou van geen nut zijn voor de meesten van u, dus heb ik besloten om 2 uitgeklede versies. Ik weet hoe vervelend het kan zijn om de voorbeeldcode die precies wat je nodig hebt doet, dan moet doorlopen en wissen van de helft van wat u niet nodig hebt te vinden. Ze zijn nog steeds functioneel als obstakel vermijden van robots, behalve dat ik heb verwijderd de gedeelten die met de Camera en het schild van de Speakjet communiceren. Dit is eigenlijk de code die is gebruikt tijdens onze "Engineering Day" demo van de robot, dus de 7 segment displays willekeurig nieuwe nummers wordt gegenereerd wanneer het bereikt een binnenkant hoek. We bouwden een klein rechthoekig cursus (onze test cursus had na de wedstrijd is gedemonteerd) voor de gebeurtenis en dacht dat die het zou leuk zijn voor de weergave van tijd tot tijd bijwerken zodat wij stel deze in op het genereren van willekeurige getallen. In de kale minimum versie verwijder ik ook een heleboel code die is gebruikt voor het bijhouden van elke kamer en weergeven naar de displays van de 7segment.