Sisukord:
- Samm: idee uurimine
- Samm: riistvara
- 3. samm: kokkupanek
- 4. samm: kontroll?
- Samm: tehke see lihtsaks
- 6. samm: esimesed katsed
- Samm: reaalajas juhtimine
- 8. samm: Järeldused
Video: Interaktiivne ümbritsev valgus: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
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
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
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?
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
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
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
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
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:
Ümbritsev LED -seinakell: 11 sammu (piltidega)
Ümbritsev LED -seinakell: Hiljuti olen näinud paljusid inimesi ehitamas tohutuid LED -maatriksiid, mis näevad täiesti ilusad välja, kuid need koosnesid kas keerukast koodist või kallitest osadest või mõlemast. Nii et ma mõtlesin ehitada oma LED -maatriksi, mis koosneb väga odavatest osadest ja väga
Tehke oma ümbritsev valgustus Raspberry Pi Zero abil: 5 sammu (piltidega)
Tehke oma ümbritsev valgustus Raspberry Pi Zero abil: Selles projektis näitan teile, kuidas ühendada Raspberry Pi Zero paari täiendava osaga, et lisada telerile ümbritsev valgusefekt, mis parandab vaatamiskogemust. Alustame
Programmeeritav ümbritsev valgus välise ekraani jaoks: 4 sammu
Programmeeritav välisvalgustus välise ekraani jaoks: see projekt aitab teil seadistada välise monitori või teleri jaoks ümbritsevat valgust, mis võimaldab teil järgmisi funktsioone juhtida mis tahes seadmega, millel on veebibrauser ja mis on ühendatud teie ruuteriga. LED -värv Vilkuv sagedus, mis annab DJ -efekti
Interaktiivne puutevaba valgus: 7 sammu (piltidega)
Interaktiivne puutevaba valgus: Tere kõigile! Tahaksin siin jagada projekti, millega olen tegelenud. Sain inspiratsiooni katsetada mahtuvusliku puutetundlikkusega oma ülikooli projekti kaudu. Sain selle tehnoloogia kohta teada juhendite kaudu ja kasutasin asju, mida ma õppisin
Vana teleri ümbritsev LED -valgus koos Kodi: 7 sammu (piltidega)
Vana teleri ümbritsev LED -tuli koos Kodi -ga: see on õpetlik väikese eelarvega ümbritseva valguse kohta. Ma kasutan Kodi jaoks Banana pi, kuna see on kiirem, kuid saate selle lihtsalt Raspberry pi -sse installida