Transfiguration rörelse: Kontrollera (3 / 5 steg)
Steg 3: Den "magiska" bakom Transfiguration rörelse kontroll
De flesta av magin är bra programmering. Namnen på klasserna är valt att göra FiniteStateMachine koden kan läsas av vem som helst. Vi kunde ha gett tillstånd för utseende och Edge för situationen, men koden är bara svårare att förstå. Transfiguration.h är bara att samma idé. Måste du hämta filen Transfiguration.h och lägga in i dina projektfiler. Detta är vanligtvis samma mapp som filen .ino. Du måste stoppa och starta om Arduino miljön innan det att du kan redigera filen i Arduino-miljö.
Du behöver inte göra objekten nedan är det bara för dem intresserade av vad som finns i filen Transfiguration.h
Pragma hjälper en gång bara kompilatorn att veta bara använda den här filen en gång.
Inkluderar överst ta NeoPixel, CurieIMU, CurieTime och I2C-funktioner.
Vektorn innehåller är speciell. Det är en uppsättning rutiner som gör att du kan hålla en samling av saker. I vårt fall det är en samling av längder eller färger, eller ser ut. I princip varje gång du ser vektor kan du läsa som en samling av BlahBlah.
Färg klass är verkligen mjukvarusidan för att hålla de röda, gröna och blåhet av färger i paletten.
Färger är egentligen en samling av färger för en titt. Har en magisk funktion kallas förskönar som beräknar en färg mellan din sista färgen och din nuvarande färg med tiden. Övergångar från en färg till en annan är alltså inte abrupt.
Längd bara lagra längd paletten av alternativ.
Längder som färger är en samling av längd och har en transfiguration funktion som inte är så komplicerat som färger.
Ett utseende har som man kan förvänta sig färger och längder. Så även om demonstrationen koden för ändliga tillståndsdatorn används endast en färg och längd. Denna kod är klar för så många som den Arduino 101 kan hantera.
#defines är bara ett sätt att göra konstanter som tar upp något utrymme på din Arduino.
Situationen är den allmänna idén om en situation som kan uppstå. Nyckelfunktion är hasOccurred kommer att vara sant om situationen har uppstått.
Steg, Spin och tid är bara särskilda versioner av situationen. Vissa avancerade programmerare kanske undrar varför den situationen, steg, Spin och tid görs detta sätt och det enkla svaret är läsbarhet. Gärna diskutera vidare i ett mail.
Övergången är en klass som håller den nuvarande utseendet, nästa utseende och vilken situation uppstod som orsakar övergången.
updateStepCount och eventCallback är rätt från CurieIMU -> stepCount demo, minus några Serial Outptut.
Slutligen den tillfälle klassen. En samling ser ut, en samling av situationer och en samling av övergången regeln för att gå från en stat till en annan.
getPeg, setPeg är bara ett sätt att notera en tid när något inträffade. Vi se det som att en pinne i marken i tid och sedan se hur långt borta från att peg är du.
Slingan går bara igenom situationer för att se om någon har inträffat och sedan kontrollera att utseendet matchar en övergång.
Installationen gör alla inställningar för IMU, tid, tråd och NeoPixel
Himla thats it. Det är 256 rader kod men verkligen bara genomförandet av idéer att var vettigt.