Oglas
Prije nekoliko mjeseci, $3000 groma i munje lampica raspoloženja postala je viralna u zajednici proizvođača. Bilo je to zapanjujuće prekrasno svjetlo, ali cijena ga je ostavila nedostupnim svima koji su bili netaknuti. Ono što ćemo danas napraviti nije potpuno isto - napravit ćemo nešto praktičnije, umjesto umjetničkog djela, ali bit će mnogo svježije i prilagodljivije.
Odlučio sam izostaviti zvučnike pod pretpostavkom da vjerovatno već imate dobar par zvučnika u sobi koji biste radije koristili, a iskreno stavljanje zvučnika u žarulju je nekako čudno. Umjesto toga, dodavat ću mikrofon koji će omogućiti munje da automatski reagiraju na glasne zvukove - bilo od stvarne grmljavinske oluje ili zvučnog zapisa koji se reproducira s vašeg računala ili stereoa.
Koristit ćemo i cjelinu punih RGB neopikselnih LED (WS2812B), tako da možemo reproducirati druge boje osim bijele i imati kontrolu nad svakim pikselom.
Upozorenje: napajanje koje sam upotrijebio u ovom projektu ima vijčane stezaljke koje se spajaju na živu izmjeničnu žicu. Ako ne smatrate sigurnim da spajate utikač, osigurajte da kupite potpuno zatvoreni izvor napajanja. U najmanju ruku, PSU trebate priložiti unutar sigurnog okvira za projekte.
Korak 0: Uvod
Slijedi demo videozapis gotovog projekta. Do sada sam implementirao nekoliko različitih načina, od standardne munje do tropskog kiselog oblaka i lampice raspoloženja u boji koja se može odabrati iz daljinskog upravljača.
Cijeli kod i potrebne biblioteke dostupni su za preuzimanje s ovo Githubovo spremište.
1. korak: trebat će vam
- WS2812B pramen, obično cijene oko 50 dolara za 5 metara. Ne brinite se ako imate drugu vrstu karata neopiksela, to gotovo sigurno podržava FastLED sučelja, ali vaše ožičenje može biti drugačije (možda ćete uz signal trebati i liniju za sinkronizaciju, za primjer).
- 5V, 10A + napajanje - Kupio sam nekih 15A jedinica po 11 dolara. Oni uzimaju izmjenični ulaz 120-240V i stvaraju snažan 5V izlaz koji će biti više dovoljan za napajanje svih naših piksela pri punoj svjetlini i Arduino.
- Električno kabliranje, utikač i inline sklopka
- Ograđenost projekta
- Dva Arduinosa. 10 klonova Funduino $ 10 su u redu. Drugi je potreban za daljinsko upravljanje, dok prvi kontrolira glavnu logiku i LED.
- Dva 2.2k (ili otprilike) Ohmova otpornika - točna vrijednost nije toliko bitna, oko 1,5k do 47k bi trebalo raditi.
- daska za kruh
- TSOP4838 IR prijemnik
- IR daljinski - kupio sam skupno za otprilike 2 dolara, ali bilo koji daljinski upravljač trebao bi raditi s modifikacijama koda.
- Veliki modul mikrofona
- Ostružite drvo od MDF-a za rezanje baze i slagalicu.
- Polistirenski materijali za pakiranje / kutije za umetanje.
- Punjenje jastučića od polipropilenskog pamuka. Izvukla sam se više nego dovoljno iz nekoliko strašnih starih jastuka. Ako to nije opcija, trebali biste moći kupiti nešto novo za otprilike 10 dolara ili upotrijebiti još jeftiniju pamučnu vunu. Pokušao sam s obojicom - pamučna vuna trebala je više posla da je izgnječim i nije bila tako pahuljasta, ali na prstima, uspjet će.
- Lanac i kuke za objesiti oblak - treba izdržati više od 5 kg.
- Pištolj za ljepilo s postavkom na niskoj temperaturi
- Sprej s ljepilom - lakše ćete nalijepiti nadev na svoj oblak, ali pištolj s ljepilom također može raditi.
Ukupni trošak je oko 100 USD, ne uključujući alate, ali većinu toga sam pregledao po kući. Sve su elektroničke komponente uobičajeno dostupne; mikrofon se može naći u kompletu sa senzorima ili ih se može kupiti pojedinačno.
Korak 2: Izrežite bazu
Izrežite grubu podlogu iz komada otpadaka MDF pomoću ubodne pile - očigledan je točan oblik, ali iz nekog razloga mi je oblak oblikovan bubrežnim zrnima. Na ovo ćemo pričvrstiti neke kuke za vješanje, ali u suprotnom to samo pruža čvrste osnove za izgradnju. Središnji prostor bit će rezerviran za elektroniku, PSU i za predaju lanca, pa osigurajte da imate dovoljno prostora da uz svoje kuke okružite barem kućište projekta.
Korak 3: Sloj na stiropor
Ovo je najteži i najkreativniji korak, ali zapravo samo stvaramo nešto čvrsto i rod-sorta u obliku oblaka zalijepiti LED traku na. Ljepite velike komade polistirena koji se pakiraju na podlogu (i ispod nje) primjenom niske topline vašeg pištolja za ljepilo. Ako nemate nisku postavku, isključite toplotni pištolj i ostavite ga da se malo ohladi prije nego što pokušate ljepiti. Ako je temperatura previsoka, jednostavno ćete se rastopiti kroz ambalažni materijal.
Osigurajte da je svaki komad čvrste prije lijepljenja sljedećeg i najbolje je nalijepiti više nego dovoljno.
Opet, sjetite se ostaviti dovoljno veliku šupljinu unutar oblaka da stane elektronike, lanca i kuka.
4. korak: izrezujte 3D oblačni oblik
Koristite nož za rezbarenje kako biste uredili svoj oblak zaokruživanjem uglova i rezanjem nepotrebnog materijala, sve dok ne postignete grubi oblik 3D oblaka. To zapravo i nije važno koliko je ovo grubo jer ćemo kasnije sve pokrivati u nadjevu - lako možete sakriti pogreške.
Korak 5: Popravite kuke, pospremite
Na kraju, pričvrstite tri ili četiri kuke na bazu MDF-a, iz svakog kuta šupljine oblaka. Morat ćete izbušiti malu probušnu rupu jer je MDF teško zabiti se u nju.
Također sam svemu dao jednostavan premaz bijele boje u spreju, kako bih osigurao jednoliku bazu boja, ali nisam siguran da je zapravo potrebno.
Korak 6: Ljepljive LED trake
Prije nego što počnete nanositi ljepilo na LED-ove, započnite s novom trakom ili računajte koliko LED-ova imate ukupno - morat ćete utvrditi koliko ste ih koristili kasnije u koraku programiranja. Izrežite malu rupu na boku vašeg oblaka i provucite se kroz žice koje čine početak vaše LED trake u oblaku šupljine. Budite vrlo oprezni da krenete s pravilnog kraja - LED trake su osjetljive na smjer, pa osigurajte da signalne strelice usmjeravaju prema šupljini.
Radeći polako, zalijepite LED piksele na polistirensku bazu u kružnom uzorku, prije nego što povučete traku prema dolje da pokrijete donju stranu. Opet - ne trebate biti savršeni ovdje, jer kad smo sve razgradili i pomirili ga s nadevima, svejedno izgleda prilično zapanjujuće.
Koristila sam ukupno 85 LED-ova, ili nešto više od 2,5 m, dvaput sam opkolila glavno tijelo i upotrijebila jedan niz LED-ova s donje strane.
Korak 7: Dijagram ožičenja
Ožičenje je složeno, ali lako se raščlaniti na dijelove.
Prvo uključite i osigurajte izvor napajanja, po mogućnosti u zasebnom projektnom slučaju. Neću vas predavati o sigurnosti živih izmjeničnih žica, pa pretpostavljam da možete rukovati s ovim dijelom, a vi od njega imate 5V i GND liniju.
VAŽNO: kada programirate i testirate Arduino, 5V vašeg napajanja treba ostati izoliran od Arduinovog ( No, GND-ovi su svi spojeni) - on bi trebao napajati samo LED traku, dok Arduino koristi isporučeni 5V USB. Kad završite s programiranjem, USB treba odspojiti i više neće pružati 5V Arduinu - u ovom trenutku trebali biste spojiti 5V iz vašeg napajanja na 5V šinu s lijeve strane maketa.
Započnite spajanjem tla i 5V pinova iz svakog Arduino-a na lijevu bočnu šinu trake. Dijelit će isti izvor napajanja, bilo da je to vanjski PSU koji imamo ili je USB spojen na jedan od njih.
Zatim dovršite odjeljak o I2C ožičenju - to omogućuje našim Arduinosima da komuniciraju. Podignite igle A4 iz oba Arduinosa u jedan red na ploči, a zatim spojite otpornik od 2,2 k iz tog reda na 5V vodilicu. Ponovite za A5, povezujući ih u zasebnom redu, s još 2,2k otpornikom na 5V.
Sljedeće spojite IR prijemnik - provjerite konfiguraciju iglica ako imate drugi model, ali u osnovi bi signalni pin trebao ići na D11 na jednom Arduinu. Prenesite thundercloud_ir_receiver.ino skica za ovaj Arduino (svi kodovi ovdje), a zatim iskopčajte USB jer nam više ne treba.
Na drugom Arduinu spojite Podaci u signalni pin od početka LED trake do D6. GND vaših LED dioda trebao bi biti zajednički sa svim Arduinosima, no u tom će trenutku 5V doći izravno iz PSU-a.
Također na ovom Arduinu uključite modul mikrofona u A0. Prenesite drugu thundercloud.ino skicu, i držite USB priključen za sada tijekom uklanjanja pogrešaka. Započnite s promjenom oznake NUM_LEDS varijabla na odgovarajući način.
Korak 8: Ljepilo na nadjev
Kao posljednji korak, ljepilo na vaše stvari. Ovdje nema neke posebne tehnike - samo prskajte oblak slojem ljepila i zgrabite pregršt nadeva. Lakše je raditi s nadjevom ako ste ga već ošišali kako biste povećali površinu.
Ako ste koristili isti daljinac kao i ja, gumb STROBE stavlja ga u zvučno reaktivan oblačni način rada; FLASH je trostruki način boje, a FADE je lampica raspoloženja u boji blijede boje.
9. korak: Objašnjenje koda
Zašto dva Arduinosa? I programiranje infracrvenog prijemnika i knjižnica upravljačkih programa piksela WS2818B vrlo su osjetljivi na vrijeme - ako je vrijeme odgođeno, IC signal je oštećen. Dajući svakom krugu vlastiti mikrokontroler i ostavljajući im da razgovaraju preko I2C protokola, možemo osigurati da je vrijeme savršeno za svaki. Također možete pronaći zasebne IC module s ugrađenim vlastitim mikrokontrolerom, ali moje je istraživanje utvrdilo da oni zapravo koštaju više od jednostavnog Arduinovog klona i IR LED-a. Thundercloud_ir_receiever ne bi trebao zahtijevati objašnjenje, mada biste prvo trebali pročitati osnove I2C-a.
Na glavnom regulatoru thundercloud-a definiramo različite načine rada, poput ON (efekti munje nisu zvučni aktivirano), CLOUD (munja je aktivirana samo zvukom), ACID (oblak pokazuje trostruke boje) ili jednostavna jednobojna boja načina. Da biste odredili novi način rada, dodajte u enum prvo, zatim otvorite konzolu i pronađite tipku na daljinskom upravljaču kako biste je preslikali - svaki daljinski pritisak trebao bi ispisati liniju uklanjanja pogrešaka. U receiveEvent () metoda, preslikavamo te pritiske na tipku u način, pa tamo dodamo dodatnu izjavu o prebacivanju. Napokon u glavnom petlja() metodu usmjeravanja tih načina izbora do različitih funkcija prikaza.
Izvorni kod mikrofona izvorno je od Adafruit-a - Pojednostavnio sam to za naše potrebe i dodao okidač kada se čuje glasniji od prosječnog šuma.
Korak 10: Načini munje
Ekrani za munje kombiniraju tri različita tipa „munje“ kako bi se postiglo nešto dovoljno realistično ili barem ugodno za oko. Prva vrsta je pukotina(), gdje se svaki LED nakratko uključuje između 10-100ms. Druga vrsta je valjanje () - gdje svaki LED ima 10% šanse da se aktivira, a čitava se petlja ponavlja 2-10 puta, s kašnjenjem 5-100ms između svakog ciklusa. Treća vrsta je thunderburst (), koji odabire dva različita dijela trake, svaki između 10-20 LED-ova, trepće kratko od 3-6 puta. Detaljno proučite ove metode da biste vidjeli kako se aktiviraju pojedinačne LED - kotač u boji HSV koristi se u cijelom (tako da je bijela H = 0, S = 0, V = 255). Preporučam da ugađate ili pišete nove munje, a zatim ih dijelite u komentarima ako želite jedan koji vam se sviđa.
Svaki put kada se pokrene munja ili pokrene petlja, oblak nasumično bira između tri vrste munje. Napokon, a reset () metoda isključuje sva svjetla, inače će se "sjetiti" svoje prethodno stanje.
Pitanja ili problemi - javite se u komentarima i potrudit ću se pomoći. Ako imate Github račun, slobodno objavite greške ili probleme pitanja tracker umjesto toga. Ako ste napravili bilo kakve izmjene ili napisali neke nove funkcije osvjetljenja, podijelite vezu s vašim kôdom Suština ili Pastebin.
James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.