Turinys:

„Micro Midi“sintezatorius: 5 žingsniai (su nuotraukomis)
„Micro Midi“sintezatorius: 5 žingsniai (su nuotraukomis)

Video: „Micro Midi“sintezatorius: 5 žingsniai (su nuotraukomis)

Video: „Micro Midi“sintezatorius: 5 žingsniai (su nuotraukomis)
Video: Fun with Music and Programming by Connor Harris and Stephen Krewson 2024, Liepa
Anonim
„Micro Midi“sintezatorius
„Micro Midi“sintezatorius
„Micro Midi“sintezatorius
„Micro Midi“sintezatorius
„Micro Midi“sintezatorius
„Micro Midi“sintezatorius

Ši instrukcija demonstruoja VLSI VS1053b garso ir „Midi DSP“lusto naudojimą realiuoju laiku veikiančiu „Midi“režimu. Šiuo režimu jis veikia kaip 64 balsų polifoninis GM (General Midi) Midi sintezatorius. „Arduino Uno“atskiras mikrovaldiklis valdo OLED ekraną, tris mygtukus (funkcijų pasirinkimas ir aukštyn arba žemyn) ir perduoda „Midi“duomenų srautą į garso DSP. Pasirinkta muzikos plokštė buvo „Adafruit VS1053“kodeko pertraukimo lenta, bet „Sparkfun“muzikos pertraukimo plokštė taip pat buvo sėkmingai išbandytas. Adafruit VS1053b bibliotekos buvo naudojamos vietoj daug didesnės SFEMP3 bibliotekos (rekomendavo „Sparkfun“, nors jos taip pat turi savo bibliotekų rinkinį), nes man buvo lengviau suprasti „Adafruit“kodą.

Dauguma kodo, naudojamo garso/midi DSP valdymui, buvo sukurtas naudojant „Arduino Uno“, prijungtą prie garso/midi pertraukos plokštės per duonos lentą. Nustačius, kad funkcijos veikia patenkinamai, „Uno“buvo naudojamas kaip savarankiško ATmega 328 programuotojas, kuris buvo uždėtas ant mažos 30 x 20 dydžio „Veroboard“plokštės kartu su 6N139 optinio izoliatoriaus IC, reikalingu „Midi“įvesties lizde (5 kontaktų DIN).. Taip pat buvo prijungtas mažas (64 x 48) OLED skydas, trys mygtukai, „Midi“aktyvumo šviesos diodas ir +5 voltų statinės jungtis, skirta maitinti ir garso stereo išvesties jungtis. Maitinimo reikalavimai yra labai nedideli - apie 20 mA esant 5 voltams.

1 žingsnis: dalių sąrašas

„ATmega328 Micro“28 kontaktų DIP + 28 kontaktų DIP lizdas lizdas, skirtas prijungti prie stiprintuvo ar ausinių Rezistoriai: 7 x 10k, 2 x 470 omų, 2 x 220 omų Kondensatoriai: 0,1uF 50v plastikas, 10uf 25v elektrolitinis, 2 x 27 pF keramika Maži Veroboard gabaliukai (30 juostelių po 20 stulpelių ir 4 juostelės) 16 stulpelių), ABS plastikinis gaubtas apie 85x55x25mm, laidai ir keli varžtai veržlės ir poveržlės.

2 žingsnis: Statyba

Statyba
Statyba
Statyba
Statyba
Statyba
Statyba

Korpuso dangtelyje yra OLED ekranas, trys mygtukai, pritvirtinti prie kito mažo „Veroboard“gabalo, ir statinės maitinimo jungtis. Pagrindinėje „Vero“plokštėje yra dvi skylės, skirtos pritvirtinti „Music Breakout“plokštę virš ATmega328. Daugiau informacijos apie prijungimą rasite „Fritzing“juostos plokštės schemoje.

Užprogramuotas ATmega328 (kodo ieškokite kitame skyriuje) įkišamas į lizdą, po to - 6N139 ir viskas yra prijungta.

Šviesos diodas naudojamas kaip „Midi“veiklos indikatorius ir buvo sumontuotas priekinėje korpuso pusėje. Jis prijungtas prie AT2328 D2 išvesties per 470 omų rezistorių.

Energijai OLED ekranas naudoja 3,3 volto išėjimą iš „Adafruit“plokštės - tam reikia mažiau nei 20 mA.

Pabandykite pakeisti dvi „Midi Din“jungtis, jei pirmą kartą naudodami sintezatorių negirdite jokio garso.

3 žingsnis: programinė įranga

Išsami informacija apie eskizą, kurį reikia įkelti į „ATmega328“, pateikta „MidA.ino“. Galimos septynios funkcijos:

P variantas: Keisti programą - pakeiskite GM Midi instrumentą iš 1 į 128 (aš naudojau nuo 0 iki 127), pvz., Fortepijono ar sintezės garsą. B parinktis: pakeiskite instrumentų banką tarp melodinio (0 bankas) ir perkusijos (1 bankas). V parinktis: sureguliuokite garsumą nuo 1 iki 10. C parinktis: pakeiskite „Midi“kanalą, į kurį „Synth“reaguos. Pasirinkimai yra kanalas 0, 1 kanalas, 9 kanalas (mušamieji), 0 ir 9 kanalai bei 1 ir 9 kanalas. R parinktis: įjunkite arba išjunkite „Reverb“efektą. S parinktis: išsaugokite esamus parametrus „Eeprom“atmintyje (aukštyn) arba perskaitykite (žemyn) iš „Eeprom“atminties. Taip yra todėl, kad išjungus parametrai kitaip neišsaugomi. X parinktis: Siųskite visų užrašų išjungimo pranešimą („Midi Reset“).

Aštuntoji galimybė dar neįgyvendinta - tai apeis „ATmega“kaip „Midi“filtrą ir prijungs optinio izoliatoriaus išvestį tiesiai prie DSP plokštės Rx kaiščio.

Atminkite, kad „VS1053b“įjungiamas realiuoju laiku veikiančiu „Midi“režimu, įkrovos metu įkeliant 1039 baitų suspaustą pataisą - tai taip pat padidina „Midi“buferio dydį ir filtruoja išskirtinius „Midi“duomenų baitus. Išsamią informaciją apie šį pleistrą rasite VLSI svetainėje.

Šiek tiek pakeista „Adafruit Graphics“bibliotekos versija buvo naudojama 64 x 48 pikselių OLED ekrano skiriamajai gebai patenkinti - žr. Pabaigoje pateiktas nuorodas į p. Reikalingų bibliotekų sąrašas pateiktas eskizo kode.

Svarbu tai, kad eskizas pirmą kartą vykdomas naudojant „ATmega328“, nesvarbu, ar jis yra „Uno“, ar atskiras, kodas įkelia iš anksto nustatytus parametrus iš „ATmega328 Eeprom“, kurie gali būti netinkami. Tokiu atveju galite rašyti visus nulius į „Eeprom“naudodami parinktį X su mygtuku žemyn arba komentuoti eilutę tuščiosios sąrankos funkcijoje, kuri įkelia vertes iš „Eeprom“, kai ji pirmą kartą paleidžiama, pritaikykite savo instrumentus ir pan. patinka, tada išsaugokite išankstinius nustatymus naudodami mygtuką S parinktis aukštyn.

Kreditas suteikiamas visiems asmenims ir subjektams, paminėtiems dėl jų kodo ir bibliotekų.

4 žingsnis: nuorodos

VLSI:

„Adafruit“:

„Github VS1053b“:

„Github“grafika:

Oled:

„Sparkfun“:

5 veiksmas: „Sparkfun“lentos naudojimas su „Adafruit“bibliotekomis

„Sparkfun“lentos naudojimas su „Adafruit“bibliotekomis
„Sparkfun“lentos naudojimas su „Adafruit“bibliotekomis

Paveikslėlio lentelėje paaiškinta, kaip prijungti „Adafruit“arba „Sparkfun“muzikos plokštes prie kitos bibliotekos.

Rekomenduojamas: