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: How to Find and Manage Light and Vision Settings for Audi A6 C8 ( 2018 - now ) 2024, Novembar
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! Ovaj projekt sam započeo neposredno nakon što je počelo takmičenje 'Neka svijetli'. Voleo bih da sam napravio mnogo više i završio ono što sam hteo. Ali između škole i posla nije mi ostalo toliko vremena koliko sam želio. Ipak, ovdje ostavljam izvještaj o mojim eksperimentima kao pouku, tako da svatko može pokušati učiniti ono što sam učinio. Ovo uputstvo nije namijenjeno da služi kao vodič i poučava kako se pravi ova naprava. 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 njih na web stranici instructables.com Vezano: DIY sistemi ambijentalnog svjetlaLight Bar Ambient LightingIzgradnja vlastitih ambijentalnih rasvjetnih boja u boji Koristeći ovo takmičenje kao izgovor, započeo sam projekat 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. Ali, ako odete korak dalje, učinite sve i svakog od njih pod kontrolom. Nadamo se da će ovaj projekt rezultirati kompletom elektronike otvorenog koda za ljubitelje i elektroničke kalupere, koji će omogućiti hakiranje hardvera/softvera i senzornu integraciju. Evo malog pregleda 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 i za svaku šipku 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. Ovo 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) koje mikrokontroler može kontrolirati. 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 za koju sam se mogao sjetiti je korištenje neke vrste zaključanog registra pomaka! Nastavak:- Napravite i interaktivno ambijentalno svjetlo- Napravite standardnu traku kontrolisanih LED dioda- Mogućnost povezivanja nekoliko šipki za popunjavanje prostorije- Dozvolite prilagođavanje/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 koristiti u sljedećim koracima. Imao sam i tri MCP23016 - I2C 16 -bitni I/O port ekspander koji leže uokolo, taman koliko treba! Koristio sam svaki proširivač portova za kontrolu jedne boje od 16 LED dioda. LED diode … Nažalost, bile su najjeftinije koje sam mogao pronaći. Oni su 48 crvenih, zelenih i plavih ~ 10000mcd 5 mm sa uglom od 20 stepeni. 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 je ne poguram do krajnjih granica, kasnije ću ostaviti mjesta za još!

Korak 3: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

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

Korak 4: Kontrola?

Kontrola?
Kontrola?

Ovo je najzahtjevniji dio projekta. Htio sam napraviti jedan kontrolni algoritam dovoljno generički za rukovanje uzorcima/sekvencama, a također i za kontrolu svjetline i boje svake LED diode. Za kontrolu LED dioda moram poslati na MCP23016 jedan okvir od 4 bajta (1 bajt = 8 bita). Jedan bajt sa adresom IC dopisnika u boji, 1 bajt sa naredbom "write" i 2 bajta sa 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? Hajde da 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 vremenskom periodu 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 periodu 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 zaista dobiti 45%… Budući da je period u ciklusima i imamo samo 10 ciklusa, možemo podijeliti PWM samo u koracima od 10%. To znači da bi evolucija pina 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 niz uključivanja i isključivanja niza. Za svaki ciklus izlazimo na pin vrijednost indeksa u kojem 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 aktiviranje 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 ekspander porta, dobili bismo LED0 sa 50% svjetline i LED1 sa 20% !! Jednostavno za 2 LED diode, zar ne? Sada moramo napraviti ovo za 16 LED dioda, za svaku boju! Za svaki od ovih nizova, imamo kombinaciju svjetline za svaku boju (16 LED) Svaki put kada ž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 pravljenje jednostavnog niza … Pa sam odlučio napraviti program u kojem kažemo boje svake LED u jednom koraku niza i dobivamo tri niza koraka. Ovaj program sam napravio u LabView -u zbog vremenskih ograničenja.

Korak 6: Prvi eksperimenti

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 odluka se temelji na vrsti kontrole koju koristim i koliko EEPROM -a ima ATtiny2313. U ovim eksperimentima sam pokušao vidjeti kakve efekte mogu napraviti. Moram reći da sam zadovoljan rezultatom!

Korak 7: Kontrola u stvarnom vremenu

Kontrola u realnom vremenu
Kontrola u realnom vremenu
Kontrola u realnom vremenu
Kontrola u realnom vremenu
Kontrola u realnom vremenu
Kontrola u realnom vremenu

Kao što je spomenuto u prethodnim koracima, želim komunicirati sa svim mikrokontrolerima koji upravljaju LED diodama u mojoj sobi. Zato sam koristio dostupno USART sučelje u ATtiny2313 i povezao ga sa računarom. 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 koju željenu sekvencu.

Budući posao:

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

Za moju sljedeću verziju ću: -Promijeniti mikrokontroler na jedan sa ADC -om Promijeniti 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 kontrolišite LED diode -Razvijte komunikaciju između nekoliko mikrokontrolera.

Imate li neki prijedlog ili pitanje? Ili ostavite komentar!

Finalistkinja Let It Glow!

Preporučuje se: