Inhoudsopgave:

Lune - MIDI-controller met Arduino (voor DJ of muzikant) - Ajarnpa
Lune - MIDI-controller met Arduino (voor DJ of muzikant) - Ajarnpa

Video: Lune - MIDI-controller met Arduino (voor DJ of muzikant) - Ajarnpa

Video: Lune - MIDI-controller met Arduino (voor DJ of muzikant) - Ajarnpa
Video: Arduino Drum Sequencer: 8 tracks, 16 steps per measure, 8 measures per pattern 2024, November
Anonim
Image
Image
Lune - MIDI-controller met Arduino (voor DJ of muzikant)
Lune - MIDI-controller met Arduino (voor DJ of muzikant)
Lune - MIDI-controller met Arduino (voor DJ of muzikant)
Lune - MIDI-controller met Arduino (voor DJ of muzikant)
Lune - MIDI-controller met Arduino (voor DJ of muzikant)
Lune - MIDI-controller met Arduino (voor DJ of muzikant)

Dit is mijn eerste arduino (microcontroller) projectnaam Lune. Ik wilde Arduino leren met een handig en groot project, dus besloot ik een midi DJ-controller te maken die alle functies heeft die nodig zijn om standalone te mixen.

Elk soort sensor (potentiometer, drukknop, …) kan onafhankelijk worden geleerd en ik denk dat de beste manier is om stap voor stap te leren "hoe het werkt" en "hoe het is aangesloten".

Alles werkt als volgt:

  1. Sensor aangesloten op de Arduino detecteert een verandering
  2. De arduino stuurt deze wijziging naar de computer
  3. Een software op de computer zet de seriële (arduino) informatie om in MIDI die je bijvoorbeeld in staat kunt gebruiken

Mijn controller heeft

  • 6 potmeter axiaal voor EQ
  • 3 potmeter axiaal voor effecten
  • 6 potentiaalmeter lineair voor Volume
  • 2 drukknop voor Play
  • 2 Ultrasone sensor (SR04) voor effecten met de afstand van mijn handen
  • 2 drukknop voor Cue
  • RGB led-pad met 2 x 4 knoppen
  • 1 encoder voor Scratch

Stap 1: Standalone of software

Allereerst heb ik de verschillende tutorials van MIDI-controller met arduino onderzocht.

Je kunt een MIDI-controller gebruiken met software die vertaalt wat je doet in MIDI (wat ik heb gedaan)

Je zal nodig hebben:

  1. Software voor het verzenden/ontvangen van midi-gegevens https://projectgus.github.io/hairless-midiserial/ Vergeet niet de baudrate in "voorkeuren" in te stellen in overeenstemming met die in uw arduino-code (voor mij 9600 omdat "Serial.begin (9600);")
  2. Een virtueel midi-apparaat

Een ander voorbeeld:

www.instructables.com/id/Easy-3-Pot-Potentiometer-Arduino-Uno-Effects-Midi-/

_

Je kunt een "echte" MIDI-controller gebruiken die zonder software op je computer te vertalen wat je op de controller in MIDI doet, MIDI naar de computer stuurt

Op dit moment moet je met een arduino Uno of Mega de arduino-kamer of iets dergelijks flashen om direct midi te sturen. Van wat ik heb begrepen als je dit hebt gedaan, moet je zeker zijn van de code die je op de arduino verzendt, want als de arduino flash is, kun je geen code meer verzenden (je hebt opnieuw reflash nodig). Ik heb veel testcodes gedaan, dus ik koos voor de tweede optie, maar het is beter om zeker een plug-and-play MIDI-apparaat te hebben.

Voorbeeld om verder te gaan:

create.arduino.cc/projecthub/etiennedesportes/ableton-live-midi-controller-9182b3

MAJ 2018-02-28: https://www.arduino.cc/en/Reference/MIDIUSB De eenvoudigste manier als je een "microcontroller met native USB-mogelijkheden (atmega32u4-gebaseerde boards of ARM-boards)" hebt (Niet OK voor Arduino UNO)

Stap 2: Hout en koffer

Hout en koffer
Hout en koffer
Hout en koffer
Hout en koffer
Hout en koffer
Hout en koffer

Ontwerp van houten behuizing: ik gebruikte een hoesgenerator https://www.makercase.com/, verwijderde de bovenkant en de gleuf voor de bovenkant. Om de hoogte te bepalen zoek ik de hoogte van mijn hoogste knoop en tel daar 2cm bij op.

Voor het blad gebruikte ik een MDF-plaat en een Plywood Poplar 3 mm die gegraveerd is.

Lasergesneden de houten planken met de plannen.

Knip/geboord een gat voor de USB-kabel.

Ik heb me aangesloten bij mijn plannen, maar bij deze stap is het een stuk interessanter om je persoonlijke controller te doen.

In elkaar zetten:

Voor de zijkanten heb ik de verschillende zijkanten gelijmd en gemonteerd.

Voor de bovenkant heb ik 4 gaten geboord in de 2 bovenste MDF. (diameter van mijn schroef + 1mm)

Ik schroef een bout en lijm de moer vier keer op de hoek, om daarna de 2 bovenste houten planken aan de bovenkant vast te schroeven.

Op deze manier heb ik 4 hoeken met een moer gelijmd, de gaten met de moer zijn de gaten voor de schroeven om de bovenplanken te bevestigen. Ik kan zelfs niet bij de onderste moer als ik de bovenste houten planken vastschroef.

Ik boorde gaten in zijplanken (de doos), bevestigde (schroef en lijm alles) de hoeken aan de zijkanten.

Plaats de twee bovenste planken en schroef ze vast.

Op deze manier is er geen zichtbare moer en het bovenblad hoeft niet te worden bevestigd, het is verrassend solide, maar er is misschien een betere manier.

Pools:

Ik heb "Vernis bois brillant 125 ml Avel Louis XIII" (French Pools) gebruikt dat heel goed werkt.

Het was een beetje lang omdat ik verschillende lagen heb gelegd en 24 uur tussen elk heb gewacht.

Het blad ziet er geweldig uit en het hout is beschermd. Het was mijn eerste keer, dus ik heb niet zo lang gewacht als nodig was of ik heb te veel vernis aangebracht op sommige delen omdat de lak soms niet stevig was, zelfs niet na het drogen, nu (2 maanden later) is het ok.

Grafisch: montage van Fornaseti-kunstwerken en persoonlijke tekeningen.

p.s: adviezen om de midi-controller te ontwerpen, op mijn plan staan de twee RGB 4-knoppen pad te dicht bij elkaar

www.instructables.com/id/A-Framework-For-Making-Affordable-Stylish-Modula/

Stap 3: Elektronisch

Elektronisch
Elektronisch
Elektronisch
Elektronisch
Elektronisch
Elektronisch

Ik heb alles (voor mijn project) op een Fritzing-bestand gezet.

Voor elk type sensor moet je leren hoe het werkt of wat hij aan de Arduino heeft gegeven.

Bekijk hiervoor tutorials over bijvoorbeeld inctructable ("potentiometer arduino", …).

Ik gebruikte:

  • Potentiometer
  • RGB-pad (Sparkfun
  • Echografie HC-SR04 (afstandsdetector)
  • Encoder
  • Drukknop (arcadeknop)

Ik raad aan wanneer je je uiteindelijke montage wilt doen om het in dezelfde tijd te doen, omdat het moeilijk te zien is wanneer er veel kabels zijn.

Volgorde:

Nadat ik alles wist wat ik wilde, of in ieder geval het grootste deel, bestelde ik mijn componenten. Zo heb je minder verzendkosten.

Van mijn kant bestel ik het meest op Conrad of RS (ik ben in Frankrijk) en meer specifieke stukken zoals RGB-pad op robotshop.

Een voorbeeld van mijn Conrad-commando in de afbeeldingen

Stap 4: Arduino-code

Arduino-code
Arduino-code

Daar is mijn code voor arduino. Je moet het, na je wijzigingen als je een andere controller doet, met Arduino IDE naar je microcontroller sturen via USB (youtube heeft tutorials). In bijlagen:

  • De laatste
  • Eentje om gewoon te werken de 2 RGB Pads met 6 kleuren mogelijk (RGB +cyaan+rose+geel).
  • Oude delen van code die ik heb geschreven om de verschillende sensoren te leren

Sommige delen zijn door mij geschreven.

Je moet arduino-bibliotheken installeren (kijk naar de fout en de "include") zoals Keypad.h voor de pad.

De verschillende klassen staan aan het einde van de bestanden.

U kunt er rekening mee houden dat één klasse hier is om de seriële informatie te verzenden.

void MIDImessage (byte command, byte data1, byte data2) // --------- NOODZAKELIJK, geef waarden door via standaard Midi Command

{ Serieel.schrijven (opdracht); Serieel.schrijven(data1); Serieel.schrijven(data2); }"

Stap 5: Verbeteringen

Alles werkt, maar het is een prototype. Er zijn wat vragen of verbeterpunten.

Energie:

- Toen ik de RGB-pad met elke sensor gebruikte, schenen de RGB-leds heel weinig. De 5v arduino zijn ze te weinig voor mijn project? Als ik ze alleen gebruik, geen probleem.

Code:

- Ik heb het serienummer van de encoder, maar ik weet niet hoe het werkt in MIDI. Ik bedoel wat ze willen in MIDI-uitvoer. Als je weet hoe je de encoder moet instellen om te scratchen op traktor, neem dan contact met me op.

- Sommige van mijn codes voor knoppen zijn niet geschikt voor een muziektoepassing. We hebben de snelste respons nodig en ik zag dat sommige van mijn knopcodes niet op de beste manier zijn geschreven om dat te doen (Play-knop als ik me goed herinner).

Aanbevolen: