INHOUDSOPGAWE:

Interaktiewe omringende lig: 8 stappe
Interaktiewe omringende lig: 8 stappe

Video: Interaktiewe omringende lig: 8 stappe

Video: Interaktiewe omringende lig: 8 stappe
Video: Jennifer Lopez - On The Floor ft. Pitbull 2024, Julie
Anonim
Interaktiewe omringende lig
Interaktiewe omringende lig
Interaktiewe omringende lig
Interaktiewe omringende lig
Interaktiewe omringende lig
Interaktiewe omringende lig

Dit is my eerste instruksie! Verdra my asseblief terwyl ek sukkel om behoorlik Engels te skryf. Maak my gerus reg! Ek het hierdie projek begin net nadat die 'Laat dit gloei' -kompetisie begin het. Ek wens ek het baie meer gemaak en klaargemaak met wat ek wou maak. Maar tussen skool en werk het ek nie soveel tyd oor as wat ek wou nie. Tog laat ek 'n verslag van my eksperimente hier na as 'n instruksie, sodat almal kan probeer om te maak wat ek gedoen het. Hierdie instruksies is nie bedoel om as 'n gids te dien en te leer hoe om hierdie kontras te maak nie. Dit is nie 'n gids vir beginners in elektronika nie. Dit is meer soos om een idee en doelwit te deel wat ek wil nastreef. As u 'n beginner/volkome onkundige in elektronika is en so iets wil maak, is ek jammer! Maar ons kan probeer om u altyd te help. Sien die laaste stap. Ons het al baie projekte vir omgevingslig gesien. Die meeste van hulle gebruik RGB -LED's: - Om 'n kamer met een kleur te verlig, om 'n atmosfeer aan te pas wat by u bui pas - Om ligeffekte te skep van die kleur van die TV/Monitor of van klank. Daar is selfs 'n paar in instructables.com Verwant: DIY Ambient Light Systems Light Bar Ambient Lighting Bou u eie omringende kleurbeligtingstawe Met hierdie kompetisie as 'n verskoning het ek 'n projek begin wat ek al 'n rukkie in gedagte het. Ek wou nog altyd iets soortgelyk aan hierdie omringende ligte maak en die mure in my kamer met RGB LED's vul. Maar om dit 'n stap verder te neem, sodat hulle almal beheerbaar is. Hierdie projek sal hopelik lei tot 'n open-source elektroniese kit vir stokperdjies en elektroniese tinkerers, wat hardeware/sagteware-inbraak en sensoriese integrasie moontlik maak. Hier is 'n klein voorsmakie van wat ek gemaak het:

Stap 1: Verken die idee

Ek wil die mure in my kamer kan vul met RGB -LED's, wat die kleur en helderheid van elke LED kan beheer. Ek kan ongelukkig nie honderde LED's beheer met die paar penne wat op mikrobeheerders beskikbaar is nie. Dit sou selfs moeilik wees om die beheer van soveel LED's te kodeer. Daarom het ek besluit dat ek al die LED's in verskillende kleiner stawe moet verdeel, en vir elke balk kan ek 'n mikrobeheerder gebruik. Dan sou ek die kommunikasie -vermoëns van mikrobeheerders gebruik om inligting tussen hulle te deel. Hierdie inligting kan die kleur en helderheid van LED's, patrone/rye van kleure en sensoriese inligting wees. Vir elke balk het ek besluit om 16 RGB LED's te gebruik. Dit lei tot 'n te groot of klein kroeg. Op hierdie manier gebruik ek 'n aanvaarbare aantal hulpbronne vir elke LED, wat die koste vir elke balk verminder. 16 RGB -LED's is nietemin 48 LED's (3*16 = 48) vir die mikrobeheerder om te beheer. Met die oog op koste het ek besluit om dit te gebruik die goedkoopste mikrobeheerder wat ek kan gebruik. Dit beteken dat die mikrobeheerder slegs tot 20 I/O -penne sal hê, nie genoeg vir 48 LED's nie. 'n alternatief waaraan ek kan dink, is die gebruik van 'n soort vergrendelde skofregister!

Stap 2: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware

Soos in die vorige stap gesê, wil ek 'n paar balke maak om een kamer te verlig. Dit bring die kostekwessie in gedagte. Ek gaan probeer om elke kroeg op die mees koste-effektiewe manier moontlik te maak. Die mikrobeheerder wat ek gebruik het, was 'n AVR ATtiny2313. Dit is redelik goedkoop, en ek het 'n paar rondgelê. ATtiny2313 het ook een universele seriële koppelvlak en een USART -koppelvlak wat in die volgende stappe goed kan gebruik word. Ek het ook drie MCP23016 - I2C 16bit I/O -poortuitbreider laat lê, net die regte telling! Ek het elke poortuitbreider gebruik om een kleur van die 16 LED's te beheer. Die LED's … Ongelukkig was dit die goedkoopste wat ek kon kry. Hulle is 48 rooi, groen en blou ~ 10000mcd 5mm met 'n hoek van 20 grade. Dit behoort vir nou nie saak te maak nie, aangesien dit slegs een prototipe is. Ten spyte van hierdie feit, is die resultaat redelik mooi! Ek werk die mikrobeheerder teen 8 MHz. Die I2C -bus word op 400 kHz geklok. Die LED -skakelfrekwensie is ongeveer 400 Hz. Op hierdie manier, as ek 48 LED's kan bestuur sonder om dit tot die uiterste te stoot, sal ek later meer ruimte hê!

Stap 3: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Nadat ek die kring ontwerp het, het ek dit in verskeie broodborde gebou vir prototipe doeleindes. Na 'n paar uur se drade sny en die stroombaan aanmekaar sit, kry ek die resultaat: 'n Reuse broodbord met 48 LED's en tonne draad!

Stap 4: Beheer?

Beheer?
Beheer?

Dit is die mees uitdagende deel van die projek. Ek wou een kontrolealgoritme generies genoeg maak om patrone/rye te hanteer en ook die helderheid en kleur van elke LED te beheer. Om die LED's te beheer, moet ek 'n raam van 4 byte na die MCP23016 stuur (1 greep = 8 bis). Een greep met die adres van die IC wat ooreenstem met die kleur, 1 greep met die opdrag "skryf" en 2 grepe met die waarde van die 16 bits (LED's). Die IC is aan die LED's gekoppel as 'sink', wat beteken dat een logiese waarde 0 by die pen die LED sal aansteek. En nou die uitdagende deel, hoe om PWM -beheer vir 48 LED's te maak? Kom ons bestudeer PWM vir een LED! PWM verduidelik @ Wikipedia. As ek die helderheid van die LED op 50%wil hê, is my PWM -waarde 50%. Dit beteken dat die LED binne een tydperk op dieselfde tyd as af moet wees. Kom ons neem 'n tydperk van 1 sekonde. PWM van 50% beteken dat in hierdie 1 sekonde die tyd betyds 0,5 sekondes is en die afskakeltyd 0,5 sekondes. PWM van 80%? 0,2 sekondes af, 0,8 sekondes aan! In die digitale wêreld: Met 'n tydperk van 10 kloksiklusse, beteken 50% dat die LED vir 5 siklusse aan is, en vir nog 5 siklusse is die LED af. 20%? 2 siklusse aan, 8 siklusse af. 45%? Wel, ons kan nie regtig 45%kry nie … Aangesien die tydperk in siklusse is en ons slegs 10 siklusse het, kan ons die PWM slegs in stappe van 10%verdeel. Dit beteken dat die evolusie van die pen 50%moet wees: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0; Of selfs 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; In programmering kan ons hierdie volgorde maak om 'n skikking aan en uit te skakel. Vir elke siklus gee ons die waarde van die indeks na die pen, as die siklus is. Het ek tot dusver sin gehad? As ons LED0 50%en LED1 20%wil maak, kan ons albei skikkings byvoeg. Vir die bestuur van die LED0 -pen: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Vir die bestuur van die LED1 -pen: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; wat lei tot LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0; As ons hierdie reeks getalle in die poortuitbreider IC uitvoer, kry ons die LED0 met 50% helderheid en LED1 met 20% !! Eenvoudig vir 2 LED's, reg? Nou moet ons dit vir 16 LED's vir elke kleur maak! Vir elkeen van hierdie skikkings het ons 'n kombinasie van helderheid vir elke kleur (16 LED's) Elke keer as ons 'n ander kombinasie van kleure wil hê, moet ons hierdie skikking verander.

Stap 5: Maak dit maklik

Maak dit maklik!
Maak dit maklik!
Maak dit maklik!
Maak dit maklik!

Die vorige stap is te veel werk om 'n eenvoudige reeks te maak … Daarom het ek besluit om 'n program te maak, waar ons die kleure van elke LED in een stap van die ry vertel en die drie skikkings van die stap kry. Ek het hierdie program in LabView gemaak weens tydsbeperkings.

Stap 6: Eerste eksperimente

Eerste eksperimente
Eerste eksperimente

As ons verskeie stappe in die mikrobeheerder laai, kry ons so iets: Jammer oor die swak kwaliteit van die video's! Ek het die maksimum aantal stappe van 'n ry tot 8 gedefinieer, en die PWM tot 20% spronge beperk. Hierdie besluit is gebaseer op die soort beheer wat ek gebruik en hoeveel EEPROM die ATtiny2313 het. In hierdie eksperimente het ek probeer kyk watter effekte ek kan maak. Ek moet sê ek is tevrede met die resultaat!

Stap 7: Beheer in real-time

Intydse beheer
Intydse beheer
Intydse beheer
Intydse beheer
Intydse beheer
Intydse beheer

Soos in die vorige stappe genoem, wil ek kommunikeer met al die mikrobeheerders wat die LED's in my kamer beheer. Dus gebruik ek die beskikbare USART -koppelvlak in ATtiny2313 en koppel dit aan my rekenaar. Ek het ook 'n program in LabView gemaak om die LED -balk te beheer. In hierdie program kan ek die mikrobeheerder vertel hoe lank die ry is, die kleur van elke LED en die tyd tussen stappe van 'n ry. In die volgende video sal ek demonstreer hoe ek die kleur van LED's kan verander en rye kan definieer.

Stap 8: Gevolgtrekkings

Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings
Gevolgtrekkings

Ek dink ek was suksesvol in hierdie eerste benadering van my projek. Ek kan 16 RGB -LED's beheer met min hulpbronne en beperkings. Dit is moontlik om elke LED afsonderlik te beheer en die gewenste volgorde te skep.

Toekomstige werk:

As ek positiewe terugvoer van mense ontvang, kan ek hierdie idee verder ontwikkel en 'n volledige DIY -elektroniese kit maak, met gedrukte stroombane en monteerinstruksies.

Vir my volgende weergawe sal ek: -Verander die mikrobeheerder in een met ADC -Verander die MCP23016 vir 'n ander soort in -parallel -uitgang wat meer stroom van LED's kan laat sak -Maak oopbronsagteware om met die mikrobeheerder te kommunikeer en beheer die LED's -Ontwikkel die kommunikasie tussen verskeie mikrobeheerders.

Het u enige voorstel of vraag? Of laat 'n opmerking!

Finalis in Let It Glow!

Aanbeveel: