Мазмұны:

Arduino Metronome: 4 қадам
Arduino Metronome: 4 қадам

Бейне: Arduino Metronome: 4 қадам

Бейне: Arduino Metronome: 4 қадам
Бейне: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Шілде
Anonim
Image
Image

Бала кезінен жаңа музыкалық аспапты үйрену кезінде көптеген жаңа нәрселерге назар аудару қажет. Дұрыс қарқынмен жүру - соның бірі. Функционалды түрде толық және ыңғайлы метрономды таппау - бұл менің балаларыммен қайтадан құрылысты бастау үшін ең жақсы себеп. Бұл нұсқаулықта сіз функционалды сипаттаманы, веб -дүкен сілтемелері мен бөлшектер тізімін, жинауға арналған схеманы және толық Arduino бастапқы кодын таба аласыз.

1 -қадам: Функционалды сипаттамасы

Бөлшектер тізімі
Бөлшектер тізімі

Оны үйде немесе музыкалық мектепте ыңғайлы пайдалану үшін келесі функциялары бар метромды құрылғы болса жақсы болар еді.

  • Шағын формалы фактор музыкалық аспаптардың үстіне немесе жанында орналасқан шағын орындарға сәйкес келеді,
  • Батареямен жұмыс істейді, берік және тасымалдауға ыңғайлы,
  • Балаларға да оңай орнатылады, BPM мәні әрқашан көрсетіледі,
  • Ротари тұтқасымен минутына реттелетін соққылар, 240 BPM дейін
  • Дыбыс деңгейін басқаратын дыбыстық такт,
  • Құлаққапты түні бойы қолдану үшін үнсіз режим,
  • Соққылардың визуалды кері байланысы (1/4, 2/4, 3/3, 4/4, 6/8 және т.б.) 8 светодиодқа дейін,
  • Жетекші акцентпен немесе онсыз, визуалды және дыбыстық кері байланыспен.

Қосылған кезде метром режимі кіші дисплейде 60 BPM жылдамдығынан басталады және жылдамдықты 10 -нан 240 -ға дейінгі айналмалы тұтқа арқылы реттеуге мүмкіндік береді. Неопиксельдер сигналды көк светодиодта көрсетеді, ал дыбыстық сигнал шыққанда. Түймені басу жиілікті реттеу режиміне ауысады, ал жасыл жарық диодтары жиілік құрылымын көрсетеді. Айналмалы тұтқа соққы құрылымын жоғарылатады немесе азайтады (2/2, 3/3, 4/4, 6/8 және т.б.). 8 светодиодтан жоғары, әрі қарай сағат тілімен бұрыла отырып, жетекші екпін қосылады, ал бірінші жарық диоды қызыл түспен көрсетеді. Жетекші екпін естілетін кері байланысқа ие болады. Оны сағат тіліне қарсы бұру арқылы өшіруге болады. Тұтқаны басу жиілікті реттеу режимінен метрономдық режимге ауысады.

2 -қадам: бөлшектер тізімі

Сізге корпус қажет болады. Кез келген пішінді немесе өлшемді сатып алуға болады, бірақ бізде ескі қолмен VGA қосқышы бар қара металлдан жасалған корпусы болды. Қалған бөліктер төменде көрсетілген.

  • 9В батареясы, 1.50 АҚШ доллары
  • Батарея қосқыш кабелі, АҚШ доллары 0, 16
  • Ардуино Нано түйреуіштері бар, 2.05 АҚШ доллары
  • Nano IO Extension Shield, USD 1, 05
  • Қуатқа арналған шағын жылжымалы қосқыш, 0,15 АҚШ доллары
  • Пьезо дыбысы, USD 0, 86
  • Adafruit Neopixel WS2812 8-разряд, USD 1, 01
  • OLED дисплейі 128x64, USD 1, 53
  • Айналмалы кодер, АҚШ доллары 0, 50
  • Dupont кабельдері F/F, USD 0, 49

Компоненттердің жалпы бағасы 10 доллардан төмен, -

3 -қадам: Сымдардың диаграммасы

Қосылу диаграммасы
Қосылу диаграммасы

Бірнеше GND және VCC қосылыстарын дәнекерлеуге кедергі жасамау үшін Nano IO кеңейту тақтасын пайдаланыңыз. Нано түйреуіштері мен Neopixel модулінің қосқыштары үшін минималды дәнекерлеу қажет болады. Dupont сымдарын пайдалану диаграммада көрсетілгендей сымның қалған бөлігіне тұрақты қосылуға мүмкіндік береді. 9V аккумуляторы GND және VIN -ге қосылады, екіншісі қуат сырғытпасы арқылы. Айналмалы кодер модулінде біріктіру коммутаторы бар, оларды қосуды түсіну үшін диаграммада бөлек көрсетілген. Айналмалы бөлік (CLK және DT) сәйкесінше PIN2 мен PIN3 -ке қосылған, себебі бұл үзіліспен жұмыс жасауға қабілетті жалғыз NANO түйреуіштері. Rotary GND, әрине, Nano GND PIN кодына қосылған. Біріктірілген қосқыш түймесі PIN4 -ке қосылған. Пьезо дыбыстық сигнал PIN5 пен GND қосылған. Adafruit Neopixel модулі PIN7 мен оның VIN және GND сәйкесінше Nano 5V мен GND -ге қосылған. Шағын OLED дисплейі I2C шинасының интерфейсіне қосылады, ол SDA мен SDL үшін PIN A4 және A5. VCC және GND әрине Nano 5V мен GND -ге өтеді. Бұл біздің Dupont сымдарын аяқтайды.

4 -қадам: Arduino бастапқы коды

Arduino бастапқы коды
Arduino бастапқы коды

// Метроном, жетекші акцент, визуалды және естілетін такт - 2019 Питер Цургай

#қосу #қосу #қосу #қосу «қосу» TimerOne.h « #SCREEN_WIDTH 128 анықтау #SCREEN_HEIGHT 64 #анықтау OLED_RESET -1 // PIN кодты қалпына келтіру (немесе -1 Arduino қалпына келтіру түйреуішімен ортақ болса) Adafruit_SSD130W дисплейі, SCREEN_SERE_DESIGE & Wire, OLED_RESET); #pin_neopixel 7 анықтау #NUMPIXELS 8 анықтау #BRIGHTNESS 32 анықтау Adafruit_NeoPixel пиксельдер = Adafruit_NeoPixel (NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #анықтау IDLE_11 0 #анықтау SCLK_01 1 #SCLK_00 анықтау #SCLK_10 3 #анықтау SDT_10 4 #анықтау SDT_00 5 #SDT_01 анықтау 6 int күй = IDLE_11; #define CLK 2 #dinefine DT 3 #pin_switch 4 анықтау #pin_buzzer 5 int bpm = 60; int bpmFirst = 0; // Жарықдиодты бастапқыда қосады, қалғанда өшіреді… int tack = 4; bool leadTack = жалған; int pos = 0; int curVal = 0; int prevVal = 0; void setup () {piksel.begin (); pinMode (pin_buzzer, OUTPUT); Timer1.initialize (1000000*60/bpm/2); Таймер1.attachКідіріс (ызылдау); 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)) {// (;;) үшін 128x64 үшін 0x3D мекенжайы; // Жалғастырмаңыз, мәңгілік цикл} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {кешіктіру (100); while (digitalRead (pin_switch) == LOW); кешіктіру (100); Timer1.detachInterrupt (); showGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack+= 1; if (tack> 8) {if (liderTack) tack = 8; else {leadTack = true; бекіту = 1; }}} else if (curValprevVal) {bpm+= 2; егер (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; if (liderTack && pos == 0) көлемі = 8; үшін (int i = 0; i

Ұсынылған: