Innehållsförteckning:

Interaktivt omgivande ljus: 8 steg
Interaktivt omgivande ljus: 8 steg

Video: Interaktivt omgivande ljus: 8 steg

Video: Interaktivt omgivande ljus: 8 steg
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Interaktivt omgivande ljus
Interaktivt omgivande ljus
Interaktivt omgivande ljus
Interaktivt omgivande ljus
Interaktivt omgivande ljus
Interaktivt omgivande ljus

Detta är min första instruerbara! Vänligen bära mig medan jag kämpar för att skriva ordentlig engelska. Rätta mig gärna! Jag startade det här projektet strax efter att tävlingen "Let it glow" startade. Jag önskar att jag hade gjort mycket mer och gjort klart det jag ville göra. Men mellan skolan och jobbet har jag inte haft så mycket tid kvar som jag önskat. Ändå lämnar jag här en rapport om mina experiment som en instruerbar, så vem som helst kan försöka göra det jag gjorde. Denna instruerbara är inte avsedd att fungera som en vägledning och lära hur man gör denna kontrast. Det är inte en guide för nybörjare inom elektronik. Det är mer som att dela en idé och ett mål som jag vill sträva efter. Om du är nybörjare/fullständig okunnig inom elektronik och vill göra något sådant här, jag är ledsen! Men vi kan alltid försöka hjälpa dig. Se det sista steget. Vi har redan sett många projekt för omgivande ljus. De flesta använder RGB -lysdioder: - För att belysa ett rum med en färg, ställa in en atmosfär som matchar ditt humör - För att skapa ljuseffekter från färg på TV/bildskärm eller från ljud. Det finns till och med några i instructables.com Relaterat: DIY Ambient Light Systems Light Bar Ambient Lighting Bygga dina egna omgivande färgbelysningsstänger Med hjälp av denna tävling som en ursäkt startade jag ett projekt som jag har tänkt på ett tag. Jag har alltid velat göra något som liknar dessa omgivande lampor och fylla väggarna i mitt rum med RGB -lysdioder. Men, ta det ett steg längre, vilket gör alla och var och en av dem kontrollerbara. Detta projekt kommer förhoppningsvis att resultera i ett elektroniskt kit med öppen källkod för amatörer och elektroniska tinkerers, vilket möjliggör hacking av hårdvara/programvara och sensorisk integration. Här är en liten förhandsvisning av vad jag gjorde:

Steg 1: Utforska idén

Jag vill kunna fylla väggarna i mitt rum med RGB -lysdioder, som styr färg och ljusstyrka för varje lysdiod. Jag kommer att använda en mikrokontroller för användarvänlighet och flexibilitet. Tyvärr kan jag inte styra hundratals lysdioder med de få stiften som finns på mikrokontroller. Det skulle till och med vara svårt att koda kontrollen av så många lysdioder. Så jag bestämde mig för att dela upp alla lysdioder i flera mindre staplar och för varje stapel kunde jag använda en mikrokontroller. Sedan skulle jag använda kommunikationskapaciteten hos mikrokontroller för att dela information mellan dem. Denna information kan vara färg och ljusstyrka på lysdioder, mönster/färgsekvenser och sensorisk information. För varje stapel bestämde jag mig för att använda 16 RGB -lysdioder. Detta resulterar i en varken för stor eller liten bar. På detta sätt använder jag ett acceptabelt antal resurser för varje LED, vilket minskar kostnaderna för varje stapel. Ändå är 16 RGB -lysdioder 48 lysdioder (3*16 = 48) för mikrokontrollern att styra. Med tanke på kostnaderna bestämde jag mig för att använda den billigaste mikrokontrollern jag kunde använda. Detta betyder att mikrokontrollern bara kommer att ha upp till 20 I/O -stift, inte tillräckligt för 48 lysdioder. Jag vill inte använda charlieplexing eller någon form av tidsdelning, eftersom målet med projektet är att belysa ett rum. alternativ som jag kan tänka mig är att använda någon form av spärrat skiftregister! Återupptar:- Gör och interaktivt omgivande ljus- Gör en standardfält med kontrollerbara lysdioder- Möjlighet att ansluta flera staplar för att fylla ett rum- Tillåt användaranpassning/konfiguration och sensorisk integration

Steg 2: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara

Som sagt i föregående steg vill jag göra flera staplar för att belysa ett rum. Detta tänker på kostnadsfrågan. Jag ska försöka göra varje bar till det mest kostnadseffektiva sättet. Mikrocontrollern jag använde var en AVR ATtiny2313. Dessa är ganska billiga och jag hade några liggande. ATtiny2313 har också ett Universal Serial Interface och ett USART -gränssnitt som kommer att komma till användning i följande steg. Jag hade också tre MCP23016 - I2C 16bit I/O port expander liggande, precis rätt räkning! Jag använde varje portexpander för att styra en färg på de 16 lysdioderna. Lysdioderna … Tyvärr var de billigaste jag kunde hitta. De är 48 röda, gröna och blåa ~ 10000mcd 5mm med 20 graders vinkel. Detta borde inte spela någon roll för närvarande, eftersom det här bara är en prototyp. Trots detta är resultatet ganska bra! Jag kör mikrokontrollern på 8 MHz. I2C -bussen klockas till 400 kHz. LED -omkopplingsfrekvensen är cirka 400 Hz. På det här sättet, om jag kan köra 48 lysdioder utan att trycka det till gränsen, får jag plats för mer senare!

Steg 3: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Efter att ha utformat kretsen byggde jag den i flera brödbrädor, för prototyper. Efter flera timmars skärning av trådar och montering av kretsen fick jag detta resultat: En gigantisk brödbräda med 48 lysdioder och massor av tråd!

Steg 4: Kontroll?

Kontrollera?
Kontrollera?

Detta är den mest utmanande delen av projektet. Jag ville göra en kontrollalgoritm tillräckligt generisk för att hantera mönster/sekvenser och även kontrollera ljusstyrkan och färgen på varje LED. För att styra lysdioderna måste jag skicka till MCP23016 en bildruta på 4 byte (1 byte = 8 bitar). En byte med adressen för IC -korrespondenten till färgen, 1 byte med kommandot "skriv" och 2 byte med värdet på 16bitarna (lysdioderna). IC är ansluten till lysdioderna som "sjunka", vilket innebär att ett logiskt värde 0 vid stiftet tänder lysdioden. Och nu är den utmanande delen, hur man gör PWM -kontroll för 48 lysdioder? Låt oss studera PWM för en lysdiod! PWM förklarade @ Wikipedia. Om jag vill att LED: ns ljusstyrka ska vara 50%är mitt PWM -värde 50%. Detta betyder att lysdioden, under en tidsperiod, ska vara på samma tid som av. Låt oss ta en period på 1 sekund. PWM på 50% betyder att på denna 1 sekund är påslaget 0,5 sekunder och avstängningen är 0,5 sekunder. PWM på 80%? 0,2 sekunder av, 0,8 sekunder på! I den digitala världen: Med en period på 10 klockcykler betyder 50% att lysdioden är tänd i fem cykler och för ytterligare fem cykler är lysdioden släckt. 20%? 2 cykler på, 8 cykler av. 45%? Tja, vi kan inte riktigt få 45%… Eftersom perioden är i cykler och vi bara har 10 cykler kan vi bara dela PWM i steg om 10%. Det betyder att stiftets utveckling bör vara, för 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Eller till och med 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; I programmeringen kan vi göra denna sekvens med att slå på och av en array. För varje cykel som vi matar ut till stiftet är värdet på indexet var cykeln är. Gjorde jag mening så långt? Om vi vill göra LED0 50%och LED1 20%kan vi lägga till båda matriserna. För att köra LED0 -stiftet: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; För att driva LED1 -stiftet: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; resulterar i LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Utmatning av denna sekvens av siffror i port expander IC, skulle vi få LED0 med 50% ljusstyrka och LED1 med 20% !! Enkelt för 2 lysdioder, eller hur? Nu måste vi göra detta för 16 lysdioder, för varje färg! För var och en av dessa matriser har vi en kombination av ljusstyrka för varje färg (16 lysdioder) Varje gång vi vill ha en annan kombination av färger måste vi ändra denna matris.

Steg 5: Gör det enkelt

Gör det enkelt!
Gör det enkelt!
Gör det enkelt!
Gör det enkelt!

Det föregående steget är för mycket arbete för att göra en enkel sekvens … Så jag bestämde mig för att göra ett program, där vi berättar färgerna på varje LED i ett steg i sekvensen och vi får stegets tre matriser. Jag gjorde det här programmet i LabView på grund av tidsbegränsningar.

Steg 6: Första experimenten

Första experimenten
Första experimenten

Om vi laddar in flera steg i mikrokontrollern får vi ungefär så här: Förlåt för videornas dåliga kvalitet! Jag definierade det maximala antalet steg i en sekvens till 8 och begränsade PWM till 20% hopp. Detta beslut är baserat på vilken typ av kontroll jag använder och hur mycket EEPROM ATtiny2313 har. I dessa experiment försökte jag se vilka effekter jag kunde göra. Jag måste säga att jag är nöjd med resultatet!

Steg 7: Realtidskontroll

Kontroll i realtid
Kontroll i realtid
Kontroll i realtid
Kontroll i realtid
Kontroll i realtid
Kontroll i realtid

Som nämnts i föregående steg vill jag kommunicera med alla mikrokontroller som styr lysdioderna i mitt rum. Så jag använde det tillgängliga USART -gränssnittet i ATtiny2313 och kopplade det till min dator. Jag gjorde också ett program i LabView för att styra LED -fältet. I det här programmet kan jag berätta för mikrokontrollern hur lång sekvensen är, varje LEDs färg och tiden mellan stegen i en sekvens. I nästa video ska jag visa hur jag kan ändra färgen på lysdioder och definiera sekvenser.

Steg 8: Slutsatser

Slutsatser
Slutsatser
Slutsatser
Slutsatser
Slutsatser
Slutsatser
Slutsatser
Slutsatser

Jag tror att jag lyckades med detta första tillvägagångssätt i mitt projekt. Jag kan styra 16 RGB -lysdioder med små resurser och begränsningar. Det är möjligt att styra varje LED separat, vilket skapar önskad sekvens.

Framtida arbete:

Om jag får positiv feedback från människor kan jag vidareutveckla denna idé och göra ett komplett DIY Electronics Kit med kretskort och monteringsanvisningar.

För min nästa version ska jag: -Byt mikrokontroller till en med ADC -Byt MCP23016 för någon annan typ av seriell in parallell -ut som kan sänka mer ström från lysdioder -Gör programvara med öppen källkod för att kommunicera med mikrokontrollern och styra lysdioderna -Utveckla kommunikationen mellan flera mikrokontroller.

Har du något förslag eller fråga? Eller lämna en kommentar!

Finalist i Let It Glow!

Rekommenderad: