İçindekiler:

Otomatik Piyano: 5 Adım
Otomatik Piyano: 5 Adım

Video: Otomatik Piyano: 5 Adım

Video: Otomatik Piyano: 5 Adım
Video: ASLIHAN ERKISI ILE PIANO DERSLERI 5 2024, Kasım
Anonim
Otomatik Piyano
Otomatik Piyano

Müziğimi anında dinleyerek otomatik olarak çalabilen bir piyano yapmak istedim. Bu yüzden etrafta yattığım arduino uno ile denedim. Basit frekans ölçer kütüphanesini kullanarak arduino sıfır ile çok daha iyi olabilirdi ii yoktu şu anda ve uno ile devam ettim.

1. Adım: Teori

Piyano, şarkıcının frekansını piyano ile eşleştirerek çalınır. bu yüzden şarkıcının frekansını örneklememiz ve gerçek zamanlı olarak çalmamız gerekiyor. Ses ac olduğu ve arduino yapamayacağı için bir trimpottan voltaj bölücü kullanıyorum. negatif voltajları ele alın, bu nedenle voltaj bölücü tarafından sağlanan voltajı referans olarak kullanın ve 2,5v'ye ayarlayın. Giriş, arduino'nun A0 pininde sağlanır. Daha sonra arduino'yu, voltajın ölçtüğüm ve ilk olarak adlandırdığım referans seviyesinde olup olmadığını kontrol etmesi için programladım ve ardından ardışık referans voltajı arasındaki zaman aralığını ölçtüm ve ardından frekansı hesapladım. 15 adc değerinden veya 0,0733 volttan küçük genliğe sahip gürültüyü ortadan kaldırmak için ses sinyalinin anlık genliğini depolamak için değişken kullanılır. Aşırı değerlerin şarkıyı kesintiye uğratmaması için frekansa bir sınır konur.

Adım 2: Gerekli Malzeme

Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme

1)Arduino Uno veya eşdeğeri

2) Pasif piezo elektrikli buzzer veya amplifikatör devreli bir hoparlör

3) Yüksek dirençli trimpot (5v'de içinden geçen akımın birkaç miliamperde küçük olmasına dikkat edin)

4) atlama telleri

5) ekmek tahtası

6)3,5 mm ses jakı veya amplifikatör devreli bir mikrofon (Kendimi bir tane oluşturmak için çok tembel bulduğum için cep telefonumu amplifikatör olarak kullandım)

7) Android Telefon (Ses çalmak için)

8) arduino kablosu (Programlamak için)

3. Adım: Bağlantılar

Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar

1) Trimpot'u ekmek tahtasına monte edin ve jumper kabloları kullanarak topraklama ve arduino'dan +5v sağlayın.

2) Voltaj bölücü konfigürasyonu olarak çalışmak ve arduino'nun A0 pinine kanal olarak çalışmak için 3.5mm jakının toprağını trimpotun üçüncü pinine bağlayın.

3) Buzzer'ın toprağını arduino'nun toprağına bağlayın ve arduino'nun 13 numaralı pinine sinyal verin.

Adım 4: Arduino Kodu

Arduino Kodu
Arduino Kodu

İşte tam kod

Test için kullanılan bazı seri baskı ifadelerini yorumladım

uint64_t curtime=0, ltime=0;uint32_t frekans=0; uint16_t başlangıç, val, del=0; bool son, curr; void setup() { // bir kez çalıştırmak için kurulum kodunuzu buraya koyun: delay(1000); /*Serial.begin(115200); gecikme(1000); Serial.println("sistem başladı");*/başlangıç = analogRead(A0); if(analogOkuma(A0)

void loop() { // tekrar tekrar çalıştırmak için ana kodunuzu buraya koyun: val=analogRead(A0); if(val>=initial)curr=1; aksi takdirde curr=0; del=(int)val-(int)ilk; if(last==0 && curr==1){ curtime=micros(); freq=1000000/(2*(curtime-ltime)); /*Serial.print(frek, DEC); Serial.print("aşağı"); Serial.println(del);*/ if(freq>50&&freq15)tone(13, freq, 500); gecikme(100); ltime=micros(); son=1; }

Adım 5: Güç Ver!!

Biraz müzik çalmak için telefonunuzu bağlayın ve şarkı söylemek istiyorsanız Play Store'dan indirebileceğiniz tüm araçlar uygulamasını kullanabilirsiniz. İşte link

play.google.com/store/apps/details?id=com.pradhyu.alltoolseveryutility&hl=tr

İndirdikten sonra mikrofon seçeneğini açın ve şarkı söyleyin!

İşte nasıl çalıştığı!

Önerilen: