Mundarija:

MIDI Sonar "Theremin": 10 qadam (rasmlar bilan)
MIDI Sonar "Theremin": 10 qadam (rasmlar bilan)

Video: MIDI Sonar "Theremin": 10 qadam (rasmlar bilan)

Video: MIDI Sonar
Video: Open Theremin with MIDI Musical Instrument Digital Interface 2024, Noyabr
Anonim
MIDI Sonar
MIDI Sonar

Bu nota balandligi va sifatini boshqarish uchun ikkita sonar masofali datchiklardan foydalanadigan musiqiy asbob. Bu, albatta, Theremin emas, lekin "Theremin" qo'llaringizni silkitib o'ynaydigan asboblarning umumiy atamasiga aylandi.

O'rnatilgan MIDI sintezatori, kuchaytirgichi va karnaylari bor. Musiqiy notalar MIDI chipi - VS1053 tomonidan ishlab chiqarilgan bo'lib, u 127 ta ovozga ega (ya'ni, har xil asboblar). U yuqori darajadagi polifoniyaga ega (64 tagacha), shuning uchun u yakka notalarda yoki akkordlarda o'ynashi mumkin.

O'ng qo'lingiz chalayotgan notani boshqaradi. "Diskret" rejimda o'ngdagi bo'sh joy "qutilar" ga bo'linadi. Qo'lingiz axlat qutisiga kirganda, bu qutining yozuvi boshlanadi. Siz axlat qutisidan chiqsangiz, nota to'xtashi mumkin (masalan, organ) yoki tabiiy ravishda o'lishi mumkin (masalan, pianino).

"Uzluksiz" rejimda, o'ngdagi bo'sh joy, asl Theremin kabi, doimiy o'zgaruvchan qadamni aniqlaydi. Eslatma sizning qo'lingiz bo'sh joyga kirganda boshlanadi va siz bo'sh joyni tark etganda to'xtaydi.

Chap qo'lingiz chalayotgan notaning sifatini nazorat qiladi. U ovoz balandligini, tremolo, vibrato, pend-bend, reverb va boshqalarni boshqarishi mumkin.

Kichkina LCD displeyda menyu mavjud bo'lib, u sizga joriy asbobni, chap qo'lning funktsiyasini, o'ng qo'lning o'lchovini (yoki "tugmachasini"), vibrato, tremolo va boshqalarni tanlash imkonini beradi. "va spektakl paytida ularni tezda almashtiring.

Butun MIDI "Theremin" asbobi yakka o'zi dinamik va qayta zaryadlanuvchi batareya bilan ishlaydi.

Agar siz mening tuzilmamdan nusxa ko'chirmoqchi bo'lsangiz, sizga Arduino Nano (£ 1.50), VS1053 moduli (£ 4.50), 1,44 dyuymli ST7735 LCD displeyi (£ 3.50), ikkita HC-SR04 moduli (har biri 1 funt) kerak bo'ladi. Sizga bir nechta kuchli karnaylar, balki lityum xujayralar va PSU kerak bo'ladi, lekin tafsilotlar siz uni qanday qurishga qaror qilganingizga bog'liq bo'ladi. Men bu qo'shimchalarni yuk mashinalari savdosi va xayriya do'konlaridan olganman. Odatiy elektron ustaxona uskunalari kerak bo'ladi.

1 -qadam: VS1053 -ni boshqarish

VS1053 -ni boshqarish
VS1053 -ni boshqarish
VS1053 -ni boshqarish
VS1053 -ni boshqarish

Men rasmda ko'rsatilgan VS1053 modulini tanladim. (Ikkita SOT223 regulyatoriga, ikkita uyali rozetkaga va ulagichning holatiga e'tibor bering.) EBay, Alibaba yoki sevimli etkazib beruvchiga o'xshash VS1053 modulini qidiring. Ular Aliexpress -dan bu erda va bu erda mavjud.

Men uni bir necha yil oldin sotib olganman va u endi eBay -da mavjud emas, faqat Alibabada ko'rinadi. Qizil PCB versiyasi endi eBay -da mavjud. Bu funktsional jihatdan bir xil ko'rinadi, lekin pinout boshqacha, shuning uchun siz mening sxemalarimni va sxemalarimni o'zgartirishingiz kerak bo'ladi. Men buni sinab ko'rmadim. Munozarada (pastda) siz "jonli" MIDI -ni yoqish uchun qizil PCBga rezistor qo'shish bo'yicha ko'rsatmalarni topishingiz mumkin. Yoki uni sozlash uchun qo'shimcha buyruqlarni yuborishingiz mumkin.

VS1053 - bu nozik chip, lekin ancha murakkab. Men faqat MIDI qismini ishlataman. VS1053 -ni ketma -ket interfeys orqali boshqarish mumkin, lekin men SPI avtobusini ishlataman, chunki bu Arduino Nano bilan qulayroq. SPI avtobusi orqali yuboriladigan har qanday bayt MIDI buyrug'i sifatida qabul qilinadi.

MIDI buyruqlar ro'yxatini Internetda topasiz. VS1053 ba'zilariga javob beradi, lekin hammasiga emas. Miditheremin0.exe dasturi men biladigan dasturlarni ko'rsatadi.

VS1053 ma'lumotlar jadvalini Internetdan yuklab olishingiz mumkin. Bu juda katta hujjat va davom etish qiyin. "8.9 qo'llab -quvvatlanadigan MIDI formatlari" bo'limi MIDI haqida deyarli hamma narsani aytadi. "10.10 real vaqtda MIDI" bo'limida MIDI-ni yoqish uchun GPIO0 va GPIO1-dan foydalanish haqida gapiriladi, lekin menda maxsus yoqish kerak emas. MIDI xabarlar ro'yxatini ham yuklab olishingiz mumkin (bularning hammasi VS1053 tomonidan qo'llab -quvvatlanmaydi).

VS1053 modulini ko'rsatilganidek Arduino Nano -ga ulang va INO faylini Arduino -ga yuklang. Men lehimsiz non taxtasidan foydalandim. Menda hozirda uning fotosurati yo'q, lekin siz boshqa qadamlarni ko'rishingiz mumkin.

INO eskizi ketma -ket chiziq orqali kompyuterdan bayt oladi va baytni VS1053 ga yuboradi. Bu VS1053 -ni sinab ko'rishga imkon beradigan juda oddiy dastur. Chiqish jakining rozetkasini minigarnituraga yoki kompyuter karnayiga ulang.

Windows Miditheremin0.exe dasturi (github -dan Step1.zip -ni yuklab olish) VS1053 -ga buyruqlar yuboradi. Notani ijro etish uchun "90 note vel" tugmasini bosing. Yoki o'zingiz Windows dasturini yozishingiz mumkin. Yoki Internetda mavjud bo'lgan ko'plab terminal dasturlaridan birini ishlating.

VS1053 moduli quyidagi pinlarga ega:

  • SPI avtobusida odatdagidek MISO, MOSI va SCLK mavjud
  • agar XRST past bo'lsa, chip qayta tiklanadi
  • XDCS SPI rejimida hech narsa qilmaydi, shuning uchun uni XCS bilan bog'lang
  • XCS - bu chip tanlash
  • DREQ sizga chip qachon yangi buyruq berishga tayyorligini aytadi.

Siz bayt yuborayotganingizda XCS past bo'lishi kerak; keyin baland. Shunday qilib, siz har bir baytning birinchi bitini sinxronlashtirganingizga amin bo'lasiz. DREQ -ni o'qish sizga chip yangi buyruqni qabul qilishga tayyorligini bildiradi.

Arduino bayt yuborganidan so'ng, u soatni almashtirish uchun VS1053 ga baytni qaytarib yuborish uchun qo'g'irchoq bayt yuborishi kerak. SPItransfer () funktsiyasi sizga qanday ko'rsatiladi.

EBay -da mavjud bo'lgan qizil modul SD -karta uyasini o'z ichiga oladi, shuning uchun u bir nechta qo'shimcha pinlarga ega. Ularga e'tibor bermang.

Endi siz VS1053 -ni ishlashiga ishonchingiz komil, biz uni ko'proq musiqa asbobiga aylantiramiz.

2 -qadam: Sonarlardan foydalanish

Sonarlardan foydalanish
Sonarlardan foydalanish
Sonarlardan foydalanish
Sonarlardan foydalanish

HC-SR04 modullarini ko'rsatilganidek Arduino Nano-ga ulang va INO faylini Arduino-ga yuklang.

Sxemada e'tibor bering, DC3 - HC -SR04 modullari uchun ajratuvchi kondansatör - HC -SR04 modullariga yaqin ulangan bo'lishi kerak. Qachon DC3 etkazib berishga yordam beradi, ular uzatadi.

Loyihaning ushbu bosqichida, Windows kompyuteri hali ham VS1053-ga buyruqlar yuboradi, lekin VS1053 HC-SR04 sonar sensorlar tomonidan boshqariladi (github-dan Step2.zip-ni yuklab oling).

Yangi buyruqlarning barchasi 0xFF bilan boshlanadi va Arduino eskizlari bilan izohlanadi (to'g'ridan -to'g'ri VS1053 -ga yuborilmaydi). "FF-buyruq" bo'lmagan baytlar VS1053 ga yuboriladi.

Asbobni o'zgartirish, o'lchovni o'zgartirish, vibrato va tremolo va boshqalarni qo'shish buyruqlari mavjud. Dastur alohida disklarda (pianino kabi) "diskret" rejimda yoki bitta nota bo'lgan "uzluksiz" rejimda ishlashi mumkin. yuqoriga va pastga egilgan (termin kabi).

Bu oxirgi asbob bajaradigan hamma narsani yaxshi bajaradi, lekin uni kompyuter boshqaradi.

To'g'ri HC-SR04 sonar sensori ijro etiladigan ovoz balandligini tanlaydi. "Diskret" rejimda o'ngdagi bo'sh joy "qutilar" ga bo'linadi. Qo'lingiz axlat qutisiga kirganda, bu qutining yozuvi boshlanadi. Siz axlat qutisidan chiqsangiz, nota to'xtashi mumkin (masalan, organ) yoki tabiiy ravishda o'lishi mumkin (masalan, pianino). Qo'lingiz axlat qutisiga kirganda, axlat qutisi biroz kattalashadi, shuning uchun uning chetida jirkanchlik bo'lmaydi.

GetSonar () funktsiyasi birinchi aks -sadoga qadar bo'lgan vaqtni qaytaradi. HC-SR04 ba'zida xabar beradigan juda tez echolarni (davomiyligi <10) inobatga olmaydi. Agar maxDuration tomonidan echo qabul qilinmagan bo'lsa, u maxDuration qaytaradi. Vaqt hech bir birlikda o'lchanmaydi - bu raqam.

Diskret rejimda, vaqti -vaqti bilan vaqti -vaqti bilan chiqib ketishni olib tashlash uchun filtrlanadi (aks sado olinmaganda). Qo'l faqat 10 ta maxDuration namunasi olinganidan keyin mavjud deb hisoblanadi. Keyin davomiylik o'rtacha filtr yordamida filtrlanadi. O'rtacha filtrlar "dürtüsel" shovqinlarni (masalan, vaqti -vaqti bilan ko'tarilish) olib tashlashda yaxshi. Filtrlangan vaqt axlat qutisini tanlash uchun ishlatiladi.

Uzluksiz rejimda vaqti -vaqti bilan qoldirilganlarni olib tashlash uchun davomiylik yana filtrlanadi. Keyin eksponensial filtr yordamida tekislanadi. Filtrlangan muddat "pitch bend" yordamida eslatmaning chastotasini o'rnatish uchun ishlatiladi.

3 -qadam: Displeyni qo'shish

Displeyni qo'shish
Displeyni qo'shish
Displeyni qo'shish
Displeyni qo'shish
Displeyni qo'shish
Displeyni qo'shish

Displey-1,44 dyuymli, ST7735 boshqaruvli, 128x128 pikselli TFT LCD displey. EBay-da ko'plab ekranlar mavjud, masalan, siz asbobingizni kattaroq sensorli ekran bilan ishlab chiqarishni afzal ko'rasiz. Men ST7735-ni ishlatmaganman. nazoratchi va uni sinab ko'rmoqchi bo'ldim.

Men bu etkazib beruvchidan o'zimnikini oldim. Xuddi shu modul eBay -da keng sotiladi - faqat fotosuratga o'xshashini oling.

LCD displeyda quyidagi pinlar mavjud:

  • GND asosi
  • VCC 3.3V
  • SCL SPI avtobus SCLK
  • SDA SPI avtobus Arduino MOSI
  • RES sozlamalarini tiklash
  • DC ma'lumotlari/buyrug'i
  • CS chipini tanlang
  • BL orqa nuri

Modul 3.3V da ishlaydi, shuning uchun siz uni 5V Arduino -ga to'g'ridan -to'g'ri ulashingiz shart emas. Men kuchlanishni pasaytirish uchun 1k rezistorlardan foydalandim. Bu yaxshi amaliyot emas (umuman, potentsialni ajratuvchi yoki kuchlanish pasaytiruvchi chipni ishlatish kerak), lekin bu sxemada juda yaxshi ishlaydi. Men dangasa edim.

Displey Arduino tomonidan taqdim etilgan 3.3V kuchlanish bilan quvvatlanadi. Arduino regulyatori etarlicha baxtli ko'rinadi.

Adafruit juda xushmuomalalik bilan ST7735 kutubxonasini nashr etadi va boshqa bir qancha kutubxonalar Github va boshqa joylarda mavjud. Men bir nechtasini sinab ko'rdim va hech biri yoqmadi. Ba'zilar shunchaki ishlamadi va barchasi juda katta edi. Siz Arduino eskizini yozasiz, u chiziq va matnni chizadi va 75% to'la bo'lsa xotirangizni topasiz. Shunday qilib, men o'z kutubxonamni yozdim.

SimpleST7735 kutubxonasini yuklab olish mumkin (github -dan Step3.zip -ni yuklab oling).

U barcha kutubxonalarga juda o'xshash chizish buyruqlarining standart to'plamiga ega.

Siz yuklab olishingiz mumkin bo'lgan "tezkor" kutubxonalarning ba'zilari vaqtni belgilash uchun maxsus tsikllardan foydalanadi va bir avtobusda boshqa, ehtimol sekinroq qurilmalar ishlatilganda xafa bo'ladi. SimpleST7735 montajchidan ko'ra C tilida yozilgan, shuning uchun u tez emas, lekin ancha portativ va SPI avtobusini boshqa qurilmalar bilan xushmuomalalik bilan baham ko'radi. Shriftlar va piktogrammalarni o'zingiz yaratishga imkon beradigan Windows dasturini yuklab olishingiz mumkin.

ST7735 ma'lumotlar jadvalini Internetdan yuklab olishingiz mumkin. Siz u bilan gaplashasiz

  • CS ni past darajaga qo'ying
  • DC -ni past darajaga qo'ying
  • buyruq baytini yuboring
  • DC balandligini o'rnating
  • nol yoki undan ortiq ma'lumotlar baytini yuborish
  • CS ni baland qilib qo'ying

Buni qanday qilishimni kutubxonadagi spiSend_TFT_CW () funktsiyasida ko'rishingiz mumkin. Ma'lumot baytlari butun pikselli qator yoki boshqaruv registri uchun sozlamalar bo'lishi mumkin.

