Sisällysluettelo:

Interaktiivinen ympäristön valo: 8 vaihetta
Interaktiivinen ympäristön valo: 8 vaihetta

Video: Interaktiivinen ympäristön valo: 8 vaihetta

Video: Interaktiivinen ympäristön valo: 8 vaihetta
Video: MITEN TYTÖT KÄY SALILLA | SKETSI 2024, Marraskuu
Anonim
Interaktiivinen ympäristön valo
Interaktiivinen ympäristön valo
Interaktiivinen ympäristön valo
Interaktiivinen ympäristön valo
Interaktiivinen ympäristön valo
Interaktiivinen ympäristön valo

Tämä on ensimmäinen ohjeeni! Ole kärsivällinen, kun kamppailen kirjoittaakseni asianmukaista englantia. Korjaa rohkeasti! Aloitin tämän projektin heti Let it glow -kilpailun alkaessa. Toivon, että olisin tehnyt paljon enemmän ja saanut päätökseen sen, mitä halusin tehdä. Mutta koulun ja työn välillä minulla ei ole ollut niin paljon aikaa kuin olisin halunnut. Jätän kuitenkin raportin kokeistani ohjeelliseksi, jotta kuka tahansa voi yrittää tehdä sen, mitä tein. Tämän ohjeen ei ole tarkoitus olla oppaana ja opettaa tekemään tämä laite. Se ei ole opas elektroniikan aloittelijoille. Se on enemmän kuin yhden ajatuksen ja tavoitteen jakaminen, jota haluan saavuttaa. Jos olet aloittelija/täysin tietämätön elektroniikasta ja haluat tehdä jotain tällaista, olen pahoillani! Mutta voimme yrittää aina auttaa sinua. Katso viimeinen vaihe. Olemme nähneet jo monia ympäröivän valon projekteja. Useimmat niistä käyttävät RGB -LED -valoja: - Valaisevat huoneen yhdellä värillä ja luovat tunnelman mukaisen tunnelman. - Valotehosteiden luominen television/näytön tai äänen väreistä. Instrukctables.comissa on jopa muutamia aiheeseen liittyviä. DIY Ambient Light Systems Light Light Ambient Lighting Omien ympäristön värivalopalkkien rakentaminen Tämän kilpailun tekosyynä aloitin projektin, joka on ollut mielessäni jo jonkin aikaa. Olen aina halunnut tehdä jotain samanlaista kuin nämä ympäristön valot ja täyttää huoneeni seinät RGB -LED -valoilla. Mutta kun otat askeleen pidemmälle, teet kaikki ja jokainen niistä hallittavissa. Tämän projektin tuloksena on toivottavasti avoimen lähdekoodin elektroniikkapaketti harrastajille ja elektroniikan harrastajille, mikä mahdollistaa laitteiston/ohjelmiston hakkeroinnin ja aistien integroinnin. Tässä pieni esikatselu tekemästäni:

Vaihe 1: Idean tutkiminen

Haluan pystyä täyttämään huoneeni seinät RGB -LED -valoilla, jotka säätelevät kunkin ledin väriä ja kirkkautta. Valitettavasti en voi ohjata satoja LED -valoja muutamilla mikrokontrollereissa olevilla nastoilla. Olisi jopa vaikeaa koodata niin monien LEDien ohjausta, joten päätin jakaa kaikki LEDit useisiin pienempiin palkeihin ja käyttää jokaista palkkia mikrokontrollerilla. Sitten käyttäisin mikro -ohjaimien viestintäominaisuuksia tietojen jakamiseen niiden välillä. Nämä tiedot voivat olla LEDien väri ja kirkkaus, kuviot/värisarjat ja aistitiedot. Jokaisessa palkissa päätin käyttää 16 RGB -LEDiä. Tämä johtaa ei liian suureen eikä pieneen palkkiin. Tällä tavalla käytän hyväksyttävää määrää resursseja jokaista lediä varten, mikä vähentää kunkin palkin kustannuksia. 16 RGB -LEDiä on kuitenkin 48 LEDiä (3*16 = 48), joita mikro -ohjain voi hallita. halvin mikrokontrolleri mitä voisin käyttää. Tämä tarkoittaa, että mikrokontrollerissa on vain 20 I/O -nastaa, jotka eivät riitä 48 LED -valolle. En halua käyttää charlieplexing -laitetta tai jonkinlaista ajanjakoa, koska projektin tavoitteena on valaista huone. vaihtoehto, jota voisin ajatella, on käyttää jonkinlaista lukittua siirtorekisteriä! Jatkuu:- Luo ja vuorovaikutteinen ympäristön valo- Luo vakiopalkki ohjattavia LED-valoja- Mahdollisuus yhdistää useita palkeja huoneen täyttämiseksi- Salli käyttäjän mukautus/kokoonpano ja aistien integrointi

Vaihe 2: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto

Kuten edellisessä vaiheessa sanottiin, haluan tehdä useita palkeja yhden huoneen valaisemiseksi. Tämä tuo mieleen kustannuskysymyksen. Yritän tehdä jokaisesta tangosta kustannustehokkaimman mahdollisen tavan. Käytetty mikro -ohjain oli AVR ATtiny2313. Nämä ovat melko halpoja ja minulla oli muutama makaamassa. ATtiny2313: ssa on myös yksi universaali sarjaliitäntä ja yksi USART -liitäntä, jotka tulevat hyväksi seuraavissa vaiheissa. Minulla oli myös kolme MCP23016 - I2C 16 -bittistä I/O -portin laajenninta, aivan oikein! Käytin jokaista portin laajenninta yhden LED -värin ohjaamiseen. LEDit … Valitettavasti olivat halvimmat mitä löysin. Ne ovat 48 punaista, vihreää ja sinistä ~ 10000mcd 5 mm ja 20 asteen kulmassa. Tällä ei pitäisi olla väliä, koska tämä on vain yksi prototyyppi. Tästä tosiasiasta huolimatta lopputulos on erittäin hyvä! Käytän mikrokontrolleria 8 MHz: llä. I2C -väylän kellotaajuus on 400 kHz. LED -kytkentätaajuus on noin 400 Hz. Tällä tavalla, jos pystyn ajamaan 48 LEDiä ilman, että painan sitä äärimmilleen, varaan lisää myöhemmin!

Vaihe 3: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Piirin suunnittelun jälkeen rakensin sen useisiin leipälevyihin prototyyppitarkoituksiin. Useiden tuntien johtojen leikkaamisen ja piirin kokoamisen jälkeen sain seuraavan tuloksen: Yksi jättiläinen leipälauta, jossa on 48 LEDiä ja tonnia lankaa!

Vaihe 4: Ohjaus?

Ohjaus?
Ohjaus?

Tämä on hankkeen haastavin osa. Halusin tehdä yhden ohjausalgoritmin, joka on riittävän yleinen kuvioiden/sekvenssien käsittelyyn ja jokaisen LED -valon kirkkauden ja värin hallintaan. (1 tavu = 8 bittiä). Yksi tavu värin vastaavan IC -osoitteen osoitteella, 1 tavu komennolla "write" ja 2 tavua 16 bitin (LED) arvolla. IC on kytketty LEDiin "pesualtaana", eli yksi logiikka -arvo 0 nastassa sytyttää LED. Ja nyt haastava osa, kuinka tehdä PWM -ohjaus 48 LEDille? Tutkitaan PWM yhdelle LEDille! PWM selitti @ Wikipedia. Jos haluan, että LED -valon kirkkaus on 50%, PWM -arvo on 50%. Tämä tarkoittaa, että LED -valon pitäisi olla yhtä aikaa yhtä kauan kuin pois päältä. Otetaan 1 sekunnin jakso. PWM 50% tarkoittaa, että tässä 1 sekunnissa käynnistymisaika on 0,5 sekuntia ja sammutusaika 0,5 sekuntia. PWM 80%? 0,2 sekuntia pois päältä, 0,8 sekuntia päällä! Helppoa, eikö? Digitaalimaailmassa: Kymmenen kellosyklin aikana 50% tarkoittaa, että LED -valo palaa viiden jakson aikana ja vielä 5 jakson ajan. 20%? 2 sykliä päällä, 8 sykliä pois päältä. 45%? No, emme voi saada 45%… Koska jakso on jaksoissa ja meillä on vain 10 sykliä, voimme jakaa PWM: n vain 10%: n askelin. Tämä tarkoittaa, että tapin kehityksen pitäisi olla 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Tai jopa 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Ohjelmoinnissa voimme tehdä tämän matriisin kytkemisen päälle ja pois. Jokaiselle kierrokselle, jonka tuotamme nastalle, indeksin arvo oli sykli. Oliko minulla järkeä tähän mennessä? Jos haluamme tehdä LED0 50%ja LED1 20%, voimme lisätä molemmat taulukot.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED1 -nastan ohjaamiseen: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Tuloksena LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Jos annamme tämän numerosarjan portinlaajennukseen IC, saisimme LED0: n 50%: n kirkkauden ja LED1: n 20%: n !! Yksinkertainen 2 LEDille, eikö? Nyt meidän on tehtävä tämä 16 LEDille, jokaiselle värille! Jokaiselle näistä matriiseista meillä on yhdistelmä kirkkautta jokaiselle värille (16 LEDiä) Joka kerta, kun haluamme toisen väriyhdistelmän, meidän on muutettava tätä taulukkoa.

Vaihe 5: Helpota

Helppoa!
Helppoa!
Helppoa!
Helppoa!

Edellinen vaihe on liikaa työtä yksinkertaisen sekvenssin tekemiseksi … Joten päätin tehdä ohjelman, jossa kerromme kunkin LEDin värit sekvenssin yhdessä vaiheessa ja saamme vaiheen kolme matriisia. Tein tämän ohjelman LabView'ssa aikarajoitusten vuoksi.

Vaihe 6: Ensimmäiset kokeet

Ensimmäiset kokeet
Ensimmäiset kokeet

Ladataan useita vaiheita mikrokontrolleriin ja saamme jotain tällaista: Pahoittelut videoiden huonosta laadusta! Määritin jakson enimmäismäärän 8: een ja rajoitin PWM: n 20% hyppyihin. Tämä päätös perustuu käyttämääni ohjaukseen ja siihen, kuinka paljon EEPROM ATtiny2313: lla on. Näissä kokeissa yritin nähdä, millaisia vaikutuksia voisin tehdä.

Vaihe 7: Reaaliaikainen ohjaus

Reaaliaikainen ohjaus
Reaaliaikainen ohjaus
Reaaliaikainen ohjaus
Reaaliaikainen ohjaus
Reaaliaikainen ohjaus
Reaaliaikainen ohjaus

Kuten edellisissä vaiheissa mainittiin, haluan olla yhteydessä kaikkiin huoneessani olevia LED -valoja ohjaaviin mikro -ohjaimiin. Joten käytin käytettävissä olevaa USART -liitäntää ATtiny2313: ssa ja liitin sen tietokoneeseen. Tein myös LabView -ohjelman LED -palkin ohjaamiseksi, ja tässä ohjelmassa voin kertoa mikro -ohjaimelle, kuinka pitkä on sekvenssi, kunkin LEDin väri ja sekvenssin vaiheiden välinen aika. osoittaa, kuinka voin muuttaa LEDien väriä ja määrittää sekvenssejä.

Vaihe 8: Johtopäätökset

Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät

Luulen, että onnistuin projektin ensimmäisessä lähestymistavassa. Pystyn ohjaamaan 16 RGB -LEDiä pienillä resursseilla ja rajoituksilla. Jokaista LED -valoa voidaan ohjata erikseen ja luoda haluamasi järjestys.

Tuleva työ:

Jos saan positiivista palautetta ihmisiltä, voin kehittää tätä ajatusta edelleen ja tehdä täyden DIY Electronics Kit -sarjan, joka sisältää piirilevyt ja asennusohjeet.

Seuraavassa versiossa: ohjaa LED -valoja -Kehitä tiedonsiirtoa useiden mikro -ohjaimien välillä.

Onko sinulla ehdotusta tai kysymystä? Tai jätä kommentti!

Finalisti Let It Glow!

Suositeltava: