Zelfgemaakte MPC-stijl MIDI controller (2 / 6 stap)

Stap 2:

3.3 ToetsIndrukken (KeyPress)
"Scannen" is het proces waarmee ik de knop pad multiplex, zodat ik niet zou moeten gebruiken 16 pinnen op de microcontroller voor 16 knoppen. In plaats daarvan moest ik alleen gebruik van de 8 pinnen. Als u naar de stap 4 verwijst heb ik het schema voor de knop pad ik kocht van sparkfun elektronica en hebben aangegeven het signaal pad van elke pin op de knop pad PCB opgenomen. Zoals u kunt zien zijn er aparte pinnen voor het besturen van de LEDs en beheersing van de knoppen. De LED control pinnen zullen in een latere sectie worden besproken.
De microcontroller is instellen zodat alle kolommen uitgangen zijn en alle rijen ingangen zijn. Als u naar de knop pad schema verwijst, begin ik met het instellen van de eerste kolom (dat is RB4 op de pic) tot nul. Ik plaatste de rest van de kolommen aan 1(RB5,RB6,RB7).  Het programma controleert vervolgens de status van alle rijen op het zelfde time(RC4,RC5,RC7,RC0). Het programma wordt onderbroken voor 1 milliseconde en controleert deze pinnen weer. Aangezien de knoppen en schakelaars vaak stuiteren, hierdoor ongewenste rimpelingen op het signaal, zodat wij dit met een proces genaamd-stuiteren elimineren. Als de waarden van de twee controles gelijk zijn dan betekent dat er een geldige knooppers op die kolom en niet een bounce.  Het programma wordt ingevoerd een for-lus, die controleert de status van elk van de rijen. Als een knop is ingedrukt op die kolom, wordt het gelezen als een nul op de corresponderende rij sinds de kolom is ingesteld op nul. Aangezien elk van de pinnen op de rijen een 10 k pull-up weerstand (niet afgebeeld op de knop pad schema), heeft als een knop is niet ingedrukt worden dat rij-pin gelezen als een 1.
Zodra een knooppers op die kolom wordt gevonden verzendt een midi-bericht van 3 byte over de hardware seriële poort op de PIC.  De eerste byte is 0x92 die de computer als een notitie van channel 4 op bericht detecteert. De tweede byte is welke opmerking moet worden ingeschakeld, die kunnen overal tussen de 0 en 127. Sinds ik ben met behulp van een for-lus om te controleren van elk van de rijen die ik ben met behulp van de voor lus variabele "i" om aan te geven die opmerking wil ik op.  Aangezien ik ben ook met behulp van 8 banken van notities (128 totale notities) ik het toevoegen aan de huidige bank variabele die is "c". De bank switch proces zal verder worden besproken in paragraaf 3.4. De laatste byte is de snelheid die ook overal tussen de 0 en 127 kunnen, maar voor alle knoppen ik deze waarde ingesteld op 100.  De volgende coderegel stuurt dezelfde commando's in ASCII-tekst naar een LCD-scherm over een microcontroller pin die ik geconfigureerd voor software seriële uit.
De microcontroller moet ook detecteren wanneer er een opmerking is vrijgegeven want op nood voor het verzenden van een andere opdracht uit te schakelen die dezelfde noot. Binnen hetzelfde for-lus die dit wordt gedaan door de dezelfde 3 bytes met uitzondering van de laatste byte(velocity) te sturen, is ingesteld op nul die deze nota wordt uitgeschakeld. Als deze opdracht niet verzonden, zou die nota blijven voor onbepaalde tijd, zelfs als die knop werd uitgebracht.
Tot dit punt hebben we alleen de status gecontroleerd en verzonden opdrachten voor de 4 knoppen in de eerste kolom. Dit hele proces is herhaalde 3 keer, één voor elke kolom.  De volgende lus ik stel in de volgende kolom nul en de rest op 1 ingesteld en doe hetzelfde voor de resterende kolommen.

3.4 bank wijzigen
Aangezien er 128 verschillende midi merkt op dat kunnen worden verzonden als een midi-opdracht mij wilden voor zitten kundig voor optimaal gebruik van alle van hen, dus ik voegde de mogelijkheid aan bank tussen groepen van 16 notities tegelijk. Om dit te doen ik heb twee drukknoppen aan de voorzijde onder de LCD hebt toegevoegd (zie figuur 1.0).  Om de bank omhoog, ondervraagden ik de inbreng van de pin op de microcontroller die mij troep opwaarts als invoer voor banking omhoog. Aangezien ik het opzetten van deze ingangen van de microcontroller met een pull-down weerstand ik gecontroleerd voor een lage tot hoge overgang, wanneer de schakelaar die verbinding met VDD maakt. Als die overgang werd ontdekt, voegde ik een aan de variabele "j".  Ik instellen zo zodra "j" meer dan 8 was het weer terug op nul gezet. Ik wilde ook de mogelijkheid om op te slaan van de bank op de niet-vluchtig eeprom zo als voor wat voor reden ik moet verwijderen van de macht om te herschikken kabels de midi-controller zelfstart opwaarts en stelt zich automatisch terug naar de bank die het was op voordat het werd uitgeschakeld.  Ik vond ook dat als ik was het bezit van een opmerking en een van de bank knoppen tegelijkertijd ingedrukt, de midi-controller spoor van die opmerking was wordt ingedrukt verloren, zodat die nota zou nooit uitschakelen. Voor positiebepaling zulks ik maakte een for-lus die uitgeschakeld alle notities op hetzelfde moment wordt wanneer ik bank omhoog of omlaag.  Ik gebruikte dezelfde code voor de bank knop ingedrukt, behalve in plaats van het toevoegen van een "j" ik ene 'j afgetrokken' en op beginstand tot en met 8 zetten heeft als het ging onder 1.   Ik zo "j" als een algemene variabele instellen en wordt gebruikt in verschillende delen van het programma.
Aan het einde van deze functie, ik controleren welke waarde j is en stelt u de variabele "c" dienovereenkomstig. "c" kan de midi-controller Bank omhoog 16 notities tegelijk toevoegen aan welk toetsenbord nummer u zijn te drukken.  Bijvoorbeeld als ik wil midi opmerking nummer 35 op, ik moet gaan naar bank 3.   "c" wordt toegevoegd naar welke sneltoets ben ik te drukken. Dus als ik knop nummer 3 te op het toetsenbord drukken ben, de midi-controller voegt de waarde "c", bedraagt die is in dit geval 32.

3.5 RGB
Ik gereserveerd 3 pinnen op de microcontroller controle van alle de RGB LED's.  RA0 regelt alle de rode LEDs', RA1 regelt alle groene LEDs en RA2 controleert alle de blauwe.  Elke pin bepaalt de LEDs door te verbinden naar de gate op een MOSFET gelegen op het LED driver bord (zie stap 4). De LEDs moest op deze manier worden gereden, omdat de huidige moet rijden alle de LEDs overschreden de microctrollers huidige sourcing vaardigheden.
Deze RGB functie in het programma in principe controleert welke bank van notities de midi-controller in door de waarde van de variabele "j" te controleren.  Om de verschillende kleuren samen ik simpelweg verschillende sets met kleuren. Bijvoorbeeld om de kleur paars, dan kom ik op rood en blauw op hetzelfde moment door RA0 en RA2 op hoog instellen en RA1 te stellen op laag.

Gerelateerde Artikelen

Arcade stijl DJ MIDI-controller

Arcade stijl DJ MIDI-controller

>>> Dit is niet helemaal klaar nog als ik een beetje van het circuit omhoog hield. Ik update de instructable en een video uploaden wanneer het wordt gesorteerd op <<<Ik heb DJ voor ongeveer 10 jaar nu, en voor de laatste paar heb ik goed
Tekenen-het-zelf - MIDI controller met de geleidende inkt

Tekenen-het-zelf - MIDI controller met de geleidende inkt

'Draw It Yourself' is een MIDI-controller met de geleidende inkt als drukknoppen. Het is gebaseerd op de Arduino, en maakt gebruik van een capacitieve sensor (twee, eigenlijk) om te bepalen of de getekende knoppen zijn geraakt of niet.http://sanidanz
Maak uw eigen goedkope USB MIDI-Controller of toetsenbord

Maak uw eigen goedkope USB MIDI-Controller of toetsenbord

Ik was op zoek naar een USB MIDI controller-apparaat (of interface) voor muziek toepassingen zoals piano of orgel toetsenbord of pedalboard. Na wat onderzoek wilde ik gaan naar een meer "zelfgemaakte" oplossing. Mijn keuze is tenslotte gericht o
Vlam gecontroleerde MIDI Controller

Vlam gecontroleerde MIDI Controller

Een groot probleem in de wereld van digitale muziekproductie is het bijhouden van die analoge warmte (dat resoneerde uit reel-to-reel systemen en buizen) in moderne digitale muziek. Veel zweren dat analoge systemen hebben een geluid dat nooit kan wor
Sigaar vak MIDI Controller

Sigaar vak MIDI Controller

hier is een DIY MIDI controller die kan worden gebruikt met Max/MSP, Ableton Live, en zowat elke andere muzieksoftware of hardware waarmee MIDI i/o.Het project maakt gebruik van de MIDI-CPU, die kan worden gebruikt als een MIDI "brein" voor DIY-
How To Build een Dj MIDI Controller

How To Build een Dj MIDI Controller

dus dit een schoolproject was. Ik heb net het. Het document dat is gekoppeld aan het einde is het hele project, zoals ik schreef het omhoog de hand. Als u wilt proberen deze build laat het me weten en ik een paar tips kan geven. Ook is een onderstebo
MIDI-Controller met toetsenborden

MIDI-Controller met toetsenborden

We bouwen vandaag de 400 sleutel MIDI-controller met behulp van een Arduino en computer toetsenborden!Voor de budget bewuste muziekproducenten daar is dit project een geweldige manier om het bouwen van een goedkope control board voor uw digitale audi
MIDI-Controller Arcade

MIDI-Controller Arcade

Ik ben zeker dat u deze coole video's van mensen die jammen op een doos met een bos van knoppen op het hebben gezien. Nou, vandaag, zal ik je laten zien hoe u ook kunt verdienen een vak waarmee u Jam kunt maken. < Geïnspireerd door de MIDI Fighter Cl
Aangepaste Arduino MIDI Controller

Aangepaste Arduino MIDI Controller

Hallo, en welkom op dit instructable over het bouwen van een aangepaste, goedkoop en makkelijk USB MIDI-controller, gebaseerd op de Arduino. Het beste nieuws: geen gedoe met USB-naar-MIDI interfaces of softwaretools zoals Haarloze MIDI, gewoon plug '
BeatSauce - een Laptop Midi Controller hybride

BeatSauce - een Laptop Midi Controller hybride

Voor een lange tijd heb ik gezocht om te bouwen van een aangepaste Midi-controller, en hoewel dit niet precies een nieuwe controller deed ik adem nieuw leven in sommige oude hardware.Met behulp van sommige delen die ik had opgelopen en minimale geld
U Rock Guitar midi controller met Bluetooth BLE en oplaadbare batterij

U Rock Guitar midi controller met Bluetooth BLE en oplaadbare batterij

In deze tutorial zal ik u tonen hoe te schakelen gitaar u Rock gitaar in een midi-controller voor Bluetooth 4.0 met oplaadbare batterij. De oplossing was simpel maar moest denken.Dit systeem is getest met de iMac, iPad en iPhoneHet materiaal dat we n
Sugarcube MIDI Controller

Sugarcube MIDI Controller

Dit project is een draagbare, Arduino aangedreven, grid-gebaseerde MIDI controller die zelfstart opwaarts in allerlei apps te doen veel dingen met geluid. Het heeft 16 verlichte knoppen, gebruikt als zowel in- en uitgangen te geven van de controller
Makey Makey MIDI-controller

Makey Makey MIDI-controller

Makey makey is een microcontroller die als een toetsenbord fungeert wanneer deze aangesloten op uw computer. Ik geherprogrammeerd het zodat het stuurt midi notities. Waarom? Omdat wanneer u een toetsenbord controle dingen gebruikt heeft het venster d
Knop MIDI-Controller Arcade

Knop MIDI-Controller Arcade

met een hardware-interface naar uw favoriete muziek / DJ / VJ-software kan echt open deuren in uw creativiteit. De meest voorkomende vorm van controle van de hardware op uw PC voor dergelijke toepassingen is dat een MIDI-gebaseerde controller.Een MID