İçindekiler:

Müzikal Dijital Arayüz: 6 Adım (Resimlerle)
Müzikal Dijital Arayüz: 6 Adım (Resimlerle)

Video: Müzikal Dijital Arayüz: 6 Adım (Resimlerle)

Video: Müzikal Dijital Arayüz: 6 Adım (Resimlerle)
Video: Adım at para kazan hîlesi ( Arapların taktiği 😅 ) 2024, Kasım
Anonim
Müzikal Dijital Arayüz
Müzikal Dijital Arayüz

Hepiniz hoşgeldiniz, Size kendi Müzikal Dijital Arayüzümü göstermek istiyorum. Teknik ses derecem sırasında yaptım, bu benim araştırma kağıtlarım. Başlamak için, DAW olmadan, geri dönüştürülmüş malzemelerle ve bağımsız olarak çalma olasılığıyla nasıl müzik besteleyebileceğimi sordum.

Bu derste, bir sesi tetiklemek için Arduino'dan Raspberry pi'ye sensörler (analog ve dijital) bilgileri göndermek/almak için seri iletişimin nasıl kullanılacağını öğreteceğim.

Gerekli malzemeler şunlardır:

x1 Ahududu PI3

x1 Koruma koruması PI3

x1 Mikro SD (32G)

x1 Arduino UNO

x1 Sensör IR Keskin GP2Y0E02B

x1 ekmek tahtası

x1 Plaka test göstergesi (0.2)

x28 Direnç 10MΩ

x2 Direnç 1.8kΩ

x1 Direnç 10kΩ

x20 Terminal pabuçları Erkek/Dişi

x1 Lehim taşıyıcı

x1 bobin kalay (1 metre)

x1 Havya

x25 Esnek Askılar Erkek/Erkek

Adım 1: Sensörler

Sensörler
Sensörler
Sensörler
Sensörler
Sensörler
Sensörler

"Guitar Hero" Harmonix XBOX 360 kumandasından gelen 4 adet piezoelektrik kullandım. Reed anahtarın jam ayak pedalı gitar hero kumandasının manyetik manyetik anahtarı dışarıda olduğu için bir açma/kapama düğmesi kullandım.

Sharp GP2Y0E02B IR sensörü kullandım. Tüm bu sensörler için etkili çalışma için pull-up montajı yaptım…

Böylece ampirik olarak düğme sensörüne ve IR sensörüne direnç değeri buldum. Ancak bunun tam ölçeğini bilmek için piezoelektrik test ettim ve 4 analog sensör için sabit direnç değeri gerekli ve uygulandı.

Adım 2: Pull-up Montajı

Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj
Çekmeli Montaj

Piezoelektriği voltaj üreteci ile test ettikten sonra direnç değerini 7MΩ olarak sabitledim.

Düğme direnç tertibatının yukarı çekilmesi 10 kΩ idi.

IR sensörü için sırasıyla besleme gerilimi ile SDA (veri) ve SCL (saat) arasında iki adet 1,8kΩ direnç kullandım.

Dikkatli olun çünkü bu direnç değerleri RTX Arduino UNO içindir; Arduino empedans girişi hakkında bilinmesi gereken bir şey: 10MΩ.

Bu adımın son resminde pull-up montajını görebilirsiniz; Piezoelektrik kayışları UNO'da 0 1 2 3 pime, düğme kayışını 2 dijital pime sabitledim, ancak değeri UNO'da 6 pimde ve IR sensör kayışını UNO'da 4 5 pimde, Arduino Uno'nun tüm analog girişlerinde ilettim.

Adım 3: Arduino'yu Kodlayın

İşlemin etkili olduğundan emin olmak için sensörlerin Arduino'ya gönderme/alma bilgilerini test ettim.

Dosyaları açıklamaya koydum ama Arduino Genuino programlamasının örnekler bölümünde bulabilirsiniz, IR sensörü tam olmadığı için hariç, "define" bölümünde "shift" gibi bir kaç bilgiyi değiştirdim ve ölçüm hesabını düzenli olarak değiştirdim mesafe varyasyonlarında. Muhtemelen IR sensör kodunda "Tel" görmüşsünüzdür. Aslında ben iletişim kurmak için I2C protokolünü kullandım. Sizi I2C protokolünü görmeye davet ediyorum, çok ilginç, bunu istediğiniz tüm dijital sensörleri gerçek zamanlı olarak iletmek için kullanabilirsiniz.

Adım 4: Hem Arduino Raspberry Seri Haberleşme

Hem Arduino Raspberry Seri Haberleşme
Hem Arduino Raspberry Seri Haberleşme
Hem Arduino Raspberry Seri Haberleşme
Hem Arduino Raspberry Seri Haberleşme

evet:D

İlk resimde gördüğünüz gibi Arduino-Raspberry bağlantısı USB fişidir.

Raspberry PI'de kurulu olan PureData Extented ile sensör bilgilerini doğrudan almanın bir yolunu buldum. Neden PureData Genişletilmiş? Çünkü Vanilla sürümü, Raspbian ortamındaki bir uygulamayla aynı kütüphaneyi kullanmaz.

Bu nedenle, I/O ve değer varyasyonlarını doğru şekilde düzeltmek için Arduino Genuino'da StandardFirmata'yı başlatın!

Raspberry PI'da değer bilgilerini geri almak için 2 protokol bulunmaktadır: Firmata ve Msg.

Firmata'yı bir nedenden dolayı seçtim, PureData'da tek ortam olan patch Pduino ile bilgi almak daha kolaydı.

OSC protokolünü kullanıyorsanız sizi Msg keşfetmeye davet ediyorum.

Adım 5: PureData Yaması Alındı

PureData Yaması Alındı
PureData Yaması Alındı

Gerçekten de, Genuino'da haftalarca kodlama yaptıktan sonra, tüm sensör bilgilerimi tek bir sayfada almayı başardım, bu, Puredata'daki bir yama olan Pduino sayesinde, ekstra bölüm kitaplıkları sayesinde gerçek zamanlı olarak varyasyonları görmeme izin verdi.

Bu adımdan itibaren artık Arduino koduna dokunmuyoruz. Değerin bilgileri okunabilir.

3. adımda fark ettiğim gibi 6 pinli analogda dijital butondan bilgi aldım, iletişimin etkin işleyişini görmek kolaydı. Hepsi bir satırda.

Adım 6: PureData Geliştirme

Geliştirme PureData
Geliştirme PureData
Geliştirme PureData
Geliştirme PureData
Geliştirme PureData
Geliştirme PureData
Geliştirme PureData
Geliştirme PureData

PureData belirli bir dildir ve güzel patchwork yapmayı başarmak için boş zamanınızı harcamanız gerekir.

PureData yamasının bir kısmı GitHub'da mevcut olacak.

Umarım burada yazdıklarım benimkine yakın kendi projenize başlamanıza yardımcı olmuştur.

Önerilen: