Sadržaj:

Prijenosna svjetla za zabave: 12 koraka (sa slikama)
Prijenosna svjetla za zabave: 12 koraka (sa slikama)

Video: Prijenosna svjetla za zabave: 12 koraka (sa slikama)

Video: Prijenosna svjetla za zabave: 12 koraka (sa slikama)
Video: Maja Marinkovic pesma koreografija 💃 2024, Juli
Anonim
Image
Image
Ideja
Ideja

Tinkercad projekti »

Možete li unijeti svjetlo u zabavu i učiniti je zabavnijom?

To je bilo pitanje. I odgovor je DA (naravno).

Ova instrukcija govori o izradi prijenosnog uređaja koji sluša muziku i stvara vizualizaciju muzike od koncentričnih prstenova Neopixel LED dioda.

Pokušalo se učiniti da uređaj "zaigra", tj. Pomakne se u ritmu muzike, ali otkrivanje otkucaja pokazalo se kao složeniji zadatak nego što zvuči (bez namjere igre riječi), pa je "plesanje" pomalo nezgodno, ali i dalje je tu.

Uređaj ima omogućen Bluetooth i reagirat će na tekstualne naredbe. Nisam imao vremena za pisanje aplikacije za kontrolu Party Lights -a (Android ili iOS). Ako ste na visini zadatka - javite mi !!!

Ako vam se sviđa ovo uputstvo, glasajte za njega na takmičenju Make It Glow!

Supplies

Za izradu Party Lights trebat će vam:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 modul za Arduino (link ovdje) - mozak uređaja. Ovi relativno jeftini uređaji su toliko moćni da je nejasno zašto biste se ikada vratili na Arduino.
  • MSGEQ7 Band grafički ekvilajzer IC DIP-8 MSGEQ7 (link ovdje)
  • HC-05 ili HC-06 Bluetooth modul (link ovdje)
  • Adafruit MAX9814 mikrofon (link ovdje)
  • Standardni servo motor (link ovdje) želite da vaš uređaj "pleše"
  • CJMCU 61 -bitna WS2812 5050 RGB LED ploča za razvoj upravljačkih programa (link ovdje)
  • TTP223 Modul dodirnog ključa Kapacitivna podesiva ploča za samozaključavanje/blokiranje bez zaključavanja (veza ovdje)
  • Ultra kompaktni dvostruki USB izlazi od 5000 mah Super tanka banka napajanja (link ovdje)

  • Otpornici, kondenzatori, žice, ljepilo, vijci, ploče za izradu prototipa itd. Itd.

Korak 1: Ideja

Ideja
Ideja

Ideja je imati prijenosni uređaj koji bi se mogao postaviti blizu izvora muzike i koji bi stvorio šarene vizualizacije muzike. Trebali biste moći kontrolirati ponašanje uređaja putem tipki (dodir) i Bluetootha.

Trenutno, Party Lights ima 7 implementiranih vizualizacija (javite mi ako imate više ideja!):

  1. Koncentrični šareni krugovi
  2. Malteški križ
  3. Pulsirajuća svjetla
  4. Kamin (moj lični favorit)
  5. Svjetla za trčanje
  6. Svetlo drveće
  7. Bočni segmenti

Prema zadanim postavkama, uređaj će kroz minute prolaziti kroz vizualizacije. Međutim, korisnik može izabrati da se drži jedne vizualizacije i/ili ručno prelazi kroz nju.

Vizualizacije koje rotiraju paletu boja također se mogu "zamrznuti" ako se korisniku sviđa određena kombinacija boja.

Kao još par kontrola, korisnik može promijeniti osjetljivost mikrofona i omogućiti/onemogućiti "dance" način rada servo motora.

Korak 2: Obrada sheme i zvuka

Shematska i zvučna obrada
Shematska i zvučna obrada
Šematska i zvučna obrada
Šematska i zvučna obrada
Shematska i zvučna obrada
Shematska i zvučna obrada
Shematska i zvučna obrada
Shematska i zvučna obrada

Šematska datoteka za prevrtanje uključena je u paket na Githubu u podmapu "datoteke".

U osnovi, MSEQ7 čip vrši obradu zvuka, dijeleći audio signal na 7 opsega: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz i 16kHz

Mikrokontroler koristi tih 7 opsega za stvaranje različitih vizualizacija, u osnovi preslikavajući odgovarajuće amplitude pojasa u LED intenzitet svjetla i kombinacije boja.

Izvor zvuka je mikrofon sa 3 nivoa kontrole pojačanja. Možete se kretati kroz postavke pojačanja pomoću jednog od dugmadi, ovisno o tome koliko je/daleko je izvor zvuka.

Mikrokontroler također pokušava izvesti "beat" detekciju na 63Hz "bas" opsegu. Još uvijek radim na pouzdanom načinu otkrivanja i održavanja poravnanja ritma.

Korištenje tipki na dodir bio je eksperiment. Mislim da rade prilično dobro, međutim, nedostatak povratnih informacija štampe donekle je zbunjujući.

Korak 3: LED točak

LED točak
LED točak
LED točak
LED točak
LED točak
LED točak

Jezgro vizualizacije je 61 LED točak.

Imajte na umu da dio dolazi kao pojedinačni prstenovi koje ćete morati sastaviti. Prije sam mislio da su bakrene žice za dalekovode (koje također lijepo drže prstenove zajedno) i tanke signalne žice.

LED diode su označene brojevima od 0 do 60 počevši od donje vanjske LED diode i idu prema smjeru kazaljke na satu prema unutra. Centralna LED dioda je broj 60.

Svaka vizualizacija se oslanja na dvodimenzionalne nizove podataka koji preslikavaju svaku LED diodu u određenu poziciju za ciljni segment vizualizacije.

Na primjer, za koncentrične krugove postoji 5 segmenata:

  • Vanjski krug, LED diode dugačke 0 - 23, 24 LED diode
  • Drugi vanjski krug, LED diode 24 - 39, dugačke 16 LED
  • Treći krug (u sredini), LED diode 40 - 51, dugačke 12 LED dioda
  • Drugi unutrašnji krug, LED diode 52 - 59, 8 LED dug
  • Unutrašnja LED, LED 60, 1 LED duga

Vizualizacija mapira 5 od 7 audio kanala i progresivno svijetli LED diode prema njihovom položaju u kružnom pojasu proporcionalno nivou zvuka u opsegu.

Druge vizualizacije koriste različite strukture podataka i formate, ali ideja je uvijek imati vizualizacije vođene nizovima podataka, a ne toliko kodom. Na ovaj način vizualizacije se mogu prilagoditi različitim oblicima (više ili manje LED dioda, više EQ opsega) bez promjene koda, samo vrijednosti u nizovima podataka.

Na primjer, ovako struktura podataka za vizualizaciju 1 izgleda na skici:

// Vizualizacija 1 i 3 - punih 5 bajtova krugova conconst TOTAL_LAYERS1 = 5; const byte LAYERS1 [TOTAL_LAYERS1] [25] = {// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 {24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, {16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, {12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}, {8, 52, 53, 54, 55, 56, 57, 58, 59}, {1, 60}};

Korak 4: Vizualizacije

Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije

Do sada postoji 7 vizualizacija i početna animacija:

Animacija pri pokretanju

Kada je uređaj uključen, prikazuje se imitacija vatrometa. Ovo je trebao biti LED i Servo test niz, ali je kasnije evoluirao u animiranu verziju takvog testa

Koncentrični šareni krugovi

Svjetla se kreću oko ekrana u koncentričnim krugovima proporcionalno amplitudi odgovarajućeg eq pojasa. Nasumično prebacivanje između kazaljke na satu i suprotno od kazaljke na satu i polako rotiranje boja preko točkića od 256 boja

Malteški križ

Jedan pojas je središnja LED dioda. Drugi pojas su okomite i vodoravne linije LED dioda, a preostali segmenti predstavljaju svaki EQ pojas. Svi segmenti rotiraju boje u 128 pomaka kako bi ostali kontrastni.

Pulsirajuća svjetla

Svaki krug svijetli zajedno sve LED diode za namjenski eq band, dok se boje polako rotiraju s blagim pomakom. EQ pojasevi se postupno pomiču iz jednog kruga u sljedeći stvarajući vanjsku progresiju.

Kamin

Trake su polukrugovi osvijetljeni od dna prema vrhu koji počinju svijetlocrvenom bojom i dodaju žutu boju na putu prema gore simulirajući goruću vatru u kaminu. Povremeno se nasumično pojavi svijetla bijela "iskra". Nema rotacije boje

Svjetla za trčanje

Svaki koncentrični krug je zasebni EQ pojas. Vodeće LED diode su one na okomitoj liniji ispod središnje LED diode. Nakon što se LED upali proporcionalno amplitudi opsega, počinje "trčati" po odgovarajućem krugu polako smanjujući intenzitet. Podržane su i rotacije u smjeru kazaljke na satu i nasumično se mijenjaju.

Svetlo drveće

Segmenti su osvijetljeni ravnom linijom od donje LED diode prema gore, a zatim bočno u koncentričnim polukružnicama koje imitiraju palme. Rotacija boje.

Bočni segmenti

Ovo je verzija prethodnog malteškog križa sa samo 2 iskošena segmenta. Pretpostavlja se da liči na ikonu za zvučne valove.

Korak 5: Kontrole dodirnim dugmetom

Kontrole dugmadi na dodir
Kontrole dugmadi na dodir

Postoje 4 tipke osjetljive na dodir:

  1. Prođite kroz vizualizacije i zadržite trenutnu dok se ne odabere druga (po zadanom ciklusi vizualizacija se kreću svakih 30 sekundi)
  2. Trenutna shema boja "Zamrzni" / "odmrzne" - ako vam se sviđa određena kombinacija boja, možete je zamrznuti - rotacija boje je onemogućena i vizualizacija će se nastaviti samo s ovom paletom boja
  3. Podesite osjetljivost mikrofona
  4. Uključite / isključite "plesni način rada"

U plesnom načinu rada uređaj će pokušati otkriti "ritam" trenutno reproducirane muzike i okrenuti glavu prema ritmu. Da budem iskren, do sada je "ples" više nezgodan nego lijep.

Korak 6: Otkrivanje otkucaja i servo "ples"

Otkrivanje otkucaja i servo
Otkrivanje otkucaja i servo

Uređaj stalno pokušava otkriti "ritam" trenutne melodije kao udaljenost između uzastopnih vrhova opsega 63Hz. Kada se otkrije (i samo ako je način plesa UKLJUČEN), uređaj će aktivirati svoj servo motor za nasumično skretanje ulijevo ili udesno prema ritmu.

Sve svijetle ideje o tome kako ovo učiniti pouzdanijim su dobrodošle!

Skica 'Music_Test_LED' emituje 7 EQ opsega na način pogodan za crtanje pomoću Arduino IDE -a.

Korak 7: 3D oblici

3D oblici
3D oblici
3D oblici
3D oblici
3D oblici
3D oblici

Čitav sklop Party Lights dizajniran je od nule koristeći Autodesk TinkerCAD.

Originalni dizajn nalazi se ovdje. Mapa "files/3D" na github.com sadrži STL modele.

Ovaj dizajn ilustrira kako uređaj izgleda sastavljen.

Sve komponente su odštampane, a zatim sastavljene/zalijepljene.

"Kupola" sadrži mikrokontroler, Bluetooth ploču i mikrofon. Mikrokontroler je postavljen na ploču 40 mm x 60 mm i podržan je odgovarajućim šinama.

Servo se nalazi u "nozi" kupole, dok su gumbi smješteni u podnožju.

Odeljak za baterije je odštampan posebno za tip baterije koji je naveden u odeljku Potrošni materijal. Ako odlučite koristiti drugu bateriju, odjeljak će se morati prema tome ponovo dizajnirati.

Korak 8: Napajanje

Napajanje
Napajanje
Napajanje
Napajanje

Čini se da Ultra-Compact 5000-mah dvostruki USB izlaz Super Slim Power Bank pruža dovoljno energije za sate rada.

Odeljak za baterije dizajniran je na takav način da se odvaja od ostatka uređaja i može se zameniti onim koji je dizajniran za drugu vrstu baterije.

USB utikač je postavljen i vruće zalijepljen za spajanje baterije dok klizi.

Korak 9: Bluetooth kontrola

Bluetooth kontrola
Bluetooth kontrola

HC-05 modul je dodan kako bi se omogućio način bežičnog upravljanja uređajem.

Kada je uključen, uređaj stvara Bluetooth vezu pod nazivom "LEDDANCE", s kojom možete upariti telefon.

U idealnom slučaju, trebala bi postojati aplikacija koja omogućuje kontrolu PartyLights (odabir palete boja, simuliranje pritiskanja tipki itd.). Međutim, još nisam napisao nijedan.

Ako ste zainteresirani za pisanje Android ili iOS aplikacije za Party Lights, obavijestite me!

Za upravljanje uređajem trenutno možete koristiti aplikaciju Bluetooth terminala i slati sljedeće naredbe:

  • LEDDBUTT - gdje je '1', '2', '3' ili '4' simulira pritisak na odgovarajuće dugme. Npr.: LEDDBUTT1
  • LEDDCOLRc - gdje je c broj od 0 do 255 - položaj željene boje na kolutu boja. Uređaj će se prebaciti na navedenu LED boju.
  • LEDDSTAT - vraća broj od 3 znaka koji se sastoji samo od '0 i' 1:

    • prva pozicija: '0' - boje se ne rotiraju, '1' - boje se rotiraju
    • druga pozicija: '0' - mod igranja je isključen, '1' - način igre je uključen
    • treća pozicija: '0' - mikrofon je u normalnom pojačanju, '1' - mikrofon je u visokom pojačanju

Korak 10: Upravljajte aplikacijom na osnovu Blynka

Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka
Upravljajte aplikacijom na temelju Blynka

Blynk (blynk.io) je hardversko-agnostička IoT platforma. Koristio sam Blynk u svom IoT automatskom sistemu za navodnjavanje biljaka koji me je poučavao i bio sam impresioniran lakoćom i robusnošću platforme.

Blynk podržava povezivanje sa rubnim uređajima putem Bluetootha - upravo ono što nam je potrebno za PartyLights.

Ako to već niste učinili, preuzmite aplikaciju Blynk, registrirajte se i ponovno kreirajte aplikaciju Blynk PartyLights koristeći snimke zaslona priložene ovom koraku. Provjerite jesu li dodjele virtualnih pin -ova iste kao na snimkama zaslona, u protivnom gumbi u aplikaciji neće raditi kako je predviđeno.

Datoteka "blynk_settings.h" sadrži moj lični Blynk UID. Kada kreirate svoj projekt, bit će mu dodijeljen novi koji ćete koristiti.

Prenesite skicu PartyLightsBlynk.ino, pokrenite aplikaciju. Uparite se s Bluetooth uređajem i uživajte u zabavi.

Korak 11: Skice i biblioteke

Skice i biblioteke
Skice i biblioteke

Glavna skica i datoteke za podršku nalaze se na Github.com ovdje.

U skici Party Lights korištene su sljedeće biblioteke:

  • TaskScheduler - kooperativna višezadaćnost - ovdje (razvio sam)
  • AverageFilter - šablon prosječnog filtera - ovdje (ja sam ga razvio)
  • Servo - Servo kontrola - standardna je Arduino biblioteka
  • WS2812B -NEOPixel control - dolazi kao dio STM32 paketa

Ova Wiki stranica objašnjava kako se koriste STM32 ploče s Arduino IDE -om.

Korak 12: Buduća poboljšanja

Buduća poboljšanja
Buduća poboljšanja

Nekoliko stvari bi se moglo poboljšati u ovom dizajnu, što biste mogli uzeti u obzir ako se upustite u ovaj projekt:

  • Koristite ESP32 umjesto Maple Mini ploče. ESP32 ima 2 CPU -a, Bluetooth i WiFi stekove i može raditi na 60MHz, 120MHz pa čak i 240MHz.
  • Manji dizajn - rezultirajući uređaj je velik. Moglo bi biti kompaktnije (pogotovo ako odbacite plesnu ideju i pripadajući servo)
  • Otkrivanje otkucaja moglo bi se beskonačno poboljšati. Ono što nama ljudima prirodno dolazi čini se da je kompjuter težak zadatak
  • Moglo bi se osmisliti i implementirati mnogo više vizualizacija.
  • I, naravno, mogla bi se napisati aplikacija za bežično upravljanje uređajem pomoću cool korisničkog sučelja.

Preporučuje se: