Codeur incrémental Midi

Résolution 10 bits

Cette carte gère une à deux roues codeuses numériques avec

  • une résolution de 1024 pas ;
  • pas d’angle mort ;
  • un merger pour y brancher d’autres codeurs / capteurs.

I - Connectique & Alimentation

1 - Branchements Midi

  • OUT (OU OUTPUT) : sortie Midi située dans l’alignement des connecteurs pour les codeurs. Elle sert à brancher un câble allant soit vers l’ordinateur soit vers l’entrée d’une autre carte codeur. Cette prise sert toujours : elle permet d’envoyer les données du capteur vers l’ordinateur.
  • IN (OU INPUT) : entrée Midi merger, situé en bout de carte à l’opposé de l’alimentation. Elle permet de connecter un câble provenant soit d’un autre codeur incrémental, soit d’une autre carte capteur (par exemple un télémètre à ultrason ou un 4 Voies Analogiques). Son utilisation est optionnelle : elle ne sert pas si la carte codeur est le seul capteur utilisé dans le dispositif.

2 - Branchement des modules codeurs

Les codeurs se connectent à la carte principale via des câbles en nappe 10 points, sur des connecteurs HE10 à détrompeur. La carte fonctionne indistinctement avec un seul codeur ou avec les deux, il n’y a rien de particulier à configurer. Pour un codeur unique, il n’y a pas d’emplacement privilégié, mais il faut faire attention à ce que le programme à la réception, pour les numéros des Control Change, corresponde à l’emplacement choisi.

3 - Alimentation électrique

Ce module doit être alimenté en continu, par tout bloc secteur dont la tension de sortie est comprise entre 9 V et 12 Volts. Le fil positif est souvent identifié par un marquage, des traits blancs ou une couleur rouge. Pour connecter les fils d’alimentation sur la carte, ils doivent être dénudés proprement au bout sur 5 mm avant d’être vissés dans le domino de la carte. Il y a une polarité à respecter : le fil positif doit être vers le bord de la carte, au niveau du marquage (+).

II - Configuration de la carte

1 - Canal Midi et numéro de carte

Les interrupteurs 1 à 4 servent à définir le canal Midi.
Les interrupteurs 5 et 6 servent à définir le numéro de carte.
Si plusieurs cartes Codeurs sont utilisées en même temps, elles doivent porter des numéros différents ou être configurées sur des canaux Midi différents pour que les données de leurs capteurs ne se mélangent pas et soient indépendantes les unes des autres.
En terme programmation, cette configuration se répercute sur les objets ou fonctions utilisées pour recevoir les données du capteur.

2 - Interrupteurs 7 et 8

L’interrupteur 7 force l’envoi du status Midi.
L’interrupteur 8 permet de choisir d’activer ou non le codeur n°2. Les mesures du codeur n°1 sont quant à elles toujours envoyées. Cet interrupteur doit donc être sur On pour utiliser les deux capteurs en même temps.
Les tableaux ci-dessous résument ces informations de configuration.

Canal Midi \ Interrupteur 1 2 3 4
1 OFF OFF OFF OFF
2 ON OFF OFF OFF
3 OFF ON OFF OFF
4 ON ON OFF OFF
6 OFF OFF ON OFF
7 OFF ON ON OFF
8 ON ON ON OFF
9 OFF OFF OFF ON
10 ON OFF OFF ON
11 OFF ON OFF ON
12 ON ON OFF ON
13 ON ON OFF OFF
14 ON OFF ON ON
15 OFF ON ON ON
16 ON ON ON ON
N° Carte \ Inter 5 6
0 OFF OFF
1 ON OFF
2 OFF ON
3 ON ON
Status \ Inter 7
Non OFF
Oui ON
Codeur 2 \ Inter 8
Non OFF
Oui ON

3 - Branchement de plusieurs Codeurs

Pour utiliser plus de deux codeurs ensemble, il faut configurer les deux cartes sur des canaux ou des numéros différents (voir Paragraphes précédents), et brancher la sortie Midi d’une carte, qui envoie les données des capteurs, sur l’entrée Midi merger de l’autre, qui peut recevoir des messages Midi et les transmettre sur sa propre sortie.
La sortie Midi de la deuxième carte se branche sur l’ENTREE Midi de l’ordinateur (interface Midi-USB ou port Midi de carte son).
Il n’y a pas d’ordre ou de positionnement particulier dans la chaîne de branchement à respecter.

4 - Branchement avec d'autres types de capteurs

Pour utiliser un autre type de capteur en Midi avec un codeur incrémental, il suffit de connecter la prise Midi de ce capteur, celle qui envoie les données vers l’ordinateur, à l’entrée In Merger du Codeur. Lui-même est comme précédemment branché sur l’entrée In de l’interface de l’ordinateur. Il faut vérifier auparavant que les deux types de capteurs n’envoient pas de données conflictuelles, par exemple sur le même numéro de Control Change (voir plus loin), et si cela arrive, configurer les deux cartes sur des canaux Midi différents pour que les données ne se mélangent pas.

III - Programmation, mise en oeuvre informatique

La carte est directement compatible avec tout système (logiciel sur ordinateur, carte ZIP, ...) capable de recevoir des messages Midi de type Control Change. Chaque Codeur correspond à deux Control Change différents et peut distinguer 1024 valeurs (10 bits) réparties sur les 360° d’un tour complet.
Trois paramètres sont envoyés :

  • le canal de la carte (servant à trier les divers capteurs si plus d’une carte est utilisée) ;
  • le numéro de Control Change, qui dépend de la position du codeur sur la carte (1 ou 2) ou du numéro de carte configuré sur les interrupteurs 5 et 6 (voir tableau ci-dessus) ;
  • et la valeur dépendant de l’angle mesuré par le capteur.

Remarque : la valeur d’un Control Change unique varie entre 0 et 127 et est indépendante de son numéro. Il en faut donc deux pour transmettre 1024 valeurs.
Exemple :
Si la carte Codeur porte le numéro 2 (O3 /On pour les interrupteurs 5 et 6), son premier Codeur envoie ses valeurs sur les Control Change numéro 80 et 81, qu’il faut combiner logiciellement pour reconstituer la mesure précise.
Ces paramètres sont détaillés dans le tableau suivant.

Numéro de Carte Codeur 0 1 2 3
Codeur 1 Poids fort 64 72 80 88
Poids faible 65 73 81 89
Codeur 2 Poids fort 66 74 82 90
Poids faible 67 75 83 91
Status 68 76 84 92
69 77 85 93

Ce tableau donne les numéros de Control Change (CC) correspondant aux deux Codeurs de la carte, en fonction du numéro sur lequel elle est configurée.

Pour reconstituer la mesure, il faut multiplier la valeur du CC de poids fort par 128 puis lui ajouter la valeur apportée par le CC de poids faible. Le poids fort représente de grand pas, écartés de 128 valeurs, dans la mesure du capteur. Le poids faible permet de récupérer la finesse de la résolution 10 bits. Les mesures d’un capteur ne pouvant prendre plus de 1024 valeurs, les valeurs réellement envoyées par le CC de poids fort varient entre 0 et 8 (sinon le résultat reconstitué dépasserait cette limite de 1024 après multiplication du poids fort par 128).

Exemple de calcul :
le CC64 est associé à une valeur de 6 ;
le CC65 est associé à une valeur de 82.
La mesure du capteur est :
Codeur = (6 x 128) + 82
Codeur = 850

Pour bien reconstituer la valeur mesurée par le codeur incrémental, il faut faire l’opération dans le bon ordre : le poids fort arrive D’ABORD, la multiplication par 128 doit donc se faire en premier. Le CC de poids faible arrive ENSUITE, l’addition se fait donc dans un second temps, seulement à la réception de ce deuxième message CC.

Consultez la section Programmation du site d’Interface-Z pour des patchs détaillés.

Le patch ci-dessous a été créé en Max et est aisément transposable en Pure Data, voire en Isadora si l’on connaît les objets mathématiques.

IV - Précautions d'emploi

Vous pouvez trouver les précautions d'emploi ici.