loader

Comment contrôler le son d'une carte micro:bit à Distance ?

Ce projet sert a construire un Thérémine avec une carte micro:bit et des capteur à ultrason.

Thérémine :
Dans sa version la plus répandue, la main droite commande la hauteur de la note, en faisant varier sa distance à l’antenne verticale. L’antenne horizontale, en forme de boucle, est utilisée pour faire varier le volume selon sa distance à la main gauche.
Ici, ce sera le capteur de gauche (brancher sur le port P0/P14) qui gérera la fréquence et le capteur de droite (du port P1/P15) gérera le volume.

Télémètre :
Le télémètre à ultrason émet des ultra-sons et attend le retour d'un écho provoqué par la réflexion de l'onde émise.
La distance est mesurée à partir de la vitesse de propagation de l'onde et du temps qui sépare la génération du signal et la réception de l'écho.
D'après ce Site

  1. Mettez la carte Micro:bit dans la fente du Shield Grove (il y a une orientation spécifique -> vérifiez sur le schéma ci-dessous) ;
  2. Connectez les 2 capteurs ultrason sur les ports P0/P14 et P1/P15 ;
  3. Connectez votre carte Micro:bit à votre ordinateur en utilisant le câble USB.

Circuit_Micro:bit

Maintenant que toute la théorie est présente, il va falloir utiliser les blocs nécessaires pour reproduire le fonctionnement d'un thérémine.

L'ajout des variables Distance Fréquence et Distance volume sera nécessaire, car c'est ce que l'on mesurera avec nos capteurs, les mains seront au-dessus et en fonction de la distance avec celles-ci, la fréquence et le volume varieront.

Donc les valeurs Distance Fréquence et Distance Volume seront définies par la distance entre nos mains et les capteurs à ultrasons correspondant.

Leurs valeurs seront en cm.

Les blocs sont présents sont dans répéter indéfiniment pour que le programme s'exécute en permanence et dans le bloc "au démarrage" exécute le programme qu'une fois.

Variables

1_
La variable Distance Fréquence va d'abord être abordée en premier.

Le bloc "si" est intéressant, car il permet de poser une condition pour que l'action se déclenche.
La suite du "si" peu se déclencher que si la valeur de la Distance Fréquence est supérieure à 1 (cm) ET est inférieur à 30 (cm).

Distancefrequence1

2_
La suite du "si" est de faire jouer la fréquence avec le buzzer de la micro:bit. 

Le bloc "transformer la valeur Distance Fréquence de [1 à 30] vers [245 à 519]" permet de mettre l'échelle en cm de la valeur de Distance Fréquence sur une échelle d'une fourchette de fréquence d'instruments de musique.

Le bloc "convertir en entier" arrondit la valeur de Distance Fréquence sur la nouvelle échelle en un nombre entier ce qui permet d'éviter une erreur de la micro:bit qui ne peut pas jouer la fréquence si la valeur n'est pas entière

Le pendant 100 ms rend le rendu final un peu plus naturel.
musiquefrequence

1_
Le si est pareil au point près que le bloc Distance Fréquence est remplacé par Distance Volume.

distancevolume

2_
À la place de jouer la fréquence, c'est le volume qui va être modifié donc le bloc "définir le volume à" prend la place du bloc "jouer le fréquence...pendant...ms sur…".

Le "convertir en entier" est gardé, car il y aura encore un changement d'échelle, cette fois-ci, c'est la valeur Distance Volume qui aura son échelle changée, donc de 1 à 30 vers 0 à 255 car ce sont les valeurs du volume minimal et maximal de la micro:bit.

distancevolume2

Voici le résultat final et amusez-vous bien :

resultatfinal

Licencia de uso

Licence Creative Commons

Este recurso está disponible bajo los términos de la licencia Creative Commons Attribution-Share Alike 2.0 France License.