Wi-Fi kontrollerad LED ljus / ljus Visa
Detta projekt är en trådlös full-cologne elektronisk ljus. Flera av dessa enheter kan placeras runt ett rum och kontrolleras med en Wi-Fi kapabel dator att skapa specialeffekter eller musik-synkroniserad ljusshower.
Den hela maskin- och programvara designen erbjuds gratis och öppen källkod.
HÅRDVARA
Hårdvaran är beroende av en RN-XV Wi-Fi-modul för att tillhandahålla trådlös nätverksanslutning. En PIC12F683 mikrokontroller kommunicerar med RN-XV, bearbetar inkommande meddelanden från nätverket och genererar puls bredd modulerade (PWM) signaler att köra en mängd röda, gröna och blå lysdioder. Detta ger enheten möjlighet att återge hela färgspektrat på ett komplett utbud av ljusstyrka.
RN-XV WiFly modul serverar en avgörande roll vid bildandet av ett trådlöst ad hoc-nätverk med kontroll datorn. Modulen är programmerad med en unik IP-adress. Kontrollmeddelanden skickas från datorn kontroll via UDP-datagram. Dataformatet är mycket enkel, så att flera enheter kan hanteras i nätverket med minimal fördröjning. WiFly modul automatiskt bearbetar inkommande UDP-datagram och omvandlar meddelanden till en asynkron seriell ström som kan läsa och bearbetas av PIC mikrokontroller som PWM controller.
PIC12F683 är en mycket liten, ekonomiskt och bekvämt mikrokontroller för denna applikation. Det är en enkel 8-pin enhet, men med lite ansträngning, det ger alla de funktioner vi behöver. 12F683 saknar ett integrerat UART, så alla seriell kommunikation med RN-XV utförs genom bit-banka. 12F683 ger också en mycket begränsad instruktionsuppsättningen, vilket gör vissa matematiska operationer något svårt att genomföra. Men alla dessa frågor kan lösas och implementerats med pure PIC assembler.
Den största komplikationen av detta utvecklingsarbete är att PIC12F683 mikrokontroller har endast en ombord PWM generator. Så tre 8-bitars PWM utgångar genomförs i kod med hjälp av generella I/O pins och timer avbryter. Denna uppgift försvåras ännu mer eftersom de PWM rutinerna måste synkroniseras med UART rutin (också implementerat i koden). Den första implementeringen av denna rutin resulterade i en mycket uttalad glitch i PWM utgången på grund av avbrott av inkommande seriella data. Problemet löstes genom att se till att perioden seriell bit var jämnt delbar med PWM cykelperioden. Sedan endast en timer avbrott krävs, och varje inkommande bit kan helt enkelt läsa varje N antal PWM cykler.
Enheten kan drivas av en 5-15VDC källa, som regleras i 3.3V--ett krav i modulen RN-XV. PIC12F683 har en mycket bredare operativa spänningsområde, men 3.3V används inte bara att bibehålla gemensamhet med matningsspänningen RN-XV, men också att garantera kompatibilitet med 3.3V signalering kraven i RN-XV UART. En annan intressant notering är att den linjära regulatorn LD1117V33 kunna arbeta bekvämt med upp till en 15VDC input, även i ett TO-220 paket med någon kylfläns. Detta är på grund av att RN-XV drar mycket lite aktuella - en av flera skäl valdes över modulen Digi XBee Wi-Fi för denna applikation. Med en XBee modul, skulle effektförlusten krävs för en 15VDC ingång kräva några ytterligare värme förvaltningsåtgärder, vilket i sin tur skulle kräva ändringar av PCB.
För att göra enheten tillhandahålls verkligen trådlösa och fristående, power av 4 AA-batterier. En växlade batterihållaren fungerar som en bekväm bas för att stödja kretskortet. Eftersom kretsen är normalt dold inuti en dekorativ låda, håller en enkel gummisnodd kretskort på plats.
Maskinvaran Schematisk och mikrokontroller firmware källkoden är tillgänglig för nedladdning på webbplatsen huvudprojektet (se källor) nedan för hyperlänk).
KONTROLL MEDDELANDEFORMAT
Meddelandeformatet kontroll är extremt enkelt och utformad för minimal latency. Varje färg styrs självständigt genom att skicka ett enda bytevärde i 2-bitars färg adress (A) och en 6-bitars intensitetsnivå (L):
MSb LSb
A EN L L L L L L
Färg adresser: Röd = 00, grön = 01, blå = 10
Stödnivå: 000000 = av, 111111 = fullt å
Typiska meddelanden från programvaran består av alla tre färg kontroll byte sammanfogas till ett enda 24-bitars meddelande som garanterar alla tre färger uppdateras samtidigt.
KRETSKORTSLAYOUT
Kretskortet var original utvecklats för ett annat projekt, så den komponent layouten inte är idealisk för det här programmet, men den är funktionell. PCB layout gerber filer finns att hämta på webbplatsen huvudprojektet (se källor) nedan för hyperlänk). Ägna stor uppmärksamhet åt kretskortslayout kontra schematiskt, eftersom för att korrekt använda layout, skär spår på U2 (mikrokontroller) sida mellan C4 och D1, C5 och D2, och C6 och D3. Skär inte några spår på marken sida. Då jumper U2 sidan av C4, C5 och C6 till J1 sidan av R1, R2 och R3, respektive. Detta kommer att se till att produktionen från mikrokontroller varje går genom begränsning av nuvarande motstånd på vägen till deras respektive lysdioder.
Det primära gränssnittet till PhantomLink enheten är en DB-9 kontakt. Standard ordningen på pinout är modifierad för att ge ström till enheten. Seriella linjerna används endast för inledande programmering av RN-XV (även om det oftast lättare att programmera den XV med dess ad hoc kommando läge).
WI-FI-MODUL KONFIGURATION
RN-XV WiFly modul måste utgöra ett trådlöst ad hoc-nätverk för kontroll laptop att ansluta och kommunicera med olika ljus. Enligt RN-XV instruktionerna för att komma åt dess kommando-läge, och sedan ange följande kommandosekvens och spara konfigurationen. Observera att detta är en engångs process, så när inställningarna sparas i WiFly modul, de kommer aldrig ändra.
Ställ in wlan koppling 4
ställa in wlan ssid PhantomLink
Ange WLAN-chan 1
Ange ip dhcp 0
Ange IP-adressen 169.254.1.1
Ange IP-nätmask 255.255.0.0
ställa in ip lokala 2000
ställa in alternativet format 0
Ställ in läge för uart 0
ställa in sys mask 0x2100
Ange IP-protokoll 3
ställa in uart baud 2400
INHÄGNAD
Tre lysdioder producerar inte en bra färg blandning utan ett bra sätt att sprida ljuset. Att få rätt effekt, en 4 "x 4" x 6 "klar plast låda var kantad av skrynkliga vitt silkespapper.
Denna låda innehåller tillräckligt bredd att dölja inre innehållet och tillräcklig höjd för att placera ljuskällan i mitten av rutan. Resultatet är en glöd som verkar komma från mitten av rutan men har ingen urskiljbar källa.
PROGRAMVARA
Ljusbord programvaran innehåller en omfattande uppsättning funktioner för att styra en eller flera ljus. Programmet är skrivet i Java och kan köras på alla system kan kommunicera på ett Wi-Fi trådlöst Internet. Kontrollmeddelanden skickas via UDP-datagram med en enkel 24-bitars meddelandeformat. Kontrollermjukvaran ger flera förinställda effekter också som manuella kontroller för varje nätverksenhet.
En hela prestanda sekvens kan också programmeras på en tidsskala, som eventuellt kan synkroniseras till en musikkälla fil (visualiseras överst på skärmen). Denna första genomförandet import WAV-filer (för närvarande 22050/mono bara), men framtida stöd för fler format kommer snart.
Programmeringsgränssnittet är mus driven och mycket intuitivt. Användaren helt enkelt väljer en region på tidsskalan och sedan högerklickar du väljer från en popup-meny med tillgängliga effekter och färger. Varje effekt och/eller färg kan tillämpas på en enda enhet eller till alla.
En annan intressant funktion är en "utbildning"-läge som tillåter användaren att manuellt utlösa ett ljus i realtid ljudkälla spelas. Dessa triggers registreras i realtid, redo för omedelbar uppspelning när ljudet startas. Detta registreras utlösare kan sedan tweaked och redigeras efter behov, men det mest långtråkig arbete--synkronisera lamporna till audio--är redan gjort av utbildningsprocessen.
KÄLLOR
Den inbyggda programvaran och programmet källkod, binärer, PCB finns för nedladdning på huvudprojektet webbsida på http://www.phantomlink.com/lab/light.aspx