Sommario:
- Passaggio 1: descrizione funzionale
- Passaggio 2: elenco delle parti
- Passaggio 3: schema elettrico
- Passaggio 4: codice sorgente Arduino
Video: Metronomo Arduino: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Quando si impara un nuovo strumento musicale da bambino, ci sono così tante cose nuove su cui concentrarsi. Tenere il passo con il ritmo giusto è uno di questi. Non trovare un metronomo funzionalmente completo e conveniente significava la scusa migliore per ricominciare a costruire con i miei figli. In questo post di Instructables troverai la descrizione funzionale, l'elenco delle parti con i collegamenti e i prezzi del negozio online, lo schema elettrico per l'assemblaggio e il codice sorgente completo di Arduino.
Passaggio 1: descrizione funzionale
Sarebbe bello avere un metronomo con le seguenti funzioni per usarlo comodamente a casa o alla scuola di musica.
- Fattore di forma compatto per adattarsi a piccoli posti sopra o accanto a strumenti musicali,
- Funziona a batteria, robusto e portatile da portare in giro,
- Facilmente configurabile anche per i bambini, valore BPM sempre visualizzato,
- Battiti al minuto regolabili con una manopola rotante, fino a 240 BPM
- Tatto udibile con controllo del volume,
- Modalità silenziosa per esercitarsi con le cuffie durante la notte,
- Feedback visivo dei battiti (1/4, 2/4, 3/3, 4/4, 6/8, ecc.) fino a 8 LED,
- Con o senza accento principale, con feedback visivo e sonoro.
All'accensione, la modalità metronomo partirà a 60 BPM mostrando sul piccolo display e lasciando che il ritmo sia sintonizzato dalla manopola rotante tra 10 e 240. I neopixel mostrano il battito in LED blu mentre il cicalino ticchetta. Premendo la manopola si passerà alla modalità di regolazione della battuta e i LED verdi indicheranno la struttura della battuta impostata. La manopola rotante aumenterà o diminuirà la struttura del battito (2/2, 3/3, 4/4, 6/8, ecc.). Sopra gli 8 LED, ruotando ulteriormente in senso orario, verrà attivato l'accento principale e il primo LED lo indicherà in rosso. Anche l'accento principale avrà un feedback udibile. Può essere spento ruotando in senso antiorario. Premendo la manopola si torna dalla modalità di regolazione della battuta alla modalità metronomo.
Passaggio 2: elenco delle parti
Avrai bisogno di una custodia. È possibile acquistare qualsiasi forma o dimensione, ma abbiamo avuto una bella custodia in metallo nero di un vecchio interruttore VGA manuale smaltito da un amico. Le altre parti sono elencate di seguito.
- Batteria da 9 V, 1,50 USD
- Cavo connettore batteria, USD 0, 16
- Arduino Nano con intestazioni pin, 2,05 USD
- Nano IO Extension Shield, USD 1, 05
- Mini interruttore a scorrimento per l'alimentazione, 0,15 USD
- Cicalino piezoelettrico, 0 USD, 86
- Adafruit Neopixel WS2812 8 bit, 1 USD, 01
- Display OLED 128x64, USD 1, 53
- Encoder rotativo, 0 USD, 50
- Cavi Dupont F/F, 0 USD, 49
Il prezzo totale dei componenti è inferiore a USD 10, -
Passaggio 3: schema elettrico
Usa la scheda di estensione Nano IO in modo da non preoccuparti di saldare più connessioni GND e VCC. Sarà necessaria una saldatura minima per le intestazioni dei pin Nano e per i connettori del modulo Neopixel. L'utilizzo di cavi Dupont consente connessioni stabili per il resto del cablaggio, come mostrato nello schema. La batteria da 9V è collegata a GND e VIN, quest'ultimo tramite l'interruttore a cursore di alimentazione. Il modulo encoder rotativo ha un pulsante di commutazione integrato, mostrato separatamente nello schema per una più facile comprensione di come collegarli. La parte rotante (CLK e DT) è collegata rispettivamente al PIN2 e al PIN3, poiché questi sono gli unici pin NANO in grado di gestire gli Interrupt. Ovviamente il Rotary GND è collegato al GND PIN di Nano. Il pulsante di commutazione integrato è collegato al PIN4. Il cicalino piezoelettrico è collegato a PIN5 e GND. Il modulo Adafruit Neopixel è collegato al PIN7 e il suo VIN e GND rispettivamente ai 5V e GND di Nano. Il piccolo display OLED è collegato all'interfaccia del bus I2C, che è il PIN A4 e A5 per SDA e SDL. VCC e GND vanno ovviamente a 5V e GND di Nano. Questo conclude il nostro cablaggio Dupont.
Passaggio 4: codice sorgente Arduino
// Metronomo, accento principale, tatto visivo e udibile - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Ripristina pin # (o -1 se si condivide il pin di ripristino Arduino) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Filo, OLED_RESET); #define pin_neopixel 7 #define NUMPIXELS 8 #define BRIGHTNESS 32 Adafruit_NeoPixel pixel = 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 bpmFirst = 0; // LED acceso per primo, spento per il resto… int tack = 4; bool leadingTack = false; int posizione = 0; int curVal = 0; int prevVal = 0; void setup() { pixels.begin(); pinMode(pin_buzzer, OUTPUT); 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), rotaryDT, CHANGE); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Indirizzo 0x3D per 128x64 for(;;); // Non procedere, loop per sempre } display.clearDisplay(); display.display(); } void loop() { if (digitalRead(pin_switch)==LOW) { delay(100); while(digitalRead(pin_switch)==LOW); ritardo(100); Timer1.detachInterrupt(); showGreenTacks(); while(digitalRead(pin_switch)==HIGH) { if (curVal>prevVal) { virata+=1; if (virata>8) { if (virata iniziale) virata = 8; else { leadingTack = true; virata = 1; } } } else if (curValprevVal) { bpm+=2; se (bpm>240) bpm = 240; } else if (curVal=100) display.print(" "); altrimenti display.print(" "); display.print(bpm); display.display(); } void buzztick() { if (bpmFirst==0) { int volume = 4; if (leadingTack && pos==0) volume = 8; per (int i=0; i
Consigliato:
Servo metronomo, programmabile per diverse velocità: 3 passaggi
Servo metronomo, programmabile per diverse velocità: crea il tuo metronomo. Tutto ciò di cui hai bisogno è lo starter kit Arduino Mega 2560 e un computer compatibile
Metronomo a 555 timer: 3 passaggi
555 timer Metronomo: un metronomo è un dispositivo che produce un clic udibile o un altro suono a intervalli regolari che possono essere impostati dall'utente, in genere in battiti al minuto (BPM). I musicisti usano il dispositivo per esercitarsi a suonare a un ritmo regolare. (https://en.wikipedia.org/w
Metronomo basato su microcontrollore: 5 passaggi
Metronomo basato su microcontrollore: un metronomo è un dispositivo di temporizzazione utilizzato dai musicisti per tenere traccia dei battiti nelle canzoni e per sviluppare un senso del tempo tra i principianti che stanno imparando un nuovo strumento. Aiuta a mantenere un senso del ritmo che è cruciale nella musica. Questo metronomo costrui
Metronomo visivo per batteristi: 8 passaggi
Visual Metronome for Drummers: ho un amico e collega che è un batterista rock and roll. Il suo cubicolo è vicino al mio al lavoro e così vede e sente parlare di tutti i miei progetti di elettronica e software. È passato più di un anno quindi non riesco nemmeno a ricordare come sia successo tutto questo ma
555 Timer Metronomo - Audio e video: 8 passaggi (con immagini)
555 Timer Metronomo - Audio e video: mio figlio ha recentemente iniziato a suonare l'ukulele e ho pensato che un metronomo avrebbe aiutato con il suo tempismo. Come creatore, ho pensato di poterne montare uno abbastanza facilmente con un timer 555 (cosa non puoi fare con uno …) Dopo una piccola ricerca sul w