Publicitate
Câteva luni înapoi, un dolar3000 tunete și fulgere lampa de spirit a devenit virală în comunitatea producătorilor. A fost o lumină uimitor de frumoasă, dar prețul a lăsat-o la îndemâna oricui cu sănătatea lor intactă. Ceea ce vom face astăzi nu este exact același lucru - facem ceva mai practic, în loc de o piesă de artă, dar va fi mult mai cool și mai personalizabil.
Am ales să omit difuzoarele, presupunând că probabil ai deja o pereche de difuzoare bune în camera pe care o folosești mai degrabă și, în mod sincer, a pune un difuzor într-o lampă este cam ciudat. În schimb, voi adăuga un microfon care să permită fulgerului să reacționeze automat la zgomote puternice - fie de la o furtună reală, fie de o coloană sonoră redată de pe computer sau stereo.
Vom folosi, de asemenea, o gamă de LED-uri RGB Neopixel complete (WS2812B), astfel încât să putem reproduce culori, altele decât albul și să avem control asupra fiecărui pixel.
Avertizare: sursa de alimentare pe care am folosit-o în acest proiect are terminale cu șurub care se conectează la un fir de curent alternativ. Dacă nu vă simțiți sigur că conectați un ștecher, asigurați-vă că cumpărați o sursă de alimentare complet închisă. Cel puțin, va trebui să încadrați alimentatorul într-o casetă de proiect sigură.
Pasul 0: Introducere
Iată un videoclip demonstrativ al proiectului finalizat. Am implementat până acum câteva moduri diferite, de la fulgerul standard la un nor de acid trippy și o lampă de culoare decolorantă, care poate fi aleasă de pe telecomandă.
Codul complet și bibliotecile necesare sunt disponibile pentru descărcare de pe acest depozit Github.
Pasul 1: Veți avea nevoie
- Catenă WS2812B, de obicei, au un preț de aproximativ 50 USD pentru 5 metri. Nu vă faceți griji dacă aveți un alt tip de fir Neopixel, este aproape sigur acceptat de FastLED interfață, dar cablarea dvs. poate fi diferită (poate fi necesară o linie de sincronizare în plus față de semnal, pentru exemplu).
- 5V, 10A + alimentare - Am cumpărat câteva unități 15A pentru 11 dolari fiecare. Aceștia preiau 120-240V AC și produc o ieșire puternică de 5 V, care va fi mai suficientă pentru a alimenta toți pixelii la întreaga luminozitate și Arduino.
- Cablare electrică, conector și comutator inline
- Carcasa proiectului
- Doi Arduinos. Clonele Funduino de 10 dolari sunt în regulă. Al doilea este necesar pentru telecomandă, în timp ce primul controlează logica principală și LED-urile.
- Două rezistențe Ohms de 2,2k (sau de acolo) - valoarea exactă nu contează atât de mult, ar trebui să funcționeze aproximativ 1,5k până la 47k.
- breadboard
- TSOP4838 Receptor IR
- Telecomanda IR - am cumpărat în vrac pentru aproximativ 2 USD fiecare, dar orice telecomandă ar trebui să funcționeze cu modificări de cod.
- Modul microfon mare
- Răzuiește lemn de MDF pentru a-ți tăia baza și un puzzle.
- Materiale de ambalare / cutie din polistiren.
- Umplutură de perne din bumbac din polipropilenă. Am scos mai mult decât suficient de pe câteva perne vechi oribile. Dacă aceasta nu este o opțiune, ar trebui să puteți cumpăra ceva nou pentru aproximativ 10 dolari sau să folosiți și vată mai ieftină. Am încercat cu amândouă - vata de bumbac avea nevoie de mai multă muncă pentru a trebui să o tachineze și nu a fost la fel de pufoasă, dar într-un vârf, va funcționa.
- Lanț și cârlige pentru a atârna norul - ar trebui să țină mai mult de 5 kg.
- Pistol cu clei cu reglaj la temperatură scăzută
- Adeziv pulverizator - este mai ușor să lipiți umplutura pe norul tău cu asta, dar un pistol cu lipici ar putea funcționa și el.
Costul total este de aproximativ 100 de dolari, incluzând unelte, dar cea mai mare parte am scrutat-o din toată casa. Toate componentele electronice sunt disponibile în mod obișnuit; microfonul poate fi găsit într-un kit senzor sau cumpărat individual.
Pasul 2: Tăiați baza
Tăiați o bază brută dintr-o bucată de MDF cu un puzzle - forma exactă depinde în mod evident de dvs., dar din anumite motive, un nor are formă de fasole renală în mintea mea. Vom fi atașate câteva cârlige în acest lucru pentru a fi agățate, dar altfel oferă doar o bază solidă pe care să o construim. Zona centrală va fi rezervată pentru electronice, PSU și pentru a preda lanțul, astfel încât să vă asigurați că aveți suficient spațiu pentru a plasa cel puțin carcasa proiectului cu câteva cârlige care îl înconjoară.
Pasul 3: Strat pe polistiren
Acesta este cel mai dificil și creativ pas, dar creăm doar ceva solid și cam-sorta în formă de nor pentru a lipi banda LED. Lipiți bucăți mari de polistiren ambalate pe bază (și sub ea), folosind o temperatură scăzută de căldură pe pistolul de lipici. Dacă nu aveți o setare scăzută, opriți pistolul termic și lăsați-l să se răcească puțin înainte de a încerca lipiciul. Dacă temperatura este prea mare, veți topi pur și simplu materialul de ambalare.
Asigurați-vă că fiecare piesă este solidă înainte de a lipi următoarea și este mai bine să rămâneți mai mult decât suficient.
Din nou, amintiți-vă să lăsați o cavitate suficient de mare în interiorul norului pentru a se potrivi electronicelor, lanțului și cârligelor.
Pasul 4: Realizați o formă de cloud 3D
Utilizați un cuțit de sculptură pentru a-ți deschide norul rotunjind colțurile și tăind materialul inutil, până când ați obținut o formă de nor 3D dur. Nu contează cu adevărat cât de dur este acest lucru, deoarece vom acoperi tot ceea ce am umplut mai târziu - puteți ascunde ușor greșelile.
Pasul 5: Remediază cârligele, decuplează
În cele din urmă, fixați trei sau patru cârlige la baza MDF, din interiorul fiecărui colț al cavității norului. Va trebui să găuriți o mică gaură de pilot, deoarece MDF este greu de fixat direct în.
De asemenea, am oferit tuturor un strat simplu de vopsea albă spray pentru a asigura o bază uniformă de culoare, dar nu sunt sigur că a fost de fapt necesar.
Pasul 6: Benzi LED cu clei
Înainte de a începe să aplicați lipici pe LED-uri, începeți de la o bandă nouă sau numărați câte LED-uri în total - va trebui să calculați câți ați folosit mai târziu în etapa de programare. Tăiați o gaură mică în partea norului dvs. și trageți prin firele care alcătuiesc începutul benzii LED în cavitatea norului. Aveți grijă că porniți de la capătul corect - benzile LED sunt sensibile la direcție, asigurați-vă că săgețile semnalului sunt îndepărtate de cavitate.
Lucrând lent, lipiți pixelii LED pe baza de polistiren într-un model circular, înainte de a trage banda în jos pentru a acoperi partea inferioară. Din nou - nu trebuie să fii perfect aici, pentru că, odată ce am difuzat totul și l-am împodobit cu umplutură, totul pare destul de uimitor.
Am folosit un număr total de 85 de LED-uri, sau puțin peste 2,5 m, am încercuit corpul principal de două ori și am folosit un singur șir de LED-uri pe partea inferioară.
Pasul 7: Schema de cablare
Cablajul este complex, dar ușor descompus în secțiuni.
În primul rând, conectați și asigurați alimentarea cu energie electrică, de preferință într-o carcasă de proiect separată. Nu o să vă conferențiez despre siguranța cablurilor de curent continuu, așadar presupun că puteți gestiona această parte și veți avea o linie de 5V și GND de la ea.
IMPORTANT: atunci când programați și testați Arduino, 5V de la sursa dvs. de alimentare trebuie să rămână izolat de Arduino ( Totuși, GND-urile sunt conectate) - ar trebui să alimenteze numai banda LED, în timp ce Arduino folosește 5V furnizat USB. Când ați terminat programarea, USB-ul ar trebui deconectat și nu va mai furniza 5V Arduino - în acest moment, trebuie să conectați 5V de la alimentarea dvs. la șina de 5V din partea stângă a cabinei breadboard.
Începeți prin a conecta pământul și pinii de 5V de la fiecare Arduino la șinele laterale din stânga ale plăcii de panou. Aceștia vor împărtăși aceeași sursă de alimentare, indiferent dacă este alimentatorul extern pe care îl avem sau USB conectat la unul dintre ele.
În continuare, completați secțiunea de cablare I2C - asta le permite celor doi Arduinos să comunice. Luați pinii A4 de la ambele Arduinos pe un singur rând de pe placa de panou, apoi conectați o rezistență de 2,2k din acel rând la șina 5V. Repetați A5, conectându-le pe rând separat, cu o altă rezistență de 2,2k din nou la 5V.
Conectați receptorul IR în continuare - verificați configurația pinului dacă aveți un alt model, dar în principiu pinul de semnal ar trebui să meargă la D11 pe un singur Arduino. Încărcați thundercloud_ir_receiver.ino schiță acestui Arduino (tot codul aici), apoi deconectați USB-ul deoarece nu mai avem nevoie de el.
Pe celălalt Arduino, conectați Date în pinul de semnal de la începutul benzii LED până la D6. GND de la LED-urile dvs. ar trebui să fie comun cu toți Arduinos, dar la acest moment, 5V va veni direct de la PSU.
De asemenea, pe acest Arduino, conectați modulul microfonului în A0. Încarcă celălalt thundercloud.ino schițați și mențineți USB-ul conectat deocamdată, în timp ce depanați. Începeți prin a schimba NUM_LEDS variabil adecvat.
Pasul 8: Adeziv pe umplutură
Ca un ultim pas, lipici pe umplutura ta. Nu există nicio tehnică specială aici - pur și simplu pulverizați norul cu un strat de lipici și apucați o mână de umplutură. Cu toate acestea, este mai ușor să lucrați cu umplutura dacă l-ați tachizat deja pentru a mări suprafața.
Dacă ați utilizat aceeași telecomandă ca mine, butonul STROBE o plasează în modul cloud reactiv; FLASH este modul de culoare trippy, iar FADE este lampa de stingere lentă a stării de culoare.
Pasul 9: Explicare Cod
De ce doi Arduinos? Atât programarea receptorului infraroșu, cât și biblioteca driverului de pixeli WS2818B sunt foarte sensibile la sincronizare - dacă sincronizarea este întârziată, semnalul IR este corupt. Dând fiecărui circuit propriul micro-controler și permițându-le să vorbească prin protocolul I2C, ne putem asigura că timpul este perfect pentru fiecare. Puteți găsi, de asemenea, module IR separate cu propriul micro-controller integrat, dar cercetările mele au descoperit că acestea costă de fapt mai mult decât o simplă clonă Arduino și un LED IR. Thundercloud_ir_receiever nu ar trebui să necesite explicații, deși poate doriți mai întâi să citiți elementele de bază ale I2C.
Pe controlerul principal Thundercloud, definim diferite moduri de operare, cum ar fi ON (efectele fulgerului nu sunt sonore) activat), CLOUD (fulgerul este activat doar prin sunet), ACID (norul arată culori trippy) sau o singură culoare simplă moduri. Pentru a defini un nou mod, adăugați la enum mai întâi, apoi deschideți consola și găsiți un buton de comandă de la distanță pentru a o asuma - fiecare apăsare la distanță ar trebui să imprime o linie de depanare. În receiveEvent () metodă, mapăm acele taste apăsate într-un mod, deci adăugăm acolo o declarație de comutare suplimentară. În cele din urmă, în principal buclă() metodă dirijăm selecțiile de mod către funcții de afișare diferite.
Codul de netezire a microfonului este inițial de la Adafruit - Am simplificat-o pentru nevoile noastre și am adăugat un declanșator atunci când se aude un zgomot mai puternic decât media.
Pasul 10: Moduri fulger
Ecranele de trăsnet combină trei „tipuri” de fulgere diferite pentru a obține ceva suficient de realist sau cel puțin plăcut pentru ochi. Primul tip este sparge(), unde fiecare LED este scurt pornit între 10-100ms. Al doilea tip este rulare() - unde fiecare LED are o șansă de 10% de activare și întreaga buclă este repetată de 2-10 ori, cu o întârziere de 5-100ms între fiecare ciclu. Al treilea tip este thunderburst (), care alege două secțiuni diferite ale benzii, fiecare între 10-20 LED-uri, clipește scurt aceste secțiuni de 3-6 ori. Examinați în detaliu aceste metode pentru a vedea cum sunt activate LED-urile individuale - roata color HSV este folosită în întregime (deci alb este H = 0, S = 0, V = 255). Te-aș încuraja să reglezi sau să scrii noi afișaje de trăsnet, apoi să le împărtășești în comentarii dacă creezi unul care îți place.
De fiecare dată când se declanșează fulgerul sau se execută bucla, norul alege la întâmplare între cele trei tipuri de fulgere. În cele din urmă, a reset () metoda stinge toate luminile, altfel își vor „aminti” starea lor anterioară.
Întrebări sau probleme - contactați comentariile și voi face tot posibilul să vă ajut. Dacă aveți un cont Github, nu ezitați să postați bug-uri sau probleme Urmărirea problemelor in schimb. Dacă ați făcut modificări sau ați scris unele funcții de iluminat noi, vă rugăm să partajați un link către codul dvs. activat esență sau pastebin.
James are licență în inteligență artificială și este certificat CompTIA A + și Network +. Este dezvoltatorul principal al MakeUseOf și își petrece timpul liber jucând VR paintball și boardgames. Construiește calculatoare de când era mic.