Raspberry Pi musikaliska Christmas Lights (4 / 5 steg)
Steg 4: Programmeras
Kontroll för ljusshow var gjort med hjälp av Python och avrättades på en Raspberry Pi modell B. Jag ett par filer här, men en komplett uppsättning källkoden finns på github. Huvudfilen är lightshow.py. Det är där du ställa in stiften du använder på Raspberry Pi, du måste vara säker och ansluta samma stift som jag gjorde eller uppdatera denna del av koden. LightShow.py är också där du satt den spelningslista som kommer att genomföras. Jag har det inrättats för att köra en enkel chase sekvens två gånger i början. Detta är bra att se till att allt är ansluten och fungerar korrekt. Det kommer då att köras varje låt i spellistan. Innan varje låt det kommer att ge en indikator på vilket numrerade objekt i spellistan (från 0) börjar att det är på att köra av belysning upp det antalet. Om spellistan innehåller fler låtar än stjärnor indikatorn kommer att linda runt från andra sidan och börja med 1 stjärna belysta. När varje låt är klar, driver det en finale program där det twinkles alla stjärnor i 5 sekunder och sedan lämnar dem alla upplysta. Det går sedan vidare till nästa låt.
Låtarna är programmerade med en sång klass som definieras i filen lightshow_classes.py. Klassen Song definierar vart och ett av e-f-g-a-b-c-d i mitt fall tillsammans med varaktigheten av anteckningar anteckningar. 1 slå för en fjärdedelsnot, 1/2 slå för en åttondelen noterar, etc. Om du vill använda mer än 7 stjärnor, skulle du behöva ändra i det här avsnittet om du vill mappa tilläggsanmärkningarna.
Varje låt har en egen fil. Använda Deck_The_Halls.py som ett exempel. Dessa filer har skapats genom att titta på en uppsättning noter och lägger till varje not och dess varaktighet till Song.notes. En viktig del av den här filen är tempot spelar det på. Detta är ett argument till konstruktorn sång klass (i exemplet är det 140 slag/minut). Dessa sattes genom trial and error och hjälp vad verkade ser bäst ut. I teorin kan valfri låt kodad på detta sätt och läggs till i spellistan, även om det är begränsat till lysande enda ljus i taget.
Det finns också en Visa klass som kan användas för att utföra kommandon som att vända en ljus på/av, alla lampor på/av, spela en sång. Kombinera dessa metoder är hur funktionen chase.py skapades.
Efter lastningen på Raspberry Pi, programmet kan köras med kommandot: sudo python lightshow.py
Reläerna göra ett hörbart "klick" när de byter så får du en indikation på att låten spelas även om du inte kan se lamporna själva.