Arduino ile Piyano Yapımı

arduino ile piyano yapımı

arduino ile piyano yapımı

Bu projemizde Arduino kullanarak piyano kuracağız. Küçük ama eğlenceli olan bu projede 8 adet buton kullanarak  notalar oluşturup kayıt özelliği sayesinde oluşturduğumuz müzikleri dinlememizi ve gerektiğinde tekrar tekrar çalmamızı sağlayacak. Ayrıntılar için BUYRUN DEVAM EDELİM…;)

Gerekli Malzemeler

Arduino Uno

16*2 LCD Ekran

Buzzer

Trimmer 10 dk

SPDT switch

Push Button (8 adet)

Dirençler (10k,560R,1,5k,2,6k,3,9,5,6k,6,8k,8,2k,10k)

Breadboard

Kablo

Muhtelif proje malzemeleri

Arduino Piyano Devre Şeması

Board üzreine kurulacak devrenin fritzing devre şeması aşağıda gösterilmiştir.

arduino ile piyano yapımı

arduino ile piyano yapımı

Sadece devre şemasını takip ederek board üzerine yukarıdaki devreyi kurabilirsiniz.

arduino ile piyano yapımı

arduino ile piyano yapımı

Direnç değerleri soldan başlayarak sırasıyla, 10k,560R,1,5k,2,6k,3,9,5,6k,6,8k,8,2k ve 10k’dır. DPST anahtarın aynısına sahip değilseniz, yukarıdaki sevre şemasında gösterildiği gibi normal geçiş anahtarı kullanabilirsiniz.

arduino ile piyano yapımı

arduino ile piyano yapımı

8 butonu arduino’ya Analog A0 pini üzerinden bağlantısını yaptık. Arayüz için LCD ekranımız var.  Analog pin üzerinden devreyi tamamlamak değişken direnç değerlerine sahip potansiyel bir bölücü oluşturuyoruz. Bu şekilde her düğmeye basıldığında Analog pin’e farklı bir analog voltaj verilir. Sadece iki dirençli ve iki basmalı düğmeli bir örnek devre aşağıda gösterilmiştir.

arduino ile piyano yapımı

arduino ile piyano yapımı

Butonlara basılmadığı zaman ADC pini +5v değerini alır. Birinci butona basılınca potansiyel bölücü 560R direncinden geçer. İkinci düğmeye basıldığında 1,5k direnç üzerinden geçer.Bu şekilde ADC pimi tarafından alınan voltaj, potansiyel bölenin formüllerine bağlı olarak değişecektir.

Bunun dışında tüm bağlantılar LCD 8,9,10,11 ve 12 pinlerine bağlanır. Sesli uyarı pimi / nolu pine ve SPDT anahtarı 6 nolu pine bağlanır.Projeyi bilgisayar usb portu ile veya DC jack üzerinden 9V veya 12V besleme bağlayabilirsiniz.

Arduino ‘nun Tone () İşlevi

Arduino, sesli uyarı kullanarak farklı sesler üretmek için kullanılabilecek çeşitli frekans sinyalleri üretmek için bir tone () fonksiyonuna sahiptir. Toen () işlevi belirli bir pimde belirli bir frekans üretir. Gerekirse zaman süresi de belirtebilir:

Pin değerleri dijital pinlerden herhangi biri olabilir. Burada 8 numaralı pini kullandık. Üretilecek frekans Arduino kartınızdaki zamanlayıcının büyüklüğüne bağlıdır. Genel olarak Arduino kartlarda üretilebilecek min frekans 31 Hz’dir ve üretilebilecek max frekans 65535 Hz’dir. Ancak biz insanlar sadece 2000Hz ve 5000 Hz arasındaki frekansları duyabiliriz.

Arduino’da Piyano Tonları Çalmak

Arduino’da belirli bir notanın seslerini çalmak için Brett Hagman tarafından yazılan pitches.h adlı bir kütüphane var. Bu kütüphane hangi frekansın piyanoda hangi notaya eşdeğer olduğu hakkında tüm bilgileri içerir.

Bu projede seçilen notalar sırasıyla, 1 ile 8 arasındaki düğmeler kullanılarak çalınabilen C4,D4,E4,F4,G4,A4,B4 VE C5 notalarıdır.

Arduino Programlama

Arduino programımızda, A0 pininden analog voltajı okumalı, ardından hangi tuşa basıldığını tahmin etmeli ve bu tuş için ilgili tonu çalmalıyız. Bunu yaparken de kullanıcının hangi tuşa bastığını ve ne kadar süre bastığını kaydetmeliyiz, böylece daha sonra kullanıcının çaldığı sesi yeniden oluşturabiliriz.

Mantık bölmüne geçmeden önce çalacağımız 8 notayı tanımlıyoruz. Notalar için ilgili frekans daha sonra pitches.h kütüphanesinden alınıp bir dizi oluşturulur. Burada C4 notasının çalma frekansı 262’dir.

Şimdi de LCD ekranın hangi pinlere bağlı olduğunu belirtiyoruz.

Sırada kurulum fonksiyonumuzda hata ayıklama için sadece LCD modülünü ve seri monitörü başlatıyoruz. Bir giriş mesajı gösterip işlerin yolunda gittiğinden emin oluyoruz. Ana döngü içinde iki adet döngü mevcut. İlk döngü SPDT anahtarı kayıt yaptığı sürece döner. Kayıt modunda, kullanıcı çalma ve kaydetme yapabilir.

Detect_button () işlevi kullanıcının hangi düğmeye bastığını, Play_tone () fonksiyonu ise butonun ne kadar süre basıldığını kayıt eder.

Detect_button () işlevi içinde, A0 pininden gelen analog voltajı okuyoruz ve hangi düğmeye basıldığını bulmak için önceden tanımlanmış bazı değerler ile karşılaştırıyoruz. Değer, seri monitör kullanarak belirlenebilir.

Bu işlev içinde düğmelerin basıldığı diziyi de kaydediyoruz. Kaydedilen değerle, saved_button [] dizininde saklıyoruz. İlk önce yeni bir tuşa basılıp basılmadığını kontrol ederiz, eğer basılırsa, 0 (sıfır) tuşu olup olmadığını kontrol ederiz. Burada 0 (sıfır) butonu hiçbir şey değildir yani butona basılmamıştır. if döngüsünün içinde, button_index değişkeninin verdiği index lokasyonundaki değeri saklarız ve aynı zamanda bu index değerini artırırız, böylece aynı yere yazmayız.

Play_tone() fonksiyonu basılı buton için tonu çalacak. İçinde butona basıldığı zamanı kaydedeceğimiz saved_time[] dizisi kullanacağız. Butona ne kadar süre basıldığını belirlemek için millis() işlevini kullanıyoruz. Ayrıca değişkenin boyutunu azaltmak için değeri 10’a böleriz.

Son olarak kullanıcı, kayıttan sonra sesi çalmak için SPDT’yi diğer yöne çevirmelidir. Bu yapıldığında program önceki while döngüsünden ayrılır ve daha önce kaydedilmiş olan bir süre boyunca basılan butonların sırasındaki notaları oynattığımız ikinci döngüsüne girer.

Oynat,Kaydet ve Tekrarla

Devre şemasına göre montaj işlemini yapıp kodu yüklüyoruz. SPDT’yi kayıt moduna getirip seçtiğimiz ses tonlarını çalıyoruz. Her butona basıldığında farklı bir ton çalacaktır. Bu modda LCD ekranda “Recording…” görüntülenir ve ikinci satırda aşağıda gösterildiği gibi şu anda basılı olan notanın adını görürsünüz.

arduino ile piyano yapımı

arduino ile piyano yapımı

Nota çalma işlemi yaptıktan sonra SPDT butonunu diğer tarafa çeviridğimizde LCD ekranda “Now Playing…” görüntülenir ve daha sonra çaldığınız sesi çalmaya başlar.

arduino ile piyano yapımı

arduino ile piyano yapımı

Projenin tam çalışması aşağıda verilen videoda bulunabilir. Umarım projeyi anlar ve yapmaktan zevk alırsınız.

Arduino ile Piyano Proje Yapım Kodu

VİDEO


 

 

Posted in Arduino Projeleri, Elektrik-Elektronik, Fen ve Teknoloji, Genel, Müzik, Teknoloji ve Tasarım, Video Anlatımlı Elektrik-Elektronik Projeleri, Video Anlatımlı Müzik Uygulamaları, Video Anlatımlı Projeler, Video Anlatımlı Teknoloji ve Tasarım Dersi Projeleri, Yapım Kuşağı and tagged , , , , , , , , , .

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir