Tabla de contenido:
- Paso 1: Descripción funcional
- Paso 2: Lista de piezas
- Paso 3: diagrama de cableado
- Paso 4: Código fuente de Arduino
Video: Metrónomo Arduino: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Al aprender un nuevo instrumento musical cuando era niño, hay muchas cosas nuevas en las que mantenerse enfocado. Mantener el ritmo en el tempo correcto es uno de ellos. No encontrar un metrónomo funcionalmente completo y conveniente significó la mejor excusa para empezar a construir de nuevo con mis hijos. En esta publicación de Instructables encontrará la descripción funcional, la lista de piezas con enlaces y precios de la tienda web, el diagrama de cableado para el ensamblaje y el código fuente completo de Arduino.
Paso 1: Descripción funcional
Sería bueno tener un dispositivo de metrónomo con las siguientes funciones para usarlo en casa o en la escuela de música cómodamente.
- Factor de forma compacto para adaptarse a lugares pequeños encima o al lado de instrumentos musicales,
- Funciona con pilas, robusto y portátil para llevar,
- Se configura fácilmente incluso para niños, el valor de BPM siempre se muestra,
- Latidos por minuto ajustables con un botón giratorio, hasta 240 BPM
- Tacto audible con control de volumen,
- Modo silencioso para practicar con auriculares durante la noche,
- Retroalimentación visual de ritmos (1/4, 2/4, 3/3, 4/4, 6/8, etc.) hasta 8 LED,
- Con o sin acento principal, con retroalimentación visual y audible.
Al encenderlo, el modo de metrónomo comenzará a 60 BPM que se mostrará en la pantalla pequeña y dejará que el ritmo se sintonice con el botón giratorio entre 10 y 240. Los neopíxeles muestran el ritmo en LED azules mientras suena el zumbador. Al presionar la perilla se cambiará al modo de ajuste de ritmo y los LED verdes indicarán la estructura de ritmo establecida. La perilla giratoria aumentará o disminuirá la estructura del tiempo (2/2, 3/3, 4/4, 6/8, etc.). Por encima de 8 LED, girando más en el sentido de las agujas del reloj, el acento principal se encenderá y el primer LED lo indicará en rojo. El acento principal también tendrá retroalimentación audible. Se puede apagar girando en sentido antihorario. Al presionar la perilla, se volverá a cambiar del modo de ajuste de tiempo al modo de metrónomo.
Paso 2: Lista de piezas
Necesitarás un estuche. Se puede comprar cualquier forma o tamaño, pero teníamos una bonita caja de metal negro de un viejo conmutador VGA manual que desechó un amigo. El resto de las piezas se enumeran a continuación.
- Batería de 9 V, 1,50 USD
- Cable conector de batería, USD 0, 16
- Arduino Nano con encabezados de clavija, 2,05 USD
- Escudo de extensión Nano IO, USD 1, 05
- Mini interruptor deslizante para energía, USD 0.15
- Zumbador piezoeléctrico, USD 0, 86
- Adafruit Neopixel WS2812 de 8 bits, USD 1, 01
- Pantalla OLED 128x64, USD 1, 53
- Codificador rotatorio, USD 0, 50
- Cables Dupont F / F, USD 0, 49
El precio total de los componentes es inferior a USD 10, -
Paso 3: diagrama de cableado
Utilice la placa de extensión Nano IO para no molestarse en soldar múltiples conexiones GND y VCC. Se necesitará una soldadura mínima para los conectores Nano pin y para los conectores del módulo Neopixel. El uso de cables Dupont permite conexiones estables para el resto del cableado como se muestra en el diagrama. La batería de 9V está conectada a GND y VIN, este último a través del interruptor deslizante de encendido. El módulo del codificador rotatorio tiene un botón de interruptor integrado, que se muestra por separado en el diagrama para comprender mejor cómo conectarlos. La parte giratoria (CLK y DT) está conectada a PIN2 y PIN3 respectivamente, porque estos son los únicos pines NANO capaces de interrumpir el manejo. Rotary GND está conectado al PIN GND de Nano, por supuesto. El botón de interruptor integrado está conectado al PIN4. El zumbador piezoeléctrico está conectado a PIN5 y GND. El módulo Adafruit Neopixel está conectado a PIN7 y su VIN y GND a 5V y GND de Nano respectivamente. La pequeña pantalla OLED está conectada a la interfaz de bus I2C, que es PIN A4 y A5 para SDA y SDL. VCC y GND van a 5V y GND de Nano, por supuesto. Eso concluye nuestro cableado Dupont.
Paso 4: Código fuente de Arduino
// Metrónomo, acento principal, tacto visual y audible - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reinicia el pin # (o -1 si comparte el pin de reinicio de Arduino) Pantalla Adafruit_SSD1306 (SCREEN_WIDTHE & Cable, 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 bpmFirst = 0; // LED encendido al principio, apagado en el resto … int tack = 4; bool leadTack = falso; int pos = 0; int curVal = 0; int prevVal = 0; configuración vacía () {píxeles.begin (); pinMode (pin_buzzer, SALIDA); Timer1.initialize (1000000 * 60 / bpm / 2); Timer1.attachInterrupt (buzztick); pinMode (CLK, INPUT_PULLUP); pinMode (DT, INPUT_PULLUP); pinMode (interruptor_pin, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (CLK), rotaryCLK, CHANGE); attachInterrupt (digitalPinToInterrupt (DT), rotaryDT, CHANGE); if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) {// Dirección 0x3D para 128x64 para (;;); // No continúes, repite indefinidamente} display.clearDisplay (); display.display (); } bucle vacío () {if (digitalRead (pin_switch) == LOW) {delay (100); while (digitalRead (pin_switch) == BAJO); retraso (100); Timer1.detachInterrupt (); showGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tachuela + = 1; if (tachuela> 8) {if (tachuela principal) tack = 8; else {leadTack = true; tachuela = 1; }}} else if (curValprevVal) {bpm + = 2; si (lpm> 240) lpm = 240; } else if (curVal = 100) display.print (""); else display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volumen = 4; if (leadTack && pos == 0) volumen = 8; para (int i = 0; i
Recomendado:
Metrónomo servo, programable para diferentes velocidades: 3 pasos
Servo Metrónomo, Programable para Diferentes Velocidades: Crea tu propio metrónomo. Todo lo que necesita es el kit de inicio Arduino Mega 2560 y una computadora compatible
Metrónomo de 555 temporizadores: 3 pasos
Metrónomo de 555 temporizadores: un metrónomo es un dispositivo que produce un clic audible u otro sonido a un intervalo regular que el usuario puede configurar, normalmente en pulsaciones por minuto (BPM). Los músicos usan el dispositivo para practicar tocar con un pulso regular (https://en.wikipedia.org/w…)
Metrónomo basado en microcontrolador: 5 pasos
Metrónomo basado en microcontrolador: un metrónomo es un dispositivo de sincronización utilizado por los músicos para realizar un seguimiento de los ritmos en las canciones y para desarrollar un sentido de sincronización entre los principiantes que están aprendiendo un nuevo instrumento. Ayuda a mantener un sentido del ritmo que es crucial en la música. Este metrónomo
Metrónomo visual para bateristas: 8 pasos
Metrónomo visual para bateristas: Tengo un amigo y compañero de trabajo que es baterista de rock and roll. Su cubículo está al lado del mío en el trabajo, por lo que ve y escucha todos mis proyectos de electrónica y software. Ha pasado más de un año, así que ni siquiera puedo recordar cómo sucedió todo esto pero
Metrónomo con temporizador 555 - Audio y visual: 8 pasos (con imágenes)
555 Timer Metronome - Audio & Visual: Mi hijo ha comenzado recientemente a tocar el ukelele y pensé que un metrónomo ayudaría con su sincronización. Como creador, pensé que podría preparar uno yo mismo con bastante facilidad con un temporizador 555 (qué no se puede hacer con uno …) Después de buscar un poco en la w