Ljus Nib (5 / 7 steg)
Steg 5: Programvaran
Mjukvaran körs på Arduino är mycket rättfram. Men först, det värt att nämna följande:
- ArduImu har en seriell kommunikationsport. Arduinoen får följetong paket från IMU som sedan avkodar och översätter till numeriska värden anger inriktningen av styrelsen. Denna del av koden måste ändras om du använder andra IMU, speciellt om du väljer en IMU som kommunicerar med I2C eller SPI.
- NeoPixel biblioteket har utvecklats av Adafruit och det är mycket lätt att använda. Här är den handledningen.
ArduIMU var inte lätt att installera, men denna tutorial hjälpte mycket. Koden delas på sidan hade några frågor, låt oss anta att det berodde på den firmware version körs på ArduIMU. Efter lite felsökning fungerade det fint.
Den lätta nib har 2 växlar att interagera med användaren och slå på eller av.
Vad programmet gör är:
- Under installationen konfigurerar koden: Input stiften att läsa växlarna, den seriella porten får data från den ArduiIMU v3 och stiften att styra NeoPixel.
- En gång i avsnittet loop i koden:
- Funktionen readPacket() tar emot och kontrollerar koden från IMU. Den returnerar sant om paketet är giltigt, false annars.
- Om ett giltigt paket har tagits emot, läses statligt av växlar med funktionen ReadInputs(). Funktionen räknar upp alla möjliga kombinationer av växlar. För två växlar, totala kombinationerna är 2 ^ 2 = 4. Uppräkningen börjar med 0, anger detta alla växlar är avstängda, används för att stänga av lysdioderna.
- Kombinationer av avkodas med hjälp av en växel instruktioner, förutom av villkora, det finns 3 fler kombinationer används att utlösa andra mönster av ljus nib.
- När motsvarande mönstret har tagits på lysdioderna, startar loopen igen.
Du kan ha så många växlar som du vill att utlösa olika ljuseffekter. Lägga till en tredje skulle ge dig möjligheten att ha 2 ^ 3 = 8 möjliga kombinationer. Men driver att många knappar när du ritar kan vara svårt, men fortfarande en möjlighet. Flödesschemat bifogas detta steg beskriver vad som har diskuterats.
Zip-filen innehåller tre mappar för du sketchbook katalog:
- ReadBinaryArduIMUV3-den kod för att ta emot och avkoda paket från ArduIMU i Arduino.
- NeoPixelTest - koden delas av Adafruit att komma igång med NeoPixel. NeoPixel biblioteket ingår inte.
- LightNib-den fullständiga koden att få lätta nib igång, med hjälp av den hårdvara som beskrivs här.