Inhoudsopgave:

MIDI-gestuurde LED-structuur - Ajarnpa
MIDI-gestuurde LED-structuur - Ajarnpa

Video: MIDI-gestuurde LED-structuur - Ajarnpa

Video: MIDI-gestuurde LED-structuur - Ajarnpa
Video: Midi Output / MadMapper 4 2024, Juli-
Anonim
Image
Image

Als een echte muziekliefhebber en student elektronica en computerwetenschappen, heb ik altijd al MIDI-apparaten willen bouwen die ik kon gebruiken voor het maken van elektronische muziek.

Na veel shows en muziekfestivals te hebben bijgewoond, begon ik echt geïnteresseerd te raken in lichtshows tijdens optredens.

Na veel onderzoek heb ik meestal alleen apparaten gevonden die een microfoon gebruiken en die niet toestaan dat LED's precies zo worden bediend als je wilt.

Door steeds meer vertrouwd te raken met DAW- en MIDI-signalen, besloot ik aan de slag te gaan met dit project!

Het bestaat uit een 3D-structuur met ingebouwde LED's, die feitelijk worden bestuurd door MIDI-signalen (NoteOn, NoteOff en CC Messages).

Zodat de muzikant de kleur en de intensiteit van elke LED kon regelen, alleen door MIDI-signalen te gebruiken, gegenereerd door een DAW.

Met dit idee wilde ik de creativiteit vergroten door middel van lichtshows en iedereen zijn eigen laten bouwen, om elke visuele voorstelling uniek te maken.

Stap 1: Materialen

In wezen bestaat dit project uit twee delen: een MIDI-ontvangstcircuit en de LED-structuur; en een microcontroller om die onderdelen te koppelen en de MIDI-signalen van de DAW te "vertalen" naar de LED-strips. Hier is een lijst van de benodigde materialen voor elk onderdeel.

MIDI-ontvangstcircuit:

  • 1 x 6N138 Optocoupler
  • 1 x 1N914 Diode
  • 1 x 5-pins Din-aansluiting (MIDI-aansluiting)
  • 2 x 220 Ohm Weerstanden
  • 1 x 4.7K Ohm Weerstand
  • 1 USB/MIDI-aansluiting

LED-structuur:

Ik heb RGB-ledstrips gebruikt op basis van WS2812B-leds die met slechts 1 digitale poort kunnen worden aangestuurd. Als u van plan bent een groot aantal LED's te gebruiken, moet u mogelijk rekening houden met de maximale stroom die nodig is (1 LED kan maximaal 60 mA verbruiken). Als de microcontroller deze maximale waarde niet aankan, heb je nog een 5V-voeding nodig die voldoende stroom kan leveren. Ik gebruikte een 5V - 8A AC/DC-adapter met de speciale uitgangsadapter en een schakelaar.

Opmerking: het lijkt erop dat u een computervoedingseenheid kunt gebruiken, omdat deze een zeer hoge stroom kan leveren, maar u moet ervoor zorgen dat deze een stabiele 5V DC-spanning levert, misschien door een 36 Ohm 5 Watt vermogensweerstand tussen de massa (zwart) en de 5V uitgang (rood) om ervoor te zorgen dat er voldoende stroom door de weerstand gaat en zo een stabiele 5V te leveren.

Als laatste heb ik een eenvoudige Arduino Uno met een schroefschild gebruikt om de link te maken tussen MIDI-signalen en LED-strips.

Stap 2: Het MIDI-invoercircuit bouwen

Het MIDI-invoercircuit bouwen
Het MIDI-invoercircuit bouwen
Het MIDI-invoercircuit bouwen
Het MIDI-invoercircuit bouwen

Als je geïnteresseerd bent in wat precies het MIDI-protocol is en hoe het werkt, raad ik je ten zeerste aan om het Notes and Volts YouTube-kanaal te bekijken, waar veel interessante en innovatieve tutorials en MIDI Arduino-projecten te vinden zijn.

In dit deel zal ik me alleen concentreren op het MIDI-invoercircuit. Het kan een goed idee zijn om een prototype op een protoboard te bouwen en te controleren of MIDI-signalen afkomstig van de DAW goed worden ontvangen door de microcontroller voordat u de componenten gaat solderen.

De volgende twee video's beschrijven hoe u het circuit kunt bouwen en testen:

  • Het circuit bouwen
  • Het circuit testen

Ten slotte kan het ook een goed idee zijn om deze video te bekijken om CC-berichten te begrijpen en hoe automatiseringsclips door uw microcontroller kunnen worden geïnterpreteerd om bijvoorbeeld de LED-helderheid te regelen.

Stap 3: FL Studio configureren (optioneel)

FL Studio configureren (optioneel)
FL Studio configureren (optioneel)
FL Studio configureren (optioneel)
FL Studio configureren (optioneel)
FL Studio configureren (optioneel)
FL Studio configureren (optioneel)

Omdat ik me op mijn gemak voel bij het gebruik van FL Studio, zal ik uitleggen hoe je de MIDI-interface correct kunt configureren, maar ik ben er vrij zeker van dat deze procedure niet drastisch anders zou moeten zijn als je een ander Digital Audio Workstation gebruikt.

Eerst hoeft u alleen de USB/MIDI-aansluiting op uw computer aan te sluiten. Gewoonlijk worden dergelijke apparaten geleverd met een ingebouwde firmware en worden ze herkend als MIDI-apparaten, zelfs als ze niet zijn aangesloten. Open vervolgens het venster "Instellingen" (door op F10 te drukken). Als alles goed werkt, zul je enkele output MIDI-apparaten opmerken in de output-sectie. Selecteer uw apparaat en zorg ervoor dat het AAN staat.

Vervolgens moet u uw poortnummer definiëren en in gedachten houden (bijvoorbeeld 0). Sluit gewoon dit venster (parameters worden automatisch opgeslagen) en voeg vervolgens een nieuw kanaal toe: MIDI Out.

Het laatste wat u hoeft te doen, is de poort van dit nieuwe kanaal te definiëren: zorg ervoor dat u hetzelfde poortnummer kiest dat u hebt gedefinieerd in de sectie "Instellingen": door dit te doen, worden de MIDI-berichten die van uw kanaal komen nu gekoppeld aan de MIDI-uitgang.

Wanneer nu een noot wordt gespeeld door het MIDI Out-kanaal, wordt een "NoteOn"-bericht verzonden via de MIDI-interface. Op dezelfde manier wordt een "NoteOff"-bericht verzonden wanneer de noot wordt losgelaten.

Een andere interessante functie die bij het MIDI Out-kanaal wordt geleverd, is de mogelijkheid om verschillende parameters met potentiometers te regelen. Door met de rechtermuisknop op een van hen te klikken en "Configureren …" te selecteren, kunt u ervoor zorgen dat ze CC-berichten verzenden (een waarde van 0 tot 127) die worden gebruikt om de helderheid van de LED's te regelen: kies CC en vervolgens Accepteren.

Normaal gesproken is FL Studio nu klaar om gegevens naar uw MIDI-interface te sturen! De volgende is om de code te schrijven om in de Arduino te knipperen en deze aan te passen aan uw LED-structuur.

Stap 4: De LED's aansluiten

De LED's aansluiten
De LED's aansluiten

Het aansluiten van de LED-strips is vrij eenvoudig, aangezien ze slechts +5V, GND en Data nodig hebben. Omdat ik echter van plan was er meer dan 20 aan te sluiten, besloot ik verschillende Arduino PWM-pinnen te gebruiken en verschillende exemplaren van Adafruit_NeoPixel (in de coe) te declareren om elke vorm van onbedoelde vertraging te voorkomen.

De bijgevoegde afbeelding is ook bedoeld om uit te leggen hoe de elektronica werkt:

  • LED-strips worden rechtstreeks gevoed door de voeding.
  • Een aan / uit-schakelaar wordt gebruikt om de Arduino van stroom te voorzien
  • het MIDI-invoercircuit wordt gevoed door de Arduino bij het aanzetten van de schakelaar

Stap 5: De 3D-structuur ontwerpen

De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen
De 3D-structuur ontwerpen

Tot nu toe was dit deel het langste omdat ik helemaal nieuw was met 3D-printen (en modelleren). Ik wilde een structuur ontwerpen die eruitzag als een half geëxplodeerde afgeknotte icosaëder (ja, het kostte me wat tijd om de exacte naam van de vorm te vinden).

Je bent natuurlijk vrij om je eigen model te ontwerpen in de vorm die jij wilt! Ik zal het modelleringsproces niet in detail beschrijven, maar je zult de STL-bestanden vinden als je deze structuur wilt ontwerpen.

De montage van de verschillende onderdelen kostte wat tijd, omdat ik één LED in elk vlak moest plaatsen en ze allemaal moest verbinden door een groot aantal draden in de kern te solderen, wat momenteel behoorlijk rommelig is!

Opmerking: als u een dergelijke structuur wilt ontwerpen, heeft u 10 zeshoekige stukken nodig (ongeveer 3 uur elk met een PP3DP UP miniprinter) en 6 vijfhoekige stukken (2 uur).

Zodra er één LED in elk onderdeel zit, moet u elke 5V- en GND-aansluitingen met elkaar verbinden en de verschillende ingangs- en uitgangsaansluitingen van elke LED aansluiten op de manier waarop u ze wilt aansluiten.

Ten slotte heb ik LED-diffuus acryl gebruikt om elk gezicht te bedekken en ze consistent te laten oplichten.

Het enige dat daarna overblijft is de code, die niet zo ingewikkeld blijkt te zijn!

Stap 6: De code

De code
De code

Zoals ik in het vorige deel al zei, blijkt de code vrij eenvoudig te zijn!

Eigenlijk bestaat het maar uit één MIDI-instantie en meerdere Adafruit_NeoPixel-instanties (zoveel als er verschillende strips zijn).

Kortom, als het eenmaal is gedeclareerd, werkt de MIDI-klasse met een soort "interrupts": NoteOn, NoteOff en CCMessage. Wanneer de MIDI-ingangsschakeling een van die specifieke signalen naar de Arduino verzendt, wordt de bijbehorende subroutine aangeroepen. Het enige dat de code doet, is het inschakelen van een specifieke LED op het NoteOn-signaal, het verlagen van het bijbehorende NoteOff-signaal en het bijwerken van de helderheid van een strip op CCMessage.

Ik heb ook een eenvoudige functie gedefinieerd die de mogelijkheid biedt om de kleur van de LED's te kiezen door de snelheid te lezen die bij het NoteOn-signaal komt en elke LED kan dan rood, paars, blauw, turkoois, groen, geel, oranje of wit zijn, afhankelijk van de aanslagwaarde van 0 tot 127.

Een belangrijk ding om op te merken is dat je de RX-pin (afkomstig van het MIDI-invoercircuit) moet loskoppelen bij het uploaden van je schets, aangezien de seriële poort (die tijdens dit proces wordt gebruikt) op die pin is aangesloten!

Stap 7: Wat nu?

Ik werk momenteel aan een aangepaste behuizing om alle elektronica in te bedden en ik denk ook aan een naam voor de structuur! Laat het me weten als je dit project leuk vond, en ik werk aan verschillende shows, omdat ik van plan ben deze instructable bij te werken met meer video's!

Aanbevolen: