Ljusshow i en 3D tryckt modell (7 / 7 steg)
Steg 7: Var du ska gå härifrån
Spela med exempel skissen som tillhandahålls av Adafruit är kul. Men några av er kanske vill ha mer kontroll över vad får visas på modellen. I mitt fall ville jag använda modellen för att visualisera faktiska forskningsdata på hjärnaktiviteten hos bananflugan.
För denna del måste du göra lite matte och kodning. Jag kommer inte ge alla detaljer i detta Instructable, mest för att jag vill behålla det om hårdvara och eftersom alla har en annan idé Tänk om vad de vill göra med sin specifika modell. Men jag skulle gärna hjälpa till om människor har frågor i kommentarerna, och under tiden här är några grundläggande begrepp och idéer, samt länkar till bra resurser var att få mer information:
Om det inte finns alltför många lysdioder i modellen, du kunde skriva, använder en efter en, färg och intensitet du vill visa på varje av dem setPixelColor funktionen av neopixel bibliotek. Men från föregående steg vet du vilken fiber motsvarar vilken plats inuti modellen (det är platsen för områden i steg 2). Genom att lagra dessa koordinater i en matris, med tre kolumner och så många rader som det är fibrer, kan du enkelt Länka LED numret till respektive x, y, z koordinater inuti modellen.
Sedan kan du använda dessa x, y, z koordinater i matematiska uttryck, som trigonometriska funktioner, att rumsligt modulera färg och intensitet visas av varje LED. Denna modulering kan animeras genom att göra dem också tid beroende. Du kan titta på den fantastiska 8 x 8 x 8 LED cube Instructable, steg 55 till 62 eller denna länk, för att få idéer.
Om, som i mitt fall, du vill Visa tredimensionella data förvärvat på annat håll, kommer det förmodligen i mätvärdena på en kartesiansk galler. Eftersom vi inte har en LED för varje datapunkt, måste vi interpolera data till x, y, z koordinater motsvarar fiber ändarna. Arduino mikrokontroller har inte tillräckligt med minne och processorkraft att lagra den ursprungliga data och göra interpolering, så vill du Förbearbeta data. Du har förmodligen en matematisk programmeringsspråk val (matlab, python...), som kommer att ha sina på interpolation funktioner. Observera att även bearbetade data kan ta mycket plats, så att du kan förvara den i programminnet av arduino (32 k istället för 1 k av sram) med PROGMEM nyckelorden.
jag kopplade min arduino skiss visar hur att hantera minnet. För min 53 lysdioder, kan en färg animation innehålla upp till ca 170 bilder, som jag förvara i en (FrameNumber) x (LEDnumber) x3 matris. Annars är det en ganska enkel kod, som uppdaterar färgerna som visas genom att lysdioderna med två för slingor som bläddra genom bildrutorna.
Nu kör vi, jag hoppas detta kommer du igång, jag skulle vara glad att hjälpa till i kommentarerna!