ENIB2020 :Random music instrument

De Les Fabriques du Ponant
Révision datée du 20 janvier 2020 à 12:47 par Glb (discussion | contributions) (Matériel)
Aller à : navigation, rechercher

Random music instrument

Le but de ce projet est de créer un instrument de musique numérique. L'instrument utilise la position des mains de l'utilisateur pour générer des notes. Le tempo et la hauteur du son sont réglables par l'utilisateur via des boutons.

Matériel

Ce projet est composé de deux modules similaires basés sur des arduinos nano, ils utilisent des capteurs ultrasons pour détecter la position des mains de l'utilisateur et des buzzers pour générer les notes. Les interfaces utilisateur sont partagés et utilisent un potentiomètre analogique un joystick.

Liste de matériel :

  • Arduino nano x2
  • Capteur ultrasons (HC-SR04) x2
  • Buzzer x2
  • Joystick
  • Potentiomètre linéaire
  • Led x2

Câblage

Section en cours de rédaction.

Programme

Les deux arduinos utilisent le même programme, seul un argument doit être changé afin de définir un maître et un esclave.

Génération des notes

L'instrument ne génère pas des sons aléatoirement, il utilise une note de référence dite fondamentale et monte dans la gamme sur une octave en fonction de la position de la main. L'utilisateur peut sélectionner l'octave sur laquelle l'instrument fonctionne a l'aide du joystick, l'octave utilise la fondamentale comme référence. Les deux arduinos peuvent fonctionner sur deux octaves différentes mais la note fondamentale est une valeur fixé dans le programme, si l'utilisateur souhaite changer la fondamentale il est recommandé de la changer sur les deux arduinos afin que la musique reste cohérente.

inserer exemple code

Communication entre les arduinos

L'instrument utilise un seul joystick pour commander les deux arduinos, ceux ci sont donc connectés par l'intermédiaire d'une connexion série. Les deux arduinos sont dans une configuration maître esclave, le joystick est connecté au maître qui envoie les commandes a l'esclave lorsqu'elles lui sont destinés. Les commandes sont envoyés sous forme de valeurs numériques entières définies dans le programme.