Utiliser des capteurs à effet Hall pour détecter magnétiquement la position des pédales d'un orgue

Le magnétisme est peut-être le phénomène qui se rapproche le plus de la magie (suivi de près par les microcontrôleurs). Voici une anecdote associant ces deux éléments. Ainsi que Bach. Jean-Sébastien Bach, bien sûr. Les pédales d'un orgue fonctionnent comme un clavier, offrant à l'organiste un « dispositif d'entrée » supplémentaire (Figure 1).

Figure 1 : Les pédales de l'orgue sont disposées comme sur un clavier. Vous pensez que vous pourriez jouer un morceau de piano basique là-dessus ? (Source de l'image : Michael Dunn)

Cela dit, la discussion porte ici sur toutes sortes de pédales. En fait, elle s'applique à presque tous les types d'applications de commutation ou de détection de position imaginables. Poursuivez votre lecture pour en savoir plus.

Ma rencontre avec l'orgue (vous pouvez sauter ce passage)

Depuis mon adolescence, je rêve d'avoir un grand orgue, ou une reproduction acceptable, principalement pour jouer la sublime musique de Jean-Sébastien Bach. Vous imaginez ce à quoi ressemblerait un morceau de Bach joué sur le magnifique orgue de l'église Saint-Germain-l'Auxerrois de Paris (Figure 2) ? Le manque d'argent et d'espace ayant écarté cette possibilité, les orgues électroniques occupent mon esprit depuis des dizaines d'années maintenant, de mes premières conceptions géantes entièrement analogiques jusqu'à mes concepts plus récents de synthèse additive générés de façon numérique. Je me contenterai de dire que, outre l'acquisition de claviers et d'un pédalier, ces plans n'ont abouti à rien. Évidemment, il était toujours possible d'acheter un orgue électronique, mais aucun ne me convenait, et surtout, où était le plaisir dans tout ça ?

Figure 2 : Pas de place pour cet instrument, qui n'est d'ailleurs pas à vendre. (Image et source : Orgue de l'église Saint-Germain-l'Auxerrois, Paris, via Wikipédia.org)

Cependant, ces dernières années, des programmes comme Hauptwerk (le nom allemand de l'un des claviers d'un orgue, mais vous le saviez, évidemment) se sont transformés en moteurs remarquables permettant de recréer les sons de véritables orgues à l'aide d'une technologie d'échantillonnage. Je dois donc admettre qu'il est temps pour moi d'abandonner mes rêves de concevoir un instrument de A à Z.

Détection de la position des pédales

Ayant opté pour l'utilisation de logiciels commerciaux pour simuler un orgue, je n'avais plus qu'à construire la console, notamment deux ou trois claviers et un pédalier. J'ai acheté ces mécanismes il y a de nombreuses années et ils ne contiennent aucune commutation/détection d'aucune sorte. Que faire ?

La solution primitive serait d'utiliser une sorte de commutateur (ou des contacts nus) pour chaque touche et chaque pédale. Mais cela empêcherait toute détection de vitesse et de position. Vous vous demandez peut-être en quoi cela serait important pour un orgue, mais il s'avère que les orgues classiques entièrement mécaniques réagissent au toucher (pas autant qu'un piano, évidemment).

Il me restait toutefois plusieurs options de commutateur, notamment des paires de contacts décalés (mesurant le temps écoulé entre l'ouverture de l'un et la fermeture de l'autre pour obtenir la vitesse) ou des capteurs optiques, de pression, capacitifs et inductifs, mais j'étais attiré par la détection magnétique. La solution adéquate semblait être un capteur à effet Hall linéaire, offrant un coûté réduit, une basse consommation, différentes options de montage et une détection de la position. Il existe de nombreux modèles parmi lesquels choisir, mais j'ai fini par utiliser 32 capteurs à effet Hall SS39ET de Honeywell montés sur de petites cartes Breakout (Figure 3). Seule l'alimentation est branchée à ce stade, à l'aide d'un fil isolé PRT-08024 de SparkFun. Vous me croyez si je vous dis que j'ai occupé un boulot d'été chez Honeywell en 1979 ? C'est là que j'ai découvert l'effet Hall. On l'utilisait à l'époque dans les commutateurs de clavier (d'ordinateur, pas d'instrument de musique).

Figure 3 : Cinq capteurs à effet Hall SS39ET de Honeywell montés sur de petites cartes Breakout. Comme illustré, seule l'alimentation est branchée à ce stade. (Source de l'image : Michael Dunn)

L'une de mes préoccupations concernait la diaphonie magnétique entre les pédales. Un test rapide a démontré que le déplacement d'un aimant adjacent n'entraînait qu'une variation de sortie d'environ 2 % dans le capteur testé, ce qui est acceptable pour cette application. Afin de créer les champs magnétiques requis, j'ai utilisé des aimants 8184 de 12,7 mm de diamètre de Radial Magnets Inc. montés sur les pédales (Figure 4). Pour des cas d'utilisation plus sensibles, un blindage magnétique peut s'avérer nécessaire. Une alternative serait de fixer les aimants et de déplacer les capteurs, si la flexion des fils ne vous dérange pas.

Figure 4 : Les aimants montés sur les pédales ont permis de créer le champ magnétique requis pour stimuler les capteurs à effet Hall. (Source de l'image : Michael Dunn)

La magie des microcontrôleurs

Ensuite, il m'a fallu choisir un microcontrôleur et dans ce cas précis, sur une petite carte. Pour un cycle de production d'un seul microcontrôleur, pourquoi réinventer la roue (ou la carte à circuit imprimé) ? L'aspect le plus important dans mon choix était le suivant : comment est-ce que je voulais programmer le processeur ? La réponse par défaut « en langage C » m'est venue à l'esprit, soit dans l'environnement Arduino, soit en utilisant l'aide au développement du fabricant. Cependant, j'avais eu de bons échos concernant MicroPython, et en tant qu'adepte du langage Python standard, j'ai décidé de lui laisser sa chance. J'ai fini par choisir la carte 3857 Feather M4 Express d'Adafruit, qui dispose d'un cœur Arm Cortex-M4 120 MHz ATSAMD51J19A-AU-EFB de Microchip Technology, ainsi que d'un bel ensemble de périphériques. Adafruit possède sa propre version de MicroPython, appelée CircuitPython, que je vais utiliser.

Le point négatif quant au choix de ce langage concerne la vitesse. Python, qui est interprété au lieu d'être compilé, s'exécute à un pourcentage très faible de la vitesse du langage C (vos résultats varieront en fonction de facteurs comme l'utilisation de la bibliothèque). Étant donné la nature en temps réel de ce projet, je serai peut-être amené à abandonner Python, mais ce sera alors le sujet d'un autre article. Il s'agira dans tous les cas d'une précieuse expérience d'apprentissage.

Que doit faire exactement le microcontrôleur ? Avant tout, il analysera les capteurs à effet Hall, traduisant leurs mesures en vitesse de la note par l'intermédiaire du protocole MIDI (Musical Instrument Digital Interface) et envoyant ces données via USB à l'ordinateur hôte qui exécute le logiciel d'orgue.

Ensuite, il recevra des données MIDI série de la part de deux ou trois claviers, qui seront aussi acheminées par l'intermédiaire de la connexion USB. J'ai décidé, du moins pour l'instant, de remettre en service de vieux synthétiseurs déjà en ma possession, plutôt que d'entreprendre le projet bien plus vaste de brancher 168 capteurs de touches. Par ailleurs, l'espacement moindre entre les touches par rapport aux pédales signifie que la diaphonie pourrait devenir un vrai problème. Des capteurs optiques réflectifs pourraient être la solution dans ce cas précis. Je n'utiliserai probablement jamais ce circuit dans quoi que ce soit de plus permanent qu'un montage d'essai. Dans sa forme actuelle, deux multiplexeurs 16:1 74HC4067 de Texas Instruments acheminent l'une des 32 sorties de capteur vers le microcontrôleur (Figure 5). Les trois photocoupleurs H11L1 d'ON Semiconductor sont nécessaires pour les entrées MIDI (Figure 5).

Figure 5 : De gauche à droite, la carte de microcontrôleur Feather M4, les deux multiplexeurs analogiques CMOS 74HC4067 et les trois photocoupleurs de niveau logique H11L1 pour les entrées MIDI. (Source de l'image : Michael Dunn)

Trois jacks DIN SD-50SN de CUI Devices seront raccordés aux entrées des photocoupleurs afin de servir d'entrées MIDI standard (Figure 6).

Figure 6 : Le jack DIN MIDI standard inchangé depuis sa création. (Source de l'image : CUI Devices)

L'étalonnage automatique est une excellente fonctionnalité système offerte par le processeur. En raison des variations au niveau des capteurs à effet Hall, des aimants et du positionnement, chaque capteur générera une plage de tensions de sortie spécifique, allant grosso modo de la moitié de la valeur lorsque l'aimant est le plus éloigné, et gagnant jusqu'à près d'un volt lorsque la pédale est enfoncée. En réalisant une procédure d'étalonnage lorsque chaque pédale est enfoncée, le microcontrôleur enregistrera les valeurs min./max. de chacune d'elles dans la mémoire Flash.

Conclusion

Après avoir gardé sous le coude mon pédalier (au sens figuré, pas au sens propre) pendant des dizaines d'années, je suis très heureux de voir ce projet se réaliser. Ce faisant, j'en apprends davantage sur les capteurs magnétiques et les derniers microcontrôleurs, tout en réalisant d'importantes économies dans la recherche et l'achat d'un nouveau pédalier MIDI (croyez-moi, ce n'est pas un produit courant). La plupart des capteurs à effet Hall sur le marché sont probablement de simples commutateurs, mais les modèles linéaires permettent d'obtenir des solutions de détection polyvalentes.

Nous vivons également l'âge d'or des microcontrôleurs, avec notamment de nombreuses cartes de développement peu coûteuses et de formidables environnements de développement. Je saurai très vite si CircuitPython est adapté à ce projet ou si je dois choisir une autre solution en raison de la vitesse d'exécution.

Il ne me reste plus qu'à terminer les branchements matériels, puis à me plonger dans le logiciel. J'ai déjà testé avec succès les bibliothèques USB et MIDI CircuitPython, même si j'ai rencontré quelques problèmes, qui ont été résolus avec l'aide des forums d'aide d'Adafruit. J'espère revenir très vite avec un rapport complet sur le système fini, en me concentrant sur l'aspect micrologiciel.

Articles connexes :

Développement rapide d'applications basées sur des microcontrôleurs en temps réel avec MicroPython, Jacob Beningo, 2017

Bach for Engineers, Michael Dunn, EDN, 2013

À propos de l'auteur

Image of Michael Dunn

Michael Dunn has several decades of electrical engineering experience under his belt and was more recently Editor-in-Chief of Scope Junction and EDN.

More posts by Michael Dunn
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum