Mündəricat:

Avtomatik Piano: 5 addım
Avtomatik Piano: 5 addım

Video: Avtomatik Piano: 5 addım

Video: Avtomatik Piano: 5 addım
Video: K's Choice - Not An Addict 2024, Noyabr
Anonim
Avtomatik Piano
Avtomatik Piano

Musiqilərimi anında dinləyib avtomatik oynaya bilən bir piano hazırlamaq istədim, buna görə də yatdığım arduino uno ilə sınadım. Arduino sıfır ilə sadə frekans ölçən kitabxanasını istifadə edərək daha yaxşı ola bilərdi. hazırda və uno ilə davam etdim.

Addım 1: nəzəriyyə

Piano müğənninin tezliyini fortepianoya uyğunlaşdırmaqla çalınır, buna görə də müğənninin tezliyini nümunə götürüb real vaxtda çalmalıyıq. Audio ac və arduino olmadığı üçün trimpotdan bir gərginlik ayırıcı istifadə edirəm. mənfi gərginlikləri idarə edin, buna görə də gərginlik bölücü tərəfindən verilən gərginliyi istinad olaraq istifadə edin və 2,5v -də qurun. Giriş arduino -nun A0 pinində verilir. Arduino -nu gərginliyin istinad səviyyəsində olduğunu yoxlamaq üçün proqramlaşdırdım və mən onu əvvəlcə adlandırdım və sonra ardıcıl istinad gərginliyi arasındakı vaxt aralığını ölçdüm və sonra tezliyi hesabladım. dəyişən, amplitudu 15 adc dəyərindən və ya 0.0733 voltdan aşağı olan səs -küyü aradan qaldırmaq üçün səs siqnalının ani amplitüdünü saxlamaq üçün istifadə olunur. Aşırı dəyərlərin mahnını kəsməməsi üçün tezliyə bir məhdudiyyət qoyulur.

Addım 2: Tələb olunan material

Tələb olunan material
Tələb olunan material
Tələb olunan material
Tələb olunan material
Tələb olunan material
Tələb olunan material

1) Arduino Uno və ya ekvivalenti

2) Passiv piezo elektrik siqnalı və ya gücləndirici dövrəsi olan dinamik

3) Yüksək müqavimətli trimpot (5v -də axan cərəyanın bir neçə millampda kiçik olmasına əmin olun)

4) keçid telləri

5) çörək taxtası

6) 3,5 mm audio jak və ya gücləndirici dövrəsi olan bir mikrofon (mobil qurğunu qurmaq üçün çox tənbəl olduğum üçün gücləndiricim kimi istifadə etdim)

7) Android Telefon (Səs çalmaq üçün)

8) arduino kabeli (Proqramlaşdırmaq üçün)

Addım 3: Bağlantılar

Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr

1) Trimpotu çörək lövhəsinə qoyun və arduino -dan tullanan tellərdən istifadə edərək yerə və +5v verin.

2) Arduino -nun A0 pininə gərginlik bölücü konfiqurasiya və kanal kimi işləmək üçün 3,5 mm jakın torpağını üçüncü trimpot pininə bağlayın.

3) Buzzerin zəminini arduino torpağına bağlayın və arduinonun 13 pininə siqnal verin.

Addım 4: Arduino Kodu

Arduino kodu
Arduino kodu

İşdə tam kod

Test üçün istifadə olunan bəzi seriyalı çap ifadələrini şərh etdim

uint64_t curtime = 0, ltime = 0; uint32_t freq = 0; uint16_t ilkin, val, del = 0; bool sonuncu, cərəyan; void setup () {// bir dəfə işlətmək üçün quraşdırma kodunuzu bura qoyun: gecikmə (1000); /*Serial.begin(115200); gecikmə (1000); Serial.println ("sistem başladı");*/ başlanğıc = analogRead (A0); əgər (analogOxu (A0)

void loop () {// əsas kodunuzu dəfələrlə işə salmaq üçün bura qoyun: val = analogRead (A0); əgər (val> = başlanğıc) Curr = 1; başqa Curr = 0; del = (int) val- (int) başlanğıc; if (son == 0 && Curr == 1) {curtime = micros (); freq = 1000000/(2*(curtime-ltime)); /*Serial.print(freq, DEC); Serial.print ("aşağı"); Serial.println (del);*/ if (freq> 50 && freq15) ton (13, freq, 500); gecikmə (100); ltime = mikrosxemlər (); son = 1; }

Addım 5: Gücləndirin !

Bir az musiqi çalmaq üçün telefonunuzu bağlayın və mahnı oxumaq istəyirsinizsə, play mağazasında yüklənə biləcək bütün alətlər tətbiqindən istifadə edə bilərsiniz.

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

Yüklədikdən sonra mike seçimini açın və mahnı oxuyun!

Budur necə işləyir!

Tövsiyə: