INHOUDSOPGAWE:

Light Show -baadjie wat op musiek reageer: 7 stappe (met foto's)
Light Show -baadjie wat op musiek reageer: 7 stappe (met foto's)

Video: Light Show -baadjie wat op musiek reageer: 7 stappe (met foto's)

Video: Light Show -baadjie wat op musiek reageer: 7 stappe (met foto's)
Video: Zipline-avontuur in de bergen van Split | FOMO SHOW S4 #7 | NPO 3 2024, November
Anonim
Light Show -baadjie wat op musiek reageer
Light Show -baadjie wat op musiek reageer

Hierdie tutoriaal is opgestel as deel van my finalejaarsprojek vir my graad in musiektegnologie en toegepaste elektronika aan die Universiteit van York. Dit is gemik op musikante met 'n belangstelling in elektronika. Die voltooide produk sal 'n LED -matriks op die agterkant van 'n baadjie wees wat 'n ligvertoning volgens musiek kan lewer. Dit sal gedoen word deur klankinsette te analiseer met behulp van Pure Data en Arduino. Die baadjie sal twee instellings hê wat deur 'n skakelaar beheer kan word. Die een instelling beheer die LED's volgens die amplitude van die musiek, en die ander LED's laat een vir een blink en die kleur verander volgens die toonhoogte.

Hoe dit sal werk

Hierdie toestel bestaan uit twee afsonderlike stroombane. Die een is gebaseer op 'n Arduino Mega wat direk aan 'n rekenaar gekoppel is. Die ander kring sal rondom 'n LilyPad Arduino gebaseer wees en heeltemal in die baadjie wees en met 'n 9V -battery aangedryf word. Beide hierdie stroombane sal draadloos met mekaar kommunikeer met behulp van XBee -modules. Oudiosignale word deur die ingeboude mikrofoon van die rekenaars ontvang en in Pure Data ontleed om amplitude- en frekwensiedata te verkry. Hierdie inligting sal met behulp van 'n MIDI -ingangskring na die Arduino Mega oorgedra word, en dit sal dan met die XBees na die LilyPad gestuur word. Die LilyPad sal dan bepaal hoe die LED's op die baadjie sal reageer.

Wat u benodig

Vir die Mega Circuit

  • Arduino Mega 2560
  • XBee Explorer gereguleer
  • XBee 1mW Trace Antenna - Reeks 1
  • Prototyping Shield vir die Mega
  • USB Tipe A tot B
  • USB na MIDI kabel
  • MIDI -aansluiting
  • 1 x 220Ω Weerstand
  • 1 x 270Ω Weerstand
  • 1 x 1N4148 Diode
  • 1 x 6N138 Optokoppelaar

Vir die LilyPad Circuit

  • LilyPad Arduino 328 Hoofbord
  • LilyPad XBee Breakout Board
  • XBee 1mW Trace Antenna - Reeks 1
  • LilyPad FTDI Basic Breakout Board
  • 72 x LilyPad LED's ('n reeks van alle kleure beskikbaar, insluitend wit, blou, rooi, geel, groen, pienk en pers)
  • LilyPad -skyfskakelaar
  • USB 2.0 A-man na mini-B kabel
  • 9V battery
  • 9V batteryklem

Ander

  • Baadjie
  • Rekenaar met Pure Data en die Arduino IDE geïnstalleer
  • Toerustingdraad
  • Soldeertoerusting
  • Draadknipper
  • Draadstroppers
  • Naald met 'n groot oog
  • Draad
  • Geleidende draad
  • Skêr
  • Maatband
  • Stofgom of duidelike naellak
  • Krijt of wit oogomlyner
  • Stof vir 'n voering of 'n ou t-hemp
  • Klittenband
  • Boor (moontlik)
  • Standaard LED (vir toetsing)
  • Broodbord (vir toetsing)
  • Nog 'n 220Ω -weerstand (vir toetsing)
  • Multimeter (vir toetsing)

Die koste van hierdie projek hang baie af van die hoeveelheid bogenoemde toerusting wat u reeds besit. Dit is egter waarskynlik tussen £ 150 - £ 200.

'N Kort opmerking - die LilyPad -borde is ontwerp om direk aan tekstiele vas te word, en daarom kan soldeer 'n 9V -batteryklem daaraan probleme veroorsaak. Die verbinding kan delikaat wees en maklik verbreek word. U kan spesiaal ontwerpte LilyPad -borde kry vir AAA- of LiPo -batterye, wat u besluit om eerder te gebruik. Ek het egter steeds gekies om die 9V -roete te volg, aangesien hul batterylewe langer is as AAA's en my universiteit beperkings het op die gebruik van LiPo -batterye.

Stap 1: Skep die MIDI -invoerkring

Die skep van die MIDI Input Circuit
Die skep van die MIDI Input Circuit
Die skep van die MIDI Input Circuit
Die skep van die MIDI Input Circuit
Die skep van die MIDI Input Circuit
Die skep van die MIDI Input Circuit

Kom ons kyk eerstens na die MIDI -invoerbaan. Dit moet op die prototipe -bord gebou word wat in die Arduino Mega sal pas. Dit sal gebruik word om MIDI -boodskappe vanaf die Pure Data -pleister na die Mega te stuur via die 'COMMUNICATION RX0' -pen. Sien hierbo vir 'n kringdiagram en 'n foto. Afhangende van u prototipe-bord, kan u uitleg effens anders wees, maar ek het gekies om die MIDI-aansluiting in die onderste linkerhoek te plaas. Miskien moet u 'n boor hier gebruik om die gate op die skild groter te maak om die voetstuk te pas. Die rooi drade op die foto is gekoppel aan 5V, die bruin is met die grond verbind, die swart draad is verbind met pen 3 op die 6N138, die blou draad is verbind met pen 2 op die 6N138 en die geel drade is aan die RX0 gekoppel speld. Daar is ruimte aan die regterkant van die prototipe-bord oor om later ruimte vir die XBee te gee. Daar sal waarskynlik onderbrekings in die spore op die bord gemaak moet word. Vir hierdie voorbeeld moes hulle tussen die penne op die 6N138 gemaak word.

Toets die MIDI -ingangskring

Laai die onderstaande kode op na die Arduino Mega met die USB Type A tot B -kabel om die kring te toets. Maak seker dat die skild nie ingesit word nie, aangesien die kode nie opgelaai kan word as iets aan die RX- of TX -penne gekoppel is nie. Die kode bevat ook die MIDI.h -biblioteek wat u moontlik moet aflaai, beskikbaar op die onderstaande skakel.

MIDI.h

Steek dan die skerm in die mega en verbind dit met 'n ander USB -poort op u rekenaar via die MIDI -na -USB -kabel. Die MIDI -einde wat u moet gebruik, sal 'uit' wees. Skep 'n eenvoudige stroombaan op 'n broodbord verbindingspen 2 met 'n 220Ω weerstand en koppel dit dan aan die anode van 'n standaard LED. Koppel die LED -katode aan die grond.

Skep dan 'n eenvoudige Pure Data -pleister met 'n [60 100] -boodskap en 'n [0 0] -boodskap wat beide via die linkerinlaat aan 'n aantekeningvoorwerp gekoppel is. Maak seker dat hierdie pleister aan die MIDI -ingangskring gekoppel is deur die MIDI -instellings oop te maak en die uitsetapparaat te verander. As dit nie beskikbaar is nie, maak seker dat u die MIDI -kring aan u rekenaar gekoppel het voordat u Pure Data oopgemaak het. As u stroombaan korrek is, moet die LED brand wanneer die [60 100] boodskap ingedruk word, en dit moet afskakel as die [0 0] boodskap ingedruk word.

Stap 2: Ontwerp die LED Matrix

Ontwerp van die LED Matrix
Ontwerp van die LED Matrix
Ontwerp van die LED Matrix
Ontwerp van die LED Matrix
Ontwerp van die LED Matrix
Ontwerp van die LED Matrix

Vervolgens moet die LED -matriks aan die agterkant van die baadjie oorweeg word. Dit sal direk aan die hoof LilyPad -bord gekoppel word. Normaalweg word LED's met 'n mikrobeheerder aan hul eie individuele penne toegewys om LED's te beheer. Met slegs een Arduino LilyPad sou dit egter baie beperkend wees. In totaal het die LilyPad 12 digitale penne en 6 analoog, dus moontlik 18 uitvoerpenne. Aangesien een van hierdie penne egter later gebruik sal word om 'n skuifskakelaar te beheer, sal daar slegs 17 oorbly.

'N Tegniek kan in hierdie situasie multiplexing genoem word om die potensiaal van die LilyPad se bedieningspenne te benut. Dit maak gebruik van twee feite:

  • LED's is diodes en laat slegs stroom in een rigting vloei.
  • Menslike oë en brein verwerk beelde baie stadiger as wat lig kan beweeg, so as LED's vinnig genoeg flits, sal ons dit nie agterkom nie. Dit is 'n konsep wat bekend staan as 'Persistence of Vision'.

Deur hierdie tegniek te gebruik, is die aantal LED's wat beheer kan word (n/2) x (n- (n/2)) waar n die aantal beskikbare stuurpenne is. Daarom, met 17 penne beskikbaar, behoort dit moontlik te wees om 72 LED's in 'n 9x8 matriks te beheer.

'N Diagram vir die uitleg van LED's in 'n 9x8 -matriks kan hierbo gesien word, insluitend voorstelle vir die penne waarmee elke ry en kolom gekoppel moet word. Dit is belangrik om daarop te let dat die rye en kolomme nie mag raak nie. Daar is ook geen weerstande nodig nie, omdat elke LED sy eie ingeboude met 'n weerstand van 100Ω het.

Voordat u begin naaldwerk, moet u die uitleg van die stroombaan op die baadjie beplan. 'N Goeie plek om hier te begin, is deur op die baadjie te merk waarheen die LED's met klein kolletjies gaan, met 'n maatband om te verseker dat hulle eweredig versprei is. Vir 'n swart leerbaadjie werk 'n wit oogomlyner baie goed en kan dit maklik afgevee word as 'n fout gemaak word. Ander mediums soos kryt kan egter ook werk, afhangende van die materiaal en die kleur van u baadjie. Die rangskikking van die LED -kleure wat ek gebruik het, kan hierbo gesien word, wat sal werk met die kode wat later verskaf word. U is welkom om 'n ander uitleg te gebruik, hoewel dit in die kode gewysig moet word.

Die volgende ding om na te dink, is waarheen die LilyPad, LilyPad XBee en die kragtoevoer gaan. Vir die baadjie wat ek gebruik het, was die verstandigste en mees diskrete plek aan die agterkant van die baadjie, aan die onderkant en aan die binnekant. Dit is omdat dit onwaarskynlik is dat die draers se arms hier geklop word en dat dit maklik toegang tot die LED -matriks kan kry. Aangesien die baadjie wat ek gebruik het aan die onderkant los was, was dit steeds gemaklik.

Stap 3: Naai die LED Matrix

Naai die LED Matrix
Naai die LED Matrix
Naai die LED Matrix
Naai die LED Matrix
Naai die LED Matrix
Naai die LED Matrix

Op hierdie punt kan u begin naaldwerk. Geleidende draad kan moeilik wees om mee te werk, so hier is 'n paar nuttige wenke:

  • Deur 'n komponent op sy plek vas te plak, sal dit baie makliker wees om te naai.
  • Verskillende soorte steke het verskillende estetiese en funksionele eienskappe, daarom is dit die moeite werd om eers na te gaan voordat u begin. 'N Basiese loopsteek behoort egter goed te wees vir hierdie projek.
  • Die knope is geneig om maklik los te raak met geleidende draad, aangesien dit 'veer' is as normaal. 'N Oplossing hiervoor is om 'n klein hoeveelheid helder naellak of stofgom te gebruik om dit te verseël. Laat hulle tyd om droog te word voordat hulle hul sterte afsny.
  • As u verbindings met kringkomponente skep of twee geleidingsdrade verbind, is dit 'n goeie idee om dit verskeie kere oor te werk om te verseker dat 'n goeie meganiese en elektriese verbinding gemaak is.
  • Maak seker dat u naald skerp is en 'n groot oog het. Dit kan moeilik wees om deur die baadjie te kom en geleidende draad is dikker as normaal.
  • Wees versigtig vir los hare op die draad. Dit kan 'n kortbroek in die stroombaan veroorsaak as hulle toevallig ander naaldwerke raak. As dit 'n groot probleem word, kan al die lyne verseël word met 'n duidelike naellak of stofgom sodra die toets uitgevoer is en alles beslis reg werk.

'N Goeie plek om te begin naaldwerk is met die rye. Om dit so reguit as moontlik te maak, kan u ligte lyne trek om met 'n liniaal saam te werk. Nadat u dit toegewerk het, gaan u na die kolomme. Elke keer as 'n ry bereik word, moet u baie versigtig wees, want dit is noodsaaklik dat die twee nie kruis nie. Dit kan bereik word deur die steek vir die kolom aan die binnekant van die baadjie vir hierdie aansluiting te skep, soos op die foto hierbo gesien. As u al die rye en kolomme voltooi het, kan 'n multimeter gebruik word om te kyk of daar geen kortbroek is nie.

As u tevrede is, begin u die LED's vir die kolom heel regs van die baadjie naai. Maak seker dat elke anode aan sy eie ry geheg is en dat elke katode aan die kolom aan die linkerkant geheg is. Plaas dan die LilyPad Arduino op sy plek met stofgom iewers ongeveer onder hierdie kolom, en maak seker dat die penne vir die FTDI -uitbreekbord na onder wys. Werk pen 11 van die LilyPad vas in ry 1, pen 12 in ry 2 en so aan totdat pen A5 in ry 9 vasgewerk word, naai dan pen 10 vas in die kolom regs regs. Om die eerste kolom te toets, kan u die onderstaande kode gebruik. Laai die kode op en voer die LilyPad aan deur dit aan te sluit op u rekenaar met behulp van die FTDI-uitbrekingskaart en die USB 2.0 A-Male na Mini-B-kabel.

As die korrekte poort nie beskikbaar is as u die LilyPad aansluit nie, moet u moontlik 'n FTDI -bestuurder installeer wat beskikbaar is op die onderstaande skakel.

FTDI bestuurder installasie

Sodra hierdie eerste kolom LED's aangesteek is, is dit tyd om die res aan die baadjie vas te werk. Dit is 'n baie tydrowende proses, en daarom is dit die beste om dit oor 'n paar dae te versprei. Maak seker dat u elke kolom toets terwyl u gaan. U kan dit doen deur die kode hierbo aan te pas, sodat die pen vir die kolom wat u wil toets as 'n uitset in die opstelling verklaar word, en dan word dit LOW in die lus gestel. Maak seker dat die ander kolompenne as HOOG gestel is, want dit sal verseker dat hulle afgeskakel word.

Stap 4: Voeg 'n skakelaar by

Voeg 'n skakelaar by
Voeg 'n skakelaar by

Vervolgens kan u 'n skakelaar byvoeg wat gebruik sal word om die instellings op die baadjie te verander. Dit moet aan die binnekant van die baadjie onder die LilyPad Arduino -bord vasgemaak word. Deur 'n geleidende draad te gebruik, moet die punt met die etiket "af" aan die aarde gekoppel word en die punt met die aantekening aan "pen".

U kan die skakelaar toets met behulp van die onderstaande kode. Dit is baie eenvoudig en skakel die regter onderste LED aan as die skakelaar oop is en skakel dit uit as die skakelaar gesluit is.

Stap 5: Maak die toestel draadloos

Maak die toestel draadloos
Maak die toestel draadloos
Maak die toestel draadloos
Maak die toestel draadloos
Maak die toestel draadloos
Maak die toestel draadloos

Berei die LilyPad XBee en XBee Explorer voor

Berei die LilyPad XBee voor vir konfigurasie deur te soldeer op 'n 6-pins reghoekige manlike kopstuk. Dit laat dit later aan 'n rekenaar koppel via die LilyPad FTDI Basic Breakout -bord en die USB Mini -kabel. Soldeer ook die 9V-batteryklem aan die LilyPad XBee met die rooi draad na die "+" -pen en die swart draad na die "-" -pen.

Koppel die Explorer -bord aan op die prototipiese skild vir die Arduino Mega. 5V en Ground op die Explorer -bord moet gekoppel word aan 5V en Ground on the Mega, die uitsetpen op die Explorer moet aan RX1 op die Mega gekoppel word en die ingang op die Explorer moet aan TX1 op die Mega gekoppel word.

Die opstel van die XBees

Vervolgens moet die XBees gekonfigureer word. In die eerste plek moet u die CoolTerm -sagteware gratis installeer, wat beskikbaar is op die onderstaande skakel.

CoolTerm sagteware

Maak seker dat u op een of ander manier tussen die twee XBees onderskei, aangesien dit belangrik is dat u dit nie deurmekaar maak nie.

Stel eers die XBee vir die rekenaar op. Plaas dit in die LilyPad XBee Breakout -bord en verbind dit met die rekenaar met behulp van die FTDI basic breakout board en USB Mini -kabel. Maak CoolTerm oop en kies die korrekte seriële poort in die opsies. As u dit nie kan sien nie, druk dan op 'Re-Scan Serial Ports'. Maak dan seker dat die baud -tempo ingestel is op 9600, skakel Local Echo aan en stel die sleutelemulasie in op CR. CoolTerm kan nou aan die XBee gekoppel word.

Tik "+++" in die hoofvenster om die XBee in die opdragmodus te plaas. Druk nie terug nie. Hierdeur kan dit gekonfigureer word met behulp van AT -opdragte. As dit suksesvol was, moet daar na 'n baie kort pouse 'n "OK" boodskap antwoord wees. As daar 'n vertraging van meer as 30 sekondes voor die volgende reël is, sal die opdragmodus verlaat en dit moet herhaal word. Talle AT -opdragte moet ingevoer word om die PAN ID, MY ID, bestemmings -ID in te stel en die veranderinge te stoor. Terugkeer moet na elk van hierdie opdragte getref word, en dit kan in die tabel hierbo gesien word. Sodra dit voltooi is vir die rekenaar XBee, moet dit ontkoppel word en moet dieselfde proses vir die baadjie XBee uitgevoer word.

U kan die nuwe XBee -instellings nagaan deur elke AT -opdrag in te tik sonder die waarde aan die einde. As u byvoorbeeld 'ATID' intik en 'Return' druk, moet '1234' teruggekeer word.

Toets die XBees

Naai die LilyPad XBee op die baadjie langs LilyPad Arduino vas. Die volgende verbindings moet met geleidende draad gemaak word:

  • 3.3V op die LilyPad XBee na '+' op die LilyPad
  • Grond op die LilyPad XBee tot grond op die LilyPad
  • RX op die LilyPad XBee na TX op die LilyPad
  • TX op die LilyPad XBee na RX op die LilyPad

Nou kan die toestel getoets word om te verseker dat die XBees korrek werk. Die onderstaande kode 'Wireless_Test_Mega' moet na die Arduino Mega opgelaai word, en die hoofdoel daarvan is om MIDI -boodskappe te ontvang van die eenvoudige Pure Data -lappie wat vroeër geskep is, en verskillende waardes via die XBee oor te dra. As 'n MIDI -noot met 'n toonhoogte van 60 ontvang word, sal die boodskap 'a' gestuur word. Alternatiewelik, as 'n aantekeningboodskap ontvang word, sal 'b' gestuur word.

Boonop moet die onderstaande kode, 'Wireless_Test_LilyPad', na die LilyPad opgelaai word. Dit ontvang die boodskappe van die Mega via die XBees en beheer die LED regs onderaan dienooreenkomstig. As die boodskap 'a' ontvang word, wat beteken dat 'n MIDI -noot met 'n toonhoogte van 60 deur die Mega ontvang is, sal die LED aanskakel. Aan die ander kant, as 'a' nie ontvang word nie, sal die LED afskakel.

Sodra die kode op albei borde opgelaai is, moet u seker maak dat die skerm weer in die Mega geplaas is en dat dit via beide kabels aan die rekenaar gekoppel is. Plaas die rekenaar XBee in die Explorer -bord. Maak dan seker dat die FTDI Breakout -bord van die baadjie losgemaak is en steek die baadjie XBee in die LilyPad XBee. Koppel die 9V -battery aan en druk op die verskillende boodskappe in Pure Data. Die LED regs onder op die baadjie moet aan en af skakel.

Stap 6: Laaste aanraking

Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking

Die kode en suiwer data -pleister

As u bly is dat die baadjie draadloos werk, laai die 'MegaCode' -skets hieronder na die Arduino Mega en die' LilyPadCode 'skets na die LilyPad. Maak die Pure Data -pleister oop en maak seker dat DSP aan is en die klankinvoer op u ingeboude mikrofoon op u rekenaar ingestel is. Probeer musiek speel en die skakelaar beweeg. Miskien moet u die drempels in Pure Data effens aanpas, afhangende van hoeveel of min die LED's op die klank reageer.

Voeg 'n nuwe voering by

Ten slotte, om die baadjie meer esteties aangenaam en gemakliker te dra, kan nog 'n voering aan die binnekant van die baadjie gevoeg word om die naaldwerk en die komponente te bedek. Dit moet met behulp van klittenband gedoen word om maklike toegang tot die stroombaan moontlik te maak, indien veranderings aangebring moet word.

Naai eers die 'lus' -stroke (die sagter deel) aan die binnekant aan die binnekant, aan die bokant en aan beide kante. Dit is 'n goeie idee om die bodem vry te laat, aangesien dit die lug in staat stel om by die komponente uit te kom. Sny dan 'n stuk stof van dieselfde grootte en werk die 'haak' -stroke van die klittenband aan die bokant en onderkant vas. Naai aan dieselfde kant as die klittenband en op die gemaklikste plek 'n sak vas waarin die battery kan sit. Sien die foto's hierbo vir voorbeelde.

Stap 7: U is klaar

U draadlose Light Show -baadjie behoort nou volledig te wees en suksesvol op klank te reageer! Die een instelling moet 'n effek soos 'n amplitudebalk skep, en die ander LED's moet individuele LED's laat blink met hul kleure, afhangende van die toonhoogte. Kyk hierbo vir video -voorbeelde. As u wonder, is die kleur en toonhoogte verband met die Rosicrucian Order, wat slegs op intonasie gebaseer is. Ek hoop jy het hierdie projek geniet!

Aanbeveel: