Mündəricat:

Arduino ilə Retro Səs Çipi - SAA1099: 16 Addım (Şəkillərlə birlikdə)
Arduino ilə Retro Səs Çipi - SAA1099: 16 Addım (Şəkillərlə birlikdə)

Video: Arduino ilə Retro Səs Çipi - SAA1099: 16 Addım (Şəkillərlə birlikdə)

Video: Arduino ilə Retro Səs Çipi - SAA1099: 16 Addım (Şəkillərlə birlikdə)
Video: How Sensors & Analog To Digital Converters (ADC) Are Digitizing The World 2024, Noyabr
Anonim
Image
Image
Kablolama - SAA1099
Kablolama - SAA1099

Bu təlimatlı kitabda, midi fayllarını kvadrat dalğalı yaxşılıqda çalmaq üçün üzüm səs sintezi çipi ilə bir Arduino Uno'dan necə istifadə edəcəyinizi sizə göstərəcəyəm!

Bu layihənin nə etdiyinə qısa bir nəzər salmaq istəyirsinizsə, yuxarıdakı videoya baxın. Əks təqdirdə, davam edin!

Addım 1: Video

Image
Image

Bütün təlimatlarınızı aydın və qısa videolarda istəsəniz, sizi əhatə edəcəyik!

Qalanlarımız üçün bir az daha ətraflı və yazılı təlimatlara davam edə bilərsiniz.

Addım 2: hissələr və materiallar

Bunun üçün aşağıdakılara ehtiyacınız olacaq:

(Bağlantılar eBay məhsulları üçündür)

  • Bir Arduino (Uno, Nano, Leonardo, hamısı işləməlidir)
  • Ən azından orta ölçülü çörək taxtası
  • SAA1099 Stereo Səs Generator çipi
  • Çörək taxtası tullanan telləri (Alternativ olaraq, hər iki ucuna 20 mm başlıq sancaqları daxil edilmiş dupont dişi qadın atlayıcılardan istifadə etməyi xoşlayıram- Çox möhkəm)
  • 8Mhz TTL Osilatörü (AliExpress bağlantısı zweigelt tərəfindən təmin edilir)
  • Stereo (və ya mono) Audio Jack
  • 2 x 1K rezistor (100 lot)
  • 1 x 10K rezistor (50 lot)
  • 2 x 100pF kondansatörler
  • (İsteğe bağlı) Bəzi LEDlər, ən azı 1 (İstənilən rəng, burada bir dollar üçün 100 müxtəlif rəng var!)

Təqdim olunan bağlantıları istifadə edərək, göndərmə daxil olmaqla ümumi dəyəri 23,25 dollardır. Əlbəttə ki, əksəriyyəti dünyanın yarısından gəlir, buna görə göndərmə ümumiyyətlə bir ay çəkir. Daha sürətli çatdırılma istəyirsinizsə, bir az daha çox ödəməli olacaqsınız.

Addım 3: Kablolama - SAA1099

Kablolama - SAA1099
Kablolama - SAA1099
Kablolama - SAA1099
Kablolama - SAA1099

Sxemalar sizin işinizdirsə, budur! Qalanlarımız ya addım -addım keçə bilərik, ya da videoya baxa bilərik.

  • SAA1099 -u çipdəki çentik ucuna baxaraq çörək taxtasının sonuna yerləşdirin.
  • İndi güc. SAA1099 -dakı VDD (pin 18) gücə keçir, sonra VSS -i (pin 9) yerə bağlayır.
  • Sonra, aşağı çəkilməməsi üçün CS (pin 2) ilə torpaq arasına bir tel qoyun

Əlavə etdiyim məlumat cədvəlinə də baxmağı məsləhət görürəm.

Addım 4: Kablolama - TTL Osilatoru

Kablolama - TTL Osilatoru
Kablolama - TTL Osilatoru
Kablolama - TTL Osilatoru
Kablolama - TTL Osilatoru
  • TTL Osilatorunu çörək taxtasının yanındakı çörək taxtasına qoyacağıq ki, saat çıxış pimi SAA1099 (Pin 8) üzərindəki saat girişinə ən yaxın olsun.
  • Gedə bilərsiniz və gücü və zəmini TTL osilatoruna qoşa bilərsiniz. (Videomda daha sonra gözlədim, buna görə də şəklim yoxdur). Yuxarıdakı şəkil hansı sancaqlar olduğunu göstərir.

Addım 5: Kablolama - İrf və Çip İnterfeysi

Kablolama - İrf və Çip İnterfeysi
Kablolama - İrf və Çip İnterfeysi
Kablolama - İrf və Çip İnterfeysi
Kablolama - İrf və Çip İnterfeysi
  • 10K rezistoru Iref (pin 6) və 5V arasına bağlayın.
  • SAA1099 -da rəqəmsal pin 8 -i WR -ə (pin 1) qoşun.
  • Rəqəmsal pin 9 -u SAA1099 -da A0 -a (pin 3) qoşun.

Addım 6: Kablolama - Səs Komponentləri

Kablolama - Səs Komponentləri
Kablolama - Səs Komponentləri
Kablolama - Səs Komponentləri
Kablolama - Səs Komponentləri
Kablolama - Səs Komponentləri
Kablolama - Səs Komponentləri
  • OUTR (pin 4) və GND arasında 100pF kondansatör bağlayın
  • OUTR (pin 4) və 5V arasında 1K rezistor bağlayın
  • Eyni şeyi OUTL üçün edəcəyik (pin 5)
  • OUTL (pin 5) və GND arasında 100pF kondansatör bağlayın
  • OUTL (pin 5) və 5V arasında 1K rezistor bağlayın

Qeyd! Rezistorlardan/kondansatörlərdən olan tellərin heç birinə toxunmadığından əmin olun, əks halda əşyalar işləməyəcək və (müvəqqəti olaraq) potensial olaraq üzünüzdə partlaya bilər.

Addım 7: Kablolama - Audio Jack

Kabel - Audio Jack
Kabel - Audio Jack
Kabel - Audio Jack
Kabel - Audio Jack
Kabel - Audio Jack
Kabel - Audio Jack
  • Çörək taxtasındakı boş bir sıra ilə 5V arasında kiçik bir tullanan tel bağlayın.
  • Səs yuvanızı 5V -dən olan tullananların Audio Jakdakı "Sleeve" pininə qoşulması üçün yerləşdirin
  • L və R (Ya da Mono jakınız varsa, audio pimi) SAA1099 -dakı OUTL (pin 5) və OUTR (pin 4) pinlərinə qoşun.

Qeyd! Mono audio jaklarda, bir pin 5V -ə, biri isə OUTL və ya OUTR -ə qoşulduqca, nəyin getməsinin əhəmiyyəti yoxdur. Yaxşı səslənəcək. Əks təqdirdə, kabelinizi yenidən yoxlamaq istəyə bilərsiniz.

Addım 8: Kablolama - Breadboard -a güc

Kablolama - Çörək lövhəsinə güc
Kablolama - Çörək lövhəsinə güc
Kablolama - Çörək lövhəsinə güc
Kablolama - Çörək lövhəsinə güc
  • Breadboard elektrik avtobusunun hər iki tərəfini tullanan tellərdən istifadə edərək bir -birinə bağlayın.
  • Bir tərəfi Arduino üzərindəki 5V və GND pinlərinə bağlayın, telləri heç bir yerə qarışdırmadığınızdan əmin olun. Bunu etsəniz, sehrli tüstü qaça bilər.

Addım 9: Kablolama - Məlumat Xətləri

Kablolama - Məlumat Xətləri
Kablolama - Məlumat Xətləri

Arduino -dakı D0 -dan D7 -yə, SAA1099 -da D0 -dan (pin 10) D7 -ə (pin 17) qoşun

Tapıram ki, hər iki ucunda 15-20MM başlıq pinləri olan DuPont qadın-qadın tullanan telləri, kişi-dupont tellərindən daha yaxşı işləyir. Üstəlik bunları qadın-qadın və ya kişi-qadın olaraq da istifadə edə bilərsiniz. Hər ikisi də az miqdarda dəyişiklik üçün eBay -də çox miqdarda asanlıqla tapılır. Arduino meraklısı üçün yaxşı bir Milad hədiyyəsi!

Addım 10: İsteğe bağlı LED (lər)

İsteğe bağlı LED (lər)
İsteğe bağlı LED (lər)
İsteğe bağlı LED (lər)
İsteğe bağlı LED (lər)

Burada hər şeyi necə quracağımı addım -addım izah etməyəcəyəm, amma LED əlavə etmək üçün bir neçə yaxşı yer var. Hər şeydən əvvəl, Arduino SAA1099 -a hər dəfə bir əmr göndərdiyini göstərmək üçün WR (pin 1) və GND arasında 3 mm qırmızı LED bağladım.

LEDləri əvvəllər məlumat xətlərinə bağladım ki, bu da hər bir xətt üzrə faktiki ikili məlumatları görməyə imkan verir. Bu quruluşu "Arduino və SAA1099 - Atəşböcəkləri" videomda, daha çox 6 LED və aktiv olan hər bir kanal üçün hər LED -i yandırmaq üçün əlavə koddan istifadə etdim.

Daha çox LED, daha soyuq görünür!

Addım 11: Kod

Kod!
Kod!
Kod!
Kod!

İndi dövrə qurduqdan sonra əlaqələri iki dəfə yoxlayın! Bahalı arduino və Soundchipinizi partlatmaq istəmirsiniz! (Əgər etsəniz, yaxşı. Bu mənim işim deyil)

Ağlı başında olduğunuzu və hər şeyi yoxladığınızı düşünsək, onu proqramlaşdırmağa başlaya bilərik.

  • Kitabxana https://github.com/Bobcatmodder/SAATunes ünvanındadır
  • SAATunes.zip faylını istəyəcəksiniz, buna görə davam edin və yükləyin.
  • İndi Arduino IDE -ni açın.
  • "Eskiz", "Kitabxana daxil et" bölməsində ".zip kitabxana əlavə et" düyməsini basın
  • SAATunes kitabxanasını yüklədiyiniz yerə gedin. (Masaüstünüz, yükləmələriniz və ya (utandırıcı bir şey daxil edin) qovluğu olub-olmaması mənə maraqlı deyil- Sadəcə tapın)
  • Bunu seçin və "Aç" düyməsini basın
  • Kitabxanalarınıza əlavə olunduğunu söyləməlidir.

Addım 12: Test edin

Test edin!
Test edin!
Test edin!
Test edin!
  • "Fayl", "Nümunələr", "SAATunes", "SAATunes-Uno" altında SAATunes proqram nümunəsini açın.
  • Arduino -nuzu kompüterə və bir növ dinamikə qoşun.
  • Proqramı Arduinoya yükləyin.

Bir akkord eşitməlisiniz, sonra itirilmiş bir qəpiyə görə Bethovenin qəzəbi. Klassik sizin işiniz deyilsə, qorxmayın, çünki qısa zamanda özümüz seçdiyimiz MIDI fayllarını necə istifadə edəcəyimizi öyrənəcəyik.

Heç nə eşitmirsinizsə, bir neçə şeyi yoxlayın: Birincisi, dinamikiniz aktivdirmi? Tamamilə yuxarıya çevirin. Bəs arduino həqiqətən aktivdirmi? Proqram düzgün yükləndi? Şematik və məlumat cədvəli ilə bütün naqilləri yoxlayın, sonra yenidən cəhd edin.

Addım 13: Öz MIDI Dosyalarınızdan istifadə - Dönüşüm Proqramı

Öz MIDI Dosyalarınızdan istifadə - Dönüşüm Proqramı
Öz MIDI Dosyalarınızdan istifadə - Dönüşüm Proqramı

Bethovendən başqa bir şey sınamağa hazırsınızmı? Çox yaxşı, bura get.

MIDI fayllarını C ++ Bytestreams -ə çevirmək üçün Len Shustek proqramına ehtiyacımız var. Kodumu əsaslandırdığım kitabxananın yaradıcısıdır və kitabxanam onun etdiyi baytest formatını istifadə edir.

  • Proqramı https://github.com/LenShustek/miditones ünvanında tapa bilərsiniz
  • İstədiyiniz proqram "miditones.exe" dir. Davam edin və yükləyin.

Addım 14: MIDI fayllarını çevirmək

MIDI fayllarını çevirmək
MIDI fayllarını çevirmək
MIDI fayllarını çevirmək
MIDI fayllarını çevirmək
MIDI fayllarını çevirmək
MIDI fayllarını çevirmək

Xəbərdarlıq! Burada ascii əjdahalar var! Nə danışdığımı dəqiq görə biləcəyiniz videoya baxmaq daha asan ola bilər. Daxil etməyə cürət edirsinizsə, davam edin!

MIDI -dən Bytestream -ə çevrilmə proqramından istifadə etmək üçün bir əmr istəyi pəncərəsi açmalısınız. Üzr istəyirik Mac və Linux istifadəçiləri, bir həll yolu tapa bilərsiniz.

  • Başlat menyusunu açın və "CMD" yazın, sonra enter düyməsini basın.
  • İndi kiçik bir MS-DOS sehrini öyrənəcəyik. "CD" əmrindən istifadə edərək "miditones.exe" faylını yüklədiyiniz yerə gedin. Əksər hallarda əmrlər "CD yükləmələri" olacaq.
  • "Miditones.exe" proqramını "miditones" yazaraq işə salın. Ən çox görülən əmrləri göstərən bir kömək siyahısı göstərməlidir.

İndi çevirmək üçün bir MIDI faylına ehtiyacımız var. İnterwebs -də bir yerdə tapın, tercihen zərb və ya göstərişlər/sürətdən başqa xüsusi effektlər olmadan. (Bunların nə olduğunu bilmirsinizsə, narahat olmayın, yaxşı olacaqsınız)

  • MIDI faylınızı "miditones" proqramına sahib olduğunuz yerə endirin.
  • İndi əmr istəyi pəncərəsindən istifadə edərək "miditones -d -v [fayl adı]" yazın ([fayl adını] MIDI faylınızın adı nə olursa olsun dəyişdirin).
  • miditones, MIDI faylı ilə eyni adda eyni qovluqdakı C ++ bytestream ilə bir. C faylı yaradacaq.

Addım 15: Dönüştürülmüş MIDI faylınızı istifadə edin

Dönüştürülmüş MIDI faylınızı istifadə edin
Dönüştürülmüş MIDI faylınızı istifadə edin
Dönüştürülmüş MIDI faylınızı istifadə edin
Dönüştürülmüş MIDI faylınızı istifadə edin
Dönüştürülmüş MIDI faylınızı istifadə edin
Dönüştürülmüş MIDI faylınızı istifadə edin

İndi MIDI faylınızı çevirdiniz, onu kiçik baytlarla arduinoya verək!

  • SAATunes-Uno nümunənizin artıq açıq olduğunu düşünürsünüzsə, davam edək və başqa bir şeyi "kimi qeyd edək", buna görə də redaktə edə bilərik.
  • Yadda saxladıqdan sonra sağ üst küncdəki kiçik "aşağı ox" simgesini basın.
  • "Yeni sekme" düyməsini basın və "[ad].h" adlandırın ([ad] ı MIDI mahnınızın adı ilə və ya istədiyiniz hər hansı bir şeylə əvəz edin)
  • İndi daha əvvəl yaranan orta tonların. C faylını açın. Notepaddan istifadə edərək onu aça bilərsiniz.
  • Hər şeyi seçmək üçün CNTRL/A istifadə edin və sonra kopyalayın.
  • Arduino redaktorunda yeni "[ad].h" sekmesine yapışdırın.

Burada hər şey yaxşıdır, buna görə proqrama qayıdaq.

  • "#İnclude" RagePenny.h "" yazdığı yeri tapın və aşağıda yeni bir sətrə kopyalayın/yapışdırın.
  • "RagePenny.h" ni yeni faylınıza nə adlandırdığınıza dəyişdirin.
  • İndi "#include" RagePenny.h "" şərhini, qarşısına iki irəli kəsik (//) əlavə edərək şərh edin.
  • Proqramı yükləyin!

Hər şey yaxşı gedirsə, öz MIDI faylınızı çalmalısınız. Əks təqdirdə, yeni nişanın adlarının və "#RagePenny.h" daxil etdiyiniz adın eyni olduğundan əmin olmaq üçün yenidən yoxlayın. Digər addımları yoxlayın və hər şeyi düzgün etdiyinizə əmin olun. Bəzi MIDI faylları işləmir, lakin bunlar nadirdir.

Addım 16: Fin

Fin!
Fin!

İnşallah hər şey sizinlə yaxşı keçdi və yeni bir həyat verilmiş qədim bir texnologiya parçasındakı MIDI fayllarını sıxışdırırsınız!

Ancaq, əgər deyilsinizsə, imtina etməyin! Mənə bir şərh göndərin və kömək etməkdən məmnun olarıq. Əlbəttə ki, şərhlərdə mənə təkliflər verməkdən çekinmeyin.

Xoşbəxt çiplər!

Tövsiyə: