Table des matières:
- Étape 1: Description fonctionnelle
- Étape 2: Liste des pièces
- Étape 3: Schéma de câblage
- Étape 4: code source Arduino
Vidéo: Métronome Arduino : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Lorsque vous apprenez un nouvel instrument de musique quand vous êtes enfant, il y a tellement de nouvelles choses sur lesquelles vous concentrer. Garder le rythme dans le bon tempo en fait partie. Ne pas trouver un métronome fonctionnellement complet et pratique était la meilleure excuse pour recommencer à construire avec mes enfants. Dans cet article Instructables, vous trouverez la description fonctionnelle, la liste des pièces avec les liens et les prix de la boutique en ligne, le schéma de câblage pour l'assemblage et le code source complet d'Arduino.
Étape 1: Description fonctionnelle
Ce serait bien d'avoir un appareil de métronome avec les fonctions suivantes pour l'utiliser à la maison ou à l'école de musique de manière pratique.
- Facteur de forme compact pour s'adapter à de petits endroits sur ou à côté d'instruments de musique,
- Fonctionne sur batterie, robuste et portable à transporter,
- Configuration facile même pour les enfants, valeur BPM toujours affichée,
- Battements par minute réglables avec un bouton rotatif, jusqu'à 240 BPM
- Tact audible avec contrôle du volume,
- Mode silencieux pour la pratique du casque pendant la nuit,
- Retour visuel des battements (1/4, 2/4, 3/3, 4/4, 6/8, etc.) jusqu'à 8 LED,
- Avec ou sans accent principal, avec retour visuel et sonore.
En allumant, le mode métronome commencera à 60 BPM et s'affichera sur le petit écran et laissera le rythme être réglé par le bouton rotatif entre 10 et 240. Les néopixels affichent le rythme dans les LED bleues pendant que le buzzer sonne. Appuyez sur le bouton pour passer en mode de réglage des battements et les LED vertes indiqueront la structure de battement définie. Le bouton rotatif incrémentera ou décrémentera la structure des battements (2/2, 3/3, 4/4, 6/8, etc.). Au-dessus de 8 LED, en tournant davantage dans le sens des aiguilles d'une montre, l'accent principal sera allumé et la première LED l'indiquera en rouge. L'accent principal aura également un retour audible. Il peut être désactivé en tournant dans le sens inverse des aiguilles d'une montre. Appuyez sur le bouton pour passer du mode de réglage du temps au mode métronome.
Étape 2: Liste des pièces
Vous aurez besoin d'un étui. N'importe quelle forme ou taille peut être achetée, mais nous avions un joli boîtier en métal noir d'un ancien commutateur VGA manuel mis au rebut par un ami. Les autres pièces sont listées ci-dessous.
- Batterie 9V, 1,50 USD
- Câble de connecteur de batterie, USD 0, 16
- Arduino Nano avec en-têtes de broches, 2,05 USD
- Bouclier d'extension Nano IO, USD 1, 05
- Mini interrupteur à glissière pour l'alimentation, 0,15 USD
- Buzzer piézo, 0, 86 USD
- Adafruit Neopixel WS2812 8 bits, 1 USD
- Écran OLED 128x64, 1 53 USD
- Encodeur rotatif, USD 0, 50
- Câbles Dupont F/F, USD 0, 49
Le prix total des composants est inférieur à 10 USD, -
Étape 3: Schéma de câblage
Utilisez la carte d'extension Nano IO pour ne pas vous soucier de souder plusieurs connexions GND et VCC. Une soudure minimale sera nécessaire pour les en-têtes à broches Nano et pour les connecteurs du module Neopixel. L'utilisation de fils Dupont permet des connexions stables pour le reste du câblage comme indiqué sur le schéma. La batterie 9V est connectée à GND et VIN, ce dernier via l'interrupteur coulissant d'alimentation. Le module d'encodeur rotatif dispose d'un bouton de commutation intégré, qui est représenté séparément dans le schéma pour une meilleure compréhension de la façon de les connecter. La partie rotative (CLK et DT) est connectée respectivement à PIN2 et PIN3, car ce sont les seules broches NANO capables de gérer les interruptions. Le GND rotatif est bien sûr connecté au PIN GND de Nano. Le bouton de commutation intégré est connecté à PIN4. Le buzzer piézo est connecté à PIN5 et GND. Le module Adafruit Neopixel est connecté à PIN7 et son VIN et GND aux 5V et GND de Nano respectivement. Le petit écran OLED est connecté à l'interface de bus I2C, qui est PIN A4 et A5 pour SDA et SDL. VCC et GND vont bien sûr au 5V et au GND de Nano. Voilà qui conclut notre câblage Dupont.
Étape 4: code source Arduino
// Métronome, accent principal, tact visuel et sonore - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Réinitialiser la broche # (ou -1 en cas de partage de la broche de réinitialisation Arduino) Affichage Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, &Fil, OLED_RESET); #define pin_neopixel 7 #define NUMPIXELS 8 #define BRIGHTNESS 32 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #define IDLE_11 0 #define SCLK_01 1 #define SCLK_00 2 #define SCLK_10 3 #define SDT_10 4 #define SDT_00 5 #define SDT_01 6 int state = IDLE_11; #define CLK 2 #define DT 3 #define pin_switch 4 #define pin_buzzer 5 int bpm = 60; int bpmPremier = 0; // LED allumée au début, éteinte au reste… int tack = 4; bool leaderTack = false; int pos = 0; int curVal = 0; int prevVal = 0; void setup() { pixels.begin(); pinMode(pin_buzzer, SORTIE); Timer1.initialize(1000000*60/bpm/2); Timer1.attachInterrupt(buzztick); pinMode(CLK, INPUT_PULLUP); pinMode(DT, INPUT_PULLUP); pinMode(pin_switch, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (CLK), RotaryCLK, CHANGE); attachInterrupt(digitalPinToInterrupt(DT),rotatingDT, CHANGE); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Adresse 0x3D pour 128x64 pour(;;); // Ne continue pas, boucle indéfiniment } display.clearDisplay(); display.display(); } void loop() { if (digitalRead(pin_switch)==LOW) { delay(100); while(digitalRead(pin_switch)==LOW); retard (100); Timer1.detachInterrupt(); showGreenTacks(); while(digitalRead(pin_switch)==HIGH) { if (curVal>prevVal) { tack+=1; if (tack>8) { if (leaderTack) tack = 8; else { leaderTack = vrai; pointe = 1; } } } else if (curValprevVal) { bpm+=2; si (bpm>240) bpm = 240; } else if (curVal=100) display.print(" "); sinon display.print(" "); display.print(bpm); display.display(); } annuler buzztick() { if (bpmFirst==0) { int volume = 4; si (leaderTack && pos==0) volume = 8; pour (int i=0; i
Conseillé:
Servo métronome, programmable pour différentes vitesses : 3 étapes
Servo métronome, programmable pour différentes vitesses : créez votre propre métronome. Tout ce dont vous avez besoin est le kit de démarrage Arduino Mega 2560 et un ordinateur compatible
Métronome à 555 minuteurs : 3 étapes
Métronome à 555 minuteurs : un métronome est un appareil qui produit un clic audible ou un autre son à un intervalle régulier qui peut être défini par l'utilisateur, généralement en battements par minute (BPM). Les musiciens utilisent l'appareil pour s'entraîner à jouer à un rythme régulier. (https://en.wikipedia.org/w
Métronome basé sur un microcontrôleur : 5 étapes
Métronome basé sur un microcontrôleur : Un métronome est un dispositif de chronométrage utilisé par les musiciens pour suivre les battements des chansons et pour développer un sens du chronométrage chez les débutants qui apprennent un nouvel instrument. Il aide à maintenir un sens du rythme qui est crucial dans la musique. Ce métronome construit
Métronome visuel pour batteurs : 8 étapes
Visual Metronome for Drummers : J'ai un ami et collègue qui est batteur de rock and roll. Sa cabine est à côté de la mienne au travail et il voit et entend parler de tous mes projets électroniques et logiciels. Cela fait plus d'un an, donc je ne me souviens même pas comment tout cela s'est passé, mais
555 Timer Metronome - Audio & Visuel : 8 étapes (avec photos)
555 Timer Metronome - Audio & Visual : Mon fils a récemment commencé à jouer du ukulélé et j'ai pensé qu'un métronome aiderait avec son timing. En tant que fabricant, je me suis dit que je pouvais en préparer un moi-même assez facilement avec une minuterie 555 (qu'est-ce que vous ne pouvez pas faire avec un…) Après une petite recherche sur le w