Mündəricat:
- Addım 1: !! Diqqət Diqqəti - İmtina
- Addım 2: Avadanlıq Mühəndisliyi
- Addım 3: Komponentlərin siyahısı
- Addım 4: Bağlantılar/Şemalar
- Addım 5: Proqram təminatı
- Addım 6: Problemlərin aradan qaldırılması
- Addım 7: Faydalı bağlantılar
Video: Başqa bir MIDI CV Box: 7 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Digər bir MIDI -CV qutusu, bir Korg MS10 qapımı döyəndə və studiyamda yer alanda hazırladığım bir layihədir. Quruluşumun bütün alətləri avtomatlaşdırmaq və sinxronizasiya etmək üçün MIDI ilə çox əlaqəli olması səbəbindən MS10 -u satın aldığımda qarşılaşdığım ilk problem bu cür idarəetməni necə tətbiq etmək idi.
Korg MS20/10, MIDI -ni tətbiq etmək üçün ən asan sintezlər deyil: ilk növbədə, okt/V (oktavada 1V) yerinə, Hz/V nəzarətinə (nəzarət gərginliyi ilə qeyd tezliyi arasındakı xətti korrelyasiya) güvənirlər; İkincisi, bir notu işə salmaq üçün mənfi bir qapı siqnalı göndərməlisiniz və girişi yerə +5 V siqnalı (V-trig) yox, yerə (S-Trig) qısaltmalısınız.
Hal-hazırda bu cür alətləri idarə etmək üçün müxtəlif kommersiya həlləri mövcuddur (yəni Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), amma mən ucuz bir piçəm və hətta 100 avro da "səslənməyən" bir cihaz üçün çoxdur:).
Buradayıq: xarici MIDI nəzarətçisi (Klaviatura, DAW, sekanser və ya hər hansı bir) ilə MIDI əvvəli synth-in meydançasını, qapısını, sürətini və kəsilmə tezliyini idarə etmək/avtomatlaşdırmaq üçün CV-dən aşağı büdcəli bir MIDI qurmağı sizə göstərim..
"Yeni MS20 mini haqqında nə demək olar?"
Demək olar ki, hər kəsin bildiyi kimi, yeni MS20 əslində MIDI -yə hazırdır: 5 dirəkli MIDI konnektoru ilə və USB konnektoru olan IN/OUT.
"Beləliklə, bir MS20 mini varsa, bu şey faydasızdır!"
Yaxşı, yox. MS20 mini yalnız açma/söndürmə mesajlarını tanıyır və klaviatura sürətə həssas deyil. MS10/20 vintage və ya mini klaviatura ilə bunun öhdəsindən gəlmək üçün heç bir yol yoxdur, ancaq midi qutusu və sürətə həssas bir klaviatura ilə qızılısınız. Əlavə olaraq, MIDI qutusu ilə filtr kəsilməsini (və ya hər hansı digər gərginliyə nəzarət edilə bilən parametri) avtomatlaşdıra bilərsiniz və ya daxil olan sürətlə əlaqədar MIDI qeydi ilə modulyasiya edə bilərsiniz. Yenə MS20 mini -nin cavab verdiyi MIDI kanalı kanal 1 -dir. Bu qutu ilə bu limiti də aşa bilərsiniz.
"Bir Oct/V synth varsa nə etməliyəm?"
Problem deyil! Yazdığım kod Oct/V sintezatorları ilə uyğundur (sınaqdan keçirilməyib, amma əminəm ki, qutudan kənarda işləyəcək;)).
Addım 1: !! Diqqət Diqqəti - İmtina
Avadanlıqlarınız çox dəyərlidir və testlər aparmaq üçün istifadə edilməməlidir.
Elektriklə oynamaq oyuncağınıza ciddi ziyan vura bilər və ya özünüzə zərər verə bilər.
Bu təlimatda bildirdiyim hər hansı bir proqramdan, sxemdən və ya məlumatlardan və ya bağlantılardan gələn avadanlıqlarınıza/aparatlarınıza və hətta özünüzə dəyən ziyana görə məsuliyyət daşımıram.
Sənə xəbərdarlıq edildi!
Addım 2: Avadanlıq Mühəndisliyi
Arduino bu cür layihələrlə məşğul olarkən əlverişlidir. Böyük bir Topluluğun və demək olar ki, hər bir ümumi işi əhatə edən çox yaxşı kitabxanaların olması onu düzgün seçim edir. Burada lövhə daxil olan MIDI məlumatlarını oxuyacaq və sonra idarə etmək üçün müvafiq gərginliklər göndərəcək şəkildə proqramlaşdırılacaq:
- VC -ni rəqəmsaldan analoqa çevirici (DAC) vasitəsilə idarə etmək üçün pwm çıxışını analoq gərginliyə çevirərək addım atın.
- VCA -nı sadə bir RC filtri ilə idarə etmək üçün bir pwm çıxışını süzərək sürət
- VCF -ni sadə bir RC filtri ilə idarə etmək üçün bir pwm çıxışını süzərək Filter Cutoff Frequency.
- V-trig vəziyyətində birbaşa rəqəmsal bir çıxışdan (cari boşalmanı azaltmaq üçün çıxışı ilə 1Kohm seriyası qoyun) və ya rəqəmsal çıxışdan sadə bir pnp tranzistor açarı ilə (sxematik mərhələyə əlavə edilmiş sxemə baxın).
Arduino birbaşa sabit gərginliklər çıxara bilmir, lakin müxtəlif dövrlərdə (PWM) 0/+5 V impulslar verir. Dökmə evi üçün rəqəmsaldan analoqa çeviricilərə (DAC) ehtiyacımız var. RC filtrləri düşünə biləcəyim ən asan DAC -dır. Bir RC filtri, gərginlik idarə olunan gücləndirici və filtr (VCA və VCF) üçün kifayətdir. RC filtrləri <20Hz (ən aşağı səs tezliyi) bir kəsmə tezliyi ilə nəticələnmək üçün hazırlanmışdır.
Aşağı tutumlu polarizasız kondansatörlərlə bir sınaq keçirdim və ən yaxşı uyğunlaşmaq üçün 0.1uF tutum dəyəri ilə başa vurdum. MS20 MKII -də yaxşı sınaqdan keçirildi.
Təəssüf ki, gərginlik idarə olunan osilatoru (VCO) idarə etmək üçün RC filtrinə arxalana bilmərik, çünki kifayət qədər dəqiq deyil (Hz/V miqyasında, aşağı ucunda iki adiasend semitonu 0.02V -dən az fərqlənir; V -də) /okt iki adiasent semiton 0.083 V üçün fərqlənir); Bunun üçün bir IC DAC (MPC4725) istifadə edəcəyik.
Bilinən Limitlər
Sürücü gərginliyini 5V (Arduino çıxış gərginliyi) ilə məhdudlaşdıraraq, 0 -dan 5V -ə qədər olan sürət, sürət üçün əhatə olunur; kəsmə yarısı örtülüdür (-5V- +5V); VCO diapazonu qismən əhatə olunur, çünki Hz/V -də 440 Hz A4 -ə çatmaq üçün 8 V gərginlik tələb olunur. 5V çıxış limiti ilə osilatoru D4 frekansına qədər Hz/V -də yerləşdirə bilərik.
Addım 3: Komponentlərin siyahısı
Ehtiyacınız var:
1X Arduino UNO (və ya nano)
1X MPC4725 DAC lövhəsi
4X 1/8 "və ya 1/4" mono konnektorlar
1X MIDI konnektoru
1X 6N138 optocoupler
1X 1N4148 diod
1X 220 ohm 1/4 W müqavimət
1X 470 ohm 1/4 W müqavimət
1X 10K ohm 1/4 W müqavimət
4X 1K ohm 1/4 W müqavimət
2X 0.1 uF kondansatör
1X BC547 pnp tranzistor (S-trig vəziyyətində)
1X ABS qutusu (ən az 55 x 70 x 100 mm)
… Və açıqca çörək taxtası və ya perfboard, lehimləmə dəmiri, lehim teli və kabellər (2 metrlik 28 AWG kifayət olmalıdır).
Yuxarıdakı şəkillərdə prototipimdə 100 uF elektrolitik qapaqlar quraşdırıldığına diqqət yetirin, lakin tutumun yüklənmə müddəti səbəbindən çox yavaş olur. 0.1uF kapasitans doğru seçimdir.
Arduinomu enerji ilə təmin etmək üçün əlavə bir bağlayıcı istifadə etdim; Mikro nəzarətçini birbaşa daxili USB konnektoru vasitəsilə sıxmaq lazım deyil.
Addım 4: Bağlantılar/Şemalar
MIDI GİRİŞ
MIDI IN dövrəsi sadədir və şəbəkədə yaxşı təsvir edilmişdir. Misal üçün Amanda Gassaei tərəfindən MIDI və Arduino üzrə BU əla təlimatı götürün. Neysə bu mövzuda nci sxematik etdim.
MIDI IN sxeminə bir keçid əlavə etdiyimə diqqət yetirin (keçid 1): bu, Arduino -ya yeni bir eskiz yükləyərkən lazımdır, çünki opto gələn midi mesajları olmadan da RX xəttinə müdaxilə edir. Eskizinizi yükləməzdən əvvəl açarı açmalısınız, əks halda IDE yeni eskizi yükləyə bilməyəcək.
Nəhayət bir eskizi dəyişdirərək serial proqram ünsiyyətindən istifadə edə bilərsiniz.
DAC, RC Filtri, Sintezator
DAC, RC filtrləri və Synth üçün əlaqə (meydança, qapı və sürət) yuxarıdakı diaqramda göstərilmişdir. İstinad üçün Korg MS20 patch panelini götürdüm, amma hər şeyi bir MS10 -da sınadım. Sürət CV -nin VCA "ilkin mənfəət" yamaq nöqtəsinə birbaşa qoşulmasının heç bir təsiri yoxdur (bunu daha da qazmalıyam), ancaq "Total" yama nöqtəsinə bağlasanız və ümumi xarici qablarınızı qaldırsanız (MG/T. EXT)), qeyd sürətinin bir funksiyası olaraq gözəl ton dəyişiklikləri eşidəcəksiniz.
Şemalarım (və mənim də prototipim) DAC çıxışında cərəyan məhdudlaşdıran bir rezistor istifadə etmir, ancaq dövrələrinizə uzun ömür təmin etmək üçün birini yerləşdirmək həmişə yaxşı bir fikirdir. 220 ohm müqavimət kifayətdir.
Sxemlərdə 100 uF -dən yuxarı elektrolitik qapaqlar bildirildiyinə diqqət yetirin, lakin tutumun doldurma müddəti səbəbindən çox yavaş olur. Qütbləşməmiş 0.1uF qapaqlar düzgün seçimdir.
Gate Out
V-Trig (gərginlik tetikleyicisi) siqnalları ilə uyğun bir synth sıralamaq niyyətindəsinizsə, cərəyanı azaltmaq üçün 1k ohm seriyalı rezistor kifayət edər; S-Trig (keçid tetikleyicisi) sintezi halında, sadə bir PNP keçid dövrəsindən istifadə edə bilərsiniz (əlavə edilmiş sxemə baxın).
Addım 5: Proqram təminatı
Eskizi mümkün qədər aydın və "oxunaqlı" saxlamağa çalışdım.
Sadə bir hesab vərəqi üzərində işlədim, BURADA bir Voltaj Vs Qeyd# əyrisi çıxarmaq və birbaşa mikrokontrolördəki tənliyi istifadə etmək üçün tapdım. Tənlik yuxarıdakı qrafikdə göstərilmişdir. Arp/Korg uyğun Voltaj Vs qeyd əlaqəsi əldə etmək üçün C2 istifadə etdim (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V və s.).
Yaxşı bir tənzimləmə əldə etmək üçün oyuncağa bir dəyişən təyin etməliydim … doğru dəyərləri tapmaq üçün vaxt ayırın. Bir tuner lazımdır.
Çıxış gərginliyini azaltmaq üçün Taymer/Sayğacın pwm tezliyini artıracağıq (kod xətti qədər asan).
Kodun gələn baytlara cavab verməsini təmin etmək üçün kod çox vaxt funksiyaların geri çağırılmasına əsaslanır.
Sparkfun "Adafruit_MCP4725.h" və qırx yeddi effekt/Francois Bestin "MIDI.h" kitabxanalarının tərtib edilməsinə ehtiyacınız var! (Bu şəxslərə çox sağ olun: onların səyləri olmadan bu layihə heç vaxt gerçəkləşməyəcək!).
Kompüterinizdə Arduino IDE -nin hazır olduğunu və Arduino lövhəsinə bir eskiz yükləməyi bilirsiniz.
Mən real həyatda kod yazan adam deyiləm, buna görə də eskizi daha yaxşı bir şəkildə yazmaq ehtimalı yüksəkdir. Təkliflərə açıqam (kodlayıcı koduna baxaraq hər zaman bir şey öyrənirəm)))
Əlavə qeydlər aşağıdakı kodda yazılmışdır. İki kitabxananı quraşdırın, IDE -də əlavə edilmiş kodu açın, lövhənizi bağlayın, lövhənin növünü seçin və yükləyin.
Addım 6: Problemlərin aradan qaldırılması
Layihə aşağı səviyyədə olsa da, yanlış gedə biləcək bir çox şey var. Öz MIDI -dən CV qutusu yaratmağa çalışarkən problem yaşayırsınızsa, bu addımları izləyin:
1. Arduinonun MIDI mesajlarını düzgün qəbul etdiyinə əmin olun
Klaviatura və ya DAW və ya Sequencer -in MIDI mesajlarını çıxardığı çıxış kanalını yoxlayın. Arduino standart olaraq 1 -ci kanalı dinləyir. Daxil olan notON mesajını oxumaq üçün "TEST_MIDI_IN.ino" yükləyin.
2. Kablolarınızı iki dəfə yoxlayın
… Və ya daha yaxşı: üç dəfə yoxlayın! Bunun üçün vaxtınızı ayırın.
3. DAC ünvanını və çıxışını yoxlayın
DAC, eskizdə təyin etdiyimdən fərqli bir ünvanda məlumat almaq üçün qurula bilər. "I2C_scanner.ino" proqramını işlədərək ünvanı yoxlayın. "Cihaz tapılmadı" xətası baş verərsə, DAC kabellərinizi yoxlayın (SDA və SCL girişləri fərqli Arduino lövhələrində fərqlidir!). Bir osiloskopunuz varsa (hətta 15 avroluq rəqəmsal osiloskoplar kifayət qədər yaxşı … və oyuncaqla əylənmək!) DAC kitabxanasının quraşdırılmasına daxil olan üçbucaqlı generator nümunəsini yükləyərək DAC -ın çıxışını yoxlaya bilərsiniz.
Unutmayın ki, bir optocoupler arduino lövhənizin RX girişinə qoşulduqda yeni bir eskiz yükləyə bilməyəcəksiniz !! RX pinindən əvvəl bir keçid qoyun (sadə bir tullanan ola bilər).
Bu test eskizlərinin çoxu mənim deyil və ya heç olmasa mövcud onlayn materiala əsaslanır.
Bu şey mənə uyğun gəlmir !?
Bu real bir məsələ deyil: Hz/V nəzarət üçün çıxarılan tənlik "idealdır". İdeal davranışdan bəzi sapmalar 5.000V olmayan +5V -dan, DAC -dan və alətin özündən çıxa bilər. Həll etmək üçün synth melodiyası/incə tune potansiyometriniz və "voilà" ilə mükəmməl uyğunlaşdırılmış bir MIDI idarəsi ilə hərəkət etməlisiniz;)
Addım 7: Faydalı bağlantılar
az.wikipedia.org/wiki/CV/gate
www.instructables.com/id/Send-and-Receive-…
www.songstuff.com/recording/article/midi_me…
pages.mtu.edu/~suits/NoteFreqCalcs.html
espace-lab.org/activites/projets/en-arduin…
learn.sparkfun.com/tutorials/midi-shield-h…
provideyourown.com/2011/analogwrite-conver…
www.midi.org/specifications/item/table-3-c…
arduino-info.wikispaces.com/Arduino-PWM-Fr…
sim.okawa-denshi.jp/az/PWMtool.php
Tövsiyə:
Başqa bir Nixie Saatı: 6 Addım (Şəkillərlə birlikdə)
Başqa bir Nixie Saatı: Həmişə bir nixie saatı istəmişəm, məni heyran edən parlaq nömrələrdə bir şey var. Ebayda çox da bahalı olmayan IN12 -lər tapanda aldım, aldığımda heyrətləndim, amma tezliklə bunu başa düşdüm
Arduino Irlib ilə bir TV pultunu və ya başqa bir şeyi necə təqlid etmək olar: 3 addım (şəkillərlə)
Arduino Irlib ilə bir TV Uzaqdan və ya Başqa Nəyi Təqdim etməliyəm: Giriş Hər kəsə salam və ilk Təlimatçılığa xoş gəldiniz.Bu gün, başlığın dediyi kimi, Arduino (hər hansı bir model) istifadə edərək İnfraqırmızı siqnallarla işləyən elektron TV pultunu və ya bənzər bir şeyi təqlid etməyi öyrənəcəyik. Problem bu idi: Kodları bir -birindən necə ayıra bilərəm
YACS (Yenə Başqa Bir Şarj Stansiyası): 6 Adım (Şəkillərlə birlikdə)
YACS (Yenə Bir Doldurma Stansiyası): Gadget'larınız üçün bir şarj stansiyası. Təchizat: Kauçuk qıvrımlar Bir qutu Alətlər: Matkap və bitlər
64 Piksel RGB LED Ekran - Başqa bir Arduino Klonu: 12 Addım (Şəkillərlə birlikdə)
64 Piksel RGB LED Ekran - Başqa bir Arduino Klonu: Bu ekran 8x8 RGB LED Matrisə əsaslanır. Test məqsədləri üçün 4 növbəli qeyd istifadə edərək standart bir Arduino lövhəsinə (Diecimila) qoşuldu. İşə başladıqdan sonra fabbed PCB üzərində permatize etdim. Dəyişmə qeydləri 8 bit genişliyindədir və
Bir AVR (arduino) başqa bir Arduino ilə necə proqramlaşdırılır: 7 addım
Başqa bir Arduino ilə AVR (arduino) Proqramlaşdırılması: Bu təlimatlar aşağıdakı hallarda faydalıdır: * atmega168 ilə arduino almışsınızsa və yerli elektronika mağazasında bir atmega328 almışsınızsa. Arduino yükləyicisi yoxdur * arduino istifadə etməyən bir layihə etmək istəyirsən - sadəcə