Índice:
- Etapa 1: Descrição funcional
- Etapa 2: Lista de peças
- Etapa 3: Diagrama de fiação
- Etapa 4: Código-fonte do Arduino
Vídeo: Metrônomo Arduino: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Ao aprender um novo instrumento musical quando criança, há muitas coisas novas para manter o foco. Manter o ritmo no tempo certo é um deles. Não encontrar um metrônomo funcionalmente completo e conveniente significava a melhor desculpa para começar a construir novamente com meus filhos. Nesta postagem do Instructables, você encontrará a descrição funcional, a lista de peças com links e preços da loja virtual, o diagrama de fiação para montagem e o código-fonte completo do Arduino.
Etapa 1: Descrição funcional
Seria bom ter um dispositivo metrônomo com as seguintes funções para usá-lo em casa ou na escola de música convenientemente.
- Fator de forma compacto para caber em pequenos lugares no topo ou ao lado de instrumentos musicais,
- Operado por bateria, robusto e portátil para transportar,
- Fácil de configurar, mesmo para crianças, o valor BPM sempre é exibido,
- Batidas ajustáveis por minuto com botão giratório, até 240 BPM
- Tato audível com controle de volume,
- Modo silencioso para prática de fone de ouvido durante a noite,
- Feedback visual de batidas (1/4, 2/4, 3/3, 4/4, 6/8, etc.) até 8 LEDs,
- Com ou sem sotaque principal, com feedback visual e audível.
Ligando, o modo metrônomo começará em 60 BPM mostrando no pequeno display e deixando o ritmo ser ajustado pelo botão giratório entre 10 e 240. Neopixels mostram a batida em LEDs azuis enquanto a campainha toca. Pressionar o botão mudará para o modo de ajuste de batida e os LEDs verdes indicarão a estrutura de batida definida. O botão giratório aumentará ou diminuirá a estrutura da batida (2/2, 3/3, 4/4, 6/8, etc.). Acima de 8 LEDs, girando ainda mais no sentido horário, o acento principal será ativado e o primeiro LED indicará isso em vermelho. O sotaque principal também terá um feedback audível. Ele pode ser desligado girando no sentido anti-horário. Pressionar o botão giratório alternará do modo de ajuste de batida para o modo metrônomo.
Etapa 2: Lista de peças
Você vai precisar de um caso. Qualquer formato ou tamanho pode ser comprado, mas nós tínhamos uma bela caixa de metal preto de um velho switch VGA manual que descartamos de um amigo. O resto das peças estão listadas abaixo.
- Bateria 9V, US $ 1,50
- Cabo conector da bateria, US $ 0, 16
- Arduino Nano com cabeçalhos de pino, US $ 2,05
- Nano IO Extension Shield, US $ 1, 05
- Mini interruptor deslizante para alimentação, US $ 0,15
- Campainha piezo, US $ 0, 86
- Adafruit Neopixel WS2812 8 bits, US $ 1, 01
- Display OLED 128x64, US $ 1,33
- Codificador giratório, US $ 0, 50
- Cabos Dupont F / F, US $ 0, 49
O preço total dos componentes é inferior a US $ 10, -
Etapa 3: Diagrama de fiação
Use a placa de extensão Nano IO para não se preocupar em soldar várias conexões GND e VCC. Solda mínima será necessária para os cabeçotes de pino Nano e para os conectores do módulo Neopixel. O uso de fios Dupont permite conexões estáveis para o resto da fiação, conforme mostrado no diagrama. A bateria de 9 V é conectada ao GND e VIN, este último através do interruptor deslizante de alimentação. O módulo codificador rotativo possui um botão interruptor integrado, que é mostrado separadamente no diagrama para facilitar a compreensão de como conectá-los. A parte rotativa (CLK e DT) é conectada ao PIN2 e PIN3 respectivamente, porque esses são os únicos pinos NANO capazes de lidar com interrupções. O GND giratório está conectado ao PIN GND do Nano, é claro. O botão do interruptor integrado está conectado ao PIN4. A campainha Piezo está conectada ao PIN5 e GND. O módulo Adafruit Neopixel é conectado ao PIN7 e seu VIN e GND aos 5V e GND do Nano, respectivamente. Um pequeno display OLED é conectado à interface de barramento I2C, que é PIN A4 e A5 para SDA e SDL. VCC e GND vão para 5V e GND do Nano, é claro. Isso conclui nossa fiação Dupont.
Etapa 4: Código-fonte do Arduino
// Metronome, Leading Accent, Visual & Audible Tact - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Redefina o pino # (ou -1 se compartilhando o pino de redefinição do Arduino) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_WIDTH_ & Wire, 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 ligado na primeira, desligado no resto … int tack = 4; bool leaderTack = false; int pos = 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)) {// Endereço 0x3D para 128x64 para (;;); // Não continue, faça um loop para sempre} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {delay (100); while (digitalRead (pin_switch) == LOW); atraso (100); Timer1.detachInterrupt (); showGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack + = 1; if (tack> 8) {if (leadTack) tack = 8; else {leadTack = true; aderência = 1; }}} else if (curValprevVal) {bpm + = 2; se (bpm> 240) bpm = 240; } else if (curVal = 100) display.print (""); senão display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volume = 4; if (leaderTack && pos == 0) volume = 8; para (int i = 0; i
Recomendado:
Servo metrônomo, programável para diferentes velocidades: 3 etapas
Servo Metrônomo, Programável para Diferentes Velocidades: Faça seu próprio metrônomo. Tudo que você precisa é o kit inicial Arduino Mega 2560 e um computador compatível
Metrônomo de 555 temporizadores: 3 etapas
Metrônomo de 555 cronômetros: um metrônomo é um dispositivo que produz um clique audível ou outro som em um intervalo regular que pode ser definido pelo usuário, normalmente em batidas por minuto (BPM). Os músicos usam o dispositivo para praticar tocando em um pulso regular. (Https://en.wikipedia.org/w
Metrônomo baseado em microcontrolador: 5 etapas
Metrônomo baseado em microcontrolador: um metrônomo é um dispositivo de cronometragem usado por músicos para controlar as batidas das músicas e desenvolver um senso de sincronia entre os iniciantes que estão aprendendo um novo instrumento. Ajuda a manter um senso de ritmo que é crucial na música. Este metrônomo bui
Metrônomo visual para bateristas: 8 etapas
Metrônomo visual para bateristas: Tenho um amigo e colega de trabalho que é baterista de rock and roll. Seu cubículo fica ao lado do meu no trabalho, então ele vê e ouve sobre todos os meus projetos eletrônicos e de software. Já se passou mais de um ano, então nem me lembro como tudo isso aconteceu
Metrônomo CPE 133: 3 etapas
CPE 133 Metronome: Para o nosso projeto final na Cal Poly, criamos um dispositivo de manutenção de ritmo chamado metrônomo. Escolhemos este projeto por causa de um interesse musical e design digital. Usamos laboratórios anteriores no CPE 133 para ajudar a projetar nosso código e tutoriais online para auxiliar no co