Hvordan bygge en sky-lampe med lydreaktivt lys
Noen få måneder tilbake ble en $ 3000 torden- og lynstempler viral i produsentens samfunn. Det var et fantastisk vakkert lys, men prislappen forlot det ut av rekkevidden til alle med deres sunnhet intakt. Det vi gjør i dag er ikke akkurat det samme - vi gjør noe mer praktisk, i stedet for et kunstverk, men det kommer til å bli mye kjøligere og mer tilpassbart.
Jeg har valgt å utelate høyttalere med antagelsen om at du sannsynligvis allerede har et godt par høyttalere på rommet ditt, som du hellere vil bruke, og ærlig å sette en høyttaler i en lampe er litt rar. I stedet legger jeg til en mikrofon som gjør at lynet kan reagere automatisk på høye lyder - enten fra en faktisk tordenvær eller et lydspor som spilles fra din PC eller stereo.
Vi skal også bruke en streng med full RGB Neopixel-lysdioder (WS2812B), slik at vi kan gjengi farger annet enn hvitt og ha kontroll over hver piksel.
Advarsel: Strømforsyningen jeg har brukt i dette prosjektet har skrueterminaler som kobler til en strømadapter. Hvis du ikke føler deg trygg på ledningen, må du sørge for at du kjøper en helt lukket strømforsyning. I det minste må du legge til PSU-en i en sikker prosjektboks.
Trinn 0: Introduksjon
Her er en demonstrasjonsvideo av det ferdige prosjektet. Jeg har implementert noen forskjellige moduser så langt, fra standard lyn til en trippy sur sky og en fargebladende stemplampe, som kan velges fra fjernkontrollen.
Full koden og bibliotekene som trengs, er tilgjengelige for nedlasting fra dette Github-depotet.
Trinn 1: Du trenger
- WS2812B strand, typisk priset til ca $ 50 for 5 meter. Ikke bekymre deg hvis du har en annen type Neopixel-streng, det er nesten sikkert støttet av FastLED-grensesnittet, men ledningene dine kan være forskjellige (det kan hende du trenger en synkroniseringslinje i tillegg til signalet, for eksempel).
- 5V, 10A + strømforsyning - Jeg kjøpte noen 15A enheter for $ 11 hver. De tar 120-240V AC-inngang, og produserer en heftig 5V-utgang som vil være mer nok til å koble alle våre piksler med full lysstyrke, og Arduino.
- Elektrisk kabling, plug og inline bryter
- Prosjektkapsling
- To Arduinos. $ 10 Funduino kloner er fine. Den andre er nødvendig for fjernkontroll, mens den første kontrollerer hovedlogikken og lysdiodene.
- To 2,2k (eller deromkring) Ohms motstander - den nøyaktige verdien spiller ingen rolle så mye, rundt 1,5k til 47k skal fungere.
- bread~~POS=TRUNC
- TSOP4838 IR mottaker
- IR fjernkontroll - Jeg kjøpte i bulk for ca $ 2 hver, men en hvilken som helst fjernkontroll burde fungere med kodendringer.
- Stor mikrofonmodul
- Skrap MDF tre for å kutte din base fra, og et stikksag.
- Polystyrenemballasje / eskeinnlegg.
- Polypropylen bomull pute fylling. Jeg trakk mer enn nok fra noen fryktelige gamle puter. Hvis det ikke er et alternativ, bør du kunne kjøpe noe nytt for ca $ 10, eller bruke enda billigere bomullsull. Jeg prøvde med begge - bomullsullen trengte mer arbeid med å plage det ut og ikke var så mykt, men i en klemme vil det fungere.
- Kjede og kroker for å henge skyen - bør holde opp mer enn 5 kg.
- Limpistol med lav temperaturinnstilling
- Spray lim - lettere å feste fyllingen på skyen din med dette, men en limpistol kan også fungere.
Den totale kostnaden er rundt $ 100, ikke inkludert verktøy, men det meste av dette jeg scrounged fra rundt huset. Alle elektronikkomponentene er vanligvis tilgjengelige; mikrofonen kan bli funnet i et sensorsett eller kjøpt individuelt.
Trinn 2: Klipp grunnen
Klipp ut en grov base fra et stykke stykke MDF med et stikksag - den nøyaktige formen er åpenbart opp til deg, men en eller annen grunn er en sky nyrebønneformet i tankene mine. Vi knytter noen kroker til dette for å henge, men ellers gir det bare en solid base å bygge på. Det sentrale området vil bli reservert for elektronikk, PSU og å levere kjeden fra, så sørg for at du har nok plass til å plassere minst prosjekthyllen din med noen kroker som omgir den.
Trinn 3: Lag på polystyren
Dette er vanskeligste og kreative trinn, men vi skaper egentlig bare noe solid og ganske-sorta sky-formet for å lim LED-stripen på. Lim store stykker polystyrenpakning på basen (og under den), ved å bruke en lav varmeinnstilling på limpistolen. Hvis du ikke har lav innstilling, slå av varmen og la den avkjøle litt før du prøver å lim. Hvis temperaturen er for høy, smelter du bare gjennom pakkematerialet.
Forsikre deg om at hver brikke er solid før du limer den neste, og det er best å holde fast mer enn ikke nok.
Igjen, husk å forlate et stort nok hulrom inne i skyen for å passe til elektronikk, kjede og kroker.
Trinn 4: Ta en 3D Cloud Shape
Bruk en utskjæringskniv for å skru opp skyen din ved å avrunde hjørnene og kutte unødvendig materiale unna, til du har oppnådd en grov 3D-skyform. Det spiller ingen rolle om hvor grov dette er siden vi dekker alt i fylling senere - du kan enkelt skjule feil.
Trinn 5: Fest kroker, rydde opp
Til slutt fikser du tre eller fire kroker til MDF-basen, fra innsiden av hvert hjørne av hulrommet i skyen. Du må bore et lite pilothull som MDF er vanskelig å skru inn rett inn.
Jeg ga også alt et enkelt lag med hvit spraymaling for å sikre en jevn fargebase, men jeg er ikke sikker på at det egentlig var nødvendig.
Trinn 6: Lim LED Strips
Før du begynner å bruke lim til lysdiodene, kan du enten starte fra en ny stripe eller telle hvor mange lysdioder du har totalt - du må finne ut hvor mange du har brukt senere i programmeringstrinnet. Klipp et lite hull i siden av skyen din og pek gjennom ledningene som utgjør begynnelsen av LED-stripen i skyhulen. Vær veldig forsiktig med at du starter fra den riktige enden - LED-stripene er retningsfølsomme, så sørg for at signalpilen peker bort fra hulrommet.
Når du jobber sakte, holder du LED-pikslene til polystyrenbasen i et sirkulært mønster, før du trekker stripen ned til bunnen for å dekke undersiden. Igjen - du trenger ikke å være perfekt her, fordi når vi har spredt alt og smothered det med stuffing, det ser alt ut ganske imponerende likevel.
Jeg brukte totalt 85 lysdioder, eller litt over 2,5 m, etter å ha omkranset hoveddelen to ganger og brukt en enkelt streng av lysdioder på undersiden.
Trinn 7: Ledningsdiagram
Ledningene er komplekse, men kan enkelt brytes ned i seksjoner.
Først må du få strømforsyningen tilkoblet og sikret, helst i et separat prosjekthus. Jeg skal ikke fortelle deg om sikkerheten til live-ledninger, så jeg antar at du kan håndtere denne delen, og du har en 5V og GND-linje fra den.
VIKTIG: Når du programmerer og tester Arduino, må 5V fra strømforsyningen forbli isolert fra Arduino (GNDs er alle tilkoblet), men det skal bare strømme LED-stripen, mens Arduino bruker 5V som leveres over USB. Når du er ferdig med programmeringen, må USB-enheten kobles fra og ikke lenger gi 5V til Arduino - på dette tidspunktet må du koble 5V fra forsyningen til 5V-skinnen på venstre side av breadboard.
Begynn med å koble bakken og 5V-pinnene fra hver Arduino til baksiden av brødbrettet. De vil dele samme strømkilde, enten det er den eksterne PSUen vi har eller USB plugget inn i en av dem.
Deretter fullfører I2C-ledningsdelen - dette gjør det mulig for våre to Arduinos å kommunisere. Ta A4-pinnene fra begge Arduinos på en enkelt rad på brødbrettet, og koble deretter en 2,2k motstand fra den raden til 5V-skinnen. Gjenta for A5, koble dem på separat rad, med en annen 2.2k motstand igjen til 5V.
Koble IR-mottakeren neste - kontroller pin-konfigurasjonen hvis du har en annen modell, men signalstiften skal i utgangspunktet gå til D11 på en Arduino. Last opp thundercloud_ir_receiver.ino skisse til denne Arduino (all kode her), og koble fra USB da vi ikke lenger trenger det.
På den andre Arduino, koble til Data In Signalpinne fra starten av LED-stripen til D6. GND fra lysdiodene dine bør være vanlig med alle Arduinos, men på dette punktet kommer 5V direkte fra PSU.
Også på denne Arduino, koble mikrofonmodulen til A0. Last opp den andre thundercloud.ino skisse, og hold USB plugget inn for nå mens du feilsøker. Begynn med å endre NUM_LEDS variabel på riktig måte.
Trinn 8: Lim på fyllingen
Som et siste trinn lim på fyllingen din. Det er ingen spesiell teknikk her - bare sprut skyen med et lag lim og ta en håndfull fylling på. Det er lettere å jobbe med fylling hvis du allerede har tømt det for å øke overflaten, skjønt.
Hvis du har brukt samme fjernkontroll som jeg gjorde, setter STROBE-knappen den inn i lydreaktiv skymodus; FLASH er trippy fargemodus, og FADE er den langsomme fading fargemodus lampen.
Trinn 9: Kodeforklaring
Hvorfor to Arduinos? Både infrarød mottaker programmering og WS2818B pixel driveren biblioteket er svært følsomme for timing - hvis timingen er forsinket, er IR-signalet ødelagt. Ved å gi hver krets det er en egen mikrokontroller og la dem snakke over I2C-protokollen, kan vi sikre at timingen er perfekt på hver. Du kan også finne separate IR-moduler med egen mikrokontroller innebygd, men min forskning fant at de faktisk koster mer enn en enkel Arduino klon og IR LED. Thundercloud_ir_receiever burde ikke kreve forklaring, selv om du kanskje vil lese om I2C grunnleggende først.
På hoved tordenkontrollen definerer vi forskjellige driftsmoduser, for eksempel ON (lyn-effektene er ikke lydaktivert), CLOUD (lynet er bare lyd aktivert), ACID (skyen viser trippy-farger) eller enkle enkeltfargemoduser. For å definere en ny modus, legg til i enum Først åpner du konsollen og finner en fjernkontrollknapp for å kartlegge den til - hvert fjerntrykk skal skrive ut en linje med feilsøking. I receiveEvent () Metode, vi kartlegger disse tastene til en modus, så legg til en ekstra bryteretning der. Til slutt, i hovedsak løkke () Metode vi ruter de modusvalgene til forskjellige skjermfunksjoner.
Mikrofonutjevningskoden er opprinnelig fra Adafruit - jeg forenklet det til våre behov, og la en utløser når en høyere enn gjennomsnittlig støy høres.
Trinn 10: Lynmodus
Lyndisplayene kombinerer tre forskjellige “typer” av lyn for å oppnå noe som er tilstrekkelig realistisk, eller i det minste behagelig for øyet. Den første typen er sprekk(), hvor hver lysdiode er kort slått på for mellom 10-100ms. Den andre typen er rulle () - hvor hver LED har en 10% sjanse for å aktivere, og hele sløyfen gjentas 2-10 ganger, med en 5-100ms forsinkelse mellom hver syklus. Den tredje typen er thunderburst (), som plukker to forskjellige deler av stripen, hver mellom 10-20 lysdioder, blinker disse seksjonene kort 3-6 ganger. Undersøk disse metodene i detalj for å se hvordan individuelle lysdioder er aktivert - HSV-fargeskiven brukes hele tiden (så hvitt er H = 0, S = 0, V = 255). Jeg vil oppfordre deg til å justere eller skrive nye lyndisplayer, så del dem i kommentarene hvis du lager en du liker.
Hver gang lynet utløses eller sløyfen kjøres, velger skyen tilfeldig mellom de tre lynene. Endelig a tilbakestille() Metoden slår av alle lysene, ellers vil de “huske” deres tidligere tilstand.
Spørsmål eller problemer - vennligst ta kontakt i kommentarene og jeg vil gjøre mitt beste for å hjelpe. Hvis du har en Github-konto, er du velkommen til å legge inn feil eller problemer til problemene tracker i stedet. Hvis du har gjort noen endringer eller skrevet noen nye belysningsfunksjoner, vennligst del en kobling til koden din på Gist eller Pastebin.
Utforsk mer om: Arduino, Smart Lighting.