Turinys:

Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“: 7 žingsniai
Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“: 7 žingsniai

Video: Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“: 7 žingsniai

Video: Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“: 7 žingsniai
Video: Mr.Pinkie PIG midi kontroller. Плата без деталей 170$ полное описание и прошива собираете сами!) 2024, Liepa
Anonim
Image
Image
Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“
Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“
Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“
Sukurkime SN76489 USB MIDI sintezę su „Arduino Nano“

Ar kada nors norėjote sukurti savo sintezatorių, pagrįstą senomis 80-ųjų melodijomis? Groti paprastas polifonines melodijas, kurios skamba taip, kaip skambėjo šie seni „Sega Master System“ir „Megadrive“vaizdo žaidimai?

Taigi, aš užsisakiau keletą SN76489 mikroschemų iš „ebay“ir „midi“pagrindinio kompiuterio sąsajos ir išbandžiau. Na, man tai nebuvo pasivaikščiojimas parke, bet mėgau kiekvieną akimirką.

Pirmiausia išmokau, kaip tiesiogiai sujungti SN76489 ir su juo kelti triukšmą. Buvo keletas painių elementų, tačiau, padedant „The Oddbloke Geek Blog“ir keliems kitiems pavyzdžiams, kartu su mikroschemų specifikacijos dokumentu galėjau sukurti paprastą arduino biblioteką.

Toliau turėjau išmokti susieti midi klaviatūrą su USB mini kompiuterio skydeliu. Tai nebuvo taip sunku, nes yra tam tikros dokumentacijos ir yra gerų bibliotekų su aiškiais pavyzdžiais.

Kai supratau, kaip valdyti mikroschemą ir kaip prijungti USB midi klaviatūrą, beliko tik parašyti kodą, kuris visa tai sujungtų ir leistų man naudoti klaviatūrą mikroschemai valdyti.

Pakeliui sužinojau, kad garsai, kurių dažnis yra mažesnis nei tie, kuriuos bandžiau generuoti „0x2f“midi natoms, skamba netinkamai, todėl nusprendžiau tai naudoti, kad triukšmo generatorius galėtų siųsti triukšmą bet kokiems midi natams nuo 0x28 iki 0x2f ir taip pat leisti groti užrašus su rytietišku arabišku prisilietimu, jei tai yra mažesnė nei midi 0x28.

Žvelgiant atgal, buvo labai smagu ir labai įdomu statyti.

Tikiuosi, kad jums tai bus taip smagu ir įdomu, kaip ir man, ir kad jei pats pasistatysite, būtumėte malonūs pasidalyti keliomis jo nuotraukomis.

Jei jums patiko šis projektas, balsuokite už jį žemiau, kad padėtumėte laimėti konkursą, kuriame jis dalyvauja

Prekės

Pridėjau nuorodų į medžiagą, kurią galite įsigyti šiam projektui, tačiau galite rasti daug galimų elementų, kuriuos galite nuskaityti iš senos elektronikos.

Šios nuorodos yra filialų nuorodos, taigi, jei perkate jas spustelėję, gaunu nedidelę dalį (ne likimą) ir gausite šiam projektui tinkamą produktą. Naudojant juos nėra jokio mokesčio ar papildomų išlaidų, tačiau galite rasti bet kokių panašių elementų, kurie gali juos gana lengvai pakeisti.

ebay.us/svA4z4 | 1 x našumo lenta

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x USB mini skydas

ebay.to/2QrHl1C | 1 x SN76489 garso lustas

ebay.us/aaaj8p | 1 x pamainų registras 595

ebay.us/DSvTHO | 1 x 4MHz kristalų osciliatorius

ebay.us/XQeM0Q | 1 x 5 V įtampos reguliatorius 7805

ebay.us/6R6Fpf | 1 x įtampos reguliatoriaus radiatorius

ebay.us/xkLbn4 | 3 x 10uF kondensatoriai

ebay.us/pnm2BH | laidai

ebay.us/PMbUfY | 1 x raudonas šviesos diodas, skirtas maitinti

ebay.us/zokHtc | 1 x 220 omų rezistorius, skirtas LED srovės srautui apriboti

ebay.us/qjbesJ | 1 x maitinimo jungtis 12 V maitinimo šaltiniui

ebay.us/cS0wwv | 1 x įjungimo/išjungimo jungiklis

tinkama dėžutė (aš ją pastatiau iš seno stalčiaus, kuris ilgus metus stovėjo mano saugykloje)

1 veiksmas: USB mini pagrindinio skydo paruošimas 5V „Midi“įrenginiui valdyti

USB mini pagrindinio skydo paruošimas 5V „Midi“įrenginiui valdyti
USB mini pagrindinio skydo paruošimas 5V „Midi“įrenginiui valdyti

Kadangi USB mini prieglobos skydas veikia 3,3 V įtampa, o mano naudojamoms USB midi klaviatūroms reikia 5 V įtampos, reikia reguliuoti skydo išėjimo įtampą, nutraukiant 3,3 V liniją, einančią į USB išvesties Vcc, todėl vėliau galime ją prijungti iki 5V.

Yra daug vadovėlių, kaip tai padaryti, ir tai pasirodė gana paprasta:

Tiesiog nukirpkite liniją tarp 2k2 rezistoriaus ir Vcc linijos (žr. Pridedamą paveikslėlį). Aš naudoju atsuktuvą, kad subraižyčiau šią liniją ir išbandžiau, ar ji veikia su tęstinumo matuokliu.

2 veiksmas: prijunkite USB mini skydą prie „Arduino Nano“

Prijunkite USB mini skydą prie „Arduino Nano“
Prijunkite USB mini skydą prie „Arduino Nano“
Prijunkite USB mini skydą prie „Arduino Nano“
Prijunkite USB mini skydą prie „Arduino Nano“

Laimei, yra daug informacijos apie tai, kaip tai padaryti, todėl „Google“ieškodamas „Arduino Nano ir mini USB pagrindinio skydo“atsidūriau šioje temoje

Jame buvo aprašyta, kaip prijungti USB mini v2.0 skydą, ir po to ėjau tiesiai į priekį išbandyti kai kurių USB midi pavyzdžių.

Laidai:

„Arduino Host“skydas

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V -------------- 1

3.3V ------------ 9

GND ----------- 3

RST ------------ 4

Šioje temoje taip pat buvo paminėta, kad jie nutraukė 3,3 V laidą, kad USB galėtų gauti 5 V iš VBUS.

Šis aprašymas ir pridedami vaizdai yra iš šios temos.

BTW, šios lentos spaudoje yra klaida, todėl tai buvo šiek tiek painu, tačiau galite pamatyti mano atsiliepimus apie tai (tyrkelko) ir iš kur aš to sužinojau.

3 žingsnis: lustai kas nors? Pridedamas SN76489 su 4 MHz Osc. ir 595 pamainų registras

Lustai Kas nors? Pridedamas SN76489 su 4 MHz Osc. ir 595 pamainų registras
Lustai Kas nors? Pridedamas SN76489 su 4 MHz Osc. ir 595 pamainų registras

Dabar atėjo laikas pridėti lustą, kuris skleidžia šį nuostabų garsą.

Aš jau sukūriau biblioteką, skirtą sąsajai arduino su šiuo lustu, ir turėjau vykdyti tik mano nurodymus.

Biblioteka išleista „Github“pagal GPLv3 (mano pirmasis atviro kodo leidimas).

github.com/tyrkelko/sn76489

76489 ir 595 ryšys buvo toks kaip pridėtame paveikslėlyje, kuris užfiksuotas iš bibliotekos readme.txt failo

76489 rašymo įjungimas žemai (NotWE) buvo prijungtas prie 3 nano kaiščio ir gali būti pakeistas kodu.

#define PIN_NotWE 3

595 buvo prijungtas prie nano taip ir gali būti sureguliuotas redaguojant kaiščių numerius:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

Osciliatorius, kurį naudojau, buvo 4MHz kristalų osciliatorius su 4 kojomis.

Jis buvo sukonfigūruotas kode taip, ir jūs galite koreguoti jo vertę pagal bet kurį generatoriaus dažnį nuo 500 kHz iki 4 MHz:

#define FREQUENCY 4000000.0

Naudojamas osciliatorius buvo prijungtas taip:

1 kaištis - neprijungtas

7 kaištis - įžemintas

8 kaištis - prijungtas prie 76489 kaiščio 14 - laikrodžio osc

4 veiksmas: tiesiog pridėkite kodą - bibliotekų pridėjimas, kodo sudarymas ir įkėlimas

Šiame projekte naudojamos bibliotekos turi būti įtrauktos į „Arduino IDE“taip:

Atidarykite „Arduino IDE“

Atsisiųskite šias bibliotekas į savo IDE bibliotekos aplanką (tikiuosi, kad netrukus pamatysite jas IDE meniu „Įrankiai“meniu „Tvarkyti bibliotekas…“):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Naudokite šio github projekto kodą:

github.com/tyrkelko/usb_midi_tone

Atsisiųskite usb_midi_tone.ino, sudarykite ir įkelkite į „Arduino nano“.

5 veiksmas: prijunkite stiprintuvą ir garsiakalbį, prijunkite USB „Midi“klaviatūrą ir išbandykite

Dabar atėjo laikas išbandyti, ar viskas veikia.

Norėdami tai padaryti, mums reikia:

1. Stiprintuvas ir garsiakalbis

2. USB midi klaviatūra

Prijunkite SN76489 7 kaištį, garso išvestį, prie stiprintuvo garso įvesties.

Įjunkite stiprintuvą ir įjunkite arduino nano. Dabar sekundės dalį turėtumėte išgirsti įjungimo bandymo garsą.

Prijunkite USB midi klaviatūrą ir išbandykite.

Jei viskas veikia teisingai, turėtumėte sugebėti vienu metu groti 3 tonus, taip pat groti 8 tipų triukšmą ir net ketvirtadalį 24 EDO skalės tonų.

Jei tai neveikia, atlikite veiksmus, kad pamatytumėte, kas galėjo nutikti.

Jei manote, kad tai atsiranda dėl neaiškių instrukcijų, parašykite man pranešimą, kad atnaujinčiau instrukcijas, kad tai ištaisyčiau.

6 žingsnis: Užbaikite grandinę naudodami 5 V įtampos reguliatorių, 12 V jungtį, maitinimo įjungimo/išjungimo jungiklį ir maitinimo šviesos diodą

Šiame etape turėtumėte sugebėti užbaigti grandinę, išbandę, ar ji veikia tinkamai.

1. Pridėkite galios reguliatorių su LM7805 ir dviem 10uF kondensatoriais ir 0,1uF. Yra daug pamokų apie tai, galite tai padaryti naudodami šią instrukciją-https://www.instructables.com/id/7805-Regulator-5V…

2. Pridėkite 12 V maitinimo jungtį, Vcc eidami per įjungimo/išjungimo jungiklį

3. Pridėkite šviesos diodą su ribojančiu srovės rezistoriumi, kad nurodytumėte, kada maitinimas įjungtas.

7 žingsnis: uždėkite dėžutę, dažykite ir mėgaukitės nauja sinteze

Kai grandinė bus išbandyta ir jums patiks, beliks daug ką padaryti, išskyrus gražaus korpuso pastatymą, nudažykite jį nuostabiomis spalvomis ir paleiskite muziką.

Tikiuosi, kad jums patiko skaityti šią pamoką ir kad ji įkvėpė jus sukurti savo sintezatorių arba pradėti kitą projektą, prie kurio dirbate.

Jei turite klausimų, pakomentuokite toliau. Jei sukūrėte ką nors panašaus, remdamiesi šia pamoka, būtų puiku, jei pasidalintumėte tuo, ką padarėte skiltyje „Aš tai padariau!“. srityje arba atsiliepimų skiltyje.

Rekomenduojamas: