Stap 10: programmeren
Deze robot wordt aangedreven door drie verschillende Arduino microcontroller borden. De twee Arduino Mega Pro boards lopen beide hetzelfde programma (meer of minder) terwijl de derde een heel eenvoudig programma alleen maar heeft om controle van de schuine stand en verbetering van de zijarm.
We kozen te gebruiken drie planken zodat, in het geval van een storing in een beetje van code op één arm, de andere wapens zouden kunnen nog functie correct en nog steeds score punten voor de competitie.
Het belangrijkste kenmerk van de code was het PD-besturingselement voor de basis-motor. Hierdoor is de arm te verplaatsen naar de locatie zonder eventuele abrupt stopt wanneer het wordt er. De "USS Syren" motor drivers waren uiterst gemakkelijk om opdrachten te verzenden, dankzij de bibliotheken van dimensie Engineering.
De Dynamixel servo's hebben een ingebouwde in PID besturingselement, zodat alles wat gedaan moest worden moest die de positie opdrachten verzenden. Omdat we servos vanuit de AX, MX, en RX gebruikt, hadden we twee verschillende buffer chips nodig. Leerden we hoe de Arduino gebruik deze servo's van Savage Electronics control en we gebruiken enigszins gewijzigde versies van zijn bibliotheken (opgenomen in de code-map). Dat alles was gedaan om te wijzigen van deze bibliotheken voor onze gebruik moest de seriële poort in één bibliotheek wijzigen, zodat elke buffer chip zou hebben eigen seriële poort.
Toen we begonnen met het schrijven van de code, schreven we elke functie stap voor stap. We begonnen door alleen het uitvoeren van de code voor de basis-motor, daarna gingen we bij toevoegen de stukken door één verderop in de arm. We wilden om ervoor te zorgen dat elk stuk van de code goed werkte voordat we geprobeerd elke functie samen om het risico van verpest al ons harde werk tot dat punt.
Hier de code map bevat alle van de bibliotheken die nodig zijn voor de code te compileren en de Arduino schetsen voor elke geleding.