İçindekiler:

Sinestezi Çalan Piyano: 4 Adım
Sinestezi Çalan Piyano: 4 Adım

Video: Sinestezi Çalan Piyano: 4 Adım

Video: Sinestezi Çalan Piyano: 4 Adım
Video: Mozart Çalan Buğra 2024, Temmuz
Anonim
Image
Image
Sinestezi Çalan Piyano
Sinestezi Çalan Piyano
Sinestezi Çalan Piyano
Sinestezi Çalan Piyano

Bu oyuncu piyano, bir renk tekerleği ve bir kamera kullanarak müzik çalar! Görüntüler kamera tarafından yakalanır, işlenir ve nota olarak yorumlanır. Şu anda hangi notaların çalınacağını belirten yeni bir arduino taslağı yükleyerek değiştirilebilen tekerlemeleri çalmak üzere programlanmıştır (Kameraya hangi renklerin gösterilmesi gerekir).

Yerleşik Linux PC, açılışta bir kamerayla resim çeken, görüntüdeki RGB değerlerinin bir işlevini hesaplayan ve işlevin dönüş değerine dayalı olarak bir ses çıkaran bir hizmeti başlatır. Sesi çalmadan önce Arduino'ya bir servoyu döndürmesini söyleyen bir sinyal gönderir ve çalınacak bir sonraki notaya karşılık gelen rengi sunar. Sonra döngü yeniden başlar, bir resim çekilir, renk çarkı döndürülür ve sonsuza kadar bir ses çalınır.

Bu proje müziği, modern Linux sistem programlamasını, mikro denetleyici programlamayı, inkscape karalamalarını, lazerle kesmeyi ve bazı önemsiz karton kutuları yeniden tasarlamanın eğlenceli bir yoludur.

Tüm kod ve inkscape SVG'leri github'da şu adreste mevcuttur:

github.com/melvyniandrag/pyMusic

Kullanılan malzemeler:

  1. Boş beyaz etiketler
  2. Karton kutu
  3. Web kamerası
  4. Pastel boya
  5. Arduino
  6. Beagleboard-xM
  7. teller
  8. Seri Kablo
  9. Temel görüntü işleme ve müzik bilgisi

1. Adım: Bilgisayar Öğeleri

Bilgisayar Eşyaları
Bilgisayar Eşyaları
Bilgisayar Eşyaları
Bilgisayar Eşyaları
Bilgisayar Eşyaları
Bilgisayar Eşyaları

Yerleşik, Raspberry Pi gibi küçük bir Linux özellikli bilgisayara ihtiyacınız olacak. Eski bir BeagleBoard-xM kullandım çünkü tesadüfen ortalıkta duruyor ve SD kartta zaten bir işletim sistemim vardı. Bir web kamerasını işleyebildiği, OpenCV'yi (renk çarkının görüntülerini almak ve işlemek için kullanılan bilgisayar görüş kitaplığı) çalıştırabildiği ve bir ses çıkış jakına sahip olduğu sürece her şeyi kullanabilirsiniz.

Bir systemd öğreticisinin ardından açılışta görüntüleri yakalayan python kodunu çalıştırmak için işletim sistemini kurdum. Komut dosyasının çalışması için belirtilen kitaplıkları almak üzere sudo apt-get install python-pyaudio python-opencv'yi kullanmanız gerekir. Ayrıca bu kitaplıkları almak için pip install numpy pyserial'a ihtiyacınız olacak. pyaudio sesleri çalmak için kullanılır, opencv görüntü alma ve işleme için kullanılır, numpy ayrıca görüntü işleme için kullanılır ve Arduino ile iletişim için pyserial gereklidir.

Arduino, renk çarkının monte edildiği servo motoru döndürmek için kullanılır. Ahududu Pi'niz varsa, oradaki GPIO pinlerini kullanabilir ve Arduino'yu dışarıda bırakabilirsiniz, ancak Python kodunu değiştirmeniz gerekir.

Görsellerde operasyonun teknolojik cesaretini ve birkaç kod parçasını görebilirsiniz.

2. Adım: Piyano

Piyano
Piyano
Piyano
Piyano
Piyano
Piyano

Piyanoyu eski kutulardan kartondan yaptım. Lazer kesicisi olan bir imalat alanının yakınında yaşama şansına sahibim. Bir yıl boyunca lazer kesiciyi ne için ister diye merak ettim ve sonunda bunun için bir kullanım buldum.

Bilgisayarı, arduinoyu ve servoyu ölçtüm, böylece ne kadar alana ihtiyacım olduğunu anladım, piyanonun parçalarını inkscape'de çizdim ve lazer kesicide kestim. (Düzenleme: Bilgisayarı ve arduinoyu kasaya sığdırmak için kartonum bitti ve bu yüzden onları koymadım. Kasanın dışındalar. Fark etmez, bir yerden başka bir kutu alabilirdim, ama olmadı Sonunda önemli değil.)

Parçalar epoksi ile birleştirildi.

Adım 3: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

İşte bir araya getirilen ve renklendirilen piyanonun bazı görüntüleri. Yazıcının mürekkebi bitmişti, bu yüzden renkleri planladığım gibi beyaz etiketlere yazdıramadım. Bu yüzden kızımın boya kalemlerini kullandım. Ve etiketi karton şeklinde kesmek için bir xacto bıçağı bulamadım, bu yüzden biftek bıçağı kullandım ve mutfak tezgahına koruyucu bir şey koydum. Elindekini kullan!

4. Adım: Teknik Zorluklar ve Gelecekteki Hususlar

Teknik Zorluklar ve Geleceğe Yönelik Hususlar
Teknik Zorluklar ve Geleceğe Yönelik Hususlar
Teknik Zorluklar ve Geleceğe Yönelik Hususlar
Teknik Zorluklar ve Geleceğe Yönelik Hususlar

Bu projenin zorlu bir kısmı, kamera tarafından okunacak uygun RGB değerlerini elde etmekti. Sahip olduğum web kamerasında, Linux'ta nasıl kapatılacağını bilmediğim inanılmaz derecede parlak LED'ler var. Bunları açıp kapatmanıza izin veren bir Windows sürücüsü olduğunu düşünüyorum. LED'leri elektrik bandıyla bantlayıp açık bırakmayı denedim. Ayrıca yazılımı sadece renkli kağıt göstererek değil, aynı zamanda renkleri gösteren küçük bir web sitesi yazarak sağlamlık açısından test ettim.

Bilgisayarın ürettiği seslerde bazen çıtırtılar ve cızırtılar oluyor ve bu, Linux ses programlama konusunda çok az deneyime sahip olmamdan kaynaklanıyor. Pyaudio kitaplığı, JACK'in PC'ye kurulmadığına dair bir sürü şikayet yayıyor, ancak varsayılan olarak JACK, (bir gui masaüstü ve monitör olmadan) başsız çalışmak istemiyor. Bu, bir iyileştirme olduğunu düşündüğüm bir programlama göreviydi, ancak aklımdaki piyano çaların özünü ifade etmek için gerekli değildi.

Renkleri değiştirmek için bir el çarkı kullanmayı ve belki de onları oklava gibi bir şeye takmayı düşünmüştüm, ama bu da kendi komplikasyonlarını beraberinde getiriyor. Servo biraz gürültülü ama şimdilik iyi çalışıyor.

Piyano çalar şu anda yalnızca 4 nota çalmak üzere programlanmıştır. Bunun nedeni, servonun yalnızca 180 derece hareket etmesi, çoğu tekerlemelerin yalnızca 3-4 nota ile çalınabilmesi ve renk çarkının renk bölgeleriyle darmadağın olmasını, muhtemelen kameranın kafasını karıştırmasını istemedim. Müzikal şans ve teknik kısıtlamaların bir kombinasyonu ile 4 nota iyidir.

Önerilen: