Mainos
Muutama kuukausi takaisin, $3000 ukkonen ja salama mielialalamppu meni virusperäiseksi tekijöiden yhteisössä. Se oli häikäisevän kaunis valo, mutta hintalappu jätti sen kenenkään ulottumattomiin terveellisyytensä ollessa ehjät. Se, mitä teemme tänään, ei ole täsmälleen sama - teemme jotain käytännöllisempää taideteoksen sijaan, mutta se tulee olemaan paljon viileämpi ja mukautettavampi.
Olen päättänyt jättää kaiuttimet olettamatta, että huoneessasi on todennäköisesti jo hyvä kaiutinpari, jota mieluummin käytät, ja puhujan sanoin kaiuttimen asettaminen lamppuun on omituista. Lisään sen sijaan mikrofonin, jonka avulla salama voi reagoida automaattisesti koviin ääniin - joko todellisesta ukkosta tai tietokoneesta tai stereosta toistetun ääniraidan avulla.
Aiomme käyttää myös nauhaa kokonaisia RGB Neopixel -merkkivaloja (WS2812B), jotta voimme tuottaa muita värejä kuin valkoisia ja hallita jokaista pikseliä.
Varoitus: Tässä projektissa käyttämässäni virtalähteessä on ruuviliittimet, jotka kytketään verkkovirtaan. Jos et halua johdottaa pistoketta, varmista, että ostat täysin suljetun virtalähteen. Ainakin sinun on suljettava PSU turvallisessa projektiruudussa.
Vaihe 0: Johdanto
Tässä on esittelyvideo valmiista projektista. Olen toistaiseksi ottanut käyttöön muutamia erilaisia tiloja, tavallisesta salamanvalosta trippyhappopilvään ja väriltään haalistuvaan mielivaloon, jotka voidaan valita kaukosäätimestä.
Tarvitaan täysi koodi ja kirjastot osoitteesta tämä Github-arkisto.
Vaihe 1: Tarvitset
- WS2812B-juoste, hinta on yleensä noin 50 dollaria viidestä metristä. Älä huolestu, jos sinulla on toisen tyyppinen Neopixel-juoste, sitä tukee lähes varmasti FastLED käyttöliittymä, mutta johdotus voi olla erilainen (saatat tarvita synkronointilinjan signaalin lisäksi, esimerkki).
- 5V, 10A + virtalähde - Ostin noin 15A yksikköä 11 dollarilla. Ne käyttävät 120–240 V: n vaihtovirtaa ja tuottavat mojova 5 V: n lähtö, joka riittää lisäämään kaikkien pikseliemme täyteen kirkkauteen ja Arduinon virran.
- Sähkökaapelointi, pistoke ja verkkokytkin
- Projektikotelo
- Kaksi Arduinosta. 10 dollaria Funduino-kloonit ovat hienoja. Toinen on tarpeen kaukosäätöön, kun taas ensimmäinen ohjaa päälogiikkaa ja LED-valoja.
- Kaksi 2,2 k: n (tai sen ympärillä olevaa) ohmin vastusta - tarkalla arvolla ei ole väliä niin paljon, noin 1,5 - 47 k: n pitäisi toimia.
- Leipälauta
- TSOP4838 IR-vastaanotin
- IR-kaukosäädin - Ostin irtotavarana noin 2 dollarilla, mutta kaikkien kaukosäätimien tulisi toimia koodimuutoksilla.
- Suuri mikrofonimoduuli
- Raaputa MDF-puuta leikataksesi pohjasi ja palapeli.
- Polystyreenipakkausmateriaali / laatikkoläpiviennit.
- Polypropeenipuuvillatyynyjen täyttö. Vedin enemmän kuin tarpeeksi muutamasta kauhistuttavasta vanhasta tyynystä. Jos tämä ei ole vaihtoehto, sinun pitäisi voida ostaa uutta noin 10 dollarilla tai käyttää vielä halvempaa puuvillaa. Yritin molempien kanssa - vanu tarvitsi enemmän työtä sen kiusoittamiseen, eikä se ollut niin fluffy, mutta hyppysellinen, se toimii.
- Ketju ja koukut pilven ripustamiseen - pitäisi pitää enemmän kuin 5 kg.
- Liimapistooli, jolla on alhainen lämpötila-asetus
- Suihkeliima - tällä on helpompi kiinnittää täytteitä pilveesi, mutta myös liimapistooli voi toimia.
Kokonaiskustannukset ovat noin 100 dollaria ilman työkaluja, mutta suurimman osan tästä löysin talon ympäriltä. Kaikki elektroniikan komponentit ovat yleisesti saatavilla; mikrofoni löytyy anturisarjasta tai ostaa erikseen.
Vaihe 2: Leikkaa jalusta
Leikkaa karkea pohja MDF-romukappaleesta palapelillä - tarkka muoto on tietenkin sinusta riippuvainen, mutta jostain syystä pilvi on mieleni munuaispavun muotoinen. Kiinnitämme tähän joitain koukkuja ripustettavaksi, mutta muuten se tarjoaa vain vankan perustan rakennusta varten. Keskialue on varattu elektroniikalle, PSU: lle ja ketjun luovuttamiselle, joten varmista, että sinulla on riittävästi tilaa ainakin projektikotelon sijoittamiseksi sitä ympäröiviin koukkuihin.
Vaihe 3: Kerros polystyreenillä
Tämä on vaikein ja luovin vaihe, mutta me todella luomme vain jotain vankkaa ja tavallaan-sorta pilvenmuotoinen LED-nauhan liimiseksi. Liimaa suuret polystyreenipalat pakkaamalla pohjaan (ja sen alle) käyttämällä liimapistoolisi matalaa lämpöä. Jos asetukset eivät ole alhaiset, sammuta lämpöpistooli ja anna sen jäähtyä vähän ennen kuin yrität liimata. Jos lämpötila on liian korkea, sulatat vain pakkausmateriaalin läpi.
Varmista, että jokainen pala on tukeva ennen seuraavan liimaamista, ja on parasta kiinnittää enemmän kuin ei tarpeeksi.
Muista taas jättää tarpeeksi suuri onkalo pilven sisälle, jotta se sopisi elektroniikkaan, ketjuun ja koukkuihin.
Vaihe 4: Vertaa 3D-pilvomuotoa
Käytä veistämällä veitsiä lähentääksesi pilvesi pyöristämällä kulmat ja leikkaamalla tarpeeton materiaali poispäin, kunnes olet saavuttanut karkean 3D-pilven muodon. Sillä ei ole väliä kuinka karkea tämä on, koska peitämme kaiken myöhemmin täyttöä varten - voit piilottaa virheet helposti.
Vaihe 5: Korjaa koukut, siivota
Kiinnitä lopuksi kolme tai neljä koukkua MDF-pohjaan pilven onkalon kummastakin kulmasta. Sinun on porattava pieni ohjausreikä, koska MDF on vaikea ruuvata suoraan sisään.
Annoin kaikelle myös yksinkertaisen kerroksen valkoista spraymaalia tasaisen väripohjan varmistamiseksi, mutta en ole varma, että se todella oli tarpeen.
Vaihe 6: Liimaa LED-nauhat
Ennen kuin aloitat liiman levittämisen LEDeihin, aloita joko uudesta nauhasta tai laske, kuinka monta LEDiä sinulla on - sinun on selvitettävä, kuinka monta olet käyttänyt myöhemmin ohjelmointivaiheessa. Leikkaa pieni reikä pilven puolelle ja pistä johtimien läpi, jotka muodostavat LED-nauhan alun pilvionteloon. Ole erittäin varovainen, että aloitat oikeasta päädystä - LED-nauhat ovat suunnattain herkkiä, joten varmista, että signaalin nuolet osoittavat ontelon ulkopuolelle.
Kiinnitä LED-pikselit hitaasti työskentelemällä polystyreenipohjaan pyöreällä kuviolla, ennen kuin vedät nauhan alas pohjaan peittääkseen alaosan. Jälleen kerran - sinun ei tarvitse olla täydellinen täällä, koska kun olemme levittäneet kaiken ja tukahduttaneet sen täytellä, se näyttää joka tapauksessa melko upealta.
Käytin yhteensä 85 LEDiä tai hieman yli 2,5 m, ympäröinyt runko kahdesti ja käytin yhden LED-merkkijonon alapuolella.
Vaihe 7: kytkentäkaavio
Johdotus on monimutkainen, mutta helposti jaoteltava osiin.
Ensin, kytke virtajohdot sisään ja kiinnitä, mieluiten erillisessä projektikotelossa. En aio luennoida teille elävien vaihtovirtajohtojen turvallisuudesta, joten oletan, että pystyt käsittelemään tätä osaa, ja sinulla on siitä 5 V: n ja GND-linja.
TÄRKEÄ: Arduino-ohjelmointia ja testausta varten virtalähteestä tulevan 5 V: n tulisi pysyä erillään Arduinon ( GND: t ovat kuitenkin kaikki kytkettyinä) - sen pitäisi antaa vain virtaa LED-nauhalle, kun taas Arduino käyttää 5 V: n toimitusta USB. Kun ohjelmointi on valmis, USB on irrotettava, ja se ei enää anna 5 V Arduinolle - Tässä vaiheessa sinun pitäisi kytkeä 5 V virtalähteestä 5 V kiskoon vasemmalla puolella leipälauta.
Aloita yhdistämällä maa ja 5 V: n tapit jokaisesta Arduinosta leipälevyn vasempaan reunaan. He jakavat saman virtalähteen riippumatta siitä, onko kyseessä ulkoinen PSU tai USB-liitäntä johonkin niistä.
Suorita seuraavaksi I2C-johdotusosasto - tämän avulla kaksi arduinolaistamme voivat kommunikoida. Ota A4-nastat molemmilta Arduinoksilta yhdelle riville leipälevyllä ja kytke sitten 2,2 k: n vastus kyseisestä rivistä 5 V: n kiskoon. Toista A5, yhdistämällä ne erilliselle riville toisella 2,2 k: n vastuksella uudelleen 5 V: iin.
Kytke infrapunavastaanotin seuraavaksi - tarkista pin-konfiguraatio, jos sinulla on toinen malli, mutta pohjimmiltaan signaalitapin pitäisi mennä D11: een yhdessä Arduinossa. Lataa thundercloud_ir_receiver.ino luonnos tähän Arduinoon (kaikki koodi täällä), irrota sitten USB-pistoke, koska emme enää tarvitse sitä.
Liitä toisessa Arduinossa Tiedot sisään signaalitappi LED-nauhasi alusta D6: een. LEDien GND: n pitäisi olla yhteinen kaikkien Arduinojen kanssa, mutta tässä vaiheessa 5V tulee suoraan PSU: sta.
Kytke myös tämän Arduinon mikrofonimoduuli A0-liitäntään. Lataa toinen thundercloud.ino luonnostele ja pidä USB kytkettynä toistaiseksi debugin aikana. Aloita muuttamalla NUM_LEDS muuttuva asianmukaisesti.
Vaihe 8: Liimaa tiiviste
Viimeisenä asteena liimaa täytteesi. Täällä ei ole mitään erityistä tekniikkaa - suihkuta vain pilvi liimakerroksella ja tartu kourallinen täyte päälle. Täyte on helpompaa työskennellä, jos olet jo kiusannut sitä suurentaaksesi pinta-alaa.
Jos olet käyttänyt samaa kaukosäädintä kuin minä, STROBE-painike asettaa sen äänen reaktiiviseen pilvitilaan; FLASH on trippy-väritila ja FADE on hitaasti häipyvä värillinen mielialalamppu.
Vaihe 9: Koodin selitys
Miksi kaksi Arduinosta? Sekä infrapunavastaanottimen ohjelmointi että WS2818B-pikseliohjainkirjasto ovat erittäin herkkiä ajoitukselle - jos ajoitus viivästyy, IR-signaali on vioittunut. Antamalla jokaiselle piirille oma mikro-ohjaimensa ja antamalla heidän puhua I2C-protokollan kautta, voimme varmistaa, että ajoitus on moitteeton kaikissa. Saatat löytää myös erillisiä infrapunamoduuleja, joissa on omat sisäänrakennetut mikro-ohjaimet, mutta tutkimukseni mukaan nämä todella maksavat enemmän kuin yksinkertainen Arduino-klooni ja IR-LED. Thundercloud_ir_receiever ei saisi vaatia selitystä, vaikka haluat ehkä lukea ensin I2C: n perusteet.
Ukkosäätimen pääohjaimessa määrittelemme eri toimintatilat, kuten PÄÄLLÄ (salaman vaikutukset eivät ole ääniä) aktivoitu), CLOUD (salama aktivoidaan vain äänellä), ACID (pilvi näyttää trippisiä värejä) tai yksinkertainen yksivärinen tiloissa. Määritä uusi tila lisäämällä ENUM ensin avaa sitten konsoli ja etsi kaukosäätimen painike sen kuvaamiseksi - jokaisen kaukosäätimen painikkeen tulisi tulostaa virheen rivi. vuonna receiveEvent () menetelmä, kartoitamme nuo näppäinpainallukset tilaan, joten lisää siihen lisäkytkentälauseke. Lopuksi pääasiassa silmukka () menetelmällä reititämme nämä tilavalinnat eri näyttötoimintoihin.
Mikrofonin tasoituskoodi on alun perin alkaen Adafruit - Yksinkertaistin sitä tarpeidemme mukaan ja lisäin liipaisimen, kun kuulemme keskimääräistä voimakkaampaa melua.
Vaihe 10: Salamavalot
Salamanäytöt yhdistävät kolme erityyppistä salamatyyppiä, jotta saadaan aikaan jotain riittävän realistista tai ainakin silmään miellyttävää. Ensimmäinen tyyppi on crack(), jossa jokainen LED syttyy hetkeksi välille 10-100 ms. Toinen tyyppi on liikkuvan () - jossa jokaisella LEDillä on 10% mahdollisuus aktivoitua ja koko silmukka toistetaan 2-10 kertaa, viiveellä 5-100 ms kunkin jakson välillä. Kolmas tyyppi on thunderburst (), joka valitsee kaksi erilaista nauhan osaa, joista kukin on 10-20 LEDin välillä, vilkkuu näitä osia hetkeksi 3-6 kertaa. Tutki näitä menetelmiä yksityiskohtaisesti nähdäksesi kuinka yksittäiset LEDit aktivoituvat - HSV-väripyörää käytetään kaikkialla (niin valkoinen on H = 0, S = 0, V = 255). Kehotan sinua säätämään tai kirjoittamaan uusia salamanäytöksiä ja jaa ne sitten kommentteihin, jos teet haluamasi.
Joka kerta, kun salama laukaistaan tai silmukka suoritetaan, pilvi valitsee satunnaisesti kolmen salaman tyypin välillä. Lopuksi a reset () menetelmä sammuttaa kaikki valot, muuten he muistavat edellisen tilansa.
Kysymyksiä tai ongelmia - ota yhteyttä kommentteihin ja aion tehdä parhaani auttaakseni. Jos sinulla on Github-tili, voit lähettää virheitä tai ongelmia antaa seurannan sen sijaan. Jos olet tehnyt muutoksia tai kirjoittanut joitain uusia valaistustoimintoja, jaa linkki koodiin Ydin tai pastebin.
Jamesilla on teknisen älykunnan kandidaatin tutkinto ja hän on CompTIA A + ja Network + -sertifioitu. Hän on MakeUseOfin johtava kehittäjä ja viettää vapaa-aikansa pelaamalla VR-paintballia ja lautapelejä. Hän on rakennettu tietokoneita lapsuudestaan asti.