Innehållsförteckning:

Light Show -jacka som reagerar på musik: 7 steg (med bilder)
Light Show -jacka som reagerar på musik: 7 steg (med bilder)

Video: Light Show -jacka som reagerar på musik: 7 steg (med bilder)

Video: Light Show -jacka som reagerar på musik: 7 steg (med bilder)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Juni
Anonim
Light Show -jacka som reagerar på musik
Light Show -jacka som reagerar på musik

Denna handledning har tagits fram som en del av mitt sista års projekt för min examen i musikteknik och tillämpad elektronik vid University of York. Den vänder sig till musiker med intresse för elektronik. Den färdiga produkten blir en LED -matris på baksidan av en jacka som kan producera en ljusshow i enlighet med musik. Detta kommer att göras genom att analysera ljudingångar med Pure Data och Arduino. Jackan kommer att ha två inställningar som kan styras med en omkopplare. En inställning kommer att styra lysdioderna enligt musikens amplitud och den andra kommer att lysdioderna blinka en i taget och ändra färg beroende på tonhöjden.

Hur det kommer att fungera

Denna enhet består av två separata kretsar. Den ena kommer att baseras på en Arduino Mega ansluten direkt till en dator. Den andra kretsen kommer att baseras kring en LilyPad Arduino och kommer att vara helt inrymd i jackan och drivs via ett 9V batteri. Båda dessa kretsar kommer att kommunicera trådlöst med varandra med hjälp av XBee -moduler. Ljudsignaler kommer att tas emot av datorerna inbyggd mikrofon och analyseras i Pure Data för att få amplitud- och frekvensdata. Denna information kommer att överföras till Arduino Mega med hjälp av en MIDI -ingångskrets och detta kommer sedan att överföras till LilyPad med hjälp av XBees. LilyPad bestämmer sedan hur lysdioderna på jackan kommer att reagera.

Vad du kommer att behöva

För Mega Circuit

  • Arduino Mega 2560
  • XBee Explorer reglerad
  • XBee 1mW spårantenn - serie 1
  • Prototypsköld för Mega
  • USB typ A till B
  • USB till MIDI -kabel
  • MIDI -uttag
  • 1 x 220Ω motstånd
  • 1 x 270Ω motstånd
  • 1 x 1N4148 -diod
  • 1 x 6N138 optokopplare

För LilyPad -kretsen

  • LilyPad Arduino 328 Huvudkort
  • LilyPad XBee Breakout Board
  • XBee 1mW spårantenn - serie 1
  • LilyPad FTDI Basic Breakout Board
  • 72 x LilyPad -lysdioder (ett utbud av alla färger, inklusive vit, blå, röd, gul, grön, rosa och lila)
  • LilyPad Slide Switch
  • USB 2.0 A-hane till Mini-B-kabel
  • 9V batteri
  • 9V batteriklämma

Övrig

  • Jacka
  • Dator med Pure Data och Arduino IDE installerat
  • Utrustningsledning
  • Lödutrustning
  • Avbitartång
  • Wire Strippers
  • Nål med ett stort öga
  • Tråd
  • Ledande tråd
  • Sax
  • Måttband
  • Tyglim eller klart nagellack
  • Krita eller Vit Eyeliner
  • Tyg för ett foder eller en gammal t-shirt
  • Kardborre
  • Drill (möjligen)
  • Standard LED (för testning)
  • Brödbräda (för testning)
  • Ytterligare ett 220Ω motstånd (för testning)
  • Multimeter (för testning)

Kostnaden för detta projekt beror mycket på hur mycket av ovanstående utrustning du redan äger. Det kommer dock sannolikt att ligga någonstans mellan £ 150 - £ 200.

En snabb notering - LilyPad -brädorna är utformade för att sys direkt på textilier och därför kan lödning av ett 9V batteriklämma orsaka problem. Anslutningen kan vara känslig och lätt brytas. Du kan få specialdesignade LilyPad -kort för AAA- eller LiPo -batterier som du kan bestämma att du hellre vill använda. Men jag valde fortfarande att gå 9V -vägen eftersom batterilivslängden är större än AAA och mitt universitet har begränsningar för användning av LiPo -batterier.

Steg 1: Skapa MIDI -ingångskretsen

Skapa MIDI -ingångskretsen
Skapa MIDI -ingångskretsen
Skapa MIDI -ingångskretsen
Skapa MIDI -ingångskretsen
Skapa MIDI -ingångskretsen
Skapa MIDI -ingångskretsen

Låt oss först och främst överväga MIDI -ingångskretsen. Detta måste konstrueras på prototyperna som kommer att passa in i Arduino Mega. Detta kommer att användas för att skicka MIDI -meddelanden från Pure Data -patchen till Mega via dess "COMMUNICATION RX0" -pinne. Se ovan för ett kretsschema och ett foto. Beroende på din prototypkort kan din layout vara något annorlunda men jag valde att placera MIDI-uttaget i nedre vänstra hörnet. En borr kan behöva användas här för att göra hålen på skölden större för att passa uttaget. De röda trådarna på fotot är anslutna till 5V, de bruna är anslutna till jord, den svarta ledningen är ansluten till stift 3 på 6N138, den blå tråden är ansluten till stift 2 på 6N138 och de gula trådarna är anslutna till RX0 stift. Utrymme finns kvar på höger sida av prototyperna för att ge plats för XBee senare. Avbrott kommer troligen att behöva göras i spåren på brädet. För detta exempel måste de göras mellan stiften på 6N138.

Testar MIDI -ingångskretsen

För att testa kretsen, ladda upp koden nedan till Arduino Mega med USB Type A till B -kabel. Se till att skärmen inte sätts in när du gör detta eftersom koden inte kan laddas upp om något är anslutet till RX- eller TX -stiften. Koden innehåller också MIDI.h -biblioteket som du kan behöva ladda ner, tillgängligt på länken nedan.

MIDI.h

Sätt sedan in skölden i megan och anslut den till en annan USB -port på din dator via MIDI till USB -kabeln. MIDI -slutet som du måste använda kommer att märkas med 'out'. Skapa en enkel krets på en breadboard -anslutningsstift 2 till ett 220Ω -motstånd och anslut sedan detta till anoden på en standard -LED. Anslut lysdiodernas katod till jord.

Skapa sedan en enkel Pure Data -patch med ett [60 100] meddelande och ett [0 0] meddelande båda anslutna till ett noteringsobjekt via dess vänstra inlopp. Se till att denna patch är ansluten till MIDI -ingångskretsen genom att öppna MIDI -inställningarna och ändra utmatningsenheten. Om detta inte är tillgängligt, se till att du har anslutit MIDI -kretsen till din dator innan du öppnade Pure Data. Om din krets är korrekt ska lysdioden lysa när [60 100] -meddelandet trycks in och den ska stängas av när [0 0] -meddelandet trycks in.

Steg 2: Designa LED -matrisen

Design av LED -matrisen
Design av LED -matrisen
Design av LED -matrisen
Design av LED -matrisen
Design av LED -matrisen
Design av LED -matrisen

Därefter måste LED -matrisen på jackans baksida beaktas. Detta kommer att anslutas direkt till LilyPad -huvudkortet. Normalt skulle de var och en tilldelas sina egna individuella stift för att styra lysdioder med en mikrokontroller. Men med bara en Arduino LilyPad skulle detta vara mycket begränsande. Totalt har LilyPad 12 digitala stift och 6 analoga, så potentiellt 18 utgångsstiften. Men eftersom en av dessa stift kommer att användas senare för att styra en glidomkopplare, kommer detta att lämna endast 17 kvar.

En teknik kan användas i denna situation som kallas multiplexering för att maximera potentialen hos LilyPads kontrollnålar. Detta drar fördel av två fakta:

  • Lysdioder är dioder och tillåter bara ström att flöda i en riktning.
  • Mänskliga ögon och hjärnor bearbetar bilder mycket långsammare än ljus kan resa så om lysdioder blinkar tillräckligt snabbt kommer vi inte att märka det. Detta är ett begrepp som kallas "Persistence of Vision".

Genom att använda denna teknik är antalet lysdioder som kan styras (n/2) x (n- (n/2)) där n är antalet tillgängliga kontrollnålar. Med 17 stift tillgängliga bör det därför vara möjligt att styra 72 lysdioder i en 9x8 matris.

Ett diagram för layouten för lysdioder i en 9x8 matris kan ses ovan, inklusive förslag på stiften som varje rad och kolumn ska anslutas till. Det är viktigt att notera att raderna och kolumnerna inte får röra vid varandra. Dessutom krävs inga motstånd på grund av det faktum att varje lysdiod har sin egen inbyggda med ett motstånd på 100Ω.

Innan du börjar sy ska du planera kretsens layout på jackan. Ett bra ställe att börja här är genom att markera på jackan vart lysdioderna ska gå med små prickar, med hjälp av ett måttband för att se till att de är jämnt fördelade. För en svart skinnjacka fungerar vit eyeliner mycket bra och kan enkelt torkas bort om ett misstag görs. Men andra medier som krita kan också fungera beroende på materialet och färgen på din jacka. Arrangemanget av LED -färgerna som jag använde kan ses ovan som fungerar med koden som tillhandahålls senare. Du är välkommen att använda en annan layout även om detta måste ändras i koden.

Nästa sak att tänka på är vart LilyPad, LilyPad XBee och strömförsörjningen ska ta vägen. För jackan jag använde verkade det mest vettiga och diskreta stället vara på jackans baksida, i botten och på insidan. Detta beror på att det är osannolikt att bli knackad av bärarmarna här och att det enkelt kommer åt LED -matrisen. Eftersom jackan jag använde var lös i botten var den fortfarande bekväm.

Steg 3: Sy LED -matrisen

Sy LED -matrisen
Sy LED -matrisen
Sy LED -matrisen
Sy LED -matrisen
Sy LED -matrisen
Sy LED -matrisen

Vid denna tidpunkt kan du börja sy. Ledande tråd kan vara svårt att arbeta med, så här är några användbara tips:

  • Limning av en komponent på plats med tyglim gör det mycket lättare att sy.
  • Olika typer av stygn kommer att ha olika estetiska och funktionella egenskaper så det är värt att titta på dessa innan du sätter igång. En grundläggande löpstygn bör dock vara bra för detta projekt.
  • Knutarna tenderar att lossna ganska lätt med ledande tråd eftersom det är "fjädrande" än normalt. En lösning på detta är att använda en liten mängd klart nagellack eller tyglim för att täta dem. Låt dem torka innan de skär av svansen.
  • När du skapar anslutningar till kretskomponenter eller sammanfogar två ledningar med ledande tråd är det en bra idé att sy om dessa flera gånger för att säkerställa att en bra mekanisk och elektrisk anslutning har gjorts.
  • Se till att din nål är skarp och har ett stort öga. Att komma igenom jackan kan vara tufft och ledande tråd är tjockare än normalt.
  • Var försiktig med lösa hårstrån. Dessa kan skapa shorts i kretsen om de råkar röra andra sömmar. Om dessa blir ett stort problem kan alla linjer förseglas med den klara nagellacken eller tyglimet när testning har ägt rum och allt fungerar definitivt korrekt.

Ett bra ställe att börja sy är med raderna. För att göra dem så raka som möjligt kan du dra svaga linjer att sy med en linjal. När du har sytt dessa går du vidare till kolumnerna. Stor försiktighet måste iakttas varje gång en rad nås eftersom det är viktigt att de två inte går över. Detta kan uppnås genom att skapa sömmen för kolonnen på insidan av jackan för denna korsning, som ses på bilden ovan. När du har slutfört alla rader och kolumner kan en multimeter användas för att kontrollera att det inte finns några shorts.

När du är nöjd börjar du sy LED -lamporna för kolonnen längst till höger på jackan. Se till att varje anod är ansluten till sin egen rad och att varje katod är ansluten till kolumnen till vänster. Sätt sedan LilyPad Arduino på plats med tyglim någonstans ungefär under denna kolumn, se till att stiften för FTDI -utbrottskortet är vända nedåt. Sy stift 11 på LilyPad till rad 1, stift 12 till rad 2 och så vidare tills stift A5 sys till rad 9. Sy sedan stift 10 till kolumnen längst till höger. För att testa den här första kolumnen kan du använda koden nedan. Ladda upp koden och slå på LilyPad genom att ansluta den till din dator med hjälp av FTDI-brytkortet och USB 2.0 A-Male till Mini-B-kabeln.

Om rätt port inte är tillgänglig när du ansluter LilyPad kan du behöva installera en FTDI -drivrutin tillgänglig från länken nedan.

FTDI -drivrutinsinstallation

När du har den första kolumnen med lysdioder tänd är det dags att sy resten på jackan. Detta är en ganska tidskrävande process och därför är det förmodligen bäst att placeras på ett par dagar. Se till att testa varje kolumn när du går. Du kan göra detta genom att anpassa koden ovan så att stiftet för kolumnen du vill testa deklareras som en utgång i installationen och sedan ställs den LÅG i slingan. Se till att de andra kolumnstiften är inställda på HIGH eftersom detta kommer att säkerställa att de är avstängda.

Steg 4: Lägga till en switch

Lägger till en switch
Lägger till en switch

Därefter kan du lägga till en omkopplare som används för att ändra inställningarna på jackan. Det måste sys på insidan av jackan under LilyPad Arduino -brädan. Med ledande tråd bör änden märkt "av" anslutas till jord och änden märkt "på" ska anslutas till stift 2.

Du kan testa omkopplaren med hjälp av koden nedan. Detta är mycket enkelt och tänder den nedre högra lysdioden om omkopplaren är öppen och stänger av den om strömbrytaren är stängd.

Steg 5: Gör enheten trådlös

Gör enheten trådlös
Gör enheten trådlös
Gör enheten trådlös
Gör enheten trådlös
Gör enheten trådlös
Gör enheten trådlös

Förbereder LilyPad XBee och XBee Explorer

Förbered LilyPad XBee för konfiguration genom att lödas på ett 6-stifts rätvinkligt hanrubrik. Detta gör att den senare kan anslutas till en dator via LilyPad FTDI Basic Breakout -kortet och USB Mini -kabeln. Löd också 9V-batteriklämman till LilyPad XBee med den röda tråden till "+"-stiftet och den svarta tråden som "-"-stiftet.

Anslut Explorer -kortet till prototypskölden för Arduino Mega. 5V och Ground på Explorer -kortet måste anslutas till 5V och Ground on Mega, utgångsstiften på Explorer måste anslutas till RX1 på Mega och ingången på Explorer måste anslutas till TX1 på Mega.

Konfigurera XBees

Därefter måste XBees konfigureras. Först och främst måste du installera CoolTerm -programvaran gratis som är tillgänglig från länken nedan.

CoolTerm -programvara

Se till att skilja mellan de två XBees på något sätt eftersom det är viktigt att du inte blandar ihop dem.

Konfigurera först XBee för datorn. Sätt in den i LilyPad XBee Breakout -kortet och anslut den till datorn med FTDI basic breakout board och USB Mini -kabel. Öppna CoolTerm och välj rätt seriell port i Alternativ. Om du inte kan se det, försök att trycka på 'Re-Scan Serial Ports'. Se sedan till att överföringshastigheten är inställd på 9600, slå på Local Echo och ställ in Key Emulation till CR. CoolTerm kan nu anslutas till XBee.

Skriv "+++" i huvudfönstret för att sätta XBee i kommandoläge. Tryck inte på retur. Detta gör att den kan konfigureras med AT -kommandon. Om detta har lyckats bör det efter en mycket kort paus vara ett "OK" meddelandesvar. Om det är en fördröjning på mer än 30 sekunder innan nästa rad kommer kommandoläget att avslutas och detta måste upprepas. Många AT -kommandon måste anges för att ställa in PAN ID, MY ID, Destination ID och för att spara ändringarna. Retur behöver träffas efter var och en av dessa kommandon och dessa kan ses i tabellen ovan. När detta hade slutförts för datorn XBee måste den kopplas bort och samma process måste utföras för jackan XBee.

Du kan kontrollera de nya XBee -inställningarna genom att skriva in varje AT -kommando utan värdet i slutet. Till exempel, om du skriver in "ATID" och trycker på retur, ska "1234" ekas tillbaka.

Testar XBees

Vid denna punkt, sy LilyPad XBee på jackan bredvid LilyPad Arduino. Följande anslutningar måste göras med ledande gänga:

  • 3.3V på LilyPad XBee till '+' på LilyPad
  • Jorda på LilyPad XBee till Ground på LilyPad
  • RX på LilyPad XBee till TX på LilyPad
  • TX på LilyPad XBee till RX på LilyPad

Nu kan enheten testas för att säkerställa att XBees fungerade korrekt. Koden nedan kallad 'Wireless_Test_Mega' måste laddas upp till Arduino Mega och dess huvudsakliga syfte är att ta emot MIDI -meddelanden från den enkla Pure Data -patch som skapats tidigare och överföra olika värden via XBee. Om en MIDI -notering med en tonhöjd på 60 tas emot, skickas meddelandet "a". Alternativt, om ett anteckningsmeddelande tas emot, kommer 'b' att överföras.

Utöver detta måste koden nedan kallad 'Wireless_Test_LilyPad' laddas upp till LilyPad. Detta tar emot meddelanden från Mega via XBees och kontrollerar den nedre högra lysdioden därefter. Om meddelandet "a" tas emot, vilket betyder att en MIDI -notering med en tonhöjd på 60 hade mottagits av Mega, tänds lysdioden. Å andra sidan, om "a" inte tas emot, släcks lysdioden.

När koden har laddats upp till båda korten, se till att skärmen har satts in i Mega igen och att den är ansluten till datorn via båda kablarna. Sätt in datorns XBee i Explorer -kortet. Se sedan till att FTDI Breakout -kortet är frånkopplat från jackan och sätt in jackan XBee i LilyPad XBee. Anslut 9V -batteriet och försök trycka på de olika meddelandena i Pure Data. LED-lampan längst ner till höger på jackan ska slås på och av.

Steg 6: Sista handen

Sista handen
Sista handen
Sista handen
Sista handen
Sista handen
Sista handen

Koden och Pure Data Patch

När du är glad att jackan fungerar trådlöst kan du ladda upp "MegaCode" -skissen nedan till Arduino Mega och "LilyPadCode" -skissen till LilyPad. Öppna Pure Data -korrigeringen och se till att DSP är på och ljudingången är inställd på din dators inbyggda mikrofon. Prova att spela lite musik och flytta reglaget. Du kan behöva justera trösklarna i Pure Data något beroende på hur mycket eller lite lysdioderna reagerar på ljudet.

Lägger till ett nytt foder

Slutligen, för att göra jackan mer estetiskt tilltalande och bekvämare att bära, kan ytterligare ett foder läggas till på insidan av jackan för att täcka sömnaden och komponenterna. Detta bör göras med kardborreband för att möjliggöra enkel åtkomst till kretsen om eventuella ändringar behöver göras.

Först och främst sys "loop" -remsorna (den mjukare delen) på jackan på insidan, längs toppen och ner på båda sidor. Det är en bra idé att lämna botten fri eftersom detta kommer att tillåta luft att komma till komponenterna. Klipp sedan ett tygstycke av samma storlek och sy fast kardborrbandets 'krok' längs ovansidan och ner på båda sidor. På samma sida som kardborrbandet och på den mest lämpliga platsen, sy på en ficka som batteriet kommer att kunna sitta i. Se bilderna ovan för exempel.

Steg 7: Du är klar

Din trådlösa Light Show -jacka ska nu vara komplett och framgångsrikt reagera på ljud! Den ena inställningen ska skapa en effekt som en amplitudfält och den andra bör ha enskilda lysdioder som blinkar till musiken med sina färger beroende på tonhöjden. Se videoexempel ovan. Om du undrar, är färgen och tonhöjden relaterade via Rosicrucian Order som är baserad på just intonation. Jag hoppas att du gillade det här projektet!

Rekommenderad: