Electronique > Réalisations > Interfaces > Interfaces MIDI > Interface MIDI 026 - Pro

Dernière mise à jour : 06/08/2017

Présentation

Cette interface MIDI a été étudiée pour piloter un ou deux moteurs pas à pas depuis un logiciel séquenceur MIDI.

interface_midi_026_pcb_3d_a

L'interface permet :
- de piloter des moteurs pas à pas de type bipolaire (4 fils) ou unipolaire (5 ou 6 fils)
- de sélectionner le mode de fonctionnement Demi-pas (Half) ou Normal (Full)
- de faire tourner le moteur dans un sens ou l'autre, en mode pas à pas (one-pulse)
- de faire tourner le moteur dans un sens ou l'autre, de manière continue avec un nombre de pas prédéfinis (multi-pulses)
- de sélectionner une vitesse de rotation moteur parmi 3 valeurs, dans un sens ou l'autre.
Les commandes de pilotage du moteur sont élaborées à partir de données MIDI classiques de type NoteOn et ControlChange.

Schéma

Le montage est élaboré autour d'un microcontrôleur PIC 18F46K22 cadencé à 8 MHz par un quartz.

interface_midi_026
Coeur du système (schéma partiel, reste du montage non diffusé)


Principe général
Les données MIDI reçues par l'interface sont traitées en temps réel, et si elles correspondent à des données reconnues (attendues) elles sont utilisées pour élaborer les signaux de commande du moteur. 

Données MIDI "NoteOn" (événements NoteOff ignorés)
Le Do3 (Do central) arrête le moteur. Les notes inférieures à Do3 font tourner le moteur d'un certain nombre de pas dans le sens "anti-horaire". Les notes supérieures à Do3 font tourner le moteur d'un certain nombre de pas dans le sens "horaire". Le nombre de pas dépend de la hauteur de la note comme indiqué dans le tableau suivant, et le numéro de canal MIDI (nn) définit le moteur à commander.

Octave Do Mi Fa Sol La Si
0 - - -500 -400 -300 -200 -100
1 - - -50 -40 -30 -20 -10
2 - - -5 -4 -3 -2 -1
3 Arrêt +1 +2 +3 +4 +5 -
4 - +10 +20 +30 +40 +50 -
5 - +100 +200 +300 +400 +500 -

Ces commandes par notes permettent de piloter le moteur à la volée, en temps réel via un clavier MIDI et sans passer par un enregistrement dans le séquenceur. En contrepartie, il faut envoyer plusieurs notes à la file pour obtenir un nombre de pas différent de ceux proposés en fixe. Pour faire avancer ou reculer le moteur d'un nombre de pas précis et en une seule commande (par exemple 2346 pas), il faut envoyer un message de type CC (Control Change) à l'interface.

Données MIDI "ControlChange"
En utilisant les données ControlChange qui suivent, on peut faire avancer ou reculer le moteur d'un nombre de pas fixe et défini par l'utilisateur, ou le faire tourner en régime permanent (3 vitesses de rotation possibles). Le numéro de canal nn inclus dans le premier octet du message $Bnn correspond au numéro de moteur (0 pour moteur #1, 1 pour moteur #2, 2 pour moteur #3, etc).

Remarques

Exemples
La vitesse de rotation peut éventuellement être modifiée en cours de route (rapide au début, puis ralentissement en fin de parcours)..

Commande des moteurs pas-à-pas
Le logiciel a été écrit pour piloter des drivers moteur spécifiques (dédiés). Les données de commande délivrées par le PIC correspondent donc aux signaux de pilotage des deux drivers. Le temps qui sépare deux pas de commande moteur, varie en fonction des données de configuration MIDI reçues. Si le nombre de tours par minute d'un moteur pas-à-pas dépend de l'intervalle de temps écoulé entre chaque pas, il dépend aussi de son nombre de pas par tour. La vitesse effective de rotation des moteurs dépend donc avant tout du modèle utilisé : à réglages MIDI identiques, un moteur 16 pas tournera 8 fois plus vite qu'un moteur 128 pas.

Alimentation
La source d'alimentation principale est de 12 V (valeur réclamée par les moteurs utilisés ici) et doit être capable de débiter un courant de 3 A. Un régulateur de tension de +5 V est prévu directement sur le circuit pour abaisser la tension de 12 V et alimenter le PIC (avec filtrage sérieux, ça va de soi).

Entrée et sortie MIDI
La sortie MIDI délivre une note à la mise sous tension (Do3, durée 100 ms) et permet de s'assurer que l'interface démarre bien. En temps normal, cette sortie n'est pas exploitée.

Brochage des prises MIDI

Le câblage proposé ci-après est valable pour les prises MIDI IN (entrée), MIDI OUT et MIDI THRU (sorties).

midi_din_cablage_001

La borne 2 est reliée à la masse au niveau des sorties mais pas au niveau des entrées, pour éviter toute boucle de masse entre équipements.

Logiciel du PIC (version allégée LE)

LE - Demande pro, logiciel complet non disponible sur ce site. La version LE disponible ici ne permet que la mise en route et l'arrêt du moteur, dans un sens ou dans l'autre et à vitesse constante, pour le moteur #1 seul.
Interface MIDI 026 LE - PIC 18F46K22 - 06/08/2017

Circuit imprimé

Non réalisé par mes soins.

Historique

06/08/2017
- Première mise à disposition.