Kutubxonadagi ST7735Begin () funktsiyasi men tanlagan ishga tushirish buyruqlar to'plamini ko'rsatadi. Agar siz boshqa ST7735 displeyini tanlasangiz (masalan, ko'proq pikselli) yoki boshqa yo'nalishni xohlasangiz, buyruqlarni o'zgartirishingiz mumkin. Umid qilamanki, agar kerak bo'lsa, qanday o'zgartirish kerakligini ko'rish uchun mening kodim oson.

Sxemada "SW1" boshqaruv tugmasi va SW2 oyoq pedali ko'rsatilgan. Boshqarish tugmasi har xil "O'rnatishlar" ni tanlaydi (keyingi bosqichga qarang) yoki Menyu rejimini tanlaydi. Oyoq pedali ixtiyoriy va faqat turli xil sozlamalarni tanlaydi - men qilmaganman. O'zim oyoq pedalini o'rnatdim, sozlash paytida siz kalitni tez o'zgartirishni yoki asbobni o'zgartirishni xohlaysiz.

4 -qadam: Menyu tizimi

Menyu tizimi
Menyu tizimi
Menyu tizimi
Menyu tizimi

Bu Miditheremin3.ino Arduino eskizi MIDI Theremin -ga menyu tizimini qo'shadi va yakuniy asbobni boshqaradi.

MIDI Theremin odatda "Play" rejimida ishlaydi. O'ng qo'lingiz qaysi yozuvni va chap qo'lingiz yozuv sifatini boshqarishini tanlaydi. LCD displeyda pianino klaviaturasi aks ettirilgan, uning eslatmasi ajratilgan.

Agar siz boshqaruv tugmachasini bir soniya bosib tursangiz, dastur "Menyu" rejimiga o'tadi. Menyu rejimida boshqaruv tugmachasini bir soniya bosib tursangiz, dastur "O'ynash" rejimiga qaytadi.

Menyu asosiy va kichik elementlardan iborat daraxt tuzilishiga ega. Menyuning joriy elementi ajratilgan, siz chap sonar orqali tanlovni yuqoriga/pastga siljitasiz. Asosiy elementning pastki menyusi faqat asosiy element tanlanganida kengaytiriladi.

Ichki menyuni tanlab, tugmani bosganingizda, ushbu elementning qiymati ajratiladi. Chap qo'l endi qiymatni oshiradi yoki kamaytiradi. Pastki menyuni tanlashga qaytish uchun tugmani yana bosing.

Diskret rejimda menyu daraxti

  • Asbob

    • 0: Grand Pianino
    • Qo'l almashish: normal
  • O'ng qo'l

    Rejim: diskret

  • Chap qo'l

    • Rejim: Vibrato
    • Maksimal chuqurlik: 10
  • Tarozi

    • O'lchov: asosiy gepatonik
    • Oktav: 2
    • Eng past eslatma: 60 C
  • Akkord

    • Akkord: Katta uchlik
    • Inversiya: 0
    • Polifoniya: 1
  • Tremolo

    • Hajmi: 20
    • Davr: 10
  • Vibrato

    • Hajmi: 20
    • Davr: 10

Asbob "Grand Pianino", "Cherkov organi", "Skripka" va boshqalar bo'lishi mumkin. VS1053 -da 127 ta asbob bor, ularning ko'pchiligi bir xil ovozda, ko'plari "o'q ovozi" kabi ahmoqona. "Qo'llarni almashtirish" pastki menyusi sizga chap va o'ng qo'llarning funktsiyalarini almashtirishga imkon beradi - ehtimol siz buni shunday afzal ko'rasiz yoki, ehtimol siz ma'ruzachilar tomoshabinlar bilan yuzma -yuz bo'lishini xohlaysiz.

O'ng qo'l "diskret" yoki "uzluksiz" bo'lishi mumkin. Quyidagi "uzluksiz" menyuni ko'ring.

Chap qo'l "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" yoki "ChordSize" ni boshqarishi mumkin.

"Ovoz" aniq. "Tremolo" - bu tovushning tez o'zgarishi; chap qo'l o'zgarishning hajmini nazorat qiladi; davr boshqa menyu punkti bilan belgilanadi. "Vibrato" - bu maydonning tez o'zgarishi; chap qo'l o'zgarishning hajmini nazorat qiladi; davr boshqa menyu punkti bilan belgilanadi. "PitchBendUp" va "PitchBendDown" chalayotgan notaning maydonini o'zgartiradi; chap qo'l burilish hajmini nazorat qiladi. "Reverb" VS1053 -da juda ta'sirli emas; chap qo'l reverb hajmini nazorat qiladi. "Polifoniya" bir vaqtning o'zida "Polifoniya" menyusida belgilangan maksimal darajaga qadar qancha eslatmalar ijro etilishini nazorat qiladi (pastga qarang). "ChordSize" - chap qo'l akkordning nechta notasi (pastga qarang) ijro etilishini nazorat qiladi.

Musiqada "o'lchov" yoki "kalit" - bu siz foydalanayotgan eslatmalar to'plami. Masalan, agar siz o'zingizni C Major geptatonik shkalasi bilan cheklasangiz, siz pianino oq notalarini o'ynagan bo'lar edingiz. Agar siz C# Major Pentatonic -ni tanlagan bo'lsangiz, unda siz qora yozuvlardan foydalangan bo'lar edingiz (masalan, Shotlandiya xalq kuylari uchun).

O'lchov menyusi o'ng qo'li qaysi bo'shliqqa mos kelishini va qancha oktavani o'z ichiga oladi. Shunday qilib, agar siz E Majorning 1 oktavasini tanlasangiz, u holda o'ng qo'lda bo'sh joy 8 ta axlat qutisiga bo'linadi, eng past balandlikda E va eng baland pog'onada bir oktava yuqorida joylashgan.

Scale menyusi sizga g'ayrioddiy "G'arb bo'lmagan musiqa" tarozilarini tanlashga imkon beradi, lekin u barcha yozuvlar bir xil temperaturali klaviaturadan qilingan deb taxmin qiladi-MIDI shunday ishlaydi, siz notaning chastotasini osongina aniqlay olmaysiz. Agar siz, masalan, arabcha chorak ohangini xohlasangiz, muammoga duch kelasiz.

"Oktav" pastki menyusi sizga kerakli shkaladagi qancha oktavani tanlash imkonini beradi. Va eng past eslatma shkala qaerdan boshlanishini aytadi.

Odatda nota ijro etilganda, faqat shu nota eshitiladi. Akkord menyusi bir vaqtning o'zida bir nechta yozuvlarni ijro etish imkonini beradi. Katta uchburchaklar akkordining ma'nosi "tanlangan notani, notani to'rt yarim tonnadan yuqori, notani etti yarim tonnadan balandroq ijro etish" degan ma'noni anglatadi.

Inversion pastki menyusi sizga akkord inversiyasini beradi. Bu shuni anglatadiki, u akkordning ba'zi notalarini pastdagi bitta oktavaga o'tkazadi. Birinchi inversiya barcha "qo'shimcha" yozuvlarni oktavaga tushiradi, ikkinchi inversiya qo'shimcha notalardan bittasini pastga tushiradi va hokazo.

"Polifoniya" pastki menyusi bir vaqtning o'zida nechta nota ijro etilishini bildiradi; agar polifoniya 1 bo'lsa, unda bitta nota boshlanganda, avvalgisi to'xtatiladi; agar polifoniya kattaroq bo'lsa, unda bir nechta notalar bir -biriga to'g'ri kelishi mumkin - uni cherkov organi bilan sinab ko'ring.

Tremolo menyusi har qanday tremolo chuqurligini va tremolo tsikli davrini ko'rsatadi. "100" davri sekundiga bitta tsiklni bildiradi. Agar chap qo'l tremoloni boshqarayotgan bo'lsa, "Size" pastki menyusi yashiringan.

Vibrato menyusi har qanday vibratoning hajmini va vibratsiyali tsikl davrini ko'rsatadi. Agar chap qo'l vibratoni boshqaradigan bo'lsa, "Size" pastki menyusi yashiringan.

Dastur sizga 5 tagacha "sozlash" ni saqlash va yuklash imkonini beradi. O'rnatish menyuda o'rnatishingiz mumkin bo'lgan barcha qiymatlarni saqlaydi. Menyu rejimidan chiqqanda, joriy sozlash saqlanadi. O'rnatishlar EEPROMda saqlanadi.

O'yin rejimida tugmani bosish keyingi sozlamaga o'tadi. Agar siz tugmani bir soniya bosib tursangiz, menyu paydo bo'ladi. Oyoq pedalini bosish ham keyingi sozlamaga o'tadi; oyoq-pedal hech qachon menyuni tanlamaydi.

Uzluksiz rejimda menyu daraxti

  • Asbob

    • 0: Grand Pianino
    • Qo'l almashish: normal
  • O'ng qo'l

    Rejim: doimiy

  • Range

    • Yarim tonlar soni: 12
    • O'rta eslatma: 60 C
  • Chap qo'l

    • Rejim: Tremolo
    • Maksimal chuqurlik: 10
  • Tremolo

    • Hajmi: 20
    • Davr: 10
  • Vibrato

    • Hajmi: 20
    • Davr 10

Range menyusi o'ng tomonda qaysi chastota diapazonini belgilaydi: yarim tonlar soni va o'rta nota.

Chap qo'l faqat "Volume", "Tremolo" va "Vibrato" ni boshqarishi mumkin.

5 -qadam: Birgalikda payvandlash

Uni birgalikda lehimlash
Uni birgalikda lehimlash
Uni birgalikda lehimlash
Uni birgalikda lehimlash
Uni birgalikda lehimlash
Uni birgalikda lehimlash

Men sxemani lenta taxtasida qurdim. Men bir martalik 4 ta rezistorli PCB olishning ma'nosini ko'ra olmayapman, lekin tushunamanki, ba'zi odamlar tasmani yoqtirmaydilar.

Mening tasma sxemasi yuqorida ko'rsatilgan. To'rtta taxta - Arduino, VS1053, displey va lenta - sendvich hosil qiladi. Jadvalda Arduino konturi sariq, VS1053 ko'k, displey yashil va tasma to'q sariq rangda.

Ko'k rangli chiziqlar - bu lentaning mis chiziqlari - kerak bo'lganda tanaffuslar qo'yganingizga ishonch hosil qiling. Qizil chiziqlar - bu lentaning tarkibiy qismidagi havolalar yoki boshqa joyga ketadigan simlar.

Men VS1053 taxtasi uchun juda uzun pinlardan foydalanardim, chunki u Arduino tepasida. Displeyning uzoq burchaklaridagi pinlar va VS1053 plitalari ularni barqarorlashtirishga yordam beradi. Modullarning o'rnatish teshiklari qoplangan, shuning uchun siz ularni lehimlashingiz mumkin. Sizniki erga ulanmaganligiga ishonch hosil qiling - mening modullarimning o'rnatish teshiklari yo'q.

Agar sizda boshqa VS1053 moduli yoki boshqa displey bo'lsa, Arduino pinlarini o'zgartirishingiz mumkin:

  • D2 dan D10 gacha va A0 dan A5 gacha har qanday tartibda foydalanish mumkin; pin raqamlarini INO eskizining boshida yangilang
  • D11, D12, D13 SPIga bag'ishlangan va ularni qayta tayinlash mumkin emas
  • D0, D1 ketma -ket kirish/chiqish uchun mo'ljallangan
  • A6, A7 raqamli pin sifatida ishlatilmaydi

HC-SR04 modullari bir-biriga 90 ° burchakli chiziqli lenta bilan bog'langan. Tugma ular orasida. Shubhasiz, siz o'zingiz yoqtirgan dizaynga ega bo'lasiz.

Agar siz oyoq pedalini o'rnatishga qaror qilsangiz, uni rozetkaga ulang.

6 -qadam: PSU qo'shish

PSU qo'shilishi
PSU qo'shilishi
PSU qo'shilishi
PSU qo'shilishi
PSU qo'shilishi
PSU qo'shilishi

Men Arduino, VS1053 va displeyning umumiy oqimini 79mA sifatida o'lchadim. Ma'lumot varaqlariga ko'ra, Arduino - 20mA, displey - 25mA, VS1053 - 11mA va HC -SR04 - har biri "ishlayotganda" 15mA, shuning uchun 80mA to'g'ri ko'rinadi.

Displey 25mA ni oladi va Arduino -ning 3V3 chiqishi bilan quvvatlanadi, u 50mA ga teng. Shunday qilib, sxema Arduino 3V3 regulyatoriga ta'sir qilmasligi kerak.

Biz sxemani Arduino Vin pin orqali quvvatlay olamizmi? Men bu savolga javobni Internetda topa olmayapman. Bu Arduino hujjatlarida yo'q. Bortli 5V regulyatori tarqaladi (Vin-5)*80 mVt. Uning maksimal tarqalishi nima? Aftidan, hech kim bilmaydi. Ma'lumotlar jadvaliga ko'ra, minimal mis yostiqli SOT-223 paketidagi NCP1117 regulyatori 650 mVt quvvatni yo'qotishi mumkin. Shunday qilib, 80mA oqim uchun,

  • Vin Power
  • 8V 240 mVt
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Xavfsiz bo'lish uchun, biz Vinda 9V dan oshmasligimiz kerak deb o'ylayman.

Tashqi 5V PSU ancha xavfsizroq bo'lardi, lekin men Arduino regulyatoridan foydalandim va bu yaxshi.

Zanjirni quvvatlantirish uchun men LI-ionli zaryadlovchi va kuchaytirgichli PSUni birlashtirgan modulni tanladim. Ular eBay -da yoki "Li Charger Boost" ni qidirishda keng tarqalgan.

Zaryadlovchi qurilmasi murakkab doimiy oqim va doimiy kuchlanish algoritmiga ega bo'lgan TC4056 chipidan foydalanadi. USB quvvat manbaini olib tashlaganingizda, u 2uA dan kam batareya quvvati bilan kutish holatiga o'tadi. TC4056 haroratni sezish uchun kirishga ega, lekin u modul kartasida mavjud emas (pin erga ulangan).

Chiqish oqimi 50-300mA bo'lgan normal batareya zo'riqishida 87-91% samarali. (O'zim o'lchaganim yo'q.) Bu juda yaxshi.

Ammo yukni olib tashlaganingizda uning "kutish" oqimi 0,3 mA ni tashkil qiladi, bu yomon. 300 mA / soatlik hujayra 6 hafta ichida drenajlanadi. Ehtimol, u shu paytgacha drenajlangan bo'lardi, uning zo'riqishi zararli darajaga tushar edi.

Batareyani PSU kuchaytirgichiga ulaydigan bitta yo'l bor. Siz yo'lni osongina kesib qo'yishingiz mumkin (rasmga qarang). Kalit orqali kesishni bartaraf etish uchun simni tepadagi katta rezistorga lehimlang.

Hozirgi sinov chizig'i 0,7uA ga teng. Shunday qilib, hujayra 50 yil davom etadi-albatta, yo'q, Li-ionli hujayraning o'z-o'zidan tushishi oyiga 3% atrofida bo'ladi. 300mAH hujayra uchun oyiga 3% 13uA oqimdir. Buni 300uA bilan taqqoslang, zanjir kuchayadi. Menimcha, kuchaytirgich sxemasini o'chirib qo'yish kerak.

Hujayra zaryad olayotgan paytda yukni yoqmaslik kerak. Yuk ko'taradigan oqim zaryadlash algoritmini chalkashtirib yuboradi.

Shunday qilib, sizga "yoqilgan" yoki "zaryadlash" holatida bo'lgan 2 qutbli almashtirish tugmasi (masalan, slaydni almashtirish) kerak.

O'rnatilgan USB rozetkasini e'tiborsiz qoldirishingiz va alohida simlarni kalitga va o'zingizning USB rozetkangizga lehimlashingiz mumkin.

Yoki o'rnatilgan rozetkani ushlab, rozetka bilan chip o'rtasidagi aloqani uzishingiz mumkin. Yuqoridagi diagrammada qaerni kesish kerakligi ko'rsatilgan.

PSU kuchaytirgichining 5V chiqishini Arduino 5V piniga ulang. Odamlar "bunday qilma - sen Arduino himoya diodidan o'tib ketasan" deyishadi. Ammo Nano -da diodning USB tomoniga ulangan pin yo'q. Faqat 5V piniga ulang. Nima bo'lishi mumkin bo'lgan eng yomoni? Siz 3 funtdan kam bo'lmagan Nano -ni yo'qotasiz.

PSU sxemasi karnaylar uchun kuchaytirgichni ham quvvatlantirishi kerak.

7 -qadam: Karnay qo'shish

Dinamiklarni qo'shish
Dinamiklarni qo'shish

Men MIDI Theremin portativ bo'lishini xohlardim. U o'z dinamiklari va kuchaytirgichlarini o'z ichiga olishi kerak.

Siz o'zingizning kuchaytirgichingizni qurishingiz yoki kuchaytirgich modulini sotib olishingiz, so'ngra karnaylarni sotib olishingiz va ularni korpusga qo'yishingiz mumkin. Lekin buning nima keragi bor? Texno-middenda menda xayriya do'konlaridan va yuk mashinalari sotuvlaridan har biri 1 funtdan past bo'lgan yarim o'nlab kuchli dinamiklar bor.

Ochiq ko'k dinamiklar 5Vda atigi 30mA quvvat sarflagan, lekin past ovozli signalga ega. Qora radio - bu yaxshi shakl - men tasavvur qilamanki, HC -SR04 modullarini burchaklarga va displeyni yuqori yuzasiga o'rnataman. Kulrang "tekis panelli" panellar USB rozetkasidan quvvatlanadi, bu ideal.

Bir oz qidirib, sizda yaxshi korpusga ega kuchli dinamiklarni topishingiz kerak. Ular sizning elektr ta'minotingiz kuchlanishida ishlashiga ishonch hosil qiling. Agar u to'rtta AA uyasi bilan quvvatlansa, u 5V da yaxshi ishlaydi.

Ammo men yana texnik-middenni qazib oldim va "hammasi 0,50 funt sterlingga" sotiladigan do'konda joylashgan juda yaxshi docking stantsiyasini topdim. U zaryadlovchini va IR masofadan boshqarish pultini yo'qotib qo'ydi, lekin u yaxshi ishlaydi.

Agar siz o'zingizning kuchli karnaylaringizni yaratishga qaror qilsangiz, bu erda yaxshi ko'rsatma. Yoki PAM8403 yoki kuchaytirgich uchun ko'rsatmalarni qidiring.

8 -qadam: Docking Station

Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi
Docking stantsiyasi

Bu juda yaxshi Logitech portativ docking stantsiyasi. Sizda ham xuddi shunday bo'lishi ehtimoldan yiroq emas, lekin qurilish tamoyillari o'xshash bo'ladi.

Docking stantsiyasida o'z zaryadlanuvchi Li-ionli uyasi va kuchaytirgichli PSU mavjud. (Agar sizniki bo'lmasa, yuqorida tavsiflangan PSUni tuzing va keyingi paragraflarni o'tkazib yuboring.)

Agar sizning kuchaytirgichingizda Li-ionli hujayra bo'lsa, u holda PSU kuchaytirgichi bo'lishi mumkin. (Bitta Li-ionli hujayraning kuchlanishi juda past, shuning uchun uni kuchaytirish kerak.)

Birinchidan, kuchaytirgich uchun quvvat ulanishlarini toping. PSU katta yumshatuvchi kondansatkichlarga ega bo'ladi - keraksiz PCB rasmiga qarang. Pastki tarafdagi lehim yostiqchasidagi kuchlanishni o'lchang. Salbiy pad sxemaning "tuproqli" yostig'i bo'lishi kerak. Agar kompyuter suv toshqini bilan to'ldirilgan bo'lsa, u maydalanadi. Yoki er taxtaning ko'p joylariga boradigan qalin yo'l bo'lishi mumkin.

Amperning chiqish bosqichida katta kondansatörler bo'lishi mumkin - bu eskirib qolgan usuldir. Ishlayotganda ulardagi kuchlanishni o'lchang. Bu, ehtimol, musiqaga qarab o'zgaradi va quvvat manbai kondansatkichlarining kuchlanishining yarmini tashkil qilishi mumkin. Bu noto'g'ri kondansatörler - siz PSUda bo'lganlarni xohlaysiz.

Kengash ham ijobiy, ham salbiy kuchga ega bo'lishi ehtimoldan yiroq emas (katta stereo quvvat kuchaytirgichlari bor, lekin men hech qachon bunday engilni ko'rmaganman). Haqiqatan ham, zamin va ijobiy kuchni tanlaganingizga ishonch hosil qiling.

Men foydalanadigan Logitech docking stantsiyasida analog kuchaytirgich bilan bir qatorda murakkab raqamli sxemalar mavjud. Agar sizniki shunday bo'lsa, unda 5V yoki 3.3V uchun yumshatuvchi kondansatkichlar bo'ladi, balki kuchaytirgich uchun 9V bo'lishi mumkin. Barcha katta kondansatkichlardagi kuchlanishni o'lchab, eng katta kuchlanishni tanlang.

Siz tanlagan quvvat ulanishining kuchlanishi yoqish/o'chirish kalitiga bog'liqligiga ishonch hosil qiling. (Kalitni o'chirganingizda, kondansatör bo'shab qolganda kuchlanish pasayishi mumkin.)

Quvvat manbai sifatida siz tanlagan narsalarga simlarni lehimlang. Logitech docking stantsiyasi 9V atrofida ishlab chiqaradi, u Arduino -ning Vin piniga yaxshi ulanadi.

Quvvatli karnay yoki docking stantsiyasida audio kiritish uchun 3,5 mm raz'em bo'lishi kerak. Lehimlash joylaridan biri maydalanadi - ehtimol taxtaning chetiga yaqinroq. Ohm-metrdan foydalanib, u sizning fikringizcha, erga ulanganligini tekshiring. Ba'zi audio kirishlar bilan uyaning "qalqoni" to'g'ridan -to'g'ri erga ulanmagan. Bu suzadi. Shunday qilib, agar ulagichlarning hech biri erga ulanmagan bo'lsa, xavotir olmang. (VS1053 modulidagi uyaning "qalqoni" ham suzadi.)

Jekning "tuproqli" pimi quvvat manbai bilan bir xil voltajda ekanligini tekshirish uchun hisoblagichdan foydalaning.

Logitech docking stantsiyasi g'alati edi. Agar men Logitech uyasi rozetkasining "erini" VS1053 platasining "eriga" ulagan bo'lsam (audio kabel yordamida u yaxshi ishladi, lekin mening Theremin tizimimdagi oqim 80mA dan 200mA dan oshib ketdi. Men bu ikkita "asos" ni bog'lamadim, u yaxshi ishlaydi, lekin nima bo'layotganini bilmayman.

9 -qadam: ish yuritish

Ish yuritish
Ish yuritish
Ish yuritish
Ish yuritish
Ish yuritish
Ish yuritish
Ish yuritish
Ish yuritish

Qaysi ishni qilish kerak, siz topshirishingiz kerak bo'lgan materiallarga, sizga nima yoqishini va siz tanlagan kuchli dinamiklarga bog'liq bo'ladi. Siz nima qilmasangiz ham, sonarlarning bir -biridan uzoqlashishi va 45 ° ga ko'tarilishini ta'minlashingiz kerak. Keyin displey ekrani va tugmachasi bo'ladi.

Agar siz mening boshqa ko'rsatuvlarimga qaragan bo'lsangiz, bilasizki, men qalay plastinkalarni yaxshi ko'raman. U shaklga egilib, yumshoq lehimli va bo'yalgan bo'lishi mumkin. Fotosuratlar men narsalarni qanday tartibga solganimni ko'rsatadi.

Yuqori uchburchak qalay plastinka egilgan, lehimlangan, to'ldirilgan, tekislangan va bo'yalgan. Kompyuterlar uchburchakda issiq yopishtirilgan va arralash vazifasini bajaradigan kichik yog'och bo'laklarga ega.

"Old panel" - 1 mm polistirolli qatlam. To'xtashlar ko'proq polistirolli plitalardan yasalgan va o'z-o'zidan tejamkor vintlardek tasmani joyida ushlab turadi. Yog'och tayanchlar docking stantsiyasining old qismidagi bo'shliqqa issiq tarzda yopishtiriladi va kompyuterlar uzun vintlardek ularga vidalanadi.

O'ylaymanki, men 3D-ni bosib chiqarishim mumkin edi, lekin men eski maktab usullarini afzal ko'raman, bu erda men ketayotganimda narsalarni to'g'rilashim mumkin. Biror narsa qilish - bu "muhandislik" emas, balki kashfiyot sayohati.

10 -qadam: Kelajak taraqqiyoti

Kelajak taraqqiyoti
Kelajak taraqqiyoti

Qanday qilib asbobni yanada rivojlantira olasiz? Siz foydalanuvchi interfeysini o'zgartirishingiz mumkin. Siz tugmani IQ masofali sensori bilan almashtirishingiz mumkin, shuning uchun asbobga tegmang. Yoki menyuni boshqarish uchun tugma va chap qo'l o'rniga sensorli ekran ishlatiladi.

Scale menyusi sizga "G'arb bo'lmagan musiqa" tarozilarini tanlashga imkon beradi, lekin u barcha yozuvlar bir xil temperaturali klaviaturadan olinganligini taxmin qiladi-MIDI shunday ishlaydi Arabcha chorak tonnali shkalada notekis shkalada bo'lmagan yozuvlar mavjud. Boshqa tarozilar hech qanday tarzda tekis temperaturali klaviatura bilan bog'liq emas. Bunday yozuvlarni ishlab chiqarish uchun pitch-bend-dan foydalanish mumkin. Menyu har bir eslatmaning chastotasini belgilash uchun sizga kerak bo'ladi. O'ylaymanki, pitch bend kanaldagi barcha yozuvlarga tegishli bo'lishi mumkin. Men hozirda faqat bitta kanaldan foydalanaman - 0 -kanal. Shunday qilib, agar u ko'p ovozli yoki akkordli bo'lsa, siz har bir notani boshqa kanalda ijro etishingiz kerak bo'ladi.

Asbob baraban sintezatoriga aylanishi mumkin. Chap qo'l Melodik Tomning ohangini aniqlay oladi, o'ng sonar esa baraban chalish uchun siz uradigan piezo sensori bilan almashtiriladi.

Ikki qo'l ikki xil asbobni boshqarishi mumkin edi.

Chap qo'l asbob tanlashi mumkin edi.

Loyihaning yarmida men Zeppelin Design Labs tomonidan Altura MkII Theremin MIDI Controller -ni topdim. Bu ajoyib asbobga o'xshaydi.

Ularda ko'rishga arziydigan bir nechta video bor:

(Men Alturadan "axlat qutilari" so'zini o'g'irladim va axlat qutisi siz qolishingizga yordam berish uchun kirganingizda kengayadi degan fikr).

Mening MIDI Theremin Alturadan bir necha jihatdan farq qiladi. Mine o'z MIDI sintezi, kuchaytirgichi va boshqalar bilan o'z ovozini chiqaradi; Altura xabarlarni tashqi sintezga yuboradi. Siz, ehtimol, ularning yo'lini afzal ko'rasiz. Menda 7 segmentli displey emas, balki TFT ekrani bor - bu, albatta, yaxshiroq, lekin siz kattaroq ekranni takomillashtirish deb o'ylashingiz mumkin. Meniki parametrlarni sozlash uchun menyulardan foydalanadi, meniki esa tugmachalarni ishlatadi. Menyular kerak, chunki meniki kirish qurilmasi (sonarlar) va sintezni boshqarish uchun juda ko'p nazoratga muhtoj; Alturaga kamroq nazorat kerak. Balki tugmalar jonli ijro paytida yaxshiroqdir. Balki menda tugmalar bo'lishi kerak. O'rnatishni tanlash tugmasi yaxshi bo'lishi mumkin.

Altura "Artikulyatsiya" boshqaruviga ega, u yozuvlarni qanchalik tez ijro etilishini belgilaydi. Men buni dasturiy ta'minotimga kiritmaganman - ehtimol u erda bo'lishi kerak. Alturada Arpeggiator (qadam ketma -ketligi) mavjud. Bu yaxshi fikr; Mening akkordlarim bor, ular bir xil emas.

Demak, hammasi shu. Umid qilamanki, sizga MIDI-Theremin-ni yaratish va undan foydalanish yoqadi. Agar siz mening tavsifimda biron bir xato topsangiz yoki yaxshilanish haqida o'ylab ko'rsangiz, menga xabar bering.

Tavsiya: