Arduino bilan retro tovushli chip - SAA1099: 16 qadam (rasmlar bilan)
Arduino bilan retro tovushli chip - SAA1099: 16 qadam (rasmlar bilan)
Anonim
Image
Image
Kabel - SAA1099
Kabel - SAA1099

Bu yo'riqnomada men sizga midi fayllarni kvadrat to'lqinli yaxshilikda ijro etish uchun vintage tovush sintezi chipi bilan Arduino Uno -dan qanday foydalanishni ko'rsataman!

Agar siz ushbu loyiha haqida qisqacha ma'lumot olishni istasangiz, yuqoridagi videoni tomosha qiling. Aks holda, davom eting!

1 -qadam: video

Image
Image

Agar siz barcha ko'rsatmalarni aniq va qisqa videolarda ko'rishni xohlasangiz, biz sizni qamrab olamiz!

Qolganlar uchun, siz batafsilroq va yozma ko'rsatmalarni davom ettirishingiz mumkin.

2 -qadam: ehtiyot qismlar va materiallar

Buning uchun sizga quyidagi narsalar kerak bo'ladi:

(Havolalar eBay -ga tegishli)

  • Arduino (Uno, Nano, Leonardo, ularning barchasi ishlashi kerak)
  • Hech bo'lmaganda o'rta kattalikdagi non paneli
  • SAA1099 stereo tovush generatori chipi
  • Breadboard jumper simlari (Shu bilan bir qatorda, men dupontdan ayolga sakrashdan foydalanishni yaxshi ko'raman, har ikki uchiga 20 mm bosh pimlari o'rnatilgan- ancha mustahkam)
  • 8 MGts TTL osilatori (AliExpress havolasi zweigelt tomonidan taqdim etilgan)
  • Stereo (yoki mono) audio raz'em
  • 2 x 1K rezistorlar (100 dona)
  • 1 x 10K qarshilik (50 dona)
  • 2 x 100pF kondansatörler
  • (Ixtiyoriy) Ba'zi LEDlar, kamida 1 (Har qanday rang, bu erda bir dollar uchun 100 xil rang!)

Taqdim etilgan havolalardan foydalangan holda, umumiy narx 23,25 dollarni tashkil etadi, shu jumladan etkazib berish. Albatta, uning ko'p qismi dunyoning yarmidan keladi, shuning uchun etkazib berish odatda taxminan bir oy davom etadi. Agar siz tezroq etkazib berishni xohlasangiz, ehtimol siz biroz ko'proq to'lashingiz kerak bo'ladi.

3 -qadam: Bolalar - SAA1099

Kabel - SAA1099
Kabel - SAA1099
Kabel - SAA1099
Kabel - SAA1099

Agar sxemalar sizning narsangiz bo'lsa, mana bu erga! Qolganlar ham bosqichma -bosqich o'tishlari yoki videoni tomosha qilishlari mumkin.

  • SAA1099 -ni non taxtasining oxiriga, chipning uchi oxirigacha qaragan holda joylashtiring.
  • Endi, kuch. SAA1099 -dagi VDD (18 -pin) quvvatga o'tadi, keyin VSS -pin (9 -pin) erga ulanadi.
  • Keyin, past tortilishi uchun CS (pin 2) bilan tuproq orasiga sim qo'ying

Men qo'shgan ma'lumotlar jadvalini ko'rib chiqishni tavsiya qilaman.

4 -qadam: simlarni ulash - TTL osilatori

Bolalar - TTL osilatori
Bolalar - TTL osilatori
Bolalar - TTL osilatori
Bolalar - TTL osilatori
  • Biz TTL osilatorini non paneli yonidagi taxtaga joylashtiramiz, shunda soat chiqish pimi SAA1099 (8 -pin) soatiga eng yaqin bo'ladi.
  • Siz TTL osilatoriga quvvat va erni ulashingiz mumkin. (Men videomni keyinroq kutdim, shuning uchun rasmim yo'q). Yuqoridagi rasmda qaysi pinlar borligi ko'rsatilgan.

5 -qadam: simlar - Iref va chip interfeysi

Ulanish - Iref va chip interfeysi
Ulanish - Iref va chip interfeysi
Ulanish - Iref va chip interfeysi
Ulanish - Iref va chip interfeysi
  • 10K qarshilikni Iref (pin 6) va 5V oralig'iga ulang.
  • Raqamli pin 8ni SAR1099 -dagi WR -ga (1 -pin) ulang.
  • 9 raqamli pinni SAA1099 -dagi A0 (pin 3) ga ulang.

6 -qadam: Bolalar - ovoz komponentlari

Bolalar - ovoz komponentlari
Bolalar - ovoz komponentlari
Bolalar - ovoz komponentlari
Bolalar - ovoz komponentlari
Bolalar - ovoz komponentlari
Bolalar - ovoz komponentlari
  • OUTR (pin 4) va GND o'rtasida 100pF kondansatkichni ulang
  • OUTR (pin 4) va 5V o'rtasida 1K rezistorni ulang
  • Biz OUTL uchun ham xuddi shunday qilamiz (pin 5)
  • OUTL (pin 5) va GND o'rtasida 100pF kondansatkichni ulang
  • OUTL (pin 5) va 5V o'rtasida 1K rezistorni ulang

Eslatma! Rezistorlar/kondansatkichlardan simlarning hech biri tegmasligiga ishonch hosil qiling, aks holda narsalar ishlamaydi va (ehtimol) yuzingizda portlashi mumkin.

7 -qadam: simlarni ulash - audio raz'em

Kabel - audio raz'em
Kabel - audio raz'em
Kabel - audio raz'em
Kabel - audio raz'em
Kabel - audio raz'em
Kabel - audio raz'em
  • 5V va non panelidagi bo'sh qator orasidagi kichik o'tish simini ulang.
  • Ovoz rozetkasini 5V kuchlanishli o'tish moslamasi "Jek" piniga ulang
  • L va R (Yoki audio pimi, agar sizda Mono uyasi bo'lsa) SAA1099 dagi OUTL (pin 5) va OUTR (pin 4) pinlariga ulang.

Eslatma! Mono audio raz'emlarda, nima bo'lishidan qat'i nazar, bitta pin 5V ga, ikkinchisi OUTL yoki OUTR ga ulanishi shart emas. Yaxshi eshitiladi. Agar shunday bo'lmasa, siz simni qayta tekshirishni xohlashingiz mumkin.

8 -qadam: simlar - Elektron panelga quvvat

Kabel - Elektron panelga quvvat
Kabel - Elektron panelga quvvat
Bolal - Elektron panelga quvvat
Bolal - Elektron panelga quvvat
  • O'tkazgich simlari yordamida Breadboard elektr shinasining har ikki tomonini bir -biriga ulang.
  • Bir tomonni Arduino -dagi 5V va GND pinlariga ulang, simlarni hech qaerga aralashtirmaganingizga ishonch hosil qiling. Agar shunday qilgan bo'lsangiz, sehrli tutun chiqib ketishi mumkin.

9 -qadam: simlarni ulash - ma'lumotlar liniyalari

Ulanish - ma'lumotlar liniyalari
Ulanish - ma'lumotlar liniyalari

Arduino -dagi D0 -dan D7 -ni SAA1099 -dagi D0 -pin (17 -pin) ga D0 -ga (10 -pin) ulang

Menimcha, DuPont ayol-ayol o'tish simlari, har ikki tomonida 15-20 mm boshli pinli, erkak-erkak dupont simlariga qaraganda ancha yaxshi ishlaydi. Bundan tashqari, siz ularni ayol-urg'ochi yoki erkak-ayol sifatida ishlatishingiz mumkin. Ikkalasini ham oz miqdorda o'zgarish uchun eBay -da ko'p miqdorda topish mumkin. Yangi yil arduinochi uchun yangi yil sovg'asi!

10 -qadam: ixtiyoriy LED (lar)

Ixtiyoriy LED (lar)
Ixtiyoriy LED (lar)
Ixtiyoriy LED (lar)
Ixtiyoriy LED (lar)

Men bu erda hamma narsani qanday qurish kerakligini bosqichma -bosqich aytib o'tmayman, lekin LEDlarni qo'shish uchun bir nechta yaxshi joylar bor. Birinchidan, men Arduino SAA1099 -ga buyruq yuborganini ko'rsatish uchun WR (pin 1) va GND o'rtasida 3 mm qizil LEDni uladim.

Bundan tashqari, men LEDlarni ma'lumotlar uzatish liniyalariga ulaganman, bu har bir satrda haqiqiy ikkilik ma'lumotlarni ko'rish imkonini beradi. Men bu sozlamani "Arduino va SAA1099 - Fireflies" videosida, shuningdek, yana 6 ta LED va faol bo'lgan har bir kanal uchun har bir LEDni yoqish uchun qo'shimcha kodda ishlatganman.

LEDlar qancha ko'p bo'lsa, sovuqroq ko'rinadi!

11 -qadam: kod

Kod!
Kod!
Kod!
Kod!

Endi siz sxemani qurdingiz, ulanishlarni ikki marta tekshiring! Siz qimmat arduino va Soundchip -ni portlatishni xohlamaysiz! (Agar shunday qilsangiz, yaxshi. Bu mening ishim emas)

Agar siz aqli raso bo'lsangiz va hamma narsani tekshirgan bo'lsangiz, biz uni dasturlashni boshlashimiz mumkin.

  • Kutubxona -
  • Siz SAATunes.zip faylini xohlaysiz, shuning uchun uni yuklab oling.
  • Endi Arduino IDE -ni oching.
  • "Eskiz", "Kutubxonani qo'shish" ostida ".zip kutubxonasini qo'shish" ni bosing.
  • SAATunes kutubxonasini yuklab olgan joyingizga o'ting. (Menga ish stoli, yuklamalar yoki (xijolat soladigan narsa) papkasi bo'lgani qiziq emas- toping)
  • Uni tanlang va "Ochish" tugmasini bosing
  • Bu sizning kutubxonalaringizga qo'shilganligini aytishi kerak.

12 -qadam: Sinab ko'ring

Sinab ko'ring!
Sinab ko'ring!
Sinab ko'ring!
Sinab ko'ring!
  • SAATunes dasturining misolini "Fayl", "Misollar", "SAATunes", "SAATunes-Uno" ostida oching.
  • Arduino -ni kompyuterga va har qanday dinamikga ulang.
  • Dasturni Arduino -ga yuklang.

Siz akkordni eshitishingiz kerak, keyin Betxovenning g'azabini yo'qolgan tiyin uchun. Agar Classical sizning narsangiz bo'lmasa, qo'rqmang, chunki yaqinda biz o'zimiz xohlagan MIDI fayllaridan foydalanishni o'rganamiz.

Agar siz hech narsa eshitmasangiz, bir nechta narsani tekshiring: Birinchidan, karnay yoqilganmi? Uni oxirigacha aylantiring. Xo'sh, arduino haqiqatan ham yoqilganmi? Dastur to'g'ri yuklanganmi? Barcha simlarni sxematik va ma'lumotlar sahifasi bilan tekshiring, keyin qaytadan urining.

13 -qadam: O'zingizning MIDI fayllaringizni ishlatish - aylantirish dasturi

O'zingizning MIDI fayllaringizdan foydalanish - aylantirish dasturi
O'zingizning MIDI fayllaringizdan foydalanish - aylantirish dasturi

Betxovendan boshqa narsani sinab ko'rishga tayyormisiz? Juda yaxshi, mana keldingiz.

MIDI fayllarini C ++ Bytestreams -ga aylantirish uchun bizga Len Shustek dasturi kerak bo'ladi. U mening kodimni asos qilib olgan kutubxonaning yaratuvchisi va mening kutubxonam xuddi shu bytestream formatidan foydalanadi.

  • Siz dasturni https://github.com/LenShustek/miditones saytida topishingiz mumkin
  • Siz xohlagan dastur - "miditones.exe". Davom eting va yuklab oling.

14 -qadam: MIDI fayllarini konvertatsiya qilish

MIDI fayllarini konvertatsiya qilish
MIDI fayllarini konvertatsiya qilish
MIDI fayllarini konvertatsiya qilish
MIDI fayllarini konvertatsiya qilish
MIDI fayllarini konvertatsiya qilish
MIDI fayllarini konvertatsiya qilish

Ogohlantirish! Bu erda ascii ajdarlari bor! Videoni ko'rish osonroq bo'lishi mumkin, bu erda men nima haqida gapirayotganimni aniq bilib olasiz. Agar kirishga jur'at etsangiz, davom eting!

MIDI -ni Bytestream -ga o'tkazish dasturidan foydalanish uchun siz buyruq satri oynasini ochishingiz kerak bo'ladi. Kechirasiz, Mac va Linux foydalanuvchilari, vaqtinchalik echim topishga to'g'ri keladi.

  • Boshlash menyusini oching va "CMD" yozing, so'ngra enter tugmasini bosing.
  • Endi biz MS-DOS-ning kichik sehrini o'rganamiz. "CD" buyrug'i yordamida "miditones.exe" faylini yuklagan joyingizga o'ting. Ko'p hollarda buyruqlar "CD yuklamalar" bo'ladi.
  • "Miditones.exe" dasturini "miditones" yozib ishga tushiring. U sizga eng keng tarqalgan buyruqlarni ko'rsatadigan yordam ro'yxatini ko'rsatishi kerak.

Endi konvertatsiya qilish uchun bizga MIDI fayli kerak. Tarmoqlar oralig'ida biron bir joyni toping, yaxshisi perkussiyasiz yoki maxsus effektlardan tashqari tezlik/tezlikdan tashqari. (Agar bu nima ekanligini bilmasangiz, xavotir olmang, hammasi yaxshi bo'ladi)

  • MIDI faylini "miditones" dasturi mavjud bo'lgan joyga yuklab oling.
  • Endi, buyruq satri oynasidan foydalanib, "miditones -d -v [fayl nomi]" yozing ([fayl nomi] ni MIDI faylingiz nomi bilan almashtiring).
  • miditones bir xil papkada, MIDI fayli bilan bir xil nomdagi C ++ baytestli. C faylini yaratadi.

15 -qadam: O'zgartirilgan MIDI faylingizdan foydalanish

O'zgartirilgan MIDI faylidan foydalanish
O'zgartirilgan MIDI faylidan foydalanish
O'zgartirilgan MIDI faylidan foydalanish
O'zgartirilgan MIDI faylidan foydalanish
O'zgartirilgan MIDI faylidan foydalanish
O'zgartirilgan MIDI faylidan foydalanish

Endi siz MIDI faylini aylantirdingiz, uni arduino -ga ozgina baytlarda etkazib beraylik!

  • Agar sizda SAATunes-Uno misoli allaqachon ochilgan bo'lsa, keling, boshqa narsani "saqlaymiz", shuning uchun biz uni tahrir qila olamiz.
  • Saqlagandan so'ng, o'ng yuqori burchakdagi "pastga o'q" belgisini bosing.
  • "Yangi varaq" ni bosing va uni "[name].h" deb nomlang ([ism] ni MIDI qo'shig'ingizning nomi yoki xohlaganingiz bilan almashtiring)
  • Endi, o'rta tovushlar ilgari yaratilgan. C faylini oching. Uni ochish uchun bloknotdan foydalanishingiz mumkin.
  • Hammasini tanlash uchun CNTRL/A -dan foydalaning va keyin nusxa ko'chiring.
  • Arduino muharriridagi yangi "[name].h" yorlig'iga joylashtiring.

Bu erda hamma narsa yaxshi, shuning uchun dasturga qaytaylik.

  • "#Include" RagePenny.h "yozilgan joyni toping va uni pastdagi yangi qatorga ko'chiring/joylashtiring.
  • "RagePenny.h" ni yangi fayl nomini o'zgartiring.
  • Endi "#include" RagePenny.h "ga izoh bering, oldiga ikkita oldinga chiziq (//) qo'shing.
  • Dasturni yuklang!

Agar hamma narsa yaxshi bo'lsa, u o'z MIDI faylini o'ynashi kerak. Agar yo'q bo'lsa, yangi varaqning nomlari va "#include" RagePenny.h "" ismining bir xilligini tekshirish uchun qayta tekshirib ko'ring. Boshqa qadamlarni tekshiring va hamma narsani to'g'ri qilganingizga ishonch hosil qiling. Ba'zi MIDI fayllari ishlamaydi, lekin ular kamdan -kam uchraydi.

16 -qadam: Fin

Fin!
Fin!

Umid qilamanki, siz bilan hamma narsa yaxshi o'tdi va siz yangi hayotga ega bo'lgan qadimiy texnologiya bo'yicha MIDI fayllarini siqib chiqarasiz!

Ammo, agar shunday bo'lmasangiz, taslim bo'lmang! O'z fikrimni yozing, men yordam berishdan xursand bo'laman. Albatta, izohlarda menga o'z takliflaringizni bildiring.

Baxtli chiptonlar!