Cuprins:

Geacă Light Show care reacționează la muzică: 7 pași (cu imagini)
Geacă Light Show care reacționează la muzică: 7 pași (cu imagini)

Video: Geacă Light Show care reacționează la muzică: 7 pași (cu imagini)

Video: Geacă Light Show care reacționează la muzică: 7 pași (cu imagini)
Video: Ruby sau Andra Gogan? #shorts 2024, Iulie
Anonim
Jachetă Light Show care reacționează la muzică
Jachetă Light Show care reacționează la muzică

Acest tutorial a fost produs ca parte a proiectului meu de ultimul an pentru diploma mea în tehnologie muzicală și electronică aplicată la Universitatea din York. Se adresează muzicienilor interesați de electronică. Produsul finit va fi o matrice LED pe spatele unei jachete care poate produce un spectacol de lumini în conformitate cu muzica. Acest lucru se va face analizând intrările audio folosind Pure Data și Arduino. Jacheta va avea două setări care pot fi controlate printr-un comutator. O setare va controla LED-urile în funcție de amplitudinea muzicii, iar cealaltă va face ca LED-urile să clipească pe rând și să schimbe culoarea în funcție de ton.

Cum va funcționa

Acest dispozitiv va fi format din două circuite separate. Unul se va baza în jurul unui Arduino Mega conectat direct la un computer. Celălalt circuit se va baza în jurul unui LilyPad Arduino și va fi complet conținut în sacou și alimentat printr-o baterie de 9V. Ambele circuite vor comunica fără fir folosind module XBee. Semnalele audio vor fi recepționate de microfonul încorporat al computerelor și analizate în Pure Data pentru a obține date de amplitudine și frecvență. Aceste informații vor fi transferate către Arduino Mega folosind un circuit de intrare MIDI și acestea vor fi apoi transmise către LilyPad folosind XBees. LilyPad va determina apoi modul în care vor reacționa LED-urile de pe sacou.

Ce vei avea nevoie

Pentru Mega Circuit

  • Arduino Mega 2560
  • XBee Explorer reglementat
  • XBee 1mW Trace Antenna - Seria 1
  • Scut de prototip pentru Mega
  • USB de tip A la B.
  • Cablu USB la MIDI
  • Soclu MIDI
  • 1 x rezistență de 220Ω
  • 1 x rezistor de 270Ω
  • 1 x 1N4148 diodă
  • 1 x optocuplator 6N138

Pentru circuitul LilyPad

  • Placa principală LilyPad Arduino 328
  • LilyPad XBee Breakout Board
  • XBee 1mW Trace Antenna - Seria 1
  • LilyPad FTDI Basic Breakout Board
  • 72 x LED-uri LilyPad (o gamă de toate culorile disponibile, inclusiv alb, albastru, roșu, galben, verde, roz și violet)
  • LilyPad Slide Switch
  • Cablu USB 2.0 A-tată-Mini-B
  • Baterie de 9V
  • Clema bateriei de 9V

Alte

  • Sacou
  • Computer cu date pure și IDE Arduino instalat
  • Sârmă de echipament
  • Echipamente de lipit
  • Freze de sârmă
  • Dispozitive de decupare a firelor
  • Ac cu un ochi mare
  • Fir
  • Fir conductiv
  • Foarfece
  • Ruletă
  • Lipici de țesătură sau lac de unghii clar
  • Eyeliner cu cretă sau alb
  • Țesătură pentru o căptușeală sau un tricou vechi
  • Velcro
  • Burghiu (eventual)
  • LED standard (pentru testare)
  • Panou (pentru testare)
  • Un alt rezistor de 220Ω (pentru testare)
  • Multimetru (pentru testare)

Costul acestui proiect va depinde foarte mult de cât de mult din echipamentele de mai sus pe care le dețineți deja. Cu toate acestea, este probabil să fie undeva între 150 și 200 de lire sterline.

O notă rapidă - plăcile LilyPad sunt proiectate pentru a fi cusute direct pe textile și, prin urmare, lipirea unei cleme pentru baterii de 9V poate cauza probleme. Conexiunea poate fi delicată și ușor de rupt. Puteți obține plăci LilyPad special concepute pentru baterii AAA sau LiPo, pe care ați putea decide că le-ați folosi mai degrabă. Cu toate acestea, am ales totuși să merg pe traseul de 9V, deoarece durata lor de viață a bateriei este mai mare decât AAA și Universitatea mea are restricții privind utilizarea bateriilor LiPo.

Pasul 1: Crearea circuitului de intrare MIDI

Crearea circuitului de intrare MIDI
Crearea circuitului de intrare MIDI
Crearea circuitului de intrare MIDI
Crearea circuitului de intrare MIDI
Crearea circuitului de intrare MIDI
Crearea circuitului de intrare MIDI

În primul rând, să luăm în considerare circuitul de intrare MIDI. Acest lucru va trebui construit pe placa de prototipare care se va introduce în Arduino Mega. Acesta va fi utilizat pentru a trimite mesaje MIDI din patch-ul Pure Data către Mega prin pinul său „COMMUNICATION RX0”. Vedeți mai sus pentru o schemă de circuit și o fotografie. În funcție de placa de prototipare, aspectul dvs. ar putea fi ușor diferit, dar am ales să plasez soclul MIDI în colțul din stânga jos. Este posibil să fie nevoie de un burghiu aici pentru a face găurile de pe scuturi mai mari pentru a se potrivi soclului. Firele roșii din fotografie sunt conectate la 5V, maro sunt conectate la masă, firul negru este conectat la pinul 3 de pe 6N138, firul albastru este conectat la pinul 2 de pe 6N138 și firele galbene sunt conectate la RX0 pin. Spațiul este lăsat în partea dreaptă a plăcii de prototipare pentru a permite spațiu pentru XBee mai târziu. Probabil va trebui să se facă pauze în piesele de pe tablă. Pentru acest exemplu, acestea trebuiau făcute între știfturile de pe 6N138.

Testarea circuitului de intrare MIDI

Pentru a testa circuitul, încărcați codul de mai jos pe Arduino Mega folosind cablul USB de tip A la B. Asigurați-vă că ecranul nu este introdus atunci când faceți acest lucru, deoarece codul nu poate fi încărcat dacă ceva este conectat la pinii RX sau TX. De asemenea, codul include biblioteca MIDI.h pe care poate fi necesar să o descărcați, disponibilă la linkul de mai jos.

MIDI.h

Apoi, introduceți scutul în mega și conectați-l la un alt port USB de pe computer prin intermediul cablului MIDI la USB. Sfârșitul MIDI pe care va trebui să îl utilizați va fi etichetat „out”. Creați un circuit simplu pe un panou de conectare pinul 2 la un rezistor de 220Ω și apoi conectați acest lucru la anodul unui LED standard. Conectați catodul LED-urilor la masă.

Apoi, creați un patch Pure Pure simplu cu un mesaj [60 100] și un mesaj [0 0] conectat la un obiect notă prin intrarea sa stângă. Asigurați-vă că acest patch este conectat la circuitul de intrare MIDI deschizând setările MIDI și schimbând dispozitivul de ieșire. Dacă acest lucru nu este disponibil, asigurați-vă că ați conectat circuitul MIDI la computer înainte de a deschide Pure Data. Acum, dacă circuitul dvs. este corect, LED-ul ar trebui să se aprindă când este apăsat mesajul [60 100] și ar trebui să se stingă atunci când este apăsat mesajul [0 0].

Pasul 2: Proiectarea matricei LED

Proiectarea matricei LED
Proiectarea matricei LED
Proiectarea matricei LED
Proiectarea matricei LED
Proiectarea matricei LED
Proiectarea matricei LED

Apoi, trebuie luată în considerare matricea LED pentru spatele sacoului. Acesta va fi conectat direct la placa principală LilyPad. În mod normal, pentru a controla LED-urile folosind un microcontroler, fiecare ar fi alocate propriilor pini individuali. Cu toate acestea, cu un singur Arduino LilyPad, acest lucru ar fi foarte limitativ. În total, LilyPad are 12 pini digitali și 6 analogici, deci potențial 18 pini de ieșire. Cu toate acestea, întrucât unul dintre acești pini va fi folosit mai târziu pentru a controla un comutator glisant, acesta va lăsa doar 17.

O tehnică poate fi utilizată în această situație numită multiplexare pentru a maximiza potențialul pinilor de control ai LilyPad. Aceasta profită de două fapte:

  • LED-urile sunt diode și permit curentul să curgă într-o singură direcție.
  • Ochii și creierul uman procesează imaginile mult mai încet decât poate călători lumina, așa că dacă LED-urile clipesc suficient de repede, nu vom observa. Acesta este un concept cunoscut sub numele de „Persistența viziunii”.

Prin utilizarea acestei tehnici, numărul de LED-uri care pot fi controlate este (n / 2) x (n- (n / 2)) unde n este numărul de pini de control disponibili. Prin urmare, cu 17 pini disponibili ar trebui să fie posibil să se controleze 72 de LED-uri într-o matrice de 9x8.

O diagramă pentru dispunerea LED-urilor într-o matrice de 9x8 poate fi văzută mai sus, inclusiv sugestii pentru pinii la care trebuie să fie conectați fiecare rând și coloană. Este important să rețineți că rândurile și coloanele nu trebuie să se atingă. De asemenea, nu sunt necesare rezistențe datorită faptului că fiecare LED are încorporat propriul său cu o rezistență de 100Ω.

Înainte de a începe să coaseți, ar trebui să planificați aspectul circuitului pe jachetă. Un loc bun pentru a începe aici este prin marcarea jachetei în care LED-urile vor merge cu puncte mici, folosind o măsurătoare pentru a vă asigura că sunt uniform distanțate. Pentru o jachetă de piele neagră, creionul de ochi alb funcționează foarte bine și poate fi șters cu ușurință dacă se face o greșeală. Cu toate acestea, alte medii, cum ar fi creta, pot funcționa și în funcție de materialul și culoarea jachetei. Aranjamentul culorilor LED pe care le-am folosit poate fi văzut mai sus, care va funcționa cu codul furnizat mai târziu. Sunteți binevenit să utilizați un aspect diferit, deși acest lucru va trebui modificat în cod.

Următorul lucru la care trebuie să ne gândim este unde vor merge LilyPad, LilyPad XBee și sursa de alimentare. Pentru jacheta pe care am folosit-o, cel mai sensibil și discret loc părea să fie pe spatele jachetei, în partea de jos și pe căptușeala interioară. Acest lucru se datorează faptului că este puțin probabil să fie lovit de brațele purtătorilor aici și poate accesa cu ușurință matricea LED. De asemenea, deoarece jacheta pe care am folosit-o era slabă în partea de jos, era încă confortabilă.

Pasul 3: Cusutul matricei LED

Cusut Matrix LED
Cusut Matrix LED
Cusut Matrix LED
Cusut Matrix LED
Cusut Matrix LED
Cusut Matrix LED

În acest moment puteți începe să coaseți. Firul conductor poate fi dificil de lucrat, așa că iată câteva sfaturi utile:

  • Lipirea unei componente în loc folosind lipici pentru țesături va face mult mai ușor să coaseți.
  • Diferitele tipuri de cusături vor avea proprietăți estetice și funcționale diferite, deci merită să le analizați înainte de a începe. Cu toate acestea, o cusătură de rulare de bază ar trebui să fie bună pentru acest proiect.
  • Nodurile tind să se desprindă destul de ușor cu fir conductiv, deoarece este mai „primăvară” decât în mod normal. O soluție la acest lucru este utilizarea unei cantități mici de lac transparent de unghii sau lipici pentru țesături pentru a le sigila. Lasă-le să se usuce înainte de a le tăia cozile.
  • Atunci când creați conexiuni la componentele circuitului sau uniți două linii de filet conductor, este o idee bună să coaseți de mai multe ori pentru a vă asigura că a fost realizată o conexiune electrică și mecanică bună.
  • Asigurați-vă că acul este ascuțit și are un ochi mare. Trecerea prin sacou poate fi dură, iar firul conductor este mai gros decât în mod normal.
  • Aveți grijă la firele de păr libere. Acestea pot crea pantaloni scurți în circuit dacă se întâmplă să atingă alte linii de cusut. Dacă acestea devin o problemă majoră, toate liniile pot fi sigilate cu lacul de unghii transparent sau cu lipici pentru țesături, odată ce testarea a avut loc și totul funcționează cu siguranță corect.

Un loc bun pentru a începe cusutul este cu rândurile. Pentru a le face cât mai drepte posibil, puteți trage linii slabe pentru a coase folosind o riglă. După ce le-ați cusut, treceți pe coloane. Va trebui să aveți mare grijă de fiecare dată când se ajunge la un rând, deoarece este esențial ca cei doi să nu se încrucișeze. Acest lucru poate fi realizat prin crearea cusăturii pentru coloana din interiorul jachetei pentru această joncțiune, așa cum se vede în fotografia de mai sus. După ce ați terminat toate rândurile și coloanele, ar putea fi utilizat un multimetru pentru a verifica dacă nu există pantaloni scurți.

Odată ce sunteți mulțumit, începeți să coaseți LED-urile pentru coloana din extrema dreaptă a sacoului. Asigurați-vă că fiecare anod este atașat la propriul rând și că fiecare catod este atașat la coloana din stânga. Apoi, puneți LilyPad Arduino în loc folosind lipici pentru țesături undeva aproximativ sub această coloană, asigurându-vă că știfturile pentru placa de separare FTDI sunt orientate în jos. Coaseți pinul 11 al LilyPad la rândul 1, pinul 12 la rândul 2 și așa mai departe până când pinul A5 este cusut la rândul 9. Apoi, coaseți pinul 10 în coloana din dreapta. Pentru a testa această primă coloană puteți utiliza codul de mai jos. Încărcați codul și alimentați LilyPad, conectându-l la computer utilizând placa de ieșire FTDI și cablul USB 2.0 A-tată la Mini-B.

Dacă portul corect nu este disponibil atunci când conectați LilyPad, poate fi necesar să instalați un driver FTDI disponibil de pe linkul de mai jos.

Instalare driver FTDI

Odată ce ați aprins această primă coloană de LED-uri, este timpul să coaseți restul pe sacou. Acesta este un proces destul de consumator de timp și, prin urmare, este cel mai bine să fie distanțat în câteva zile. Asigurați-vă că testați fiecare coloană pe măsură ce mergeți mai departe. Puteți face acest lucru adaptând codul de mai sus, astfel încât pinul coloanei pe care doriți să o testați să fie declarat ca ieșire în configurare și apoi să fie setat LOW în buclă. Asigurați-vă că celelalte știfturi ale coloanei sunt setate la ÎNALT, deoarece acest lucru vă va asigura că sunt oprite.

Pasul 4: Adăugarea unui comutator

Adăugarea unui comutator
Adăugarea unui comutator

Apoi, puteți adăuga un comutator care va fi utilizat pentru a modifica setările de pe sacou. Trebuie cusut pe interiorul jachetei sub placa LilyPad Arduino. Folosind filet conductiv, capătul marcat „oprit” trebuie conectat la masă și capătul marcat „pornit” trebuie conectat la pinul 2.

Puteți testa comutatorul folosind codul de mai jos. Acest lucru este foarte simplu și aprinde LED-ul din dreapta jos dacă comutatorul este deschis și îl oprește dacă comutatorul este închis.

Pasul 5: Realizarea dispozitivului fără fir

Realizarea dispozitivului fără fir
Realizarea dispozitivului fără fir
Realizarea dispozitivului fără fir
Realizarea dispozitivului fără fir
Realizarea dispozitivului fără fir
Realizarea dispozitivului fără fir

Pregătirea LilyPad XBee și XBee Explorer

Pregătiți LilyPad XBee pentru configurare prin lipire pe un antet masculin cu unghi drept cu 6 pini. Acest lucru va permite ulterior să fie conectat la un computer prin placa LilyPad FTDI Basic Breakout și cablul USB Mini. De asemenea, lipiți clema bateriei de 9V pe LilyPad XBee cu firul roșu care merge la pinul „+” și firul negru care merge la pinul „-”.

Conectați placa Explorer la scutul de prototipare pentru Arduino Mega. 5V și masă de pe placa Explorer vor trebui conectate la 5V și masă pe Mega, pinul de ieșire de pe Explorer va trebui să se conecteze la RX1 pe Mega și intrarea de pe Explorer va trebui să se conecteze la TX1 pe Mega.

Configurarea XBees

Apoi XBees trebuie configurate. În primul rând, va trebui să instalați gratuit software-ul CoolTerm, care este disponibil de pe linkul de mai jos.

Software CoolTerm

Asigurați-vă că faceți distincția între cele două XBees într-un fel, deoarece este important să nu le amestecați.

Mai întâi, configurați XBee pentru computer. Introduceți-l în placa LilyPad XBee Breakout și conectați-l la computer utilizând placa de separare de bază FTDI și cablul USB Mini. Deschideți CoolTerm și în Opțiuni, selectați portul serial corect. Dacă nu îl puteți vedea, încercați să apăsați „Re-Scan Serial Ports”. Apoi, asigurați-vă că rata de transmisie este setată la 9600, activați Local Echo și setați Emularea cheii la CR. CoolTerm poate fi acum conectat la XBee.

Tastați „+++” în fereastra principală pentru a pune XBee în modul de comandă. Nu apăsați return. Acest lucru va permite configurarea acestuia folosind comenzile AT. Dacă acest lucru a reușit, după o pauză foarte scurtă, ar trebui să apară un mesaj „OK”. Dacă există o întârziere de mai mult de 30 de secunde înainte de următoarea linie, modul de comandă va ieși și acest lucru va trebui repetat. Trebuie introduse numeroase comenzi AT pentru a seta ID-ul PAN, ID-ul MEU, ID-ul destinației și pentru a salva modificările. Returnarea trebuie să fie lovită după fiecare dintre aceste comenzi și acestea pot fi văzute în tabelul de mai sus. Odată ce acest lucru a fost finalizat pentru computerul XBee, acesta trebuie deconectat și același proces trebuie efectuat pentru jacheta XBee.

Puteți verifica noile setări XBee tastând fiecare comandă AT fără valoarea de la sfârșit. De exemplu, dacă tastați „ATID” și apăsați return, „1234” ar trebui să apară înapoi.

Testarea XBees

În acest moment, coaseți LilyPad XBee pe jachetă lângă LilyPad Arduino. Următoarele conexiuni trebuie făcute cu filet conductor:

  • 3.3V pe LilyPad XBee la „+” pe LilyPad
  • Sol la LilyPad XBee la sol la LilyPad
  • RX pe LilyPad XBee către TX pe LilyPad
  • TX de pe LilyPad XBee la RX pe LilyPad

Acum dispozitivul poate fi testat pentru a se asigura că XBees funcționează corect. Codul de mai jos numit „Wireless_Test_Mega” trebuie încărcat pe Arduino Mega și scopul său principal este de a primi mesaje MIDI din patch-ul simplu Pure Data creat mai devreme și de a transmite diferite valori prin intermediul XBee. Dacă se primește o notă MIDI cu un pitch de 60, va fi transmis mesajul „a”. Alternativ, dacă se primește un mesaj de notare, va fi transmis „b”.

În plus, codul de mai jos numit „Wireless_Test_LilyPad” trebuie încărcat în LilyPad. Acesta primește mesajele de la Mega prin XBees și controlează corespunzător LED-ul din dreapta jos. Dacă mesajul „a” este primit, ceea ce înseamnă că o notă MIDI cu un pitch de 60 a fost primită de Mega, LED-ul se va aprinde. Pe de altă parte, dacă „a” nu este recepționat, LED-ul se va stinge.

Odată ce codul a fost încărcat pe ambele plăci, asigurați-vă că ecranul a fost reintrodus în Mega și că este conectat la computer prin ambele cabluri. Introduceți computerul XBee în placa Explorer. Apoi, asigurați-vă că placa FTDI Breakout este deconectată de la sacou și introduceți sacoul XBee în LilyPad XBee. Conectați bateria de 9V și încercați să apăsați diferitele mesaje din Pure Data. LED-ul din dreapta jos al jachetei trebuie să se aprindă și să se stingă.

Pasul 6: Atingeri finale

Atingeri finale
Atingeri finale
Atingeri finale
Atingeri finale
Atingeri finale
Atingeri finale

Codul și patch-ul de date pure

Când vă bucurați că jacheta funcționează fără fir, încărcați schița „MegaCode” de mai jos pe Arduino Mega și schița „LilyPadCode” pe LilyPad. Deschideți patch-ul Pure Data asigurându-vă că DSP este activat și intrarea audio este setată la microfonul încorporat al computerelor. Încercați să redați muzică și să mutați comutatorul. Poate fi necesar să ajustați ușor pragurile din Pure Data în funcție de cât de mult sau de puțin reacționează LED-urile la sunet.

Adăugarea unei noi căptușeli

În cele din urmă, pentru a face jacheta mai plăcută din punct de vedere estetic și mai confortabilă de purtat, o altă căptușeală poate fi adăugată în interiorul jachetei pentru a acoperi cusutul și componentele. Acest lucru ar trebui să se facă folosind velcro pentru a permite accesul ușor la circuit, în cazul în care este necesar să se facă modificări.

Mai întâi de toate, coaseți benzile „buclelor” (partea mai moale) pe sacou din interior, de-a lungul părților superioare și inferioare. Este o idee bună să lăsați fundul liber, deoarece acest lucru va permite aerului să ajungă la componente. Apoi, tăiați o bucată de țesătură de aceeași dimensiune și coaseți cu fâșiile „cârlig” ale velcro-ului, de-a lungul părților superioare și inferioare. De asemenea, pe aceeași parte cu velcro și în cea mai convenabilă locație, coaseți un buzunar în care bateria va putea sta. Vedeți imaginile de mai sus pentru exemple.

Pasul 7: Ai terminat

Jacheta fără fir Light Show ar trebui să fie completă și să reacționeze cu succes la sunet! O setare ar trebui să creeze un efect ca o bară de amplitudine, iar cealaltă ar trebui să aibă LED-uri individuale care clipesc în muzică cu culorile lor, în funcție de ton. Vedeți mai sus exemple video. În cazul în care vă întrebați, culoarea și tonul sunt legate prin Ordinul rozicrucian care se bazează pe doar intonație. Sper că v-a plăcut acest proiect!

Recomandat: