Electronique > RéalisationsMétronome 007

Dernière mise à jour : 03/11/2013

Présentation

Ce métronome permet d'allumer des lampes (petites ou grosses) en synchronisme avec l'horloge temps réel d'un flux MIDI.

metronome_007_pcb_3d_a

On ne peut pas régler la vitesse des "flashes" lumineux puisqu'on travaille ici en mode "esclave", la vitesse dépend du rythme balancé dans les données MIDI. Oui, on aurait pu appeler ce montage "Interface MIDI xxx" ou "indicateur de rythme musical xxx" au lieu de "Métronome xxx". Le circuit fait appel à un PIC 16F628A, pratique pour son module UART matériel qui rend la réception des données MIDI bien plus facile à gérer. Optionnellement, il peut électrocuter les musiciens qui ne jouent pas en rythme - mais sans toutefois pouvoir assurer leur remplacement immédiat.

Schéma

Grâce au PIC, le montage reste assez simple dans son ensemble.

metronome_007

Principe général de fonctionnement
Les données MIDI appliquées à l'entrée du montage sont analysées octet par octet, et seules les informations liées au rythme (horloge) sont traitées. L'horloge MIDI comporte 24 pulsations par quart de note (24 PPQN, Pulses Per Quarter Note), il suffit donc de compter ces pulsations et d'allumer la lampe quand on en a réceptionné 24. L'horloge étant véhiculée même quand le morceau de musique est à l'arrêt, le système se base sur les commandes STOP, START et CONTINUE pour s'arrêter de compter quand cela n'est pas requis. Quatre petits interrupteurs (microswitches) ou cavaliers permettent de savoir où retrouver les temps forts et faibles des mesures, nous y reviendrons.

Entrée MIDI
Classique : un optocoupleur, une diode et deux résistances. Les données MIDI au format TTL sont disponibles sur la broche 5 de U2 et sont directement envoyées sur l'entrée Rx de l'UART du PIC (broche 7).

Sortie MIDI
Allez, je vais (encore une fois) vous confier un vrai secret. La sortie MIDI se comporte comme une sortie MIDI-THRU mais après traitement logiciel. Je trouvais dommage de disposer d'une sortie UART non utilisée, et trouvais encore plus dommage de devoir ajouter un circuit intégré de type "buffer" (par exemple 74HCT04) pour ajouter un MIDI-THRU physique. Avantage de la solution logicielle adoptée ici : d'un part moins de composants électroniques (deux résistances additionelles suffisent), et d'autre part filtrage des données de type Active Sensing ($FE). Cette sortie est, vous l'avez compris, totalement facultative et si tout va bien non olfactive. Info pour les curieux : la recopie des données entrantes vers la sortie MIDI prend un retard de 0,33 ms. J'espère que ça ne vous choque pas.

Affichage du rythme
Pourquoi faire simple quand on sait faire autrement ? J'ai câblé trois LED dont le rôle est le suivant :
Vous pouvez très bien ne câbler que la seule LED D2, ou utiliser le couple D3/D4. Dans tous les cas la durée d'allumage des LED est de 50 ms, ce qui suffit pour voir un joli flash. Les interrupteurs câblés sur les lignes RB4 à RB7 permettent de spécifier la signature rythmique, ou pour être plus précis le nombre de temps dans chaque mesure (cette information n'est pas transmise dans le flux MIDI). Le code binaire présenté sur ces quatre entrées RB4 à RB7 correspond au nombre de temps par mesure, avec un petit décalage de 1 :
- pour afficher du 4/4, il faut mettre à 1 les deux entrées RB4 et RB5 et laisser à 0 les deux entrées RB6 et RB7 (valeur en binaire = 3).
- pour afficher du 3/4, il faut mettre à 1 l'entrée RB4 et laisser à 0 les trois autres entrées RB5 à RB7 (valeur en binaire = 2).
Si vous êtes sage, je modifierai le code pour une configuration en concordance directe (valeur 4 pour 4 temps). En attendant, notez bien qu'un interrupteur fermé implique un état bas sur l'entrée correspondante, les résistances de pullup du port B sont activées.

Sortie de puissance
Les LED peuvent suffire dans bien des cas (surtout si elles sont très lumineuses et que leur diamètre avoisine le mètre), mais on peut au besoin les remplacer par une interface 230 V qui permet de jouer avec des lampes à incandescence 230 V. Avec l'interface suivante, vous pouvez par exemple remplacer la LED D2 et sa résistance série R6 par l'optocoupleur U1 associé à sa résistance R1 et sa LED D1 (cette dernière LED permet juste de vérifier l'activation de la sortie du PIC quand la section 230 V n'est pas raccordée).

interface_230V_001

Détail et explications de cette interface à la page Interface 5 V / 230 V. Je n'ai pas essayé mon proto en version secteur et ne suis pas certain que les 50 ms que j'ai prévus pour le temps d'allumage suffisent pour une lampe à incandescence. A essayer. Si ça ne suffit pas et que l'envie de modifier le logiciel n'y est pas, on peut ajouter un monostable entre la sortie du PIC et l'optocoupleur. Ce dernier, avec un réglage de la durée de l'impulsion de sortie (50 ms à 500 ms), permettra d'obtenir l'effet désiré de façon très précise.

Alimentation
Le PIC a besoin d'une alimentation de +5 V, un régulateur de tension du type LM7805 ou 78L05 fait parfaitement l'affaire. Pour ce qui tourne autour du régulateur, on reste dans le classique : une diode (D5) pour protéger le montage contre une inversion accidentèle de la polarité du bloc d'alimentation, des condensateurs pour améliorer le filtrage et garantir une bonne stabilité (C3 et C4) et enfin une LED en sortie (D6) pour confirmer la mise sous tension.

Prototype

Tests réalisés avec ma platine EasyPic7, ma fidèle extension Interface MIDI 011 et mon vieux séquenceur portable Yamaha QY70.

metronome_007_proto_001a metronome_007_proto_001b

Le QY70 a bien sûr été configuré pour délivrer les infos d'horloge et de transport sur la sortie MIDI OUT (menu Utility). Lors des premiers tests, la mise en pause et le redémarrage d'une séquence provoquait une désynchronisation de l'affichage des LED par rapport au métronome du maître. Et pour cause, le PIC stoppait le clignotement des LED à l'arrêt mais continuait de compter les tops d'horloge. Il y avait donc une chance sur 24 pour qu'au redémarrage ça reparte au bon endroit. Problème résolu.

Logiciel du PIC

Le fichier binaire compilé (*.hex) est disponible dans l'archive dont le lien suit.  
Métronome 007 - PIC 16F628A - Version du 03/11/2013
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé, vue 3D uniquement là pour faire joli.
 

Historique

03/11/2013
- Première mise à disposition.