Mündəricat:

Arduino İdarəli Zəng Qülləsi/Carillon: 5 addım (şəkillərlə)
Arduino İdarəli Zəng Qülləsi/Carillon: 5 addım (şəkillərlə)

Video: Arduino İdarəli Zəng Qülləsi/Carillon: 5 addım (şəkillərlə)

Video: Arduino İdarəli Zəng Qülləsi/Carillon: 5 addım (şəkillərlə)
Video: Lesson 12: Treasure Hunting using PiCAR-X Robot Car | Raspberry Pi Smart Robot car by SunFounder 2024, Iyul
Anonim
Arduino İdarəli Zəng Qülləsi/Carillon
Arduino İdarəli Zəng Qülləsi/Carillon
Arduino İdarəli Zəng Qülləsi/Carillon
Arduino İdarəli Zəng Qülləsi/Carillon

Solenoidlər tərəfindən idarə olunan və bir Arduino mikro nəzarətçisi tərəfindən idarə olunan bir sıra musiqi zəngləridir. Bir oktavanı əhatə edən 8 zəng var. Zənglər kompüterdən idarə oluna bilər və ya qüllə tək başına dayana bilər və əvvəlcədən proqramlaşdırılmış melodiyalar çalır.

Addım 1: hissələr

Hissələri
Hissələri

Aşağıdakı hissələrdən istifadə edildi: 1 xromatik əl zəngi. Bunları yerli Aldi -dən 20 dollara aldım. C -dən C -yə qədər olan diapazonu əhatə edir. $ 10.8 Solenoidlər zəng vurmaq üçün. Bunları zibil qutumda qoydum. Onları atan bir yazı maşını təmirçisindən aldım. Ebay. Arudino mikro nəzarətçisində oxşar bir şey tapa bilərsiniz. ~ 45 dollar. Arduino üçün xüsusi 'qalxan' etmək üçün SparkFun electronics. Proto/Perf lövhəsi və digər komponentlərindən əldə etdim. $ 10. Darlington sürücü lövhəsi. Ətrafımda olan birini istifadə etdim, amma inanıram ki, ayrı satılmırlar. Bir neçə dollara ULN2803 çipindən istifadə etmək mümkün olmalıdır.

Addım 2: Ağac emalı

Ağac emalı
Ağac emalı

Təəccüblüdür ki, bu addım ən uzun sürdü. Kodlaşdırma və naqillərin yapışqan qurudulmasından daha az vaxt aparırdı. Bunun üçün çərçivə olduqca sadə idi. Bütün zəngləri tutmaq üçün bir parça kontrplak, üstəgəl solenoidlər üçün bir neçə şam mötərizəsi. Hər şey PVA yapışqan ilə yapışdırıldı. Solenoid mötərizələri daha çox təkrar etmək üçün MS Visio -da bir şablon hazırladım və sonra taxta yapışdırdım. Bu, bütün solenoidlərin zəngdən sabit bir məsafədə olmasına çox kömək etdi. Bunu etsəniz, hücumçu yerlərini diqqətlə ölçmək üçün kifayət qədər stress çəkə bilmərəm. Zənglər onları vurduğunuz yerdən və solenoidin atılmasından asılı olaraq tamamilə fərqli səslənir.

Addım 3: Elektronika və Kablolama

Elektronika və naqillər
Elektronika və naqillər

Sürücü tərəfi: Dizaynı çox asanlaşdıran bir darlington sürücüsünə sahib olduğum üçün şanslı oldum. Darlington, kiçik mikrokontrolör pinlərinin normal olaraq dəstəklədiyindən daha ağır yükləri idarə etmək üçün istifadə edə biləcəyiniz bir güc tranzistorudur. İstifadə etdiyim lövhə olduqca yaygın və ucuz olan ULN2803 çipinə əsaslanır. Diqqət edin: Solenoidlər (ümumiyyətlə) daim idarə olunmaq üçün nəzərdə tutulmamışdır! İstəsəniz əriyərlər! Daha çox məlumat üçün proqram bölməsinə baxın. Arduino tərəfi: Bu, Darlington girişlərini idarə etmək üçün arduinodan 8 IO pin tapmaq məsələsi idi. Serial məlumatları göndərmək və almaq istədiyim üçün 0 və 1 sancaqlar istifadə edə bilmədim, buna görə bir tərəfdən 2, 3, 4 və 5 rəqəmlərini, digər tərəfdən isə analog çıxış pinlərindən dördünü rəqəmsal çıxış kimi istifadə edərək başa vurdum.. Həm də tempi idarə etmək üçün istifadə olunan 5 nömrəli analog girişə bağlanan bir potensiometr əlavə etdim. Sürücünün vizual geribildirimi üçün iki LED istifadə olunur. 8-13 pinləri funky arduino pin aralığına görə heç bir fayda vermədi (grr …) Güclə əlaqədar qeydlər: Hərçənd bunu solenoidləri idarə etmək üçün xarici enerji təchizatı istifadə etmək üçün bağlamışam., (Təsadüfən) USB gücünün kifayət qədər olduğunu kəşf etdim. Ani cərəyan pulsunun gərginliyin azalmasına və mikro nəzarətçinin "qəhvəyi" olmasına səbəb olacağından narahat idim, amma bu görünmür. Yürüşünüz fərqli ola bilər. Sadəcə USB gücünü istifadə etmək mənim üçün daha əlverişli olduğu üçün problemim olana qədər bunu etməyə davam edəcəyəm.

Addım 4: Proqram Dizaynı

Proqram Dizaynı
Proqram Dizaynı
Proqram Dizaynı
Proqram Dizaynı

Dizayn strategiyası Bunun məqsədi, zəng qülləsini PC -dən idarə etmək idi. Arduino -nun USBSerial bağlantısı bunu etmək üçün ideal bir yoldur. Protokol sadədir; qeydlərin hamısı ASCII mətn ekvivalentlərindədir. Dəyişən bir gecikmə olaraq bir ədəd də var. PC göndərir: "cde2fgABC" və Arduino 1, 2, 3 zəngləri çalır, yarım nota istirahət edir və sonra 4, 5, 6, 7 və 8. zəngləri çalır. Bu layihə. Arduino Yan Kodu: Arduino kodu, serial məlumatlarını alır, çalmağı qeyd edən və ya gecikdirən kodu açar və sonra solenoidləri uyğun şəkildə dəyişər. Kodunuzun solenoidlərin saxlanılmaması üçün dizayn olunduğundan əmin olun! Yanlışlıkla bir solenoid buraxsanız, əriyər. Bu problemi solenoid söndürülənə qədər blok etməklə həll etdim. Daimi yoxlama və s. PC Yan Kod: Müştəri proqramı C#-də yazılmışdır. Hər bir fərdi not üçün düymələr, həmçinin əvvəlcədən proqramlaşdırılmış melodiyalar üçün düymələr var. Qeyd məlumatları seriya limanına göndərilir. Hər şey üçün mənbə kodu əlavə olunur. Təkmilləşdirmə üçün otaq:

Polifonik notlar

Eyni notların eyni vaxtda çalınması ehtimalını tərk etdim, çünki 1 oktavaya sığa bilən heç bir melodiyanın bunları tələb edəcəyini düşünmədim. Əlavə olaraq birdən çox solenoid qutusu işə salınır

Növbəni öldürmək

Kompüter arduino -ya böyük cümlələr göndərir, sonra növbə boşalana qədər onları emal edir. Ancaq böyük melodiyalar üçün bu yorucu ola bilər və işləyən bir melodiyanı kəsə bilmək arzu oluna bilər. Bu, tamponu silmək üçün bir kod olaraq seriyalı cümlədə başqa bir hərfin (məsələn, 'x') olması ilə edilə bilər.

Addım 5: Bells əməliyyat

Bells əməliyyat
Bells əməliyyat
Bells əməliyyat
Bells əməliyyat

Zəngləri idarə etmək olduqca sadədir. USB kabelini qoşun və kompüter proqramını açın, melodiyanı səsləndirmək üçün fərdi zəng düymələrini vura bilərsiniz. İsteğe bağlı olaraq tərəzilər, əvvəlcədən proqramlaşdırılmış melodiyalar və sərbəst formalı mətn girişi üçün bir mətn qutusu var. İndiyə qədər burada yalnız sadə melodiyalar proqramlaşdırılmışdır: https://blip.tv/file/1521415 (Hər kəs Futurama mövzusunu C oktavadan C -a qədər necə oynayacağını bilirsə, mənə bildirin …)

Tövsiyə: