Stap 1: Overzicht van de Software
Animatron8.3 is onderverdeeld in zes modules. Initialisatie en definitie van functies, gegevens en taken nemen meer dan de helft van de code. Het is mijn filosofie dat gegevens code drijft; niet de andere manier rond. Ik gebruik "#defines", zodat de code zelf documenteren. Het is veel gemakkelijker om te begrijpen wat RandomMove voor, in plaats van herinneren wat een 10 betekent.
De modules zijn als volgt:
- Initialisatie van globale objecten en definities
- Definiëren van vaak gebruikte functies. Ik zal een functie met een variabel aantal argumenten, gebruiken om een algemene stap - zoals verstrekken van vooruitgang of debugging output vereenvoudigen. Ik zal ook een functie gebruiken om te scheiden van complexe code van waar het wordt gebruikt, zodat de stroom gemakkelijker te begrijpen.
- Setup is waar mijn seriële communicatie worden gedefinieerd, waar de SD-kaart is geïnitialiseerd, waar de servo-controller wordt geïnitialiseerd, enz...
- De belangrijkste programma begint met de definitie en initialisatie van lokale variabelen. Dit zijn variabelen die worden gebruikt bij uitvoering, en die niet moeten worden gedefinieerd voor initialisatie en Setup. Zoals de "Spelers" array. Deze matrix wordt gebruikt voor het opslaan van de huidige script step en de tijd voordat de volgende stap moet worden uitgevoerd. Andere dergelijke arrays worden gebruikt voor het synchroniseren van de verschillende onderdelen van het programma of om bij te houden welk script wordt uitgevoerd (in het geval u dat alleen één exemplaar is toegestaan opgeven).
- De module start uitvoering geëtiketteerd is waar de schets doorlopen alle actieve opdrachten. Het voert echter eerst, twee taken. Er is een speciale switch aangesloten op de Arduino, waardoor het programma kan worden onderbroken. Het controleert hier. Ten tweede, de pinguïn kan reageren op externe prikkel. In de Instructable stap die in deze module wordt beschreven, kunt u het controleren voor audio (het is iets te zeggen) en controle de mond servo dienovereenkomstig. Het is ook waar in de toekomst, bewegingssensoren en bijhouden, eventueel spraakherkenning en gesprek, en andere reacties zullen worden gecontroleerd.
- De rest van de code worden eigenlijk het script uitvoert. Het is een schakelaar... zaak structuur en de code voor elke functie wordt geïmplementeerd in de zaak blokkeren.