Cuprins:
- Pasul 1: Descriere funcțională
- Pasul 2: Lista pieselor
- Pasul 3: Schema de cablare
- Pasul 4: Codul sursă Arduino
Video: Arduino Metronome: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Când învățați un nou instrument muzical în copilărie, există atât de multe lucruri noi pe care să vă concentrați. Ținerea ritmului în ritmul potrivit este una dintre ele. A nu găsi un metronom complet funcțional și convenabil a însemnat cea mai bună scuză pentru a începe să construiesc din nou împreună cu copiii mei. În această postare Instructables veți găsi descrierea funcțională, lista de piese cu link-uri și prețuri de webshop, schema de cablare pentru asamblare și codul sursă Arduino complet.
Pasul 1: Descriere funcțională
Ar fi frumos să aveți un dispozitiv metronom cu următoarele funcții pentru al utiliza acasă sau la școala de muzică convenabil.
- Factor de formă compact pentru a se potrivi cu locuri mici deasupra sau lângă instrumentele muzicale,
- Acționat pe baterie, robust și portabil de transportat,
- Configurare ușoară chiar și pentru copii, valoarea BPM afișată întotdeauna,
- Bătăi reglabile pe minut cu un buton rotativ, până la 240 BPM
- Tact sonor cu control al volumului,
- Mod silențios pentru practicarea căștilor peste noapte,
- Feedback vizual al ritmurilor (1/4, 2/4, 3/3, 4/4, 6/8 etc.) până la 8 LED-uri,
- Cu sau fără accent principal, cu feedback vizual și sonor.
Pornind, modul metronom va începe la 60 BPM afișat pe afișajul mic și lăsând ritmul să fie reglat de butonul rotativ între 10 și 240. Neopixelii arată ritmul în LED-uri albastre în timp ce buzzerul bifează. Apăsarea butonului va comuta la modul de reglare a bătăilor, iar LED-urile verzi vor indica structura setată a bătăilor. Butonul rotativ va crește sau micșora structura bătăii (2/2, 3/3, 4/4, 6/8 etc.). Peste 8 LED-uri, rotind în continuare în sensul acelor de ceasornic, accentul principal va fi activat, iar primul LED va indica acest lucru cu roșu. Accentul de frunte va avea și feedback sonor. Poate fi oprit rotind în sens invers acelor de ceasornic. Apăsarea butonului va comuta înapoi de la modul de ajustare a ritmului la modul metronom.
Pasul 2: Lista pieselor
Veți avea nevoie de un caz. Orice formă sau dimensiune poate fi cumpărată, dar am avut o carcasă frumoasă din metal negru, cu un vechi comutator manual VGA, eliminat de un prieten. Restul pieselor sunt enumerate mai jos.
- Baterie de 9V, 1,50 USD
- Cablu conector baterie, USD 0, 16
- Arduino Nano cu anteturi pin, 2,05 USD
- Extensie Nano IO, 1 USD, 05 USD
- Mini comutator glisant pentru alimentare, 0,15 USD
- Buzzer piezo, 0, 86 USD
- Adafruit Neopixel WS2812 pe 8 biți, 1 USD, 01
- Afișaj OLED 128x64, 1, 53 USD
- Codificator rotativ, 0, 50 USD
- Cabluri Dupont F / F, USD 0, 49
Prețul total al componentelor este mai mic de 10 USD, -
Pasul 3: Schema de cablare
Utilizați placa de extensie Nano IO pentru a nu vă deranja cu lipirea mai multor conexiuni GND și VCC. Va fi necesară lipirea minimă pentru anteturile Nano pin și pentru conectorii modulului Neopixel. Utilizarea cablurilor Dupont permite conexiuni stabile pentru restul cablajelor, așa cum se arată în diagramă. Bateria de 9V este conectată la GND și VIN, acesta din urmă prin comutatorul glisant. Modulul codificatorului rotativ are un buton de comutare integrat, care este prezentat separat în diagramă pentru o înțelegere mai ușoară a modului de conectare a acestora. Piesa rotativă (CLK și DT) este conectată la PIN2 și respectiv la PIN3, deoarece acestea sunt singurele pini NANO capabili să manipuleze întreruperea. Rotary GND este conectat la PIN-ul GND al lui Nano, desigur. Butonul de comutare integrat este conectat la PIN4. Buzzer-ul piezo este conectat la PIN5 și GND. Modulul Adafruit Neopixel este conectat la PIN7 și VIN și GND la 5V și respectiv GND ale Nano. Afișajul mic OLED este conectat la interfața magistralei I2C, care este PIN A4 și A5 pentru SDA și SDL. VCC și GND merg la Nano's 5V și GND, desigur. Asta încheie cablarea noastră Dupont.
Pasul 4: Codul sursă Arduino
// Metronome, Accent principal, Tact vizual și audibil - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reset pin # (sau -1 dacă se partajează pinul de resetare Arduino) Afișaj Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT & 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-ul Aprins la început, Off la rest … int tack = 4; bool leadingTack = 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)) {// Adresă 0x3D pentru 128x64 pentru (;;); // Nu continuați, buclați pentru totdeauna} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {delay (100); while (digitalRead (pin_switch) == LOW); întârziere (100); Timer1.detachInterrupt (); showGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack + = 1; if (tack> 8) {if (leadingTack) tack = 8; else {leadingTack = adevărat; tac = 1; }}} else if (curValprevVal) {bpm + = 2; dacă (bpm> 240) bpm = 240; } else if (curVal = 100) display.print (""); else display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volum = 4; if (leadingTack && pos == 0) volume = 8; pentru (int i = 0; i
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Arduino Halloween Edition - Ecran pop-out Zombies (Pași cu imagini): 6 pași
Ediția Arduino Halloween - Ecran pop-out Zombies (Pași cu imagini): Vrei să-ți sperii prietenii și să faci niște zgomote în Halloween? Sau vrei doar să faci niște farse bune? Acest ecran pop-out Zombies poate face asta! În acest instructabil vă voi învăța cum să creați cu ușurință zombi cu ajutorul Arduino. HC-SR0
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli !: 6 pași
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli! Oamenilor cu pești de companie li s-a prezentat probabil aceeași problemă ca mine: vacanțele și uitarea. Am uitat în permanență să-mi hrănesc peștele și m-am străduit mereu să fac asta înainte să ajungă la s
555 Timron Metronome - Audio și vizual: 8 pași (cu imagini)
555 Timer Metronome - Audio & Visual: Fiul meu a început recent să cânte la ukulele și am crezut că un metronom ar ajuta la sincronizarea sa. În calitate de producător, m-am gândit că aș putea să-l biciuiesc destul de ușor cu un temporizator 555 (ce nu poți face cu unul …) După o mică căutare pe w
Creați o piesă MP3 „Metronome” Chi Running: 6 pași (cu imagini)
Creați o piesă MP3 „Metronome” Chi Running: Chiar înainte de a începe să rulez în Vibram Five Fingers anul trecut, am citit și despre metoda Chi Running dezvoltată de Danny Dreyer pentru a-mi putea regla stilul de rulare. Mi-am dat seama rapid că încă o piesă de echipament, un metronom, ar fi de ajutor, dar