Innholdsfortegnelse:

Light Show -jakke som reagerer på musikk: 7 trinn (med bilder)
Light Show -jakke som reagerer på musikk: 7 trinn (med bilder)

Video: Light Show -jakke som reagerer på musikk: 7 trinn (med bilder)

Video: Light Show -jakke som reagerer på musikk: 7 trinn (med bilder)
Video: emma - Million (Official Music Video) 2024, Juli
Anonim
Light Show -jakke som reagerer på musikk
Light Show -jakke som reagerer på musikk

Denne opplæringen har blitt produsert som en del av mitt siste års prosjekt for min grad i musikkteknologi og anvendt elektronikk ved University of York. Den er rettet mot musikere med interesse for elektronikk. Det ferdige produktet vil være en LED -matrise på baksiden av en jakke som kan produsere et lysshow i henhold til musikk. Dette vil bli gjort ved å analysere lydinnganger ved hjelp av Pure Data og Arduino. Jakken vil ha to innstillinger som kan styres med en bryter. Den ene innstillingen vil kontrollere lysdiodene i henhold til musikkens amplitude, og den andre vil ha lysdiodene som blinker en om gangen og endrer farge i henhold til tonehøyden.

Hvordan det vil fungere

Denne enheten vil bestå av to separate kretser. Den ene vil være basert på en Arduino Mega koblet direkte til en datamaskin. Den andre kretsen vil være basert på en LilyPad Arduino og vil være fullstendig inneholdt i jakken og drives av et 9V batteri. Begge disse kretsene vil kommunisere trådløst med hverandre ved hjelp av XBee -moduler. Lydsignaler vil bli mottatt av datamaskinens innebygde mikrofon og analysert i Pure Data for å få amplitude- og frekvensdata. Denne informasjonen vil bli overført til Arduino Mega ved hjelp av en MIDI -inngangskrets, og denne vil deretter bli overført til LilyPad ved hjelp av XBees. LilyPad vil deretter bestemme hvordan lysdiodene på jakken vil reagere.

Hva du trenger

For Mega Circuit

  • Arduino Mega 2560
  • XBee Explorer regulert
  • XBee 1mW Trace Antenna - Serie 1
  • Prototyping Shield for Mega
  • USB Type A til B
  • USB til MIDI -kabel
  • MIDI -kontakt
  • 1 x 220Ω motstand
  • 1 x 270Ω motstand
  • 1 x 1N4148 Diode
  • 1 x 6N138 optokobler

For LilyPad Circuit

  • LilyPad Arduino 328 hovedkort
  • LilyPad XBee Breakout Board
  • XBee 1mW Trace Antenna - Serie 1
  • LilyPad FTDI Basic Breakout Board
  • 72 x LilyPad -lysdioder (en rekke farger tilgjengelig, inkludert hvit, blå, rød, gul, grønn, rosa og lilla)
  • LilyPad lysbildebryter
  • USB 2.0 A-hann til mini-B kabel
  • 9V batteri
  • 9V batteriklemme

Annen

  • Jakke
  • Datamaskin med Pure Data og Arduino IDE installert
  • Utstyrsledning
  • Loddeutstyr
  • Avbitertang
  • Wire strippere
  • Nål med et stort øye
  • Tråd
  • Ledende tråd
  • Saks
  • Målebånd
  • Stofflim eller klar neglelakk
  • Kritt eller hvit eyeliner
  • Stoff til fôr eller en gammel t-skjorte
  • Borrelås
  • Drill (muligens)
  • Standard LED (for testing)
  • Brødbrett (for testing)
  • En annen 220Ω motstand (for testing)
  • Multimeter (for testing)

Kostnaden for dette prosjektet vil i stor grad avhenge av hvor mye av utstyret du allerede eier. Imidlertid vil det sannsynligvis være et sted mellom £ 150 - £ 200.

Et raskt notat - LilyPad -brettene er designet for å sys direkte til tekstiler, og derfor kan lodning av et 9V batteriklemme forårsake problemer. Tilkoblingen kan være delikat og lett brytes. Du kan få spesialdesignede LilyPad -kort for AAA- eller LiPo -batterier som du kan bestemme deg for å bruke. Imidlertid valgte jeg fortsatt å gå 9V -ruten ettersom batterilevetiden deres er større enn AAA -er og universitetet mitt har begrensninger på bruk av LiPo -batterier.

Trinn 1: Opprette MIDI -inngangskretsen

Opprette MIDI Input Circuit
Opprette MIDI Input Circuit
Opprette MIDI Input Circuit
Opprette MIDI Input Circuit
Opprette MIDI Input Circuit
Opprette MIDI Input Circuit

La oss først vurdere MIDI -inngangskretsen. Dette må konstrueres på prototypebrettet som vil plassere i Arduino Mega. Dette vil bli brukt til å sende MIDI -meldinger fra Pure Data -patchen til Mega via sin ‘COMMUNICATION RX0’ pin. Se ovenfor for et kretsdiagram og et bilde. Avhengig av prototypebrettet ditt, kan oppsettet ditt være litt annerledes, men jeg valgte å plassere MIDI-kontakten i nedre venstre hjørne. Det kan være nødvendig å bruke et bor her for å gjøre hullene på skjoldet større for å passe til kontakten. De røde ledningene på bildet er koblet til 5V, de brune er koblet til bakken, den svarte ledningen er koblet til pinne 3 på 6N138, den blå ledningen er koblet til pinne 2 på 6N138 og de gule ledningene er koblet til RX0 pin. Det er plass igjen på høyre side av prototypebrettet for å gi plass til XBee senere. Det må sannsynligvis gjøres pauser i sporene på brettet. For dette eksemplet måtte de lages mellom pinnene på 6N138.

Testing av MIDI -inngangskretsen

For å teste kretsen, last opp koden nedenfor til Arduino Mega ved hjelp av USB Type A til B -kabelen. Sørg for at skjoldet ikke er satt inn når du gjør dette, da koden ikke kan lastes opp hvis noe er koblet til RX- eller TX -pinnene. Koden inkluderer også MIDI.h -biblioteket som du må laste ned, tilgjengelig på lenken nedenfor.

MIDI.h

Sett deretter skjermen inn i mega -enheten og koble den til en annen USB -port på datamaskinen din via MIDI til USB -kabelen. MIDI -enden du må bruke vil bli merket med "out". Lag en enkel krets på et brødbrett som kobler pin 2 til en 220Ω motstand, og koble den deretter til anoden til en standard LED. Koble LED -katoden til jord.

Lag deretter en enkel Pure Data -oppdatering med en [60 100] melding og en [0 0] melding som begge er koblet til et noteringsobjekt via det venstre innløpet. Sørg for at denne oppdateringen er koblet til MIDI -inngangskretsen ved å åpne MIDI -innstillingene og endre utdataenheten. Hvis dette ikke er tilgjengelig, må du kontrollere at du har koblet MIDI -kretsen til datamaskinen din før du åpnet Pure Data. Hvis kretsen din er riktig, skal lysdioden lyse når du trykker på [60 100] meldingen, og den skal slås av når du trykker på [0 0] meldingen.

Trinn 2: Design LED -matrisen

Design av LED Matrix
Design av LED Matrix
Design av LED Matrix
Design av LED Matrix
Design av LED Matrix
Design av LED Matrix

Deretter må LED -matrisen på baksiden av jakken vurderes. Dette kobles direkte til hovedkortet på LilyPad. Normalt vil de hver tilordnes sine egne individuelle pinner for å kontrollere lysdioder ved hjelp av en mikrokontroller. Men med bare én Arduino LilyPad ville dette være svært begrensende. Totalt har LilyPad 12 digitale pinner og 6 analoge, så potensielt 18 utgangspinner. Ettersom en av disse pinnene vil bli brukt senere til å styre en lysbildebryter, vil dette bare ha 17 igjen.

En teknikk kan brukes i denne situasjonen som kalles multipleksing for å maksimere potensialet til LilyPads kontrollpinner. Dette drar fordel av to fakta:

  • Lysdioder er dioder og lar bare strøm flyte i en retning.
  • Menneskelige øyne og hjerner behandler bilder mye saktere enn lyset kan reise, så hvis lysdioder blinker raskt nok, vil vi ikke legge merke til det. Dette er et konsept kjent som "Persistence of Vision".

Ved å bruke denne teknikken er antall lysdioder som kan kontrolleres (n/2) x (n- (n/2)) hvor n er antall tilgjengelige kontrollpinner. Derfor, med 17 pinner tilgjengelig, bør det være mulig å kontrollere 72 lysdioder i en 9x8 matrise.

Et diagram for utformingen av lysdioder i en 9x8 matrise kan sees ovenfor, inkludert forslag til pinnene som hver rad og kolonne skal kobles til. Det er viktig å merke seg at radene og kolonnene ikke må berøre. Det kreves heller ingen motstander på grunn av det faktum at hver LED har sin egen innebygde med en motstand på 100Ω.

Før du begynner å sy, bør du planlegge utformingen av kretsen på jakken. Et godt sted å starte her er å markere på jakken hvor lysdiodene skal gå med små prikker, ved hjelp av et målebånd for å sikre at de er jevnt fordelt. For en svart skinnjakke fungerer hvit eyeliner veldig bra og kan lett tørkes av hvis det blir gjort en feil. Imidlertid kan andre medier som kritt også virke avhengig av materialet og fargen på jakken. Arrangementet av LED -fargene som jeg brukte kan ses ovenfor, som vil fungere med koden som ble gitt senere. Du er velkommen til å bruke et annet oppsett, selv om dette må endres i koden.

Den neste tingen å tenke på er hvor LilyPad, LilyPad XBee og strømforsyningen skal gå. For jakken jeg brukte syntes det mest fornuftige og diskrete stedet å være på baksiden av jakken, nederst og på innsiden. Dette er fordi det er usannsynlig å bli slått av brukerens armer her, og det har lett tilgang til LED -matrisen. Siden jakken jeg brukte var løs i bunnen, var den fortsatt behagelig.

Trinn 3: Sying av LED -matrisen

Sying av LED -matrisen
Sying av LED -matrisen
Sying av LED -matrisen
Sying av LED -matrisen
Sying av LED -matrisen
Sying av LED -matrisen

På dette tidspunktet kan du begynne å sy. Ledende tråd kan være vanskelig å jobbe med, så her er noen nyttige tips:

  • Liming av en komponent på plass ved hjelp av stofflim vil gjøre det mye lettere å sy.
  • Ulike stingtyper vil ha forskjellige estetiske og funksjonelle egenskaper, så det er verdt å undersøke disse før du begynner. En grunnleggende løpesting bør imidlertid være greit for dette prosjektet.
  • Knutene har en tendens til å løsne ganske lett med ledende tråd, ettersom den er “fjærere” enn normalt. En løsning på dette er å bruke en liten mengde klar neglelakk eller stofflim for å forsegle dem. La dem få tid til å tørke før du skjærer av halen.
  • Når du oppretter tilkoblinger til kretskomponenter eller kobler sammen to linjer med ledende tråd, er det en god idé å sy over disse flere ganger for å sikre at en god mekanisk og elektrisk tilkobling er gjort.
  • Sørg for at nålen din er skarp og har et stort øye. Å komme gjennom jakken kan være tøft og ledende tråd er tykkere enn normalt.
  • Vær forsiktig med løse hår på tråden. Disse kan lage shorts i kretsen hvis de tilfeldigvis berører andre sømlinjer. Hvis disse blir et stort problem, kan alle linjene forsegles med klar neglelakk eller stofflim når testingen har funnet sted og alt fungerer definitivt som det skal.

Et godt sted å begynne å sy er med radene. For å gjøre dem så rette som mulig kan du tegne svake linjer for å sy sammen med en linjal. Når du har sydd disse, går du over til kolonnene. Det må utvises stor forsiktighet hver gang en rekke nås, fordi det er viktig at de to ikke krysser hverandre. Dette kan oppnås ved å lage sømmen til kolonnen på innsiden av jakken for dette krysset, som vist på bildet ovenfor. Når du har fullført alle radene og kolonnene, kan et multimeter brukes til å kontrollere at det ikke er shorts.

Når du er fornøyd, begynner du å sy LEDene til kolonnen ytterst til høyre på jakken. Sørg for at hver anode er festet til sin egen rad og at hver katode er festet til kolonnen til venstre. Sett deretter LilyPad Arduino på plass med stofflim et sted omtrent under denne kolonnen, og pass på at pinnene til FTDI -utbruddskortet vender ned. Sy pinne 11 på LilyPad til rad 1, pinne 12 til rad 2 og så videre til pinne A5 sys til rad 9. Sy deretter pinne 10 helt til høyre kolonne. For å teste denne første kolonnen kan du bruke koden nedenfor. Last opp koden og slå på LilyPad ved å koble den til datamaskinen din ved å bruke FTDI breakout-kortet og USB 2.0 A-Male til Mini-B-kabelen.

Hvis riktig port ikke er tilgjengelig når du kobler til LilyPad, må du kanskje installere en FTDI -driver tilgjengelig fra lenken nedenfor.

FTDI driverinstallasjon

Når du har denne første kolonnen med lysdioder lyser, er det på tide å sy resten på jakken. Dette er en ganske tidkrevende prosess, og det er derfor best å være fordelt på noen få dager. Sørg for å teste hver kolonne mens du går. Du kan gjøre dette ved å tilpasse koden ovenfor slik at pinnen for kolonnen du vil teste blir deklarert som en utgang i oppsettet og deretter settes den LAV i løkken. Sørg for at de andre kolonnpinnene er satt til HØYE, da dette vil sikre at de er slått av.

Trinn 4: Legge til en bryter

Legger til en bryter
Legger til en bryter

Deretter kan du legge til en bryter som skal brukes til å endre innstillingene på jakken. Den må sys på innsiden av jakken under LilyPad Arduino -brettet. Ved bruk av ledende tråd skal enden merket "av" kobles til bakken og enden merket "på" skal kobles til pinne 2.

Du kan teste bryteren ved hjelp av koden nedenfor. Dette er veldig enkelt og slår på den nederste høyre lysdioden hvis bryteren er åpen og slår den av hvis bryteren er lukket.

Trinn 5: Gjør enheten trådløs

Gjør enheten trådløs
Gjør enheten trådløs
Gjør enheten trådløs
Gjør enheten trådløs
Gjør enheten trådløs
Gjør enheten trådløs

Forbereder LilyPad XBee og XBee Explorer

Forbered LilyPad XBee for konfigurasjon ved å lodde på et 6-pinners rettvinklet mannlig topptekst. Dette vil senere tillate at den kobles til en datamaskin via LilyPad FTDI Basic Breakout -kortet og USB Mini -kabelen. Lodd også 9V batteriklips til LilyPad XBee med den røde ledningen til "+"-pinnen og den svarte ledningen som går med "-"-pinnen.

Koble Explorer -kortet til prototypeskjoldet for Arduino Mega. 5V og Ground på Explorer -kortet må koble til 5V og Ground on Mega, utgangspinnen på Explorer må koble til RX1 på Mega og inngangen på Explorer må koble til TX1 på Mega.

Konfigurering av XBees

Deretter må XBees konfigureres. Først av alt må du installere CoolTerm -programvaren gratis, som er tilgjengelig fra lenken nedenfor.

CoolTerm -programvare

Sørg for å skille mellom de to XBees på en eller annen måte, da det er viktig at du ikke blander dem.

Konfigurer først XBee for datamaskinen. Sett det inn i LilyPad XBee Breakout -kortet og koble dette til datamaskinen ved å bruke FTDI basic breakout board og USB Mini -kabel. Åpne CoolTerm, og velg riktig seriell port i Alternativer. Hvis du ikke kan se det, kan du prøve å trykke på 'Re-Scan Serial Ports'. Sørg deretter for at baudhastigheten er satt til 9600, slå på Local Echo og sett Key Emulation til CR. CoolTerm kan nå kobles til XBee.

Skriv "+++" i hovedvinduet for å sette XBee i kommandomodus. Ikke trykk på retur. Dette gjør at den kan konfigureres ved hjelp av AT -kommandoer. Hvis dette har vært vellykket, bør det være en "OK" melding etter en veldig kort pause. Hvis det er en forsinkelse på mer enn 30 sekunder før neste linje, vil kommandomodus gå ut og dette må gjentas. Mange AT -kommandoer må angis for å angi PAN ID, MY ID, Destination ID og for å lagre endringene. Retur må treffes etter hver av disse kommandoene, og disse kan sees i tabellen ovenfor. Når dette var fullført for datamaskinen XBee, må den kobles fra, og den samme prosessen må utføres for jakken XBee.

Du kan sjekke de nye XBee -innstillingene ved å skrive inn hver AT -kommando uten verdien på slutten. For eksempel, hvis du skriver inn "ATID" og trykker på retur, bør "1234" ekko tilbake.

Tester XBees

På dette tidspunktet sys LilyPad XBee på jakken ved siden av LilyPad Arduino. Følgende tilkoblinger må gjøres med ledende tråd:

  • 3.3V på LilyPad XBee til '+' på LilyPad
  • Bakken på LilyPad XBee til Ground på LilyPad
  • RX på LilyPad XBee til TX på LilyPad
  • TX på LilyPad XBee til RX på LilyPad

Nå kan enheten testes for å sikre at XBees fungerte korrekt. Koden nedenfor kalt 'Wireless_Test_Mega' må lastes opp til Arduino Mega, og hovedformålet er å motta MIDI -meldinger fra den enkle Pure Data -oppdateringen som ble opprettet tidligere, og overføre forskjellige verdier via XBee. Hvis en MIDI -lapp med en tonehøyde på 60 mottas, vil meldingen "a" bli overført. Alternativt, hvis en notatmelding mottas, vil ‘b’ bli overført.

I tillegg til dette må koden nedenfor kalt 'Wireless_Test_LilyPad' lastes opp til LilyPad. Dette mottar meldingene fra Mega via XBees og kontrollerer LED-en nederst til høyre tilsvarende. Hvis meldingen "a" mottas, noe som betyr at en MIDI -lapp med en tonehøyde på 60 hadde blitt mottatt av Mega, vil LED -en slås på. På den annen side, hvis "a" ikke mottas, vil LED -en slås av.

Når koden er lastet opp til begge kortene, må du kontrollere at skjermen er satt inn i Mega igjen og at den er koblet til datamaskinen via begge kablene. Sett datamaskinen XBee inn i Explorer -kortet. Sørg deretter for at FTDI Breakout -kortet er koblet fra jakken og sett jakken XBee inn i LilyPad XBee. Koble til 9V -batteriet og prøv å trykke på de forskjellige meldingene i Pure Data. LED-en nederst til høyre på jakken skal slås av og på.

Trinn 6: Siste berøringer

Siste berøringer
Siste berøringer
Siste berøringer
Siste berøringer
Siste berøringer
Siste berøringer

Koden og Pure Data Patch

Når du er glad for at jakken fungerer trådløst, last opp "MegaCode" -skissen nedenfor til Arduino Mega og "LilyPadCode" -skissen til LilyPad. Åpne Pure Data -oppdateringen og kontroller at DSP er på og at lydinngangen er satt til datamaskinens innebygde mikrofon. Prøv å spille litt musikk og flytt bryteren. Du må kanskje justere terskelverdiene i Pure Data litt avhengig av hvor mye eller lite lysdiodene reagerer på lyden.

Legger til et nytt fôr

Til slutt, for å gjøre jakken mer estetisk tiltalende og mer behagelig å ha på, kan du legge til et annet fôr på innsiden av jakken for å dekke over sømmen og komponentene. Dette bør gjøres ved hjelp av borrelås for å gi enkel tilgang til kretsen i tilfelle eventuelle endringer må gjøres.

Først av alt, sy "løkke" -strimlene (den mykere delen) til jakken på innsiden, langs toppen og nedover begge sider. Det er en god idé å la bunnen være fri, da dette vil tillate luft å komme til komponentene. Klipp deretter et stoffstykke av samme størrelse og sy til "krok" -båndene på borrelåsen, langs toppen og nedover begge sider. På samme side som borrelåsen og på det mest praktiske stedet, syr du på en lomme som batteriet kan sitte i. Se bildene ovenfor for eksempler.

Trinn 7: Du er ferdig

Din trådløse Light Show -jakke skal nå være komplett og vellykket reagere på lyd! Den ene innstillingen skal skape en effekt som en amplitudelinje, og den andre bør ha individuelle lysdioder som blinker til musikken med fargene sine, avhengig av tonehøyden. Se videoeksempler ovenfor. I tilfelle du lurte på, er fargen og tonehøyden knyttet til rosenkreuzerordenen som er basert på bare intonasjon. Jeg håper du likte dette prosjektet!

Anbefalt: