Arduino + WiFi, musik lyhörd LED ljus fixtur (20 / 22 steg)
Steg 20: Installera Firmware
Den fasta programvaran används i Saiko5 WiFi LED Light armaturen är öppen källkod och fritt tillgängliga på vår sida för nerladdningar . Den är utformad att köra på antingen arduino, eller lönn hobbyutövaren systemen, och att integrera med ljus sköld WiFi förlängning styrelsen. Koden bygger ursprungligen på async_labs WiShield, men med modifieringar förbättra stabiliteten samt lägga till öppna ljudkontroll bibliotek stöd för att möjliggöra för styrelsen att ta emot kommandon över UDP i formatet öppna ljudkontroll.Att använda firmware filer, Hämta saiko5 databasen, liksom WiShield databasen och se till att WiShield databasen är korrekt placerad i katalogen bibliotek för arduino-sketchbook mappen. Arduino-miljö måste konfigureras för att använda arduino-sketchbook mappen som det är sketchbook för att säkerställa att biblioteken är rätt placerade.
I arduino-sketchbook-mappen ligger på /saiko5/firmware/arduino-sketchbook / det finns två projekt exempel tillsammans med biblioteken.
smooth_fade
smooth_fade är ett mycket grundläggande exempel anpassas från arduino blekning handledning av David Mellis. I detta enkla programexempel framgår sättet att ändra PWM utgången ansluten till en röd, grön och blå LED.
#define fördröjningstid 5
#define fadestep 1
#define redPin 3
#define greenPin 5
#define bluePin 6
Detta kodblock sätter upp de grundläggande konfiguration variablerna. redPin, greenPin och bluePin definieras för att motsvara de arduino/lönn stift som är anslutna till LED armatur genom fem stift huvudet ljus sköld styrelse. Om du inte använder denna firmware med ljus sköld styrelse, kan du ändra vilket stift används här. fadestep är den ljusstyrka ökning per tidssteget fördröjningstid är förseningen per tidssteget. Resten av programmet smooth_fade tonar LED-ljus från rött till grönt till blått med analogWrite funktionen för att ange PWM värdet på varje utgång.
LightBrick
Mappen LightBrick innehåller två primära filerna för Saiko5 firmware som faktiskt används i produktion, tillsammans med liblo och WiShield bibliotek i mappen bibliotek. Filen LightBrick.pde innehåller alla grundläggande konfiguration och start, inklusive nätverkskonfiguration. För att konfigurera en enhet för att ansluta till ditt eget trådlösa nätverk, måste konfigurationsinformation här uppdateras. Setup-funktionen berättar ljuset att lysa initialt låg effekt rött ljus, följt av WiFi initiering, och när WiFi initieringen är klar och enheten har anslutit, det kort blixtrade blå innan du stänger av ljuseffekt. Därefter det WiFi.run() programmet körs att hantera ta emot paket.
Filen udpapp.c innehåller faktiska händelsehanteraren för att ta emot ett UDP-paket på port 2222. Inte i synnerhet funktion udpapp_init, som konfigurerar UDP-servern. Försummelsen sättande berättar armatur till att bara acceptera UDP-paket på port 2222, med ursprung från IP-adressen 192.168.1.2. Om din faktiska servern finns på en annan IP-adress, detta * måste * ändras eller annars lamporna kommer att ignorera de data som skickas till dem.
Efter inledande konfiguration av nätverksstacken paket ska accepteras som behövs, hanterar funktionen parse_msg faktiskt parsning UDP-paket som tas emot. Först, den inkommande paketen är deserialised med lo_message_deserialize, som omvandlar UDP-paket till en OSC meddelande. Om deserialiseringen misslyckas (dvs. ett felaktigt paket mottogs eller ett icke-OSC paket var emot), det gör ingenting. Annars firmware drar ut tre flötena bifogas OSC paketet och sätter dem i fRed, fGreen och fBlue float värden. Nästa, det här värdet skrivs till produktionen stift med analogWrite. Vid Arduino görs detta värde i ett 8-bitars heltal genom multipliceras 0xFF och omarbetning som en unsigned char. Dock kan Maple också 16-bitars PWM, så detta kan ändras till att multiplicera med 0xFFFF för högre upplösning PWM. Användning av lönn i 16-bitarsläge PWM möjliggör 281 biljoner olika färger som ska produceras, jämfört med 17 miljoner färger som är typiska för 8-bitars PWM display (och de flesta datorskärmar). Vår erfarenhet är 8-bitars färg ser allmänt "bra", men bleknar jämnhet är bättre med 16-bitars färger, särskilt för låg intensitet.
Installera firmware
För att installera firmware, måste du först installera Arduino eller lönn utvecklingsmiljöer. Se instruktioner och grundläggande användning tillgänglig information från tillverkarna för mer information. För en full Saiko5 fixtur utsätts arduino programmering USB-porten på sidan av fallet för lätt modifiering.