Stap 7: Software
Nu komt een hard en pret en eindeloze deel. Ik heb de software gedaan tot mijn tevredenheid nog, maar hier zijn een paar tips (0x67, 0xE4, 0x20):
- C++ classes gebruiken om abstracte weg de motoren en de sensoren (bijvoorbeeld een functie 'drive', waarmee een gaspedaal en draaien met de parameter)
- Het gegevensblad op de IMU veel gelezen vele malen. Lees het weer (toen nog eens)
- Math gebruiken via als verklaringen en statuscomputers die hiermee wordt voorkomen dat uw robot vast komen te zitten in een "staat". Som van dingen: botsing te vermijden moet worden toegevoegd aan de beoogde richting in plaats van volledig het visum heenstappen.
- Houd modulaire
- Aparte dingen naar afzonderlijke bestanden. Momenteel ben ik omhoog op de 13 bestandsmarkering voor deze robot. Het verhindert dat eindeloos scrollen.
- Schrijf een scheduler te houden dingen waarop wordt uitgevoerd.
- Los uit de werkelijke lezing van de sensor van uw algoritme van de Vermogenssturing uitzoeken wat mee te maken.
- U moet niet meer dan een 10hz bijwerkt tarief. Een servo bijgewerkt elke 15ms - 6 een tweede keer!
- Gooi de Arduino IDE. Het toestaan juiste bestandsbeheer niet. Hier ben ik met behulp van UECIDE, maar ik ben niet zo gelukkig met het. Idealiter ik zou gebruiken Eclipse maar ik kon niet krijgen om te uploaden naar de Raad van bestuur.
- Gebruik een versiebeheersysteem zoals git of svn. Het zal u een enorme hoeveelheid problemen oplossen als u besluit om iets ongedaan te maken.
Het belangrijkste stuk van advies:
ALLE GOEDE CODE BEGINT OP EEN STUK PAPIER
Krabbel het naar beneden met een goed-ol-pen op papier goed-ol. Het tekenen van grafieken van hoe je beweging te verwachten. Dataflow diagrammen tekenen. Ontwerp interactie tussen delen van code. Als het doet u op een computer, gebruikt u een platte tekstbestand en het type redenering en API's voordat het daadwerkelijk iets.