Animatör Gadget för NeoPixels (3 / 6 steg)

Steg 3: kod



Detta projekt använder "Flikar" för att organisera kod inuti Arduino IDE. Detta är verkligen bara ovanliga kodning praxis i hela projektet. Flikarna är inte använt mycket, eller kanske jag bara lärt mig om dem. Men de påminner mig om tekniker och system som används i mer avancerad programmering miljöer.

Jag använder dem mer som bokmärken i detta projekt. Deras huvudsakliga funktion här är att bryta koden i bitar så att jag kan navigera enkelt utan så mycket rullning. Detta har ett viktigt mervärde. Jag är en väldigt lata programmerare, och om jag inte tror att alla kommer att se min kod, då jag kommer att undvika rullning och kommer slap kodstycken i slumpmässiga ställen tills hela programmet blir en oläsbar röra. Det kör bra, men om jag kommer tillbaka en månad senare jag kan inte ens läsa min egen kod, mycket mindre att ändra. Med hjälp av flikar, stannar min kod vanligtvis mer lättläst eftersom jag kan snabbt komma till fliken som innehåller relaterade kodstycken. Så stannar hela programmet bättre organiserade. Flikar tvinga nästan mig att tänka mer modulärt.

Detta hjälper också när jag behöver ändra programmet för användning med andra komponenter. I detta projekt är all kod för att köra displayen i ett par flikar. Det var lätt när jag portat det en SPI skärm. Jag visste att där alla relaterade koden var, och det var lätt för mig att ersätta den nya koden i programmet utan att spåra det i en enda spaghetti härva av koden.

Flikar kan skapas med hjälp av små nedåtpilen på den övre högra hörnet i IDE-gränssnittet. Observera att inläsningsordningen för flikarna är viktigt, precis som ett i GÅSMARSCH program.

Hur man använder

Hämta alla exempelfiler och lägga dem i en katalog inom dig Arduino mapp. Kalla den nya mapp/katalogen "Loop_Trainer" så att den matchar namnet på din huvudsakliga .ino fil. Ladda Loop_Trainer filen, sedan kompilera och ladda upp till din hårdvara.

Koden är väl kommenterade (vissa skulle säga över kommenterade), så förhoppningsvis även nybörjare ska kunna förstå hur det fungerar.

Sammanfattning

I grund och botten koden läser värden från potentiometrar, kartor värdena om behövs, sedan skickar värdet till en animering funktion. Värdena visas också på skärmen. Enkel, rätt? Jo det är, låt inte det tabbade formatet blandar ihop saker.

Innehållet på fliken

  1. Loop_Trainer: Denna huvudfilen. Den har alla de vanliga initieringen, inställning och huvudloop. Koden anger pin-koder och variabel namn, laddar NeoPixel biblioteket och börjar den seriell kommunikationen. Stora slingan är mycket enkelt, det kräver bara en funktion för att läsa värdena på potentiometrar och köra på menyn.
  2. LCD_baseCommands: LCD-skärmen används i detta projekt använder starta och stoppa koder att passera den kommandon. Det är enkelt att förstå, men upprepa koderna blir långtråkig och blåser filen. Så jag skapade en serie av funktioner så koderna kan kallas helt enkelt. Kolla in Adafruit's guide för en fullständig lista över kommandon.
  3. LCD_setup: Nu när alla bas kommandon har förvandlats till funktioner, kan vi använda dem att ställa in skärmen för användning. Du kommer att behöva ändra på den här fliken och fliken LCD_baseCommand om du använder en annan display.
  4. Menu_functions: Detta är en enkel case-sats. Beroende på vad det mappade värdet på menyn potten är, anropa vi en funktion (i fliken NeoPixel_Functions) om du vill animera NeoPixels. Jag har lämnat några tomma platser för dig att fylla med din egen animationer.
  5. NeoPixel_Functions: Detta är roligt delen. Denna fil innehåller faktiska animation. Dessa animationer är funktioner anropade från inom fliken Menu_functions. Animeringarna skaffa RGB och variabelvärden från datauppsättningen genom fliken Read_pots. Animeringarna också skicka data till fönstret med hjälp av funktionerna på fliken LCD_baseCommands. När du skapar din egen nya animationer, bara kalla dem på fliken Menu_functions. Dessa grundläggande animeringar, men jag har lämnat en två-kompanjon och ett par andra oddball rutiner för dig att spela med.
  6. Read_Pots: Dessa funktioner läsa potentiometrar och kartlägga deras värden för att passa deras standard syfte. Till exempel behöver menyn bara 10-20 steg, så vi mappa till detta värde. RGB-värdet måste vara 0-255. Men den "variabelindata" används i så många olika sätt att skicka raw värdet och mappa det nuvarande behovet av inuti anropsfunktionen. Du kan alltid göra en direkt analogRead om du vill enkät ett värde olikt.

VIKTIG anmärkning: någonstans. på något sätt, jag kommer att ha kvar "stubbar" av övergivna experiment och andra fel i denna exempelkod. Koden körs, men om du hittar återvändsgränder, de är förmodligen kvar från portar till olika skärmar eller från "banker" av animationer som inte är avsedda att ges i exempelkoden.

Se Steg
Relaterade Ämnen

USB NeoPixel Deco lampor (via Digispark / ATtiny85)

Detta Instructable behöver vi en WS2812 LED strip, även känd som NeoPixel, och någon MCU som kan programmeras via Arduino. Jag använder Digispark, det är en mycket trevlig liten MCU baserat på ATtiny85. Den har en speciell bootloader kallas mikrokärn...

Anpassad Pocket Slim Gadget Stand

