Thérémine Au Fonctionnement À Ultrasons
by PrezAFP in Circuits > Audio
94 Views, 1 Favorites, 0 Comments
Thérémine Au Fonctionnement À Ultrasons



Nous voulions faire un instrument de musique, et le thérémine est apparu rapidement comme un instrument à recréer - avec un fonctionnement un peu différent. Il s'agit d'un instrument inventé en 1920 où le corps humain fait varier un champ magnétique, pour faire varier la fréquence et le volume produits.
Nous vous conseillons fortement de regarder une vidéo de cet instrument en fonctionnement, qui est le moyen le plus facile de se rendre compte de son usage (comme celle-ci : https://www.youtube.com/watch?v=PjnaciNT-wQ).
L'idée est donc de recréer cet instrument, en captant la variation de la distance entre les mains et l'instrument à l'aide d'un capteur à ultrasons plutôt qu'un champ magnétique. Seulement, nous nous sommes vite rendus compte que nous ne pourrions pas modifier par le code le volume de sortie de notre module. Il fallait soit construire une pièce pour contrôler le potentiomètre de l'amplificateur, soit se tourner vers un autre fonctionnement.
Finalement, nous avons décidé de contrôler le tempo des notes (de notes longues séparées de silences, à la continuité) plutôt que le volume.
Supplies




Nous avons eu besoin de :
- une carte Arduino Uno
- deux capteurs à ultrasons (un pour la fréquence du son et l'autre pour le tempo)
- un module haut-parleur amplifié Grove pour Arduino
- une breadboard pour faciliter les branchements
- 8 vis
- MDF 6mm
- Plexiglas 3mm
- PLA
Inspiration
Notre curiosité pour le thérémine a grandi avec certaines vidéos (comme celle-ci : https://www.youtube.com/watch?v=l-rlFaSBLg8) ou encore lecture de plusieurs articles (https://www.radiofrance.fr/francemusique/le-theremine-l-instrument-bizarre-proche-de-la-voix-humaine-par-gregoire-blanc-1155964).
Nous avons remarqué qu'un projet du même type avait déjà été réalisé dans le cadre de ce cours (https://www.instructables.com/Thérémine-Ou-La-Boite-À-Musique/). Nous avons donc regardé ce qu'ils avaient fait pour récolter des informations, notamment pour se lancer plus vite et faire l'inventaire du matériel.
Cahier Des Charges Et Objectifs
Notre objectif est donc de concevoir et fabriquer un tel instrument. Notre cahier des charges est le suivant :
- utilisation d'une imprimante 3D et de la découpeuse laser
- générer un son
- contrôler la fréquence et le tempo du son en fonction de la distance mesurée par les capteurs à ultrasons
- regrouper les composants dans une boite relativement esthétique
- boîte fabriquée sans colle ni scotch
- générer un son qui varie sur un octave allant du La 440 Hz au La 880 Hz sur une course d'une trentaine de centimètres
- faire varier le tempo des impulsions sonores avec une grande variation, allant jusqu'au son continu, avec une course d'une trentaine de centimètres
Programmation Arduino

Nous commençons bien évidemment par déclarer nos pins et variables. Nous fixons les variables minimales et maximales de prise en compte des mesures par les capteurs à ultrasons.
Ensuite, nous initialisons le code.
La fonction loop est exécutée en boucle continue. Elle contient le code principal qui mesure les distances avec les capteurs à ultrasons, calcule la fréquence du son à générer, et contrôle le haut-parleur en fonction des distances mesurées.
Pour mesurer la distance avec le premier capteur à ultrasons, le code envoie une impulsion ultrasonore en mettant le pin trigPin1 à l'état haut pendant 10 microsecondes, puis le remet à l'état bas. Le temps que met l'impulsion à revenir est mesuré en utilisant la fonction pulseIn sur le pin echoPin1. La distance est ensuite calculée en utilisant la formule distance = durée * vitesse du son / 2, où la vitesse du son est approximativement 343 m/s (ou 0,034 cm/µs). Le même processus est répété pour le deuxième capteur à ultrasons, et on affiche ensuite ces deux distances sur le moniteur série afin de pouvoir débogguer notre code (et en évitant les sons - souvent fatiguants - de notre thérémine qui pendant un temps ne marchait pas) et vérifier que tout marche bien.
Pour éviter des valeurs extrêmes, les distances mesurées sont calibrées. Si la distance mesurée par le premier capteur est supérieure à 32 cm, elle est limitée à 32 cm. Si elle est inférieure à 2 cm, elle est limitée à 2 cm. Cela garantit que les distances utilisées pour le calcul de la fréquence restent dans une plage raisonnable.
La fréquence du son à générer est calculée en utilisant une formule logarithmique. Cette formule ajuste la fréquence de base en fonction de la distance mesurée par le premier capteur. La formule utilisée est fréquence = baseFrequency * 2^((distance1 - minDistance) / (maxDistance - minDistance) * 12). Cela permet de mapper la distance mesurée à une fréquence sonore de manière logarithmique, ce qui donne une relation linéaire entre la distance et la note musicale perçue.
La génération du son dépend de la distance mesurée par le deuxième capteur. Si cette distance est inférieure à 30 cm, le haut-parleur génère un son à la fréquence calculée. Si la distance est supérieure à 30 cm, il n'y a pas de son produit. Cela permet de ne pas avoir un son en continu, et de rendre donc son utilisation plus agréable pour l'utilisateur et son entourage. Si la distance est inférieure ou égale à 5 cm, elle est mise à 0 cm, et le son sera continu.
Le haut-parleur génère ensuite un son à la fréquence calculée pendant la durée notetime, suivi d'un silence de la même durée.
Ce code a été de nombreuses fois réécrit, amélioré, grâces aux retours de notre montage.
Nous avons abouti au code final ci-dessous.
Downloads
Branchements


Nous avons réalisé les branchements suivants pour finaliser le montage, et téléverser le code.
Une fois les branchements réalisés, nous avons pu tester notre code et faire de nombreuses incrémentations entre programmation et tests pour améliorer notre processus, débugger le code et résoudre nos problèmes. Ainsi, les étapes 3 et 4 se sont répondues tout au long de notre projet.
Fabrication De La Boite



Nous avons opté pour une boite fabriquée à la découpeuse laser, en médium de 6 millimètres d'épaisseur. De plus, nous avons fait le choix de laisser apparaitre nos composants électroniques, et avons donc choisi de faire le couvercle de la boite en plexiglas.
En plus de cela, on ajoute des petites "raquettes" pour remplacer les mains du musicien, car les capteurs à ultrasons ne sont pas très précis lorsque la surface de réflexion est une main. Une surface plane, plus grande, permet donc de faire mieux fonctionner notre système.
Aussi, on ajoute des sortes de règles afin d'aider le musicien à se repérer dans l'espace et à mieux contrôler les notes et le rythme.
Résultats




Nous avons finalement des résultats très probants, avec la vidéo ci-jointe. Le fonctionnement est très intuitif et a attisé la curiosité de nombre de nos camarades, qui étaient ravis d'apprendre à s'en servir en s'improvisant théréministe.
Vive la musique !
Améliorations Possibles
Pour améliorer le projet, on pourrait par exemple ajouter un potentiomètre pour ajuster le volume. De plus, on pourrait allonger les règles pour couvrir la totalité de la zone prise en compte par les capteurs. Enfin, on peut faire un système de rangement des règles pour faciliter le rangement de l'instrument.
Bibliographie
images :
https://www.boullard.ch/blog/le-theremine-un-instrument-extra-terrestre/
https://www.soselectronic.com/fr-sn/products/arduino/arduino-uno-rev3-a000066-1-218660
https://tuni-smart-innovation.com/products/module-capteur-ultrason-hc-sr04
https://www.gotronic.fr/art-module-hp-amplifie-grove-101020853-31997.htm
https://www.adafruit.com/product/64