Electronique > Réalisations > InterfacesInterfaces MIDI > Contrôleur MIDI 003c

Dernière mise à jour : 15/03/2015

Présentation

Ce contrôleur MIDI dispose de 128 entrées de commandes qui prennent la forme d'un clavier matricé de 8 colonnes / 16 rangées. Le clavier est constitué de capteurs à effet hall de type A3144 (plus fabriqués) ou A1104 (encore fabriqué à l'écriture de ces lignes). Chaque capteur permet de déclencher un évenement MIDI de type Note On (approche d'un aimant) ou Note Off (éloignement de l'aimant). 

controleur_midi_003_pcb_3d_a

Ce circuit a été conçu pour interfacer (MIDI-fier) un accordéon, les données MIDI sont transmises sur 3 canaux MIDI et certaines "touches" délivrent des accords (seules 100 entrées sur les 128 sont en fait utilisées). Le système a été conçu pour que chaque capteur magnétique (touche) puisse délivrer n'importe quelle note ou accord sur n'importe quel canal MIDI, pour faciliter toute nouvelle adaptation. Le coeur du montage fait appel à un PIC de la famille 18F.

Avertissements


Schéma

Le coeur du système repose sur un PIC et quelques composants, la matrice de capteurs quant à elle est assez bien fournie ! Les deux sections sont sur des schémas séparés.

controleur_midi_003c
Section principale

La partie la plus touffue réside dans le câblage des 128 capteurs à effet hall, heureusement que le multiplexage permet de réduire la quantité de fils à câbler !

controleur_midi_003c_keyboard
Section clavier

Principe général
Il repose sur l'emploi d'une matrice de 128 capteurs matricés en 8 colonnes de 16 rangées, sensibles au champ magnétique d'un aimant déplacé à proximité. Comme chaque capteur consomme entre 5 mA et 7 mA, il est "délicat" de les alimenter tous en permanence. On les mets donc sous tension par paquet de 8, ce qui réduit la consommation du clavier à une valeur seize fois moindre (environ 50 mA au lieu de 800 mA). La sortie des capteurs est analysée en boucle, et quand un aimant s'approche de l'un d'eux, sa sortie passe à 0 et ce changement d'état provoque l'émission d'un ou plusieurs événements de type Note On (notes simples ou accords). Quand l'aimant s'éloigne, la sortie repasse à l'état haut et provoque l'émission d'un ou plusieurs événements de type Note Off.

Coeur du montage
Le microcontrôleur fait tout le travail. Il scanne en permanence la matrice de capteurs et délivre les notes MIDI quand un capteur est activé ou désactivé. Seize lignes du PIC configurées en sortie pilotent l'activation des rangées de capteurs, et huit lignes configurées en entrée permettent de reconnaître les capteurs qui sont activés. Quand au moins une touche est "enfoncée" (capteur hall actif), la LED s'allume. Elle ne s'éteint que quand tous les capteurs sont inactifs.

Traitement de la polyphonie
L'état de chaque capteur est géré de façon indépendante, chacun dispose de son espace mémoire dans le PIC pour garder trace des notes "enfoncées". Si plusieurs capteurs sont activés en même temps, cela provoque l'émission de plusieurs notes sur la sortie MIDI. Le logiciel du PIC peut travailler selon deux modes totalement différents :
- soit les notes sont vues de façon individuelle et dans ce cas tel ou tel capteur active telle ou telle note sur le canal MIDI préprogrammé, que la note soit jouée seule ou qu'elle fasse partie d'un accord;
- soit les notes sont analysées en deux scans de clavier successifs, pour voir si une note est jouée seule ou fait partie d'un accord.
Dans le second cas, un même capteur peut servir à activer une même note dans les deux cas de figure, mais avec un canal MIDI différent.

Temps de réaction (latence)
Le cas le plus défavorable (latence la plus élevée) correspond à l'activation d'un capteur situé sur une rangée qui vient juste d'être traitée. En effet dans ce cas de figure, il faut attendre un cycle complet pour analyser à nouveau la rangée en question. L'envoi de chaque note MIDI demande quant à lui un peu moins de 3 ms, ce délai est lié à la vitesse de transmission MIDI (31250 bauds) et au nombre d'octets à transmettre (3 octets pour une note simple). Dans le cas présent, un scan complet est opéré en 2,8 ms, le temps de réaction est compris entre 0,4 ms et 2,8 ms. Le système met donc moins de temps à réagir qu'il ne met à transmettre une simple note ;-)

Sortie MIDI
Les messages MIDI Note On ou Note Off issus du PIC aboutissent sur une prise DIN 5 points dont seuls 3 broches sont raccordées : données, +5 V (via résistance) et masse. On ne s'éloigne pas de la norme.

Prototype

Réalisé avec plaque d'expérimentation à pastilles et 48 capteurs à effet Hall câblés en matrice 4 x 12. En fait comme je ne sais plus compter, je n'ai câblé que 46 capteurs. Mais avant de câbler la matrice complète, je me suis tout de même assuré que les capteurs fonctionnaient bien à l'unité, et heureusement pour cela j'avais des gros aimants rectangles sur mon frigo et des petits ronds (en forme de pile bouton) au pied de mon lit.

capteur_hall_a3144_001a capteur_hall_a3144_001b capteur_hall_a3144_001c capteur_hall_a3144_001d 

La détection peut s'opérer sur le devant (biseauté) ou sur l'arrière du capteur, selon pôle magnétique de l'aimant. La sortie du capteur reste muette si on place l'aimant au-dessus. Est venu ensuite le temps de réaliser cette fameuse matrice de test à 46 capteurs...

controleur_midi_003c_proto_001a controleur_midi_003c_proto_001b controleur_midi_003c_proto_001c

Après correction de deux mauvaises soudures (oui, cela m'arrive encore) le prototype fonctionne parfaitement. Pour les essais, j'ai fixé un aimant sur mon index avec du scotch, et je me suis promené au dessus des capteurs.

controleur_midi_003c_proto_001d controleur_midi_003c_proto_001e

Par moment il arrivait que deux notes soient jouées en même temps quand je plaçais l'aimant entre deux capteurs, ce qui est tout-à-fait normal vu la taille de l'aimant utilisé (trop gros par rapport à l'espace inter-capteurs). Hormis ce détail lié à un "mauvais choix" d'aimant, les notes sont jouées de façon franche.

Adaptation mécanique dans l'accordéon

C'est à n'en point douter la partie la plus délicate. Les aimants doivent être petits (taille similaire à celle d'un capteur) et se déplacer de façon très précise par rapport aux capteurs. S'ils sont trop loin les notes ne se déclanchent pas, et s'ils sont trop près on a droit aux notes ininterrompues ! Bref, un minutieux travail de mécanique avec nécessité de pouvoir ajuster la distance aimant-capteur, selon un procédé qui doit tenir dans le temps. Je n'ai pas travaillé sur cet aspect mécanique, mais je trouve ça passionnant !

Logiciel du PIC

Projet réalisé suite à demande pro, logiciel du PIC non disponible sur ce site.

Circuit imprimé

Non réalisé.

Historique

15/03/2015
- Première mise à disposition.