Första generationen prylar är spännande, men väntar på tillgängliga tillbehör är mycket frustrerande. I detta instructable, jag ska visa dig hur jag skapa anpassade monterade står för min nya prylar. De är pockatable, justerbar, och bäst av allt du k...

Childs Neopixel Sunrise alarmklocka

Detta är en enkel väckarklocka som växlar mellan en dag och en natt bild så att barn som inte kan tala om tid vet när det är acceptabelt att gå upp på morgonen. Det kastades tillsammans av nödvändighet när jag insåg att jag hade lämnat vår verkliga k...

Animatron-6: Kontrollprogrammet för animatörerna

Animatron-6 var programvaran jag utvecklat för att styra min animatronic, presenteras här i 2011 http://goo.gl/1Cndha . Det är en kompilerad grundläggande program, som tolkar en egna språk jag designade, kallas A-kod, för animatronic kod. http://goo....

Animatörerna: Lion Dance

gick igenom mina filer idag och hittade den här videon av en Lion Dance animatörerna Robot vi gjorde år tillbaka.Detta är när vi testade fortfarande typ av rörelser och kombinationer skulle vi kunna ha innan vi kodade den dansa längs till typiska kin...

ALLT i en GADGET BAND (bärbar)

Hej alla, jag ska lära dig att göra dina egna alla i en GADGET Band i dag.Steg 1: Material som krävs för (1) handled band-2 nos.(2) fjäril clip (papper fästelement) - 5nos.(3) vissa prylar som pendrive, minneskortsläsare, bluetooth, minneskort(4) lim...

ATtiny13A NeoPixel armband

Efterföljande till den tidigare Instructables - Display färgglada meddelande i begränsade resurser,Detta Instructables visar hur du använder ATtiny13A, NeoPixel band och återanvända en plastflaska för att bygga en fancy armband.Steg 1: förberedelse S...

ESP8266 Neopixel klockan

I detta Instructable kommer jag visa dig hur för att bygga en klocka av en ESP8266 nod-MCU v0.9 dev. kit, en 24 Neopixel Ring och några andra delar. Ledsen för min dåliga kunskaper i engelska, kommer att om det finns ett problem eller en fråga ber mi...

Vinkel mätning Gadget

Denna video visar hur man bygger vinkel mätning gadget använda ratten indikator. Denna enhet används bäst för truing tabell sågklinga eller andra 90° vinkel mätningar. Det är enkelt att bygga och kalibrera. Indikatorn för dial är tillgänglig från ama...

Den kompletta guiden NeoPixel

Neopixels är awesome kan du styra hundratals, tusentals, miljontals lampor med 3 trådar (pwr, signal, gnd). Jag skapade detta instructable att ge människor en grundläggande till komplex förståelse av hur man gör NeoPixels Rock! Jag använde den driftu...

Neopixel Blinky Bling bröllop strumpeband

Gör tillfället super speciell med en ljus upp bröllop strumpeband. Tja, är alla tillfällen super speciellt om det finns en rätstickning inblandade.Vad om din Strumpebandsorden har redan bling? Lägg till blinky bling med Neopixel LED-lampor att lysa u...

Arduino & Neopixel Cola flaska Party ljus

Så min son Doon fläckar en väldigt cool part ljus gjorda av gamla Cola flaskor och sentimental inälvsprodukter av Glow Sticks, och frågar om vi kan göra en för hans kommande School tentor är över Blowout PartAYYY!!! Jag säga säkert, men skulle du int...

Reaktiva Neopixel dörren belysning

Gissa vad? Nu kan du dörren ha ljus på det också!Men vänta, det finns mer! Dessa lampor är reaktiva eftersom de känner av när du stänger dörren och automatiskt stänga av, sparar du både makt och från sömnbrist av glödande awesomeness som dessa neopix...

Kanadensiska Gadget Stand - pucken stå

mest kanadensiska, mest funktionella, och minst kostsamma tillbehör jag kunde göra. Pucken stativet.I Kanada använder vi puckar för flera syften. de är billiga, stark och tillgängliga. Jag har haft puckar liggandes sedan jag var liten, tyckte det var...

Neopixel förstärkare eller-Pelz smoking lyser

Kommer du bli kung av prom eller bara prins? Frossa i lila sken eller i valfri färg av regnbågen.Mod din smoking jacket (hyra eller inte), regelbunden suit jacka eller kavaj rockuppslagen att lysa upp.För festande svara neopixel LED lamporna på ljud....

Neopixel jätte kärlek Meter hög anfallare Scarf

Starke, testa din styrka, vad det heter, kom en, kom alla, kliver rätt upp... Whaddaya säga, Big Boy?En klassisk karneval spel att visa din atletisk förmåga eller fysisk färdighet och att bevisa att din betydande andra att du har vad som krävs. Du må...

Neopixel jätte termometer halsduk

Motoriska fjäder, det är kallt ute.Göra denna bärbara högteknologiska, låg tech halsduk med en inbyggd termometer.Inte längre kommer att du undrar hur riktigt kallt det är när du kliver utanför.Detta är lämplig som ett trevligt nybörjare projekt att...

Star Wars Shoptrooper Neopixel Birkin väska

För alla prinsessor i galaxen...Här är den heliga Graalen av handväskor... ok, den här off är en knockoff av något slag men jag kan garantera dig detta är enda i lager i det kända universumet.Lyser upp i Delicious Darth hallon, ljus sidan Cyan, Purpl...

Bärbar Neopixel Sparkle

Vem vill inte ha lite extra gnista i vardagen? Denna enkla wearable är lätt att göra (om du vet hur att löda) och mycket bekväm och ljus. Inspirerad av den underbara Adafruit Neopixel Crown, men lite mindre arbetsintensiva, och med en mycket lägre pr...