Mundarija:
- 1 -qadam: Funktsional tavsif
- 2 -qadam: qismlar ro'yxati
- 3 -qadam: ulanish sxemasi
- 4 -qadam: Arduino manba kodi
Video: Arduino Metronome: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Bolalikda yangi musiqa asbobini o'rganayotganda, diqqat qilish kerak bo'lgan juda ko'p yangi narsalar bor. Tezlikni to'g'ri tempda ushlab turish - ulardan biri. Funktsional jihatdan to'liq va qulay metronomni topa olmaslik, bolalarim bilan yana qurilishni boshlash uchun eng yaxshi bahona edi. Bu ko'rsatmali postda siz funktsional tavsifni, veb -do'kon havolalari va narxlari ko'rsatilgan qismlar ro'yxatini, yig'ish uchun ulanish sxemasini va to'liq Arduino manba kodini topasiz.
1 -qadam: Funktsional tavsif
Uyda yoki musiqa maktabida qulay foydalanish uchun quyidagi funktsiyali metronomli qurilmaga ega bo'lish yaxshi bo'lardi.
- Kichik joylarni musiqa asboblarining tepasida yoki yonida joylashtirish uchun ixcham shakl faktori;
- Batareya bilan ishlaydigan, mustahkam va ko'chma,
- Hatto bolalar uchun ham oson sozlash, BPM qiymati har doim ko'rsatiladi,
- Qaytib tugmachasi bilan daqiqasiga 240 zarba tezligi sozlanishi
- Ovoz balandligini boshqarish bilan ovozli xushmuomala,
- Eshitish vositasi uchun bir kecha -kunduz mashq qilish uchun jim rejim,
- 8 ta LEDgacha bo'lgan zarbalarning vizual qaytarilishi (1/4, 2/4, 3/3, 4/4, 6/8 va boshqalar),
- Etakchi aksent bilan yoki bo'lmasdan, vizual va ovozli teskari aloqa bilan.
Metronome rejimi yoqilganda, 60 BPM tezligi kichik displeyda ko'rsatiladi va tezlikni 10 dan 240 gacha aylanadigan tugma yordamida sozlash imkonini beradi. Neopixellar signalni ko'k LEDda ko'rsatadi, gudok chalganda. Tugmani bosish ritmni sozlash rejimiga o'tadi va yashil rangli LEDlar o'rnatilgan zarba tuzilishini ko'rsatadi. Aylanadigan tugma zarba tuzilishini oshiradi yoki kamaytiradi (2/2, 3/3, 4/4, 6/8 va boshqalar). 8 svetodioddan yuqoriroq, soat yo'nalishi bo'yicha aylantiriladi, asosiy aksent yonadi va birinchi LED buni qizil rangda ko'rsatadi. Etakchi urg'u ham eshitiladigan fikrlarga ega bo'ladi. Uni soat sohasi farqli o'laroq aylantirish orqali o'chirish mumkin. Tugmani bosish ritmni sozlash rejimidan metronom rejimiga qaytadi.
2 -qadam: qismlar ro'yxati
Sizga sumka kerak bo'ladi. Har qanday shakl yoki o'lchovni sotib olish mumkin, lekin bizda eski qora qo'lda VGA kaliti bo'lgan do'sti yo'q edi. Qolgan qismlar quyida keltirilgan.
- 9V batareya, 1,50 AQSh dollari
- Batareya ulagichi kabeli, 0, 16 AQSh dollari
- Pinli sarlavhali Arduino Nano, 2.05 AQSh dollari
- Nano IO kengaytma qalqoni, 1 AQSh dollari, 05 dollar
- Quvvat uchun mini slayd -kalit, 0,15 AQSh dollari
- Piezo buzzer, 0, 86 dollar
- Adafruit Neopixel WS2812 8 bitli, 1 AQSh dollari, 01
- OLED displey 128x64, 1, 53 dollar
- Rotary kodlovchi, 0, 50 AQSh dollari
- Dupont kabellari F/F, USD 0, 49
Komponentlarning umumiy narxi 10 dollardan past, -
3 -qadam: ulanish sxemasi
Bir nechta GND va VCC ulanishlarini lehim bilan bezovta qilmaslik uchun Nano IO kengaytma kartasidan foydalaning. Nano pinli sarlavhalar va Neopixel modul ulagichlari uchun minimal lehim kerak bo'ladi. Dupont simlarini ishlatish sxemada ko'rsatilgandek, qolgan simlarni barqaror ulash imkonini beradi. 9V batareya GND va VIN -ga ulangan, ikkinchisi quvvat slayderining tugmasi orqali. Aylanadigan kodlovchi moduli birlashtiruvchi tugmachaga ega, ularni ulashni osonroq tushunish uchun diagrammada alohida ko'rsatilgan. Aylanadigan qism (CLK va DT) mos ravishda PIN2 va PIN3 ga ulangan, chunki ular NANO -ni uzib qo'yishga qodir yagona pinlardir. Rotary GND, albatta, Nano GND PIN -kodiga ulangan. Birlashtirilgan kalit tugmasi PIN4 ga ulangan. Piezo buzzer PIN5 va GND ga ulangan. Adafruit Neopixel moduli PIN7 va VIN va GND ga mos ravishda Nano 5V va GND ga ulangan. Kichik OLED displey I2C avtobus interfeysiga ulangan, bu SDA va SDL uchun PIN A4 va A5. VCC va GND, albatta, Nano 5V va GND ga o'tadi. Bu bizning Dupont kabelini tugatdi.
4 -qadam: Arduino manba kodi
// Metronom, etakchi aksent, vizual va ovozli aloqa - 2019 Piter Csurgay
#include #include #include #include #include "TimerOne.h" #SCREEN_WIDTH 128ni aniqlang #SCREEN_HEIGHT 64 #belgilash OLED_RESET -1 // PIN -kodni tiklash (yoki -1 Arduino reset pinini almashish bo'lsa) Adafruit_SSD130W ekran, SCREEN_SIGHT, & Wire, OLED_RESET); #defin pin_neopixel 7 #NUMPIXELSni aniqlang 8 #Yorqinlikni aniqlang 32 Adafruit_NeoPixel piksel = Adafruit_NeoPixel (NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #delefilm IDLE_11 0 #define SCLK_01 1 #define SCLK_00 2 #define SCLK_10 3 #define SDT_10 4 #define SDT_00 5 #deffine SDT_01 6 int state = IDLE_11; #define CLK 2 #define DT 3 #dein pin_switch 4 #dein pin_buzzer 5 int bpm = 60; int bpmFirst = 0; // birinchi navbatda LED yonadi, qolganida o'chadi… int tack = 4; bool leadTack = noto'g'ri; int pos = 0; int curVal = 0; int prevVal = 0; void setup () {piksel.begin (); pinMod (pin_buzzer, OUTPUT); Taymer 1. boshlang (1000000*60/bpm/2); Taymer1.attachInterrupt (buzztick); pinMod (CLK, INPUT_PULLUP); pinMod (DT, INPUT_PULLUP); pinMod (pin_switch, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (CLK), rotaryCLK, CHANGE); attachInterrupt (digitalPinToInterrupt (DT), rotaryDT, CHANGE); if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) {// Manzil 0x3D 128x64 uchun (;;) uchun; // Davom etma, abadiy pastadir} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {kechiktirish (100); while (digitalRead (pin_switch) == LOW); kechikish (100); Taymer1.detachInterrupt (); ko'rsatishGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack+= 1; if (tack> 8) {if (liderTack) tack = 8; else {leadTack = rost; yopish = 1; }}} boshqa if (curValprevVal) {bpm+= 2; agar (bpm> 240) bpm = 240; } else if (curVal = 100) display.print (""); else display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volume = 4; agar (leadTack && pos == 0) tovush = 8; uchun (int i = 0; i
Tavsiya:
Servo Metronome, har xil tezlikda dasturlashtirilishi mumkin: 3 qadam
Servo Metronome, har xil tezlikda dasturlash mumkin: O'z metronomingizni yasang. Sizga kerak bo'lgan yagona narsa - Arduino Mega 2560 boshlang'ich to'plami va mos keladigan kompyuter
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
555 taymerli Metronome: 3 qadam
555 taymerli Metronome: Metronome-bu ma'lum bir vaqt oralig'ida eshitiladigan sekin urish yoki boshqa tovushlarni chiqaradigan, odatda foydalanuvchi tomonidan daqiqada urish tezligi (BPM). Musiqachilar bu asbobdan oddiy pulsda o'ynash uchun foydalanadilar. (Https://en.wikipedia.org/w
Mikroto'lqinli Metronome: 5 qadam
Metronomga asoslangan mikrokontrolder: Metronom-bu musiqachilar tomonidan qo'shiqlarning ritmini kuzatish va yangi asbobni o'rganayotgan yangi boshlanuvchilarda vaqtni his qilish uchun ishlatiladigan vaqt o'lchash moslamasi. Bu musiqada hal qiluvchi ahamiyatga ega bo'lgan ritm tuyg'usini saqlashga yordam beradi
Metronome bilan barabanlarni yoqing: 4 qadam
Metronome bilan barabanlarni yoqing: Ushbu loyihada video o'yinlardan baraban ishlatiladi. Circuit Playground Express metronom vazifasini bajarishi uchun dasturlashtirilgan va LED chiziqlari barabanlarning urilishiga javob beradi