Sadržaj:

Interaktivno ambijentalno svjetlo: 8 koraka
Interaktivno ambijentalno svjetlo: 8 koraka

Video: Interaktivno ambijentalno svjetlo: 8 koraka

Video: Interaktivno ambijentalno svjetlo: 8 koraka
Video: Passat 8 2020 Scheinwerfer Einstellen Light settings Passat 8 2020 Štelovanje svjetla passat 8 2020 2024, Srpanj
Anonim
Interaktivno ambijentalno svjetlo
Interaktivno ambijentalno svjetlo
Interaktivno ambijentalno svjetlo
Interaktivno ambijentalno svjetlo
Interaktivno ambijentalno svjetlo
Interaktivno ambijentalno svjetlo

Ovo je moje prvo uputstvo! Molim vas da me podnesete dok se borim da napišem pravi engleski. Ispravite me slobodno! Ovaj sam projekt započeo neposredno nakon što je počelo natjecanje 'Neka svijetli'. Volio bih da sam napravio mnogo više i završio ono što sam želio napraviti. Ali između škole i posla nije mi ostalo toliko vremena koliko sam želio. Ipak, ovdje ostavljam izvještaj svojih eksperimenata kao pouku, tako da svatko može pokušati napraviti ono što sam učinio. Ovo uputstvo nije namijenjeno da služi kao vodič i poučava kako se pravi ovaj izmišljotina. To nije vodič za početnike u elektronici. To je više kao dijeljenje jedne ideje i cilja koji želim slijediti. Ako ste početnik/potpuni neuki u elektronici i želite napraviti ovako nešto, žao mi je! Ali možemo pokušati uvijek vam pomoći. Pogledajte posljednji korak. Već smo vidjeli mnoge projekte ambijentalnog svjetla. Većina njih koristi RGB LED diode: - za osvjetljavanje sobe jednom bojom, postavljanje atmosfere u skladu s vašim raspoloženjem - za stvaranje svjetlosnih efekata u boji televizora/monitora ili zvuka. Postoji čak nekoliko na web stranici instructables.com Vezano: DIY sustavi ambijentalnog osvjetljenjaLight Bar Ambient LightingIzgradnja vlastitih ambijentalnih rasvjetnih boja u boji Koristeći ovo natjecanje kao izliku, započeo sam projekt koji mi je već neko vrijeme na umu. Uvijek sam želio napraviti nešto slično ovim ambijentalnim svjetlima i napuniti zidove u svojoj sobi RGB LED diodama. No, ako odete korak dalje, učinite sve i svakog od njih pod kontrolom. Nadamo se da će ovaj projekt rezultirati elektroničkim kompletom otvorenog koda za ljubitelje i elektroničke izvođače, koji će omogućiti hakiranje hardvera/softvera i senzornu integraciju. Evo mali pregled onoga što sam napravio:

Korak 1: Istraživanje ideje

Želim biti u mogućnosti napuniti zidove svoje sobe RGB LED diodama, kontrolirajući boju i svjetlinu svakog LED -a. Koristit ću mikrokontroler radi lakše upotrebe i fleksibilnosti. Nažalost, ne mogu kontrolirati stotine LED dioda s nekoliko pinova dostupnih na mikrokontrolerima. Čak bi bilo teško kodirati kontrolu toliko LED dioda. Pa sam odlučio da sve LED diode podijelim na nekoliko manjih šipki, a za svaku traku mogu koristiti mikrokontroler. Tada bih koristio komunikacijske sposobnosti mikrokontrolera za razmjenu informacija između njih. Ove informacije mogu biti boja i svjetlina LED dioda, uzorci/nizovi boja i senzorne informacije. Za svaku traku odlučio sam koristiti 16 RGB LED dioda. To rezultira ni prevelikom ni malom trakom. Na ovaj način koristim prihvatljiv broj resursa za svaki LED, smanjujući troškove za svaku traku. Ipak, 16 RGB LED dioda su 48 LED (3*16 = 48) za upravljanje mikrokontrolerom. S obzirom na troškove, odlučio sam koristiti najjeftiniji mikrokontroler koji sam mogao koristiti. To znači da će mikrokontroler imati samo do 20 I/O pinova, nedovoljno za 48 LED dioda. Ne želim koristiti charlieplexing ili neku vrstu pogona s razdjelnikom vremena, budući da je cilj projekta osvjetljavanje prostorije. alternativa na koju bih mogao pomisliti je korištenje neke vrste zaključanog registra pomaka! Nastavak:- Napravite i interaktivno ambijentalno osvjetljenje- Napravite standardnu traku s LED diodama koje se mogu kontrolirati- Mogućnost povezivanja nekoliko šipki za popunjavanje prostorije- Dopustite prilagodbu/konfiguraciju korisnika i senzornu integraciju

Korak 2: Hardver

Hardver
Hardver
Hardver
Hardver

Kao što je rečeno u prethodnom koraku, želim napraviti nekoliko šipki za osvjetljavanje jedne prostorije. Ovo dovodi u obzir pitanje troškova. Pokušat ću učiniti svaku traku najisplativijim mogućim načinom. Mikrokontroler koji sam koristio bio je AVR ATtiny2313. Ovi su prilično jeftini i nekoliko sam ležao. ATtiny2313 također ima jedno univerzalno serijsko sučelje i jedno USART sučelje koje će se dobro iskoristiti u sljedećim koracima. Imao sam i tri MCP23016 - I2C 16bit I/O port ekspandera koji leže uokolo, samo pravo! Koristio sam svaki proširivač portova za kontrolu jedne boje od 16 LED dioda. LED diode … Nažalost, bile su najjeftinije što sam mogao pronaći. Oni su 48 crvenih, zelenih i plavih ~ 10000mcd 5 mm s kutom od 20 stupnjeva. To zasad ne bi trebalo biti važno, jer je ovo samo jedan prototip. Unatoč ovoj činjenici, rezultat je prilično lijep! Radim na mikrokontroleru na 8 MHz. I2C sabirnica radi na 400 kHz. Frekvencija uključivanja LED dioda je oko 400 Hz. Na ovaj način, ako sam sposoban upravljati 48 LED dioda, a da to ne pomaknem do krajnjih granica, kasnije ću ostaviti mjesta za još!

Korak 3: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

Nakon projektiranja sklopa, ugradio sam ga u nekoliko ploča, u svrhu izrade prototipa. Nakon nekoliko sati rezanja žica i sastavljanja kruga, dobio sam ovaj rezultat: Jedna ogromna ploča s 48 LED dioda i tona žice!

Korak 4: Kontrola?

Kontrolirati?
Kontrolirati?

Ovo je najzahtjevniji dio projekta. Htio sam učiniti jedan algoritam upravljanja dovoljno generičkim za rukovanje uzorcima/sekvencama, a također i za kontrolu svjetline i boje svake LED -ice. Za kontrolu LED -a moram poslati na MCP23016 jedan okvir od 4 bajta (1 bajt = 8 bita). Jedan bajt s adresom IC dopisnika u boji, 1 bajt s naredbom "write" i 2 bajta s vrijednošću od 16 bita (LED). IC je spojen na LED diode kao "umivaonik", što znači da će jedna logička vrijednost 0 na pinu osvijetliti LED. A sada izazovan dio, kako napraviti PWM kontrolu za 48 LED dioda? Proučimo PWM za jednu LED! PWM objašnjeno na Wikipediji. Ako želim svjetlinu LED -a na 50%, moja PWM vrijednost je 50%. To znači da bi LED dioda u jednom razdoblju trebala biti uključena u isto vrijeme kao i isključena. Uzmimo period od 1 sekunde. PWM od 50% znači da je u ovoj 1 sekundi vrijeme uključivanja 0,5 sekundi, a vrijeme isključivanja 0,5 sekundi. PWM od 80%? Isključeno 0,2 sekunde, uključeno 0,8 sekundi! U digitalnom svijetu: U razdoblju od 10 ciklusa takta, 50% znači da je LED uključena za 5 ciklusa, a za još 5 ciklusa LED je isključena. 20%? 2 ciklusa uključena, 8 ciklusa isključena. 45%? Pa, ne možemo stvarno dobiti 45%… Budući da je razdoblje u ciklusima, a mi imamo samo 10 ciklusa, možemo podijeliti PWM samo u koracima od 10%. To znači da bi evolucija iglice trebala biti, za 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Ili čak 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; U programiranju možemo napraviti ovaj slijed uključivanja i isključivanja niza. Za svaki ciklus izlazimo na pin vrijednost indeksa kada je ciklus bio. Jesam li dosad imao smisla? Ako želimo da LED0 50%, a LED1 20%, možemo dodati oba niza. Za pogon pina LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Za pogon pina LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Kao rezultat LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Ispisujući ovaj niz brojeva u IC ekspanderu porta, dobili bismo LED0 sa 50% svjetline i LED1 s 20% !! Jednostavno za 2 LED diode, zar ne? Sada moramo ovo napraviti za 16 LED dioda, za svaku boju! Za svaki od ovih nizova imamo kombinaciju svjetline za svaku boju (16 LED) Svaki put kad želimo drugu kombinaciju boja, moramo promijeniti ovaj niz.

Korak 5: Olakšajte

Olakšavajući!
Olakšavajući!
Olakšavajući!
Olakšavajući!

Prethodni korak je previše posla za izradu jednostavnog slijeda … Pa sam odlučio napraviti program u kojem u svakom koraku niza izgovaramo boje svake LED diode i dobivamo tri niza koraka. Ovaj sam program napravio u LabViewu zbog vremenskih ograničenja.

Korak 6: Prvi pokusi

Prvi pokusi
Prvi pokusi

Učitavajući nekoliko koraka u mikrokontroler i dobivamo nešto poput ovoga: Žao mi je zbog loše kvalitete videozapisa! Definirao sam maksimalni broj koraka u nizu na 8 i ograničio PWM na 20% skokova. Ova se odluka temelji na vrsti kontrole koju koristim i koliko EEPROM -a ima ATtiny2313. U ovim sam eksperimentima pokušao vidjeti kakve efekte mogu napraviti. Moram reći da sam zadovoljan rezultatom!

Korak 7: Kontrola u stvarnom vremenu

Kontrola u stvarnom vremenu
Kontrola u stvarnom vremenu
Kontrola u stvarnom vremenu
Kontrola u stvarnom vremenu
Kontrola u stvarnom vremenu
Kontrola u stvarnom vremenu

Kao što je spomenuto u prethodnim koracima, želim komunicirati sa svim mikrokontrolerima koji upravljaju LED diodama u mojoj sobi. Stoga sam koristio dostupno USART sučelje u ATtiny2313 i povezao ga s računalom. Također sam napravio program u LabViewu za kontrolu LED trake. U ovom programu mogu reći mikrokontroleru koliko je dug niz, boja svake LED i vrijeme između koraka u nizu. U sljedećem videu ću pokazati kako mogu promijeniti boju LED dioda i definirati sekvence.

Korak 8: Zaključci

Zaključci
Zaključci
Zaključci
Zaključci
Zaključci
Zaključci
Zaključci
Zaključci

Mislim da sam bio uspješan u ovom prvom pristupu svog projekta. Mogu kontrolirati 16 RGB LED dioda s malo resursa i ograničenja. Moguće je kontrolirati svaku LED diodu zasebno, stvarajući bilo koji željeni slijed.

Budući posao:

Ako dobijem pozitivne povratne informacije od ljudi, mogao bih dodatno razviti ovu ideju i izraditi potpuni komplet elektronike za DIY, s tiskanim pločicama i uputama za montažu.

Za moju sljedeću verziju ću: -Promijeniti mikrokontroler na jedan s ADC -om MCP23016 za neku drugu vrstu serijskog paralelnog izlaza koji može potopiti više struje iz LED dioda -Napraviti softver otvorenog koda za komunikaciju s mikrokontrolerom i upravljati LED diodama -Razviti komunikaciju između nekoliko mikrokontrolera.

Imate li neki prijedlog ili pitanje? Ili ostavite komentar!

Finalistica Let It Glow!

Preporučeni: