Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
Giriş:
Arduino ilə işləməkdə yeniyəm, amma başqalarına öyrədərək və rəy alaraq biliklərimi genişləndirməyi ümid edirəm. Bu 4 düyməli və potensiometrli çox sadə bir MIDI nəzarətçisidir. Bu layihənin konturu belə görünür:
1. Çörək taxtasını düzəldin
2. Eskizi Arduinoya yükləyin
3. Tüksüz MIDI və daxili MIDI döngəsini anlayın (loopbe1)
4. MIDI -nizi DAW -a yönləndirin (Ableton)
Təchizat
1 x Arduino Mega 2560
1 x Çörək Paneli
1 x USB Kabel
1 x Potansiyometr
4 x Toxunma düymələri
4 x 120 Ohm rezistorlar
Çörək taxtası üçün 14 x tullanan kabel
Addım 1: Çörək lövhəsinin qurulması
Çörək taxtasını bütün komponentlərin yuxarıdakı şəkil 1 -ə uyğun olması üçün bağlayın. Hər bir düymə şəkil 2 ilə eyni görünməlidir. Düymə girişləri Arduino -da 2, 3, 4 və 5 -dir və potensiometrin orta pimi ANALOG girişi A0 -a bağlıdır.
Addım 2: Eskizin yüklənməsi
Aşağıdakı kodu kopyalayın və Arduino IDE -ə yapışdırın. "Alətlər" altında düzgün lövhəni seçin və eskizi Arduinoya yükləyin.
byte noteON = 144; // commandbyte notu haqqında qeyd; // hazırda int notPin1 = 2 notu çalmaq üçün saxlama; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // cari düymə vəziyyəti üçün vuruş boolean lastState = LOW; // son düymə vəziyyətinin saxlanması void setup () {pinMode (buttonPin1, INPUT); pinMode (düyməPin2, GİRİŞ); pinMode (buttonPin3, GİRİŞ); pinMode (düyməPin4, GİRİŞ); // bu dəfə pimi INPUT Serial.begin (9600) olaraq təyin edəcəyik; // Serial bağlantısını işə salın} void loop () {int PotVal = analogRead (potPin); bayt sürəti = xəritə (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, sürət); // 127 sürəti gecikdirməklə (200) notu 60 -ı yandırın; // düymənin sökülməsinin xam forması} else if (currentState == LOW && lastState == YÜKSƏK) {MIDImessage (noteON, 60, 0); // not 60 gecikməsini söndürün (2); // düymənin çıxarılmasının xam forması} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && LastState == LOW) {// düyməsinə yeni basılmışsa MIDImessage (noteON, 61, sürət); // 127 sürət gecikməsi (200) ilə not 60 -ı yandırın; // düymənin kobud forması debudan} başqa halda (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // not 60 gecikməsini söndürün (2); // düymənin ləğv edilməsinin xam forması} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// əgər düyməyə yeni basılmışsa MIDImessage (noteON, 62, sürət); // 127 sürət gecikməsi (200) ilə not 60 -ı yandırın; // düymənin kobud forması debudan} başqa halda (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // not 60 gecikməsini söndürün (2); // düymənin ləğv edilməsinin xam forması} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// düyməsinə yeni basılmışsa MIDImessage (noteON, 63, sürət); // 127 sürət gecikməsi (200) ilə not 60 -ı yandırın; // düymənin kobud forması debudan} başqa əgər (currentState == LOW && lastState == YÜKSƏK) {MIDImessage (noteON, 60, 0); // not 60 gecikməsini söndürün (2); // düymənin ləğv edilməsinin xam forması} lastState = currentState; } // MIDI mesajı etibarsız göndərin MIDImessage (bayt əmri, bayt data1, bayt data2) {Serial.write (əmr); Serial.write (data1); Serial.write (data2); }
Ümumiyyətlə kod yazmaqda hələ çox yeniyəm ….. bir az da təcrübəsi olanlar yəqin ki, bunu təmizləyə bilər …
Addım 3: Tüksüz MIDI və Daxili MIDI Döngülərini Anlamaq
Arduino, Hairless MIDI kimi ardıcıl bir körpüdən sonra loopbe1 (və ya Mac üçün IAC avtobusu) kimi daxili bir MIDI döngəsindən keçməlidir.
Qeyd: Arduino tüksüz MIDI seriyalı körpüyə qoşulduqda eskiz yükləyə bilməzsiniz.
Saçsız MIDI seriya portunda Arduino -nu seçin və MIDI -də loopbe1 və ya IAC Avtobusunu seçin.
Qeyd: loopbe1 istifadə edərkən səssizliyin aktiv olmadığından əmin olun.
Addım 4: DAW -a qoşulun
Çörək lövhəsindəki bir düyməni basdığınızda (işıqlar yanıb -sönəcək) Tüksüz MIDI tətbiqinə siqnal alırsınızsa, MIDI məlumatlarını DAW -a göndərə bilməlisiniz. Ableton istifadə etdim, amma hər hansı bir DAW işləməlidir. Daxili MIDI döngənizin (loopbe1) DAW seçimlərinizdə aktiv olduğundan əmin olun (Abletonda "track" in aktiv olmasını istəyirsiniz). Sonra yuxarıdakı şəkildə göstərildiyi kimi MIDI döngüsünə (loopbe1) MIDI iz girişlərindən birini seçin.
Addım 5: Oyna
Düymələr artıq digər MIDI nəzarətçiləri kimi işləyəcək! Potansiometr DAW -a göndərilən qeydlərin sürətini dəyişəcək. Yuxarıdakı (çox qaranlıq…) video, böyük bir pianonun səsini göstərir!
Tövsiyə:
NAIN 1.0 - Arduino istifadə edən əsas humanoid robot: 6 addım
NAIN 1.0 - Arduino istifadə edən əsas Humanoid Robot: Nain 1.0 əsasən 5 ayrılan modula sahib olacaq - 1) Arm - servo vasitəsi ilə idarə oluna bilər. 2) Təkərlər - DC mühərrikləri ilə idarə oluna bilər. 3) Ayaq və ndash; Nain hərəkət etmək üçün təkərlər və ya ayaqları arasında keçid edə biləcək. 4) Baş və
Arduino Bluetooth Əsas Dərsliyi: 6 addım (şəkillərlə birlikdə)
Arduino Bluetooth Əsas Dərsliyi: YENİLƏNİB: BU MƏKƏLƏNİN YENİLƏNİŞ VERSİYASI BU YERDƏN BULUNACAQ Hər hansı bir elektron cihazı ağıllı telefonunuzla idarə etməyi düşünürsünüzmü? Robotunuzu və ya smartfonunuzla hər hansı digər cihazı idarə etmək həqiqətən də gözəl olacaq. Budur sadə və sadə
Əsas Arduino İşıq Güclü Lampa !: 5 Addım
Əsas Arduino İşıq Güc Lampası!: Bugünkü dövr karantin üçün əyləncəli kiçik bir Arduino layihəsidir! Bu sxem iki maraqlı materiala diqqət yetirir; Relay SPDT & Fotoresistor. Üstəlik, rölin məqsədi elektron bir dövrə açarı olmaqdır. Bundan əlavə, fotore
Arduino Uno Dərsliyi #1 - Əsas Blink Proqramı: 4 Addım
Arduino Uno Tutorial #1 - Əsas Blink Proqramı: Hər kəsə salam! İlk təlimatımı dərc etməkdən məmnunam! Arduino Uno -nu işə salmaqda çətinlik çəkdiyim zaman ağlıma gələn bu fikir, bəzi çətinliklərlə qarşılaşdığım üçün ətrafımdakı heç kimə bilmədiyimi izah edəcəyəm
Arduino Əsas Seçim və Yerləşdirmə Robotu: 8 addım
Arduino Base Pick and Place Robotu: Tələbələrə daha geniş miqyaslı robot texnikasını sındırmaq və kiçik yerli istehsalların bankları pozmadan robotları proseslərində istifadə etmələrini təmin etmək üçün super ucuz (1000 dollardan aşağı) sənaye robot qolu hazırladım. İnşa etmək və qurmaq asandır