Sisukord:

Interaktiivne ümbritsev valgus: 8 sammu
Interaktiivne ümbritsev valgus: 8 sammu

Video: Interaktiivne ümbritsev valgus: 8 sammu

Video: Interaktiivne ümbritsev valgus: 8 sammu
Video: Airtouch самой себе в домашних условиях. Коррекция окрашивания аиртач. Тонирование волос. Пошагово. 2024, November
Anonim
Interaktiivne ümbritsev valgus
Interaktiivne ümbritsev valgus
Interaktiivne ümbritsev valgus
Interaktiivne ümbritsev valgus
Interaktiivne ümbritsev valgus
Interaktiivne ümbritsev valgus

See on minu esimene õpetatav! Palun talu mind, kui ma näen vaeva õige inglise keele kirjutamisega. Parandage mind julgelt! Alustasin selle projektiga vahetult pärast konkursi „Las see helendab” algust. Ma soovin, et oleksin teinud palju rohkem ja lõpetanud selle, mida tahtsin teha. Aga kooli ja töö vahel pole mul jäänud nii palju aega, kui soovisin. Sellegipoolest jätan ma siinkohal juhendi oma katsetest, nii et igaüks võib proovida ja teha seda, mida ma tegin. See juhend ei ole mõeldud juhiseks ja õpetama, kuidas seda seadet valmistada. See ei ole juhend elektroonika algajatele. See on pigem ühe idee ja eesmärgi jagamine, mida soovin järgida. Kui olete elektroonika algaja/täielik asjatundmatu ja soovite midagi sellist teha, siis vabandage! Kuid me võime alati aidata. Vaadake viimast sammu. Oleme juba näinud palju ümbritseva valguse projekte. Enamik neist kasutab RGB -valgusdioode: - ruumi valgustamiseks ühevärvilisena, tujule vastava atmosfääri seadmiseks; - televiisori/monitori või helivärvide valgusefektide loomiseks. Instruktables.comis on isegi mõned. Seotud: DIY ümbritseva valguse süsteemidLight Bar Ambient LightingOma ümbritseva värvivalgustuse ribade ehitamine Kasutades seda võistlust ettekäändena, alustasin projekti, mis on mul juba mõnda aega meeles olnud. Olen alati tahtnud teha midagi sarnast nende ümbritsevate tuledega ja täita oma toa seinad RGB LED -idega. Kuid astudes sammu edasi, muutes kõik ja igaüks neist kontrollitavaks. Selle projekti tulemuseks on loodetavasti avatud lähtekoodiga elektroonikakomplekt harrastajatele ja elektroonilistele tinistajatele, mis võimaldab riistvara/tarkvara häkkimist ja sensoorset integreerimist. Siin on väike eelvaade sellest, mida ma tegin:

Samm: idee uurimine

Ma tahan oma ruumi seinu täita RGB LED -idega, kontrollides iga LED -i värvi ja heledust. Kasutan kasutusmugavuse ja paindlikkuse tagamiseks mikrokontrollerit. Kahjuks ei saa ma juhtida sadu LED -e väheste mikrokontrollerite tihvtidega. Oleks isegi raske kodeerida nii paljude LED -ide juhtimist. Nii otsustasin, et peaksin kõik LED -id jagama mitmeks väiksemaks ribaks ja iga riba jaoks saaksin kasutada mikrokontrollerit. Siis kasutaksin nende vahel teabe jagamiseks mikrokontrollerite suhtlusvõimalusi. See teave võib olla valgusdioodide värv ja heledus, mustrid/värvijärjed ja sensoorne teave. Iga riba puhul otsustasin kasutada 16 RGB LED -i. Selle tulemuseks ei ole liiga suur ega väike riba. Nii kasutan iga LED -i jaoks vastuvõetavat arvu ressursse, vähendades iga riba kulusid. Sellest hoolimata on 16 RGB LED -i 48 LED -i (3*16 = 48), mida mikrokontroller saab juhtida. Kulusid silmas pidades otsustasin kasutada odavaim mikrokontroller, mida kasutada saaksin. See tähendab, et mikrokontrolleril on ainult kuni 20 I/O kontakti, millest 48 LED -i jaoks ei piisa. Ma ei soovi kasutada charlieplexingut ega mingit ajajaotust, kuna projekti eesmärk on ruumi valgustada. alternatiiv, mida ma võiksin mõelda, on mingisuguse lukustatud nihkeregistri kasutamine! Jätkamine:- looge ja interaktiivne ümbritsev valgus- tehke standardne juhitavate valgusdioodide riba- võimalus ühendada ruumi täitmiseks mitu baari- lubage kasutajal kohandada/konfigureerida ja sensoorselt integreerida

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara

Nagu eelmises etapis öeldud, soovin ühe toa valgustamiseks teha mitu riba. See toob meelde kulude küsimuse. Proovin muuta iga riba võimalikult kuluefektiivseks. Minu kasutatav mikrokontroller oli AVR ATtiny2313. Need on üsna odavad ja mul oli mõni üksik. ATtiny2313 -l on ka üks universaalne jadaliides ja üks USART -liides, mida saab järgmiste sammude korral hästi kasutada. Mul oli ka kolm MCP23016 - I2C 16bit I/O pordi laiendajat, täpselt õige arv! Kasutasin iga pordi laiendajat 16 LED -i ühe värvi juhtimiseks. Valgusdioodid … Kahjuks olid need kõige odavamad, mida leida sain. Need on 48 punast, rohelist ja sinist ~ 10000mcd 5 mm 20 kraadi nurga all. See ei tohiks praegu olla oluline, kuna see on ainult üks prototüüp. Sellele vaatamata on tulemus päris kena! Käitan mikrokontrollerit sagedusel 8 MHz. I2C siinil on sagedus 400 kHz. LED -i lülitussagedus on umbes 400 Hz. Nii, kui ma olen võimeline juhtima 48 LED -i, ilma et see oleks piirini viidud, jätan ma hiljem rohkem!

3. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Pärast vooluringi kavandamist ehitasin selle prototüüpide koostamiseks mitmesse leivalauda. Pärast mitu tundi juhtmete lõikamist ja vooluringi kokkupanekut sain sellise tulemuse: Üks hiiglaslik leivaplaat 48 LED -i ja tonni traadiga!

4. samm: kontroll?

Kontroll?
Kontroll?

See on projekti kõige keerulisem osa. Tahtsin muuta ühe juhtimisalgoritmi piisavalt üldiseks mustrite/järjestuste käsitlemiseks ning ka iga LED -i heleduse ja värvi juhtimiseks. LED -ide juhtimiseks pean saatma MCP23016 -le ühe 4 -baitise kaadri (1 bait = 8 bitti). Üks bait värviga korrespondendi aadressiga, 1 bait käsuga "kirjuta" ja 2 baiti väärtusega 16 bitti (LED). IC on ühendatud LED -idega kui "valamu", mis tähendab, et üks loogiline väärtus 0 tihvtil süttib LED -i. Ja nüüd on väljakutsuv osa, kuidas teha 48 LED -i PWM -juhtimist? Uurime PWM -i ühe LED -i jaoks! PWM selgitas @ Wikipedia. Kui soovin, et LED -i heledus oleks 50%, on minu PWM -i väärtus 50%. See tähendab, et LED peaks ühe ajavahemiku jooksul olema sama kaua kui välja lülitatud. Võtame 1 -sekundilise perioodi. PWM 50% tähendab, et selle 1 sekundi jooksul on sisselülitusaeg 0,5 sekundit ja väljalülitusaeg 0,5 sekundit. PWM 80%? 0,2 sekundit väljas, 0,8 sekundit sisse lülitatud! Lihtne, eks? Digitaalmaailmas: 10 -tunnise tsükliperioodi korral tähendab 50%, et 5 tsükli jooksul põleb LED ja veel 5 tsüklit on LED välja lülitatud. 20%? 2 tsüklit sisse lülitatud, 8 tsüklit välja lülitatud. 45%? Noh, me ei saa tegelikult 45%… Kuna periood on tsüklites ja meil on ainult 10 tsüklit, saame PWM -i jagada ainult 10%sammuga. See tähendab, et tihvti areng peaks olema 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Või isegi 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Programmeerimisel saame seda massiivi sisse ja välja lülitada. Iga tsükli jaoks väljastame tihvti jaoks indeksi väärtuseks tsükli. Kas mul oli siiani mõtet? Kui tahame teha LED0 50%ja LED1 20%, saame lisada mõlemad massiivid. LED0 tihvti juhtimiseks: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED1 tihvti juhtimiseks: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; tulemuseks LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Väljendades selle numbrite jada pordi laiendaja IC -s, saaksime LED0 50% heledusega ja LED1 20% !! Lihtne kahe LED -i jaoks, eks? Nüüd peame selle tegema 16 LED -i jaoks iga värvi jaoks! Iga sellise massiivi puhul on meil iga värvi heleduse kombinatsioon (16 LED -i) Iga kord, kui soovime uut värvikombinatsiooni, peame seda massiivi muutma.

Samm: tehke see lihtsaks

Lihtsaks!
Lihtsaks!
Lihtsaks!
Lihtsaks!

Eelmine etapp on lihtsa jada tegemiseks liiga palju tööd … Nii et ma otsustasin koostada programmi, kus me ütleme iga LED -i värvid järjestuse ühes etapis ja saame kolm sammu. Tegin selle programmi LabView's ajapiirangute tõttu.

6. samm: esimesed katsed

Esimesed katsed
Esimesed katsed

Kui laadime mikrokontrollerisse mitu sammu ja saame midagi sellist: Vabandame videote halva kvaliteedi pärast! Määrasin jada maksimaalseks sammude arvuks 8 ja piirasin PWM -i 20% -lise hüppega. See otsus põhineb sellel, millist kontrolli ma kasutan ja kui palju EEPROM -i ATtiny2313 omab. Nendes katsetes proovisin näha, milliseid efekte ma saaksin teha. Pean ütlema, et olen tulemusega rahul!

Samm: reaalajas juhtimine

Reaalajas juhtimine
Reaalajas juhtimine
Reaalajas juhtimine
Reaalajas juhtimine
Reaalajas juhtimine
Reaalajas juhtimine

Nagu eelmistes sammudes mainitud, soovin suhelda kõigi minu toas LED -e juhtivate mikrokontrolleritega. Nii kasutasin ATtiny2313 -s saadaolevat USART -liidest ja ühendasin selle arvutiga. Samuti tegin LabView'is programmi LED -riba juhtimiseks. Selles programmis saan ma öelda mikrokontrollerile, kui pikk on järjestus, iga LED -i värv ja jada sammude vaheline aeg. Järgmises videos demonstreerida, kuidas ma saan muuta LED -ide värvi ja määrata järjestusi.

8. samm: Järeldused

Järeldused
Järeldused
Järeldused
Järeldused
Järeldused
Järeldused
Järeldused
Järeldused

Arvan, et olin oma projekti selles esimeses lähenemises edukas. Olen võimeline juhtima 16 RGB LED -i väheste ressursside ja piirangutega. Iga LED -i on võimalik juhtida eraldi, luues suvalise jada.

Tuleviku töö:

Kui saan inimestelt positiivset tagasisidet, võin seda ideed edasi arendada ja teha täieliku isetehtud elektroonikakomplekti koos trükkplaatide ja monteerimisjuhistega.

Järgmise versiooni puhul: juhtida valgusdioode -arendada suhtlust mitme mikrokontrolleri vahel.

Kas teil on ettepanekuid või küsimusi? Või jätke kommentaar!

Finalist Let Let Glow!

Soovitan: