Contrôleur de style MIDI maison MPC (2 / 6 étapes)

Étape 2 :

3,3 Keypress
« Numérisation », c’est le processus que j’ai utilisé pour multiplexer le coussin bouton donc je n’aurais pas d’utiliser 16 broches sur le microcontrôleur pour 16 boutons. Au lieu de cela, je n’avais d’utiliser 8 broches. Si vous faites référence à l’étape 4, que j’ai inclus le schéma pour le pad de bouton j’ai acheté de sparkfun electronics et ont indiqué le trajet du signal de chaque aiguille sur le bouton pad PCB. Comme vous pouvez le voir il y a des broches distinctes pour contrôler les LEDs et contrôler les boutons. Les tiges de contrôle LED seront discutés dans une section ultérieure.
Le microcontrôleur est mis en place pour toutes les colonnes sont sorties et toutes les lignes sont entrées. Si vous faites référence au schéma bloc de bouton, j’ai commencer en définissant la première colonne (ce qui est RB4 sur la photo) à zéro. J’ai mis le reste des colonnes à 1(RB5,RB6,RB7).  Le programme vérifie ensuite l’état de toutes les lignes à la même time(RC4,RC5,RC7,RC0). Le programme fait une pause de 1 milliseconde et vérifie ces broches à nouveau. Étant donné que les interrupteurs et boutons souvent le rebond, cela fait vibrer indésirables sur le signal, donc nous éliminer cela avec un processus appelé rebondir hors. Si les valeurs des deux contrôles sont égales, alors cela signifie que c’est une presse de bouton valide sur cette colonne et pas un rebond.  Le programme, puis entre dans une boucle for, qui vérifie l’état de chacune des lignes. Si une touche est pressée sur cette colonne, il est lu comme un zéro sur la ligne correspondante étant donné que la colonne est définie à zéro. Puisque chacune des broches sur les lignes a une résistance de pull-up 10 k (non représenté sur le schéma bloc bouton), si un bouton n’est pas pressé que la broche rangée sera lu comme un 1.
Lorsqu’un bouton est détecté sur cette colonne il envoie un message midi de 3 octets sur le matériel du port sériel sur le PIC.  Le premier octet est 0x92 qui l’ordinateur le détecte comme une note de channel 4 sur message. Le deuxième octet est quelle note doit être allumé, qui peut se situer entre 0 et 127. Puisque j’utilise une boucle for pour vérifier chacune des lignes que j’utilise la variable « i » pour indiquer qui note que je veux sur de la boucle for.  Depuis que je suis aussi sur 8 banques de notes (128 notes totales) je l’ajouter à la variable de banque actuelle qui est « c ». Le processus de commutation de banque sera examiné à la section 3.4. Le dernier octet est la vitesse qui peut également être n’importe où entre 0 et 127, mais pour tous les boutons, j’ai mis cette valeur à 100.  La ligne de code suivante envoie alors les mêmes commandes en texte ascii à un écran LCD sur une microcontrôleur broche que j’ai configuré le logiciel serial dehors.
Le microcontrôleur doit également détecter quand une note est relâchée parce qu’elle doit envoyer une autre commande pour désactiver cette même note. Dans la même boucle, que cela se fait en envoyant les mêmes octets 3 sauf le dernier byte(velocity), est mis à zéro qui désactive cette note. Si cette commande n’a pas envoyé, cette note pourrait demeurer indéfiniment en marche, même si ce bouton est sorti.
Jusqu'à ce point nous avons seulement vérifié l’État et envoyé des commandes pour les 4 boutons sur la première colonne. Tout ce processus est répété 3 fois de plus, un pour chaque colonne.  Dans la prochaine boucle for, j’ai mis la colonne suivante à zéro et le reste la valeur 1 et faites de même pour les colonnes restantes.

3.4 changement de banque
Puisqu’il y a 128 midi différentes notes qui peuvent être envoyés comme une commande midi je voulais être en mesure de pleinement utilisent chacun d’eux, alors j’ai ajouté la possibilité pour la Banque entre groupes de 16 notes à la fois. Pour ce faire, j’ai ajouté deux boutons poussoirs sur la face avant sous l’écran LCD (voir Figure 1.0).  Pour la Banque vers le haut, j’ai interrogé l’entrée de la cheville sur le micro-contrôleur que j’ai mis en place comme entrée pour les bancaires vers le haut. Étant donné que j’ai mis en place ces entrées de microcontrôleur avec une résistance de pull-down, j’ai vérifié un faible ou forte transition lorsque l’interrupteur se connecte à la DMV. Lors de cette transition a été détectée, j’ai ajouté à la variable « j ».  J’ai mis en place pour fois « j » était de plus de 8 il réinitialisé à zéro. Je voulais aussi la possibilité de sauvegarder la Banque sur l’eeprom non volatile donc si pour raison ce que jamais je dois retirer le pouvoir de réorganiser les câbles du contrôleur midi démarre et se règle automatiquement à la Banque, qu'il n’était avant il a été mis hors tension.  J’ai aussi trouvé que si j’étais maintenant une note et vous appuyez sur un des boutons de banque en même temps, le contrôleur midi perdu la trace dont Remarque était enfoncé alors que la note ne s’éteint jamais. Pour résoudre ce problème, j’ai fait une boucle qui s’éteint toutes les notes en même temps chaque fois que j’ai la Banque vers le haut ou vers le bas.  J’ai utilisé le même code pour la Banque le bouton sauf qu’au lieu d’ajouter un "j", j’ai soustrait un "j" et il a réinitialisé à 8 si il est allé en dessous de 1.   J’ai mis en place alors « j » comme une variable globale et est utilisé tout au long des différentes sections du programme.
À la fin de cette fonction, j’ai vérifier quelle valeur j est et affectez à la variable « c » en conséquence. « c » permet au contrôleur de midi à la Banque jusqu'à 16 notes à la fois en l’ajoutant à n’importe quel nombre de clavier vous appuyez.  Par exemple si je veux le numéro de note midi 35 sur, j’ai besoin d’aller à la Banque: 3.   « c » est ajouté à quel numéro de clé, je suis en appuyant sur. Donc si je suis en appuyant sur le bouton nombre 3 sur le pavé, le contrôleur midi ajoute la valeur « c », qui est dans ce cas, c’est 32.

3.5 RGB
J’ai mis de côté 3 broches sur le microcontrôleur pour contrôler toutes les LEDs RGB.  RA0 contrôle toutes les LEDs rouges, RA1 contrôle toutes les LEDs vertes et RA2 contrôle tous le bleu.  Chaque broche contrôle toutes les LED en se connectant au portail sur un MOSFET situé sur la carte de conducteur de LED (voir étape 4). Les LED devaient être conduit de cette façon parce que le courant nécessaire pour piloter toutes les LEDs a dépassé les capacités d’approvisionnement actuel microctrollers.
Cette fonction RGB dans le programme vérifie essentiellement quelle banque de notes du contrôleur midi est en vérifiant la valeur de la variable « j ».  Pour obtenir les différentes couleurs j’ai simplement combinés différents jeux de couleurs. Par exemple pour obtenir la couleur mauve, j’allume rouge et bleu en même temps par affectant RA0 et RA2 haute et RA1 au plus bas.

Articles Liés

Hacking SNES touches pour faire des contrôleurs de Style Arcade pour Retropie

Hacking SNES touches pour faire des contrôleurs de Style Arcade pour Retropie

Hi et Merci d'avoir pris le temps de lire mon tutoriel étonnante. L'anniversaire de ma petite soeur est le 25 février, elle est en train de 29 et je suppose qu'elle a commencé un peu vieux sentiment parce qu'elle m'a demandé de donner d'elle l'une de
Contrôleur de DJ MIDI PACMOD

Contrôleur de DJ MIDI PACMOD

pour l'anniversaire de mon fils, je lui fis un contrôleur DJ conçu pour ressembler à une vieille machine d'arcade cabinet. Ce qui suit est un bref aperçu du processus pour le faire, y compris le code.Le Teensy a été choisi comme le cerveau en raison
Pédale de commande de Rocksmith (contrôleur de style pédale d’effet) pour XBox 360

Pédale de commande de Rocksmith (contrôleur de style pédale d’effet) pour XBox 360

il s'agit de mon premier Instructable.  Je suis heureux que mon timing coïncidera avec la date limite d'inscription pour le Challenge 2 Game.Life! J'ai essayé de faire instructables avant, mais il semble être à mi-chemin à travers mes projets, j'ai a
Midi simple flûte/enregistreur contrôleur (EWI)

Midi simple flûte/enregistreur contrôleur (EWI)

Comme un enfant (il y a environ 30 ans), j'ai commencé mes cours de musique à la flûte (un enregistreur pour être précis) et maintenant je veux une version électronique moderne de cet instrument (un Instrument à vent électronique telle qu'elle est ap
IPAD MINI MINIMOOG contrôleur style

IPAD MINI MINIMOOG contrôleur style

J'ai toujours voulu faire une sorte de synthé style controller pour mon iPad synthés et utilisez un filtre monotrons dans la sortie.Ce Instructable sera sur la façon de construire un minimoog iPad-mini contrôleur de style.COMPOSANTS DE BASEun grand n
CoreConduit : Jardin intérieur contrôleur système

CoreConduit : Jardin intérieur contrôleur système

Un contrôleur de jardin nous permet de gérer l'environnement de contrôle, ventilateurs, appareils de chauffage, lampes, pompes et nous en aviser quand le jardin a besoin de notre attention.Le jardin contrôleur système vous aidera à se développer :Ver
CoreConduit : Automatisé contrôleur de jardin

CoreConduit : Automatisé contrôleur de jardin

Un contrôleur de jardin nous permet de gérer l'environnement de contrôle, ventilateurs, appareils de chauffage, lampes, pompes et nous en aviser quand le jardin a besoin de notre attention.http://hydromazing.coreconduit.comÉtape 1: Compiler, téléchar
Contrôleur de LED-RGB

Contrôleur de LED-RGB

Il s'agit de mon contrôleur RGB-LED fait maison.Il est connecté à l'ordinateur qui me permet de modifier la couleur à la main, ou les changements de couleur à la musique, ou son ambilight similaire, les voyants ont la couleur principale de mon écran.
Arduino Due selon Fractal Audio Axe-FX II contrôleur

Arduino Due selon Fractal Audio Axe-FX II contrôleur

J'ai utilisé des effets guitare et préamplis comme la Digitech GSP-21 et de l'ART SGX2000 dans mon banc direct depuis le début des années 90. Bien que les grandes unités pour leur période, il était temps pour une mise à niveau. Après avoir lu quelque
Contrôleur MIDI DJ de arcade style

Contrôleur MIDI DJ de arcade style

>>> ce n'est pas encore tout à fait fini car j'ai armé un peu du circuit vers le haut. Je vais mettre à jour l'instructable et charger une vidéo lorsqu'elle est triée <<<J'ai été DJ pendant une dizaine d'années maintenant, et pour les de
Contrôleur de MIDI personnalisé construit

Contrôleur de MIDI personnalisé construit

Im entrant dans cette jnstructable au concours d'instruments de musique, si vous l'aimez s'il vous plaît votez pour moi cos j'aimerais bien un nouveau synthé ! Comme un producteur de musique électronique/interprète, j'ai rassemblé quelques contrôleur
Contrôleur MIDI contrôlé la flamme

Contrôleur MIDI contrôlé la flamme

Un énorme problème dans le monde de la production musicale numérique garde cette chaleur analogique (qui a résonné de tubes et systèmes de bobine à bobine) en musique numérique moderne. Beaucoup jurent que les systèmes analogiques ont un son qui ne p
Convertir un jouet secouru un contrôleur MIDI

Convertir un jouet secouru un contrôleur MIDI

dans ce Instructable, je vous guidera dans le processus de conversion de jouet d'enfant secouru faire du bruit en un instrument de musique vraiment utile à l'aide de MIDI ! Prenez un moment pour juste coup d'oeil sur les titres des étapes de ce Instr
Week-end maison contrôleur (Work in progress) Smart

Week-end maison contrôleur (Work in progress) Smart

Remarque : Cette instructable est encore travaux en cours (WIP), puisque je n'ai pas beaucoup de temps à cause de l'école et j'ai des problèmes avec Edison. Et parce que je suis perfectionniste, tandis que l'instructable est en état de travaux en cou