İçindekiler:
- Gereçler
- Adım 1: Breadboard'u Oluşturma
- 2. Adım: Çizimi Yükleme
- Adım 3: Tüysüz MIDI ve Dahili MIDI Döngülerini Anlama
- 4. Adım: DAW'ınıza Bağlanma
- Adım 5: Oynat
Video: Temel Arduino MIDI Denetleyicisi: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Giriş:
Arduino ile çalışmakta yeniyim ama başkalarına öğreterek ve geri bildirim alarak bilgimi genişletmeyi umuyorum. Bu, 4 düğmeli ve potansiyometreli çok basit bir MIDI denetleyicisidir. Bu projenin ana hatları şöyle görünür:
1. Breadboard'u oluşturun
2. Krokiyi Arduino'ya Yükleyin
3. Tüysüz MIDI ve dahili MIDI döngüsünü (loopbe1) anlayın
4. MIDI'nizi bir DAW'a (Ableton) yönlendirin
Gereçler
1 x Arduino Mega 2560
1 x Ekmek Tahtası
1 x USB Kablosu
1 x Potansiyometre
4 x İncelik Düğmeleri
4 x 120Ohm direnç
Breadboard için 14 x atlama kablosu
Adım 1: Breadboard'u Oluşturma
Breadboard'unuzu, tüm bileşenlerin yukarıdaki resim 1 ile eşleşmesi için bağlayın. Her bir buton resim 2 ile aynı görünmelidir. Arduino üzerinde buton girişleri 2, 3, 4 ve 5'tir ve potansiyometrenin orta pini ANALOG giriş A0'a bağlanır.
2. Adım: Çizimi Yükleme
Aşağıdaki kodu kopyalayıp Arduino IDE'ye yapıştırın. "Araçlar" altında doğru kartı seçin ve çizimi Arduino'ya yükleyin.
byte noteON = 144;//commandbyte notunda not;//şu anda çalmakta olan not için depolama int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = DÜŞÜK;//mevcut düğme durumu için depolama boolean lastState = DÜŞÜK;//son düğme durumu için depolama void kurulumu(){ pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); //bu sefer pini INPUT Serial.begin(9600);//initialize Serial connection } void loop(){ int PotVal = analogRead(potPin); bayt hızı = map(PotVal, 0, 1023, 0, 127); currentState = digitalRead(buttonPin1); if (currentState == HIGH && lastState == LOW){ MIDImessage(noteON, 60, hız);//nota 60'ı 127 hız gecikmesiyle açın(200);//düğmenin geri tepmesinin kaba şekli} else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//turn note 60 off delay(2);//düğmenin geri tepmesinin kaba şekli } lastState = currentState; currentState = digitalRead(buttonPin2); if (currentState == HIGH && lastState == LOW){//düğmeye az önce basıldıysa MIDImessage(noteON, 61, hız);//not 60'ı 127 hız gecikmesiyle açın(200);//düğmenin kaba şekli geri dönme } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//turn note 60 off delay(2);//düğmenin geri tepmesinin kaba şekli } lastState = currentState; currentState = digitalRead(buttonPin3); if (currentState == HIGH && lastState == LOW){//düğmeye az önce basıldıysa MIDImessage(noteON, 62, hız);//not 60'ı 127 hız gecikmesiyle açın(200);//düğmenin kaba şekli geri dönme } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//turn note 60 off delay(2);//düğmenin geri tepmesinin kaba şekli } lastState = currentState; currentState = digitalRead(buttonPin4); if (currentState == HIGH && lastState == LOW){//düğmeye az önce basıldıysa MIDImessage(noteON, 63, hız);//not 60'ı 127 hız gecikmesiyle açın(200);//düğmenin kaba şekli geri dönme } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//turn note 60 off delay(2);//düğmenin geri tepmesinin kaba şekli } lastState = currentState; } //MIDI mesajı gönder void MIDImessage(bayt komutu, bayt veri1, bayt veri2) { Serial.write(komut); Serial.write(veri1); Serial.write(veri2); }
Genel olarak kod yazma konusunda hala çok yeniyim….. biraz daha fazla deneyime sahip olanlar muhtemelen bunu temizleyebilir…
Adım 3: Tüysüz MIDI ve Dahili MIDI Döngülerini Anlama
Arduino'nun Hairless MIDI gibi bir seri köprüden, ardından loopbe1 (veya Mac için IAC bus) gibi bir dahili MIDI döngüsünden geçmesi gerekir.
Not: Tüysüz MIDI seri köprüsüne bağlıyken Arduino'ya çizim yükleyemezsiniz.
Tüysüz MIDI seri portunda Arduino'nuzu ve MIDI çıkışında loopbe1 veya IAC Bus'ı seçin.
Not: loopbe1'i kullanırken sessizin açık olmadığından emin olun.
4. Adım: DAW'ınıza Bağlanma
Breadboard üzerindeki bir düğmeye bastığınızda (ışıklar yanıp sönecektir) Hairless MIDI uygulamasına sinyal alıyorsanız, MIDI verilerini bir DAW'a gönderebilmeniz gerekir. Ableton kullandım ama herhangi bir DAW çalışmalı. DAW tercihlerinizde dahili MIDI döngünüzün (loopbe1) etkinleştirildiğinden emin olun (Ableton'da "iz"in etkinleştirilmesini istiyorsunuz). Ardından, yukarıdaki resimde gösterildiği gibi MIDI döngüsüne (loopbe1) MIDI track girişlerinizden birini seçin.
Adım 5: Oynat
Düğmeler artık diğer MIDI denetleyicileri gibi çalışacak! Potansiyometre, DAW'a gönderilen notaların hızını değiştirecektir. Yukarıdaki (çok karanlık…) video, bir kuyruklu piyano sesini çalışırken gösteriyor!
Önerilen:
Arduino Kullanan Otomatik Google T Rex Oyun Denetleyicisi: 7 Adım
Arduino Kullanan Otomatik Google T Rex Oyun Denetleyicisi: yapalım
Arduino Video Oyun Denetleyicisi: 4 Adım
Arduino Video Oyun Denetleyicisi: Etrafta bir Arduino kitiniz var ama onunla ne yapacağınıza dair hiçbir fikriniz yok mu? Belki değil, ama bu Eğitilebilir Kitapta size adım adım Arduino'yu nasıl oluşturacağınızı, kodlayacağınızı ve projenize nasıl entegre edeceğinizi göstereceğim. Şu anda bu kılavuz yalnızca Clic ile test edilmiştir
Arduino Oyun Denetleyicisi: 5 Adım
Arduino Oyun Denetleyicisi: Bir oyun denetleyicisi, bir video oyununda karakter veya nesneyi hareket ettirmek için girdiler vermek için kullanılan bir cihazdır. Bir oyun kumandasının tasarımı ve işlevselliği kolaydır ve size kesinlikle harika bir oyun deneyimi sunacaktır ve daha çok
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi - Arduino PS2 Oyun Denetleyicisi - DIY Arduino Gamepad ile Tekken Oynamak: 7 Adım
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi | Arduino PS2 Oyun Denetleyicisi | Tekken'i DIY Arduino Gamepad ile Oynamak: Merhaba arkadaşlar, oyun oynamak her zaman eğlencelidir ama kendi DIY özel oyun Controller'ınızla oynamak daha eğlencelidir. Bu yüzden bu talimatta arduino pro micro kullanarak bir oyun Controller yapacağız
YABC - Bir Başka Blynk Denetleyicisi - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: 4 Adım
YABC - Yine Bir Başka Blynk Denetleyici - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: Merhaba Yapımcılar, Geçenlerde evde mantar yetiştirmeye başladım, İstiridye mantarları, ancak evde Fermenter için bu denetleyicilerden 3x'e zaten sahibim, eşim şimdi de bu Kombucha işini yapıyor ve Isı Termostatı olarak