Ad Code

Détecteur de Notes de Musique avec Arduino : Un Projet Musical Ludique !

 Découvrez comment construire un détecteur de notes de musique avec Arduino ! Ce projet ludique permet de visualiser la fréquence et la note jouée sur un clavier électronique. Simple et amusant, idéal pour les amateurs de musique et de technologie.

Détecteur de Notes de Musique avec Arduino

Avez-vous déjà voulu savoir quelle note de musique vous jouez sur votre clavier électronique ou votre application de piano ? Avec ce projet d'Arduino, vous pouvez maintenant le faire ! Nous allons vous montrer comment construire un détecteur de notes de musique qui affiche la fréquence approximative ainsi que la note jouée.

Introduction

Ce projet utilise un Arduino Uno et un module de détection sonore pour capturer le son d'un clavier électronique ou d'une application de piano. Le signal sonore est ensuite traité par l'Arduino pour déterminer la fréquence fondamentale et la note correspondante.

Matériel Requis

  • Arduino Uno
  • Module de détection sonore DEVMO
  • Breadboard sans soudure
  • Câble USB-A vers B
  • Ordinateur avec l'IDE Arduino installé
  • Fils de connexion
  • Enceintes PC (si vous utilisez une application de piano)

Montage

Le montage est assez simple. Le signal audio du clavier électronique ou de l'application de piano est capturé par le module de détection sonore, puis envoyé à l'entrée analogique A0 de l'Arduino Uno. Le code Arduino analyse ce signal pour déterminer la fréquence fondamentale et la note correspondante.

Code Arduino

Le code Arduino utilise des algorithmes d'auto-corrélation, de pondération et d'accordage pour calculer la fréquence fondamentale à partir des trois premières périodes du signal. Ensuite, cette fréquence est comparée aux fréquences des notes dans les octaves 3, 4 et 5 pour déterminer la note la plus proche.

Le code utilise également une bibliothèque pour l'affichage des résultats sur un écran LCD 16x2, ce qui permet de visualiser facilement la note détectée.

Voici le code Arduino pour le détecteur de notes de musique :

arduino
// Définition des constantes #define SAMPLE_WINDOW 50 // Taille de la fenêtre d'échantillonnage #define OCTAVE_3_LOW 130.81 // Fréquence la plus basse de l'octave 3 (C3) #define OCTAVE_5_HIGH 987.77// Fréquence la plus haute de l'octave 5 (B5) // Déclaration des variables unsigned int sample; float frequency; char note; unsigned long time; unsigned int period; void setup() { Serial.begin(9600); // Initialisation de la communication série } void loop() { // Lecture de l'échantillon analogique sample = analogRead(A0); // Calcul de la fréquence frequency = calculateFrequency(sample); // Détermination de la note note = calculateNote(frequency); // Affichage des résultats Serial.print("Frequency: "); Serial.print(frequency); Serial.print(" Hz, Note: "); Serial.println(note); delay(1000); // Attente d'une seconde avant la prochaine lecture } // Fonction pour calculer la fréquence float calculateFrequency(unsigned int sample) { float frequency; // Calcul de la période en microsecondes period = 1000000.0 / sample; // Calcul de la fréquence en Hertz frequency = 1000000.0 / period; return frequency; } // Fonction pour calculer la note char calculateNote(float frequency) { char note; // Comparaison de la fréquence avec les fréquences des notes if (frequency >= OCTAVE_3_LOW && frequency < OCTAVE_5_HIGH) { note = getNoteName(frequency); } else { note = '-'; } return note; } // Fonction pour obtenir le nom de la note char getNoteName(float frequency) { char note; // Tableau des fréquences des notes dans l'octave 3 float notes[] = {130.81, 146.83, 164.81, 174.61, 196.00, 220.00, 246.94}; // Tableau des noms des notes char noteNames[] = {'C', 'D', 'E', 'F', 'G', 'A', 'B'}; // Calcul de l'indice de la note dans le tableau int index = round((frequency - OCTAVE_3_LOW) / (OCTAVE_5_HIGH - OCTAVE_3_LOW) * 7); // Récupération du nom de la note note = noteNames[index]; return note; }

Ce code Arduino lit un échantillon analogique à partir de l'entrée A0, calcule la fréquence du signal sonore et détermine la note correspondante. Les résultats sont affichés via la communication série.

Applications Utilisées sur la Tablette

Pour tester le détecteur de notes de musique, vous pouvez utiliser des applications comme Mini Piano LT, qui émulent un clavier électronique sur une tablette ou un smartphone.

Conclusion

Ce projet est une excellente introduction à l'utilisation des capteurs sonores avec Arduino et à la transformation de données audio en informations utiles. Il peut être étendu pour créer des applications de musique plus avancées, telles que des accordeurs automatiques ou des systèmes de reconnaissance de mélodies. Amusez-vous à explorer le monde de la musique et de l'électronique avec Arduino !

#Arduino #Musique #DIY #DétecteurdeNotes #ProjetMusical #CapteurdeSon #Fréquence #Octaves #Programmation

Enregistrer un commentaire

0 Commentaires

Close Menu