Taula de continguts:

Jaqueta Light Show que reacciona amb la música: 7 passos (amb imatges)
Jaqueta Light Show que reacciona amb la música: 7 passos (amb imatges)

Vídeo: Jaqueta Light Show que reacciona amb la música: 7 passos (amb imatges)

Vídeo: Jaqueta Light Show que reacciona amb la música: 7 passos (amb imatges)
Vídeo: [SFM] Никак не стереть! (JT Machinima) - Bendy and the Ink Machine Rap 2024, Juliol
Anonim
Jaqueta Light Show que reacciona amb la música
Jaqueta Light Show que reacciona amb la música

Aquest tutorial s'ha produït com a part del meu projecte final de carrera per a la meva llicenciatura en Tecnologia musical i electrònica aplicada a la Universitat de York. Està dirigit a músics interessats en l'electrònica. El producte acabat serà una matriu LED a la part posterior d’una jaqueta que pot produir un espectacle de llum d’acord amb la música. Això es farà analitzant les entrades d'àudio mitjançant Pure Data i Arduino. La jaqueta tindrà dues configuracions que es poden controlar mitjançant un interruptor. Un paràmetre controlarà els LED segons l’amplitud de la música i l’altre farà que els LED parpellegin d’un en un i canvien de color segons el to.

Com funcionarà

Aquest dispositiu estarà format per dos circuits separats. Un es basarà al voltant d’un Arduino Mega connectat directament a un ordinador. L’altre circuit es basarà al voltant d’un LilyPad Arduino i estarà completament contingut a la jaqueta i alimentat mitjançant una bateria de 9V. Tots dos circuits es comunicaran sense fils mitjançant mòduls XBee. Els senyals d’àudio seran rebuts pel micròfon incorporat en els ordinadors i analitzats a Pure Data per obtenir dades d’amplitud i freqüència. Aquesta informació es transferirà a l'Arduino Mega mitjançant un circuit d'entrada MIDI i es transmetrà al LilyPad mitjançant l'XBees. A continuació, el LilyPad determinarà com reaccionaran els LED de la jaqueta.

El que necessitareu

Pel Mega Circuit

  • Arduino Mega 2560
  • XBee Explorer regulat
  • XBee 1mW Trace Antenna - Sèrie 1
  • Escut de prototipatge per al Mega
  • USB tipus A a B.
  • Cable USB a MIDI
  • Socket MIDI
  • 1 x 220Ω resistència
  • 1 x 270Ω resistència
  • 1 x 1N4148 díode
  • 1 optoacoblador 6N138

Per al circuit LilyPad

  • Taula principal del LilyPad Arduino 328
  • LilyPad XBee Breakout Board
  • XBee 1mW Trace Antenna - Sèrie 1
  • LilyPad FTDI Basic Breakout Board
  • 72 LEDs LilyPad (una gamma de tots els colors disponibles, inclosos el blanc, el blau, el vermell, el groc, el verd, el rosa i el morat)
  • LilyPad Slide Switch
  • Cable USB 2.0 A-Masculí a Mini-B
  • Bateria de 9V
  • Clip de bateria de 9V

Altres

  • Jaqueta
  • Ordinador amb Pure Data i Arduino IDE instal·lat
  • Equip de filferro
  • Equip de soldadura
  • Talladors de filferro
  • Decapants de filferro
  • Agulla amb un gran ull
  • Fil
  • Fil conductor
  • Tisores
  • Cinta mètrica
  • Cola de tela o vernís transparent per a ungles
  • Delineador de guix o blanc
  • Teixit per a un folre o una samarreta vella
  • Velcro
  • Trepant (possiblement)
  • LED estàndard (per provar)
  • Taula de pa (per provar)
  • Una altra resistència de 220Ω (per provar)
  • Multímetre (per provar)

El cost d’aquest projecte dependrà molt de la quantitat de l’equip anterior que ja tingueu. Tanmateix, és probable que estigui entre 150 i 200 lliures.

Una nota ràpida: les taules LilyPad estan dissenyades per cosir-se directament a tèxtils i, per tant, soldar un clip de bateria de 9V amb un pot causar problemes. La connexió pot ser delicada i fàcilment trencada. Podeu obtenir plaques LilyPad dissenyades específicament per a bateries AAA o LiPo que podeu decidir que preferiu utilitzar. Tot i això, encara vaig escollir recórrer la ruta de 9 V, ja que la seva durada de la bateria és superior a les AAA i la meva universitat té restriccions en l’ús de bateries LiPo.

Pas 1: creació del circuit d'entrada MIDI

Creació del circuit d’entrada MIDI
Creació del circuit d’entrada MIDI
Creació del circuit d’entrada MIDI
Creació del circuit d’entrada MIDI
Creació del circuit d’entrada MIDI
Creació del circuit d’entrada MIDI

Primer de tot, considerem el circuit d’entrada MIDI. Això haurà de ser construït a la placa de prototipatge que s’inclourà a l’Arduino Mega. S’utilitzarà per enviar missatges MIDI des del pedaç Pure Data al Mega mitjançant el seu pin ‘COMMUNICATION RX0’. Vegeu més amunt un diagrama de circuits i una foto. Depenent de la vostra placa de prototipatge, el vostre disseny pot ser lleugerament diferent, però he decidit col·locar el sòcol MIDI a l'extrem inferior esquerre. Pot ser que s’hagi d’utilitzar un trepant aquí per fer més grans els forats de l’escut per tal d’ajustar-lo al sòcol. Els cables vermells de la foto estan connectats a 5V, els marrons a terra, el cable negre al pin 3 del 6N138, el cable blau al pin 2 del 6N138 i els cables grocs al RX0 pin. Es deixa espai a la part dreta del tauler de prototipatge per deixar espai a la XBee més endavant. Probablement caldrà fer pauses a les pistes del tauler. Per a aquest exemple, s’havien de fer entre els passadors del 6N138.

Prova del circuit d'entrada MIDI

Per provar el circuit, pengeu el codi següent a l'Arduino Mega mitjançant el cable USB tipus A a B. Assegureu-vos que l’escut no s’insereix quan feu això, ja que el codi no es pot carregar si hi ha alguna cosa connectada als pins RX o TX. A més, el codi inclou la biblioteca MIDI.h que potser haureu de descarregar, disponible a l’enllaç següent.

MIDI.h

A continuació, inseriu el blindatge al mega i connecteu-lo a un altre port USB de l'ordinador mitjançant el cable MIDI a USB. L'extrem MIDI que haureu d'utilitzar s'etiquetarà "fora". Creeu un circuit senzill en una placa de connexió que connecti el pin 2 a una resistència de 220Ω i, a continuació, connecteu-la a l’ànode d’un LED estàndard. Connecteu el càtode dels LEDs a terra.

A continuació, creeu un simple pegat Pure Data amb un missatge [60 100] i un missatge [0 0] connectats a un objecte de nota mitjançant la seva entrada esquerra. Assegureu-vos que aquest pedaç estigui connectat al circuit d’entrada MIDI obrint la configuració MIDI i canviant el dispositiu de sortida. Si no està disponible, assegureu-vos que heu connectat el circuit MIDI a l'ordinador abans d'obrir Pure Data. Ara, si el vostre circuit és correcte, el LED s'hauria d'encendre quan es prem el missatge [60 100] i s'ha d'apagar quan es prem el missatge [0 0].

Pas 2: dissenyar la matriu LED

Disseny de la matriu LED
Disseny de la matriu LED
Disseny de la matriu LED
Disseny de la matriu LED
Disseny de la matriu LED
Disseny de la matriu LED

A continuació, cal tenir en compte la matriu LED de la part posterior de la jaqueta. Es connectarà directament a la placa principal del LilyPad. Normalment, per controlar els LEDs mitjançant un microcontrolador, cadascun s’assignaria als seus propis pins individuals. No obstant això, amb només un Arduino LilyPad això seria molt limitant. En total, el LilyPad té 12 pins digitals i 6 analògics, de manera que potencialment hi ha 18 pins de sortida. Tot i això, com que un d’aquests pins s’utilitzarà més endavant per controlar un commutador de lliscament, només quedaran 17.

En aquesta situació es pot utilitzar una tècnica anomenada multiplexació per maximitzar el potencial dels pins de control del LilyPad. Això aprofita dos fets:

  • Els LED són díodes i només permeten que el corrent flueixi en una direcció.
  • Els ulls i els cervells humans processen imatges molt més lentes que la llum que pot viatjar, de manera que si els LED parpellegen prou ràpidament, no ens adonarem. Aquest és un concepte conegut com a "Persistència de la Visió".

En utilitzar aquesta tècnica, el nombre de LED que es poden controlar és (n / 2) x (n- (n / 2)) on n és el nombre de pins de control disponibles. Per tant, amb 17 pins disponibles hauria de ser possible controlar 72 LED en una matriu de 9x8.

Es pot veure un diagrama per al disseny dels LEDs en una matriu de 9x8, que inclou suggeriments per als pins als quals s’ha de connectar cada fila i columna. És important tenir en compte que les files i les columnes no es poden tocar. A més, no es requereixen resistències a causa del fet que cada LED té el seu propi incorporat amb una resistència de 100Ω.

Abans de començar a cosir, heu de planificar la disposició del circuit a la jaqueta. Un bon lloc per començar aquí és marcar a la jaqueta on aniran els LED amb punts petits, mitjançant una cinta mètrica per assegurar-se que estiguin uniformement separats. Per a una jaqueta de cuir negra, el delineador d'ulls blanc funciona molt bé i es pot esborrar fàcilment si es comet un error. No obstant això, altres suports com el guix també poden funcionar en funció del material i del color de la jaqueta. Es pot veure la disposició dels colors LED que he utilitzat més amunt, que funcionarà amb el codi proporcionat més endavant. Podeu utilitzar un disseny diferent, tot i que caldrà modificar-lo al codi.

El següent que cal pensar és on aniran el LilyPad, el LilyPad XBee i la font d'alimentació. Per a la jaqueta que vaig fer servir, el lloc més assenyat i discret semblava estar a la part posterior de la jaqueta, a la part inferior i al revestiment interior. Això es deu al fet que és poc probable que els braços els portin a cops i pugui accedir fàcilment a la matriu LED. A més, com que la jaqueta que vaig fer servir estava fluixa a la part inferior, encara era còmoda.

Pas 3: cosir la matriu LED

Cosir la matriu LED
Cosir la matriu LED
Cosir la matriu LED
Cosir la matriu LED
Cosir la matriu LED
Cosir la matriu LED

En aquest punt podeu començar a cosir. El fil conductor pot ser complicat de treballar, així que aquí teniu alguns consells útils:

  • Enganxar un component al seu lloc mitjançant cola de tela farà que sigui molt més fàcil cosir.
  • Els diferents tipus de punts tindran diferents propietats estètiques i funcionals, de manera que val la pena examinar-los abans de començar. Un punt bàsic de funcionament, però, hauria d’estar bé per a aquest projecte.
  • Els nusos solen soltar-se amb força facilitat amb el fil conductor, ja que és "més primaveral" del normal. Una solució a això és utilitzar una petita quantitat de vernís transparent o cola de tela per segellar-los. Deixeu que s’assequin abans de tallar-los la cua.
  • Quan es creen connexions als components del circuit o s’uneixen dues línies de rosca conductora, és una bona idea cosir aquestes vegades per assegurar-se que s’hagi establert una bona connexió mecànica i elèctrica.
  • Assegureu-vos que l’agulla sigui afilada i que tingui un ull gran. Passar per la jaqueta pot ser dur i el fil conductor és més gruixut del normal.
  • Aneu amb compte amb els pèls solts del fil. Aquests poden crear curtmetratges al circuit si toquen altres línies de costura. Si es converteixen en un problema important, totes les línies es poden segellar amb el vernís transparent o la cola per a teixits un cop realitzades les proves i definitivament tot funciona correctament.

Un bon lloc per començar a cosir és amb les files. Per fer-los el més rectes possible, podríeu dibuixar línies dèbils per cosir amb una regla. Un cop els heu cosit, passeu a les columnes. S’haurà de tenir molta cura cada vegada que s’assoleixi una fila perquè és fonamental que no creuin les dues. Això es pot aconseguir creant el punt de la columna a l'interior de la jaqueta per a aquesta unió, tal com es veu a la foto superior. Quan hàgiu completat totes les files i columnes, es pot utilitzar un multímetre per comprovar que no hi hagi pantalons curts.

Un cop satisfet, comenceu a cosir els LEDs de la columna que hi ha a l'extrem dret de la jaqueta. Assegureu-vos que cada ànode estigui unit a la seva pròpia fila i que cada càtode estigui unit a la columna de l’esquerra. A continuació, col·loqueu el LilyPad Arduino al seu lloc amb cola de tela aproximadament a sota d’aquesta columna, assegurant-vos que els passadors del tauler de ruptura FTDI estan cap avall. Cosiu el pin 11 del LilyPad a la fila 1, el pin 12 a la fila 2 i així successivament fins que el pin A5 estigui cosit a la fila 9. Després, cosiu el pin 10 a la columna extrema dreta. Per provar aquesta primera columna, podeu utilitzar el codi següent. Carregueu el codi i engegueu el LilyPad connectant-lo a l'ordinador mitjançant la placa de sortida FTDI i el cable USB 2.0 A-Male a Mini-B.

Si el port correcte no està disponible quan connecteu el LilyPad, potser haureu d’instal·lar un controlador FTDI disponible a l’enllaç següent.

Instal·lació del controlador FTDI

Un cop tingueu aquesta primera columna de LED il·luminada, és hora de cosir la resta a la jaqueta. Es tracta d’un procés que requereix molt de temps i, per tant, és millor que es distribueixi durant uns dies. Assegureu-vos de provar cada columna a mesura que avanceu. Podeu fer-ho adaptant el codi anterior per tal que el pin de la columna que vulgueu provar es declari com a sortida a la configuració i, a continuació, es defineixi BAIX al bucle. Assegureu-vos que la resta de pins de columna estigui configurada com a ALTA, ja que assegureu que estiguin apagats.

Pas 4: afegir un commutador

Afegir un commutador
Afegir un commutador

A continuació, podeu afegir un interruptor que s'utilitzarà per canviar la configuració de la jaqueta. Cal cosir-lo a l’interior de la jaqueta sota la placa LilyPad Arduino. Mitjançant un fil conductor, l’extrem etiquetat com a “apagat” s’ha de connectar a terra i l’extrem etiquetat com “activat” al pin 2.

Podeu provar el commutador mitjançant el codi següent. És molt senzill i engega el LED inferior dret si l'interruptor està obert i s'apaga si l'interruptor està tancat.

Pas 5: fer que el dispositiu sigui sense fils

Creació del dispositiu sense fils
Creació del dispositiu sense fils
Creació del dispositiu sense fils
Creació del dispositiu sense fils
Creació del dispositiu sense fils
Creació del dispositiu sense fils

Preparació del LilyPad XBee i XBee Explorer

Prepareu el LilyPad XBee per a la configuració mitjançant la soldadura en una capçalera masculina d’angle recte de 6 pins. Això permetrà posteriorment connectar-lo a un ordinador mitjançant la placa LilyPad FTDI Basic Breakout i el cable USB Mini. A més, soldeu el clip de la bateria de 9V al LilyPad XBee amb el cable vermell cap al pin “+” i el cable negre cap al pin “-”.

Connecteu la placa Explorer a l'escut de prototipatge de l'Arduino Mega. 5V i Ground a la placa Explorer hauran de connectar-se a 5V i Ground a la Mega, el pin de sortida de l'Explorer haurà de connectar-se a RX1 a la Mega i l'entrada a l'Explorer haurà de connectar-se a TX1 a la Mega.

Configuració de XBees

A continuació, cal configurar XBees. Primer de tot, haureu d’instal·lar el programari CoolTerm de forma gratuïta, disponible a l’enllaç següent.

Programari CoolTerm

Assegureu-vos de distingir entre els dos XBees d'alguna manera, ja que és important que no els barregeu.

En primer lloc, configureu el XBee per a l'ordinador. Inseriu-lo a la placa LilyPad XBee Breakout i connecteu-lo a l'ordinador mitjançant la placa bàsica FTDI i el cable USB Mini. Obriu CoolTerm i, a les Opcions, seleccioneu el port sèrie correcte. Si no el podeu veure, proveu de prémer "Torneu a escanejar els ports sèrie". A continuació, assegureu-vos que la velocitat de transmissió estigui configurada a 9600, activeu Local Echo i configureu l'emulació de claus a CR. Ara CoolTerm es pot connectar a l’XBee.

Escriviu “+++” a la finestra principal per posar XBee al mode d’ordres. No premeu Retorn. Això permetrà configurar-lo mitjançant ordres AT. Si això ha tingut èxit, després d'una pausa molt curta hauria d'haver una resposta al missatge "D'acord". Si hi ha un retard de més de 30 segons abans de la següent línia, el mode d'ordres sortirà i caldrà repetir-ho. Cal introduir nombroses ordres AT per configurar l’ID PAN, el MEU identificador, l’identificador de destinació i desar els canvis. Cal retornar després de cadascuna d’aquestes ordres i es poden veure a la taula anterior. Un cop s'hagi completat això per a l'ordinador XBee, s'ha de desconnectar i s'ha de realitzar el mateix procés per a la jaqueta XBee.

Podeu comprovar la nova configuració de XBee escrivint cada ordre AT sense el valor al final. Per exemple, si escriviu "ATID" i premeu retorn, s'hauria de tornar a fer ressò de "1234".

Provant els XBees

En aquest punt, cosiu el LilyPad XBee a la jaqueta que hi ha al costat del LilyPad Arduino. Cal fer les connexions següents amb fil conductor:

  • 3,3 V al LilyPad XBee a '+' al LilyPad
  • A terra al LilyPad XBee a terra al LilyPad
  • RX al LilyPad XBee a TX al LilyPad
  • TX al LilyPad XBee a RX al LilyPad

Ara es pot provar el dispositiu per assegurar-se que els XBees funcionaven correctament. El codi següent anomenat 'Wireless_Test_Mega' s'ha de carregar a l'Arduino Mega i el seu propòsit principal és rebre missatges MIDI des del simple pegat Pure Data creat anteriorment i transmetre diferents valors a través de l'XBee. Si es rep una nota MIDI amb un to de 60, es transmetrà el missatge ‘a’. Com a alternativa, si es rep un missatge de nota, es transmetrà ‘b’.

A més, cal carregar el codi següent anomenat "Wireless_Test_LilyPad" al LilyPad. Això rep els missatges del Mega a través del XBees i controla el LED inferior dret en conseqüència. Si es rep el missatge ‘a’, és a dir, que el Mega ha rebut una nota MIDI amb un to de 60, el LED s’encendrà. D’altra banda, si no es rep ‘a’, el LED s’apagarà.

Un cop carregat el codi a les dues plaques, assegureu-vos que l’escut s’hagi reintroduït al Mega i que estigui connectat a l’ordinador mitjançant els dos cables. Inseriu l'ordinador XBee al tauler Explorer. A continuació, assegureu-vos que la placa FTDI Breakout estigui desconnectada de la jaqueta i introduïu la jaqueta XBee al LilyPad XBee. Connecteu la bateria de 9V i proveu de prémer els diferents missatges de Pure Data. El LED inferior dret de la jaqueta s’ha d’encendre i apagar.

Pas 6: tocs finals

Tocs finals
Tocs finals
Tocs finals
Tocs finals
Tocs finals
Tocs finals

El pegat Code and Pure Data

Quan estigueu contents que la jaqueta funcioni sense fils, pengeu l'esbós "MegaCode" a Arduino Mega i l'esbós "LilyPadCode" al LilyPad. Obriu el pegat Pure Data assegurant-vos que DSP estigui activat i que l'entrada d'àudio estigui configurada al micròfon incorporat als equips. Proveu de tocar música i de moure l'interruptor. És possible que hàgiu d’ajustar lleugerament els llindars de Pure Data en funció de la quantitat o la poca reacció dels LED a l’àudio.

Afegint un nou revestiment

Finalment, per fer la jaqueta més estètica i més còmoda de portar, es pot afegir un altre folre a l’interior de la jaqueta per tapar la costura i els components. Això s'ha de fer amb velcro per permetre un fàcil accés al circuit per si calgui fer alguna modificació.

Primer de tot, cosiu les tires de "bucle" (la part més suau) a la jaqueta a l'interior, al llarg de la part superior i cap avall dels dos costats. És una bona idea deixar el fons lliure perquè això permetrà que l’aire arribi als components. A continuació, talleu un tros de tela de la mateixa mida i cosiu-hi les tires de "ganxo" del velcro, per la part superior i cap avall de tots dos costats. A més, al mateix costat que el velcro i a la ubicació més còmoda, cosiu una butxaca on la bateria podrà asseure's. Vegeu les imatges anteriors per obtenir exemples.

Pas 7: ja heu acabat

La jaqueta sense fil Light Show Jacket hauria d’estar completa i reaccionar correctament a l’àudio. Un paràmetre hauria de crear un efecte com una barra d’amplitud i l’altre hauria de tenir LED individuals que parpellejessin a la música amb els seus colors en funció del to. Vegeu exemples de vídeo més amunt. Per si us ho preguntàveu, el color i la tonalitat es relacionen a través de l’Ordre Rosacruci que es basa només en l’entonació. Espero que us hagi agradat aquest projecte!

Recomanat: