Spark-e - en gnista core + Touch OSC kontrollerade Wall-e leksak robot konvertering (13 / 14 steg)
Steg 13: Programmet gnistan
Om du har denna långt, bra gjort :) Vi är bara ett steg från att få våra Wall-e upp och kör. Det sista vi behöver göra är programmera honom.
För det mesta kan vi använda standardfunktionerna i kärnan, men när det gäller att ta emot OSC meddelanden, vi behöver lite hjälp. För att kunna tolka OSC meddelanden, vi kommer att använda sig av ett bibliotek som tillhandahålls av en gnista gemenskap medlem:
https://github.com/trublion/sparkcore_osc
Om du läser readme, ser du det finns ett par problem med detta bibliotek, men de kretsar främst kring skicka meddelanden, men eftersom vi är endast intresserade av att ta emot meddelanden, detta bibliotek fungerar faktiskt riktigt bra för oss.
För att starta, i spark builder, skapa ett nytt projekt och lägga till filer från OSC biblioteket som vi behöver. Vi tar endast emot meddelanden, är klasserna enda vi behöver:
- OSCData.h/.cpp
- OSCMatch.h/.c
- OSCMessage.h/.cpp
Nästa, kopiera koden från den bifogade filen och uppdatera definitionerna i toppen och så att de pekar till rätt stift enligt dina egna ledningar. När du får saker igång, du kan också behöva ändra de olika mapServo metodanrop, tweaking sist att parametrar som är de servo min / max värden.
Allt annat ska bara fungera som är, och förhoppningsvis bör vara självförklarande. För att beskriva vad som pågår i den koden ändå, har vi.
- Som vi inte behöver ansluta för att utlösa moln, vi startar i semi automatisk läge och ansluta bara wifi. Om du vill tillåta i etern programmering fortfarande, vi titta på mode-knappen och om du trycker, Återanslut för att utlösa moln.
- Våra viktigaste loop håller kontroll för nya OSC meddelanden och om emot, kräver den aktuella hanteraren.
- Alla servo hanterare mappa värdena som OSC från min / max sträcker sig till min / max antal servon.
- Resonansbotten utlöser en sund utlösare direkt på FX styrelsen (effektivt fejka en riktig taktil knapp)
- I de viktigaste loop driver vi även en blink rutin för att göra wall-e blinkar var 5 sekunder.
- För den sista knappen i området soundboard knappar gör vi det lossa alla servon så att vi omedelbart kan klippa någon stam på någon av servon.
När du har uppdaterat som krävs, blixt till din Spark kärna och Anslut den på baksidan av din Wall-e.