Electronique > Réalisations > Interfaces > Interfaces MIDI > Indicateur tempo MIDI 002

Dernière mise à jour : 07/04/2013

Présentation

Cet indicateur de tempo MIDI dispose d'un capteur de lumière et réagit à l'illumination d'un voyant indicateur de tempo.

indicateur_tempo_002_pcb_3d_a

A chaque impulsion lumineuse reçue, il génère une note MIDI qui peut déclancher un son pour marquer le tempo (son de percussion ou n'importe quel autre). Comme vous n'avez pas forcément un générateur de son MIDI sous la main, le montage produit également un bip autonome dont le niveau (volume) est ajustable (sortie sur jack). Une LED retranscrit les battements lumineux captés et permet de vérifier rapidement si tout fonctionne correctement. Un réglage de sensibilité est prévu pour s'adapter aux diverses LED qu'on peut rencontrer à gauche ou à droite, celles du centre étant généralement moins lumineuses. A l'origine, ce montage a été réalisé pour envoyer à un batteur, un bip rythmique synchronisé sur la LED d'un "looper" Boss RC20 (timbre postal non requis). Mais bien sûr il peut s'adapter à d'autres ustensiles qu'on ne souhaite pas décortiquer (ce serait trop simple).

Schéma

Le montage est basé sur un microcontrôleur PIC 16F628A, c'est la solution la plus simple que j'ai trouvée pour générer des notes MIDI. Si l'élaboration de notes MIDI n'avait pas été requise, je me serais contenté de composants logiques traditionnels et non programmables (un monostable et un oscillateur de dimensions modestes). Mais ayant inclus le terme "MIDI" dans le titre, il était trop tard pour faire marche arrière.

electronique_indicateur_tempo_002

Fonctionnement général
Une cellule photorésistive (photorésistance ou LDR si vous préférez) est placée en regard de la LED qui indique le tempo. A chaque fois que la LED "tempo" s'allume, la résistance de la LDR diminue et cette diminution est mise à profit pour modifier la valeur d'une tension : tension plus ou moins égale à +5 V quand la LDR est éclairée et plus ou moins égale à 0 V quand la LDR ne l'est pas. Cette variation de tension est détectée par le PIC (via une interruption) et ce dernier met la machine de guerre en route :
- allumage d'une LED;
- génération d'un bip autonome;
- génération d'une note MIDI.

Détection tempo lumineux
On vous a parlé de LDR et on ne vous a pas menti. Ce composant dont la résistance diminue d'autant plus que la lumière qu'il reçoit est intense, rend conducteur ou bloque un transistor, qui sur le schéma ne peut être que Q1. La base de ce dernier est polarisée par [R5 + RV2] et la LDR, ces trois éléments résistifs forment un pont diviseur résistif. Le principe de fonctionnement ne peut pas être plus simple. Quand la LDR est dans la pénombre, sa valeur est très élevée, quelques centaines de kO voire supérieure à 1 MO. Dans ce cas, la tension appliquée à la base de Q1 à travers R5 et RV2 est suffisante pour le rendre conducteur, et son espace émetteur-collecteur présente une faible chute de potentiel (disons 0,2 V pour fixer un ordre de grandeur). La ligne Trig qui aboutit sur la broche RB7 du PIC est donc considérée comme à l'état bas. Dès que la LDR est éclairée par la LED qui se trouve face à elle, sa résistance diminue d'un coup et la tension appliquée à la base de Q1 chute tout aussi brutalement, le transistor impuissant se bloque alors. Son espace émetteur-collecteur "s'ouvre" et on retrouve une tension voisine de +5 V sur le collecteur et donc sur la ligne Trig (grâce à la résistance de charge collecteur R6, qui dit en passant peut être supprimée si le pullup interne du PIC est activé). RV2 permet d'ajuster le seuil de commutation entre LDR non éclairée et LDR éclairée. A noter qu'il existe une zone de transition linéaire dans laquelle la tension en sortie de Q1 est progressive et fonction de l'éclairement de la LDR. Tout l'art consiste donc à régler correctement RV2 pour que la transistion soit franche, ce qui ne devrait pas vous poser de difficulté majeure, même si vous êtes mineur.

Sortie MIDI
La sortie MIDI profite de la présence d'une broche appelée RB2/TX sur le PIC 16F628A. En toute franchise, je ne sais pas ce que j'aurais fait si le PIC n'avait pas été doté d'une telle broche. Vous avez dit SOFT_UART ? Ah oui tiens, pourquoi pas... Quelque soit le code logiciel utilisé pour générer la note MIDI, le côté matériel se résume une fois de plus à une prise DIN 5 broches et deux résistances de 220 ohms (R3 et R4). On n'invente plus grand chose, il faut juste faire attention où brancher le fil bleu et le fil rouge. A la mise sous tension, le PIC délivre une unique note MIDI et la LED LED1 s'allume brièvement, histoire de confirmer qu'à priori l'initialisation logicielle du PIC se fait bien.

Sortie sonore
A chaque détection d'impulsion lumineuse en entrée du montage, la sortie RA3 du PIC délivre une successions de changements d'états logique, pendant un temps assez court et à une fréquence comprise dans le domaine audio. Un comportement idéal pour faire entendre un son. Comme l'amplitude du signal audio généré par le PIC est de 5 V, un atténuateur constitué de R2 et RV1 permet de disposer d'un signal plus proche d'un niveau ligne (quelques centaines de mV maximum). Le potentiomètre RV1 qui sert à régler l'amplitude (le volume) du signal de sortie pourra être de type ajustable ou à monter sur une face avant. Modèle lin ou log, pas vraiment important ici mais un modèle log pourrait avoir ma (ou votre) préférence. Si le PIC vous embête vraiment, il est possible de le retirer et de placer un oscillateur commandé par le signal Trig. Figurez-vous qu'une simple porte logique de type CD4093 peut faire l'affaire. Oui, oui.

Sortie visuelle
On emploie une simple LED, qui de préférence sera de type haute luminosité et à angle de diffusion large (faisceau pas trop directif, mais ça ne sert à rien de chercher une ouverture supérieure à 360 degrés). Pourquoi ? Ca me semble mieux, pas vous ? Remarque : si vous n'avez besoin que de la LED et non du MIDI ni du bip sonore, ce montage n'est peut-être pas pour vous.

Oscillateur PIC
Utilisation d'un quartz externe de 8 MHz pour une bonne stabilité. Mais à vos risques et périls, on peut aussi utiliser l'oscillateur interne de 4 MHz. Faites comme bon vous semble, les deux fichiers logiciel PIC sont fournis.

Alimentation
Un régulateur de tension de +5 V est prévu directement sur le circuit (U2), ce qui permet d'alimenter ce montage avec n'importe quel bloc d'alimentation secteur qui délivre une tension comprise entre +9 V et +15 V. La consommation est suffisament faible pour se permettre d'utiliser un régulateur de tension "miniature" de type LM78L05 (100 mA max), et ce dernier n'a pas besoin de dissipateur thermique (heureusement, vu son boîtier plastique TO92). La diode D1 n'est pas indispensable mais vivement conseillée, les blocs secteurs du commerce permettant parfois d'inverser la polarité de la tension de sortie. Il serait dommage de vous trouver dans cette situation fâcheuse qui n'arrive qu'aux autres. Si vous disposez déjà d'une alimentation de +5 V, alors vous pouvez supprimer tous les composants relatifs à cette section, à savoir D1, C3, C4 et U2. Enfin quand je dis supprimer, vous m'avez compris.

Procédure de réglage
- En cas de disfonctionnement, vérifier que la tension entre la masse et le collecteur du transistor Q1 varie bien quand on met la LDR en pleine lumière ou dans la pénombre.
- Tourner le potentiomètre RV2 dans le bon sens, de sorte que la LED LED1 ne s'allume que quand la LED tempo s'allume.
- Faire en sorte qu'aucun éclairage parasite ne parvienne à la LDR (usage scénique, attention).
- Placer la LDR face à la LED tempo.
Lire cette procédure en sens inverse, c'est-à-dire en partant de la fin.

Brochage des prises MIDI

Câblage valable pour les prises MIDI IN, MIDI OUT et MIDI THRU.

midi_din_cablage_001

La borne 2 est reliée à la masse au niveau de la sortie MIDI mais pas au niveau de l'entrée, ce qui nous fait une belle jambe puisqu'il n'y a pas d'entrée MIDI.

Prototype

Uniquement réalisé avec l'ensemble des composants, le tout relié sur ma platine EasyPic7 dotée de son PIC fraichement programmé.

indicateur_tempo_002_proto_001a indicateur_tempo_002_proto_001b indicateur_tempo_002_proto_001c indicateur_tempo_002_proto_001d

Pour tester le bon fonctionnement de l'étage d'entrée, j'ai utilisé un bête oscillateur à NE555 avec une LED rouge plaquée contre la LDR. Pour le test générateur sonore autonome, un petit transducteur piezo (buzer) directement relié sur la sortie RA3 du PIC. Le son délivré est super agréable, je suis fan. Pour les notes MIDI, vérification avec mon interface MIDI 011, mon QY70 et mon logiciel de test MidiTest. Croyez-le si vous voulez, mais tout a fonctionné du premier coup. C'est assez rare, et j'ai l'immense honneur de pouvoir vous le signaler.

Circuit imprimé

Non réalisé, comme la coutume du mois d'avril le réclame pour ceux qui naissent un 12 octobre.

Logiciel du PIC

Les fichiers assembleur (*.asm) et binaire compilé (*.hex) sont disponibles dans l'archive dont le lien suit. Sont incluses les deux versions pour quartz externe 8 MHz et oscillateur interne 4 MHz.
Indicateur tempo MIDI 002 - PIC 16F628A - 07/04/2013
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Historique

07/04/2013
- Première mise à disposition.