Aujourd'hui je continue mon exploration de l'ESP32-2432S028 CYD (Cheap Yellow Display) par quelques expérimentations de communication MIDI avec un clavier électronique.
Il s'agit d'une communication MIDI classique impliquant l'utilisation des bons vieux câbles MIDI munis d'un connecteur DIN à 5 broches. De nos jours, le MIDI par USB ou par Bluetooth est de plus en plus en vogue, mais ce n'est pas ce dont il sera question aujourd'hui.
MIDI: pour quoi faire?
MIDI est l'acronyme de Musical Instrument Digital Interface. Depuis le début des années 1980, c'est le protocole qui permet à des appareils électroniques musicaux d'échanger de l'information. Par exemple, grâce au protocole MIDI, un clavier ou un séquenceur peuvent acheminer des instructions à un synthétiseur, qui produira les sons qui lui ont été demandés.
Connexions
Le MIDI est une communication série (UART) à 31 250 baud. Dans ce contexte, l'ESP32 comporte un avantage intéressant: on peut désigner à peu près n'importe quelle broche GPIO comme entrée (Rx) ou sortie (Tx) UART. J'ai décidé d'utiliser à cette fin les broches GPIO 22 et 27, puisqu'elles sont facilement accessibles par le connecteur CN1 du Cheap Yellow Display. C'est le connecteur qui se trouve juste à côté du lecteur de carte microSD.
Les 4 fils issus du connecteur CN1 sont utiles pour une communication MIDI bi-directionnelle. De gauche à droite sur la photo:
- Sortie 3,3 V (fil rouge sur la photo): servira à alimenter l'optocoupleur recommandé pour la réception de messages MIDI.
- Broche GPIO 27 (fil jaune sur la photo): sera désignée comme entrée UART (Rx) qui pourra recevoir des messages (en provenance d'un clavier MIDI, par exemple).
- Broche GPIO 22 (fil bleu foncé sur la photo): sera désignée comme sortie UART (Tx) qui pourra envoyer des messages (vers un clavier MIDI, par exemple).
- Broche GND: pour que tous les appareils impliqués utilisent la même référence pour mesurer les tensions.
Pour faire mes tests, j'ai utilisé une interface MIDI que j'ai fabriquée moi-même, conçue pour fonctionner à un niveau logique de 3,3 V. Vous pouvez vous référer à cet article publié en septembre 2023 pour les détails du circuit.
Vous pouvez acheter une interface toute faite, ou en assembler une sur une breadboard. Remarquez que pour bien des applications, on a besoin d'une communication dans une seule direction. Si vous désirez seulement envoyer des messages vers le clavier MIDI (broche Rx), le circuit nécessite simplement deux résistances. Pour recevoir des informations à partir du clavier, par contre, il faut utiliser un optocoupleur (voir l'article détaillé pour les schémas de circuit).
Installation de la bibliothèque "MIDI Library"
La programmation est plus simple si on utilise une bonne bibliothèque. J'ai utilisé la MIDI Library, qui s'installe facilement grâce au gestionnaire de bibliothèques de l'IDE Arduino.
Voyons deux exemples simples démontrant une communication MIDI dans chaque direction.
Communication MIDI du CYD vers un clavier
Lorsqu'on exécute le sketch ci-dessous, le clavier musical joue une suite de notes ascendantes en utilisant différents timbres (programmes). Pour faciliter le débogage, le numéro du programme s'affiche dans le moniteur série.
-
-
Communication MIDI d'un clavier vers le CYD
Dans ce deuxième exemple, chaque fois qu'on appuie sur une touche du clavier, son numéro MIDI s'affiche en vert sur l'écran du CYD. Ce même numéro s'affiche en rouge lorsqu'on relâche la touche.
(Voir l'article "Exploration du Cheap Yellow Display" pour plus d'informations sur l'utilisation de la bibliothèque TFT_eSPI pour affichage à l'écran.)
-
-
Yves Pelletier
À lire également:





Aucun commentaire:
Enregistrer un commentaire