Talaan ng mga Nilalaman:

Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano: 7 Hakbang
Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano: 7 Hakbang

Video: Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano: 7 Hakbang

Video: Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano: 7 Hakbang
Video: ANALOGUE POCKET - UNLOCKING RETRO GAMING MARVELS 2024, Hulyo
Anonim
Image
Image
Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano
Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano
Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano
Bumuo tayo ng isang SN76489 USB MIDI Synth Sa Arduino Nano

Nais mo bang bumuo ng iyong sariling synthesizer batay sa mga lumang chip-tone mula 80? Maglaro ng mga simpleng tunog ng polyphonic na parang katulad ng mga lumang Sega Master System at Megadrive video game na ito?

Mayroon akong, kaya, nag-order ako ng ilang mga chips ng SN76489 mula sa ebay at isang interface ng host na midi at binigyan ito ng isang pagbaril. Sa gayon, hindi ito isang lakad sa parke para sa akin, ngunit, nasiyahan ako sa bawat sandali.

Una natutunan ko kung paano direktang i-interface ang SN76489 at gumawa ng ilang ingay dito. Mayroong ilang mga nakalilito na elemento dito, ngunit, sa tulong ng The Oddbloke Geek Blog at ilang iba pang mga halimbawa, kasama ang dokumento ng pagtutukoy ng maliit na tilad ay nakabuo ako ng isang simpleng arduino library.

Susunod, kinailangan kong malaman kung paano mag-interface ng isang midi keyboard na may isang USB mini host na kalasag. Hindi ito ganoon kahirap, dahil may magagamit na dokumentasyon, at mabubuting aklatan na may mga malinaw na halimbawa.

Kapag naintindihan ko kung paano makontrol ang maliit na tilad at kung paano i-interface ang aking USB midi keyboard, ang natitirang bagay lamang na dapat gawin ay ang pagsulat ng ilang code na ibabalot ang lahat ng ito at payagan akong gamitin ang keyboard upang makontrol ang maliit na tilad.

Kasabay nito, natutunan ko na ang mga tunog na may dalas na mas mababa kaysa sa mga sinubukan kong likhain para sa 0x2f na midi note ay hindi tama, kaya, napagpasyahan kong gamitin iyon upang payagan ang pagpapadala ng ingay sa generator ng ingay para sa anumang mga tala ng midi sa pagitan ng 0x28 at 0x2f at payagan din ang mga tala ng pag-play na may isang oriental arab touch dito para sa anumang mas mababa sa midi 0x28.

Pagtingin sa likod, ito ay isang masaya at napaka-kagiliw-giliw na bumuo.

Inaasahan kong makita mo ito bilang kasiya-siya at kagiliw-giliw na tulad ko at kung bumuo ka ng isa sa iyong sarili, magiging mabait ka upang ibahagi ang ilang mga larawan nito.

Kung nagustuhan mo ang proyektong ito, mangyaring iboto ito sa ibaba upang makatulong na manalo sa patimpalak na sinasali nito

Mga gamit

Nagdagdag ako ng mga link sa materyal na maaari kang bumili para sa proyektong ito, gayunpaman, maaari kang makahanap ng maraming magagamit na mga item na maaari mong i-scrape mula sa mga lumang electronics.

Ang mga link na ito ay kaakibat na mga link, kaya, kung bumili ka pagkatapos ng pag-click sa kanila, nakakakuha ako ng isang maliit na bahagi (hindi kapalaran) at nakakakuha ka ng isang produkto na tama para sa proyektong ito. Walang bayad o labis na gastos sa paggamit ng mga ito, gayunpaman, maaari kang makahanap ng anumang mga katulad na item na maaaring palitan ang mga ito medyo madali.

ebay.us/svA4z4 | 1 x board ng pagganap

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x USB mini na kalasag

ebay.to/2QrHl1C | 1 x SN76489 tunog chip

ebay.us/aaaj8p | 1 x shift register 595

ebay.us/DSvTHO | 1 x kristal oscillator na 4MHz

ebay.us/XQeM0Q | 1 x 5V boltahe regulator 7805

ebay.us/6R6Fpf | 1 x heat sink para sa voltage regulator

ebay.us/xkLbn4 | 3 x 10uF capacitor

ebay.us/pnm2BH | mga wire

ebay.us/PMbUfY | 1 x pulang LED para sa lakas

ebay.us/zokHtc | 1 x 220 ohm risistor upang limitahan ang kasalukuyang daloy ng LED

ebay.us/qjbesJ | 1 x power konektor para sa 12v power supply

ebay.us/cS0wwv | 1 x on / off switch

isang angkop na kahon (itinayo ko ang minahan mula sa isang lumang drawer na namamahinga sa aking imbakan ng mga taon)

Hakbang 1: Paghahanda ng USB Mini Host Shield upang Magmaneho ng isang 5V Midi Device

Paghahanda ng USB Mini Host Shield upang Humimok ng isang 5V Midi Device
Paghahanda ng USB Mini Host Shield upang Humimok ng isang 5V Midi Device

Dahil ang USB mini host Shield ay nagpapatakbo sa 3.3V at ang mga USB midi keyboard na ginagamit ko ay nangangailangan ng 5V, kinakailangan upang ayusin ang boltahe ng output ng kalasag sa pamamagitan ng paggupit ng linya ng 3.3V na papunta sa USB out Vcc, kaya, maaari natin itong ikonekta sa paglaon hanggang 5V.

Maraming mga tutorial sa kung paano ito gawin at naging simple lamang ito:

Gupitin lamang ang linya sa pagitan ng 2k2 risistor at ang linya ng Vcc (tingnan ang nakapaloob na imahe). Gumamit ako ng isang driver ng tornilyo upang gasgas ang linyang ito at sinubukan kung gumana ito sa isang pagpapatuloy na metro.

Hakbang 2: Ikonekta ang USB Mini Shield Sa Iyong Arduino Nano

Ikonekta ang USB Mini Shield Sa Iyong Arduino Nano
Ikonekta ang USB Mini Shield Sa Iyong Arduino Nano
Ikonekta ang USB Mini Shield Sa Iyong Arduino Nano
Ikonekta ang USB Mini Shield Sa Iyong Arduino Nano

Sa kabutihang palad, maraming impormasyon kung paano ito gagawin, kaya, sa pamamagitan ng pag-google para sa "Arduino Nano at mini USB host Shield" napunta ako sa thread na ito

Inilarawan nito kung paano ikonekta ang kalasag ng USB mini v2.0 at pagkatapos sundin ito ay dumiretso ako upang subukan ang ilang mga halimbawa ng midi ng USB.

Mga kable:

Arduino Host na kalasag

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

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

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

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

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

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

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

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

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

Sa thread na ito, nabanggit din na pinutol nila ang 3.3V lead upang ang USB ay maaaring makakuha ng 5V mula sa VBUS.

Ang paglalarawan na ito at mga nakapaloob na imahe ay nagmula sa thread na ito.

BTW, mayroong isang pagkakamali sa pag-print sa board na ito, kaya't ito ay medyo nakalilito, subalit, makikita mo ang aking puna tungkol doon (tyrkelko) at kung saan ko ito natutunan.

Hakbang 3: Mga Chip Sinuman? Pagdaragdag ng SN76489 Sa 4MHz Osc. at 595 Shift Register

Chips Kahit sino? Pagdaragdag ng SN76489 Sa 4MHz Osc. at 595 Shift Register
Chips Kahit sino? Pagdaragdag ng SN76489 Sa 4MHz Osc. at 595 Shift Register

Ngayon ay oras na upang idagdag ang maliit na tilad na gumagawa ng kamangha-manghang tunog na ito.

Nakabuo na ako ng isang library upang mai-interface ang arduino gamit ang chip na ito at kailangan ko lang sundin ang aking mga tagubilin.

Ang library ay inilabas sa github sa ilalim ng GPLv3 (ang aking unang open source release).

github.com/tyrkelko/sn76489

Ang koneksyon ng 76489 at 595 ay tulad ng nakapaloob na imahe na nakunan mula sa library ng readme.txt file

Ang Writing Enable on Low (NotWE) ng 76489 ay konektado sa pin 3 ng nano at maaaring mabago sa code.

# tukuyin ang PIN_NotWE 3

Ang 595 ay konektado sa nano tulad ng sumusunod at maaari ring maiakma sa pamamagitan ng pag-edit ng mga numero ng pin:

# tukuyin ang PIN_SER 7

# tukuyin ang PIN_LATCH 6

# tukuyin ang PIN_CLK 5

Ang ginamit kong oscillator ay isang 4MHz crystal oscillator na may 4 na paa.

Na-configure ito sa code tulad ng sumusunod at maaari mong ayusin ang halaga nito sa anumang dalas ng oscillator sa pagitan ng 500kHz at 4MHz:

# tukuyin ang FREQUENCY 4000000.0

Ang pagkonekta ng oscillator na ginamit ko ay ang mga sumusunod:

pin 1 - hindi konektado

pin 7 - lupa

pin 8 - konektado sa 76489 pin 14 - orasan osc

Hakbang 4: Magdagdag lamang ng Code - Pagdaragdag ng Mga Aklatan, Pag-compile at Pag-upload ng Code

Ang mga librarya na ginamit sa proyektong ito ay kailangang idagdag sa Arduino IDE tulad ng sumusunod:

Buksan ang Arduino IDE

I-download ang mga sumusunod na aklatan sa folder ng library ng iyong IDE (inaasahan na makita ang mga ito sa ilalim ng menu na "Pamahalaan ang Mga Aklatan …" sa menu na "Mga Tool" ng IDE):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Gamitin ang code mula sa sumusunod na proyekto ng github:

github.com/tyrkelko/usb_midi_tone

Mag-download ng usb_midi_tone.ino, sumulat at mag-upload sa iyong Arduino nano.

Hakbang 5: Ikonekta ang isang Amplifier at Speaker, Ikonekta ang iyong USB Midi Keyboard at Test

Ngayon ay oras na upang subukan ang lahat ng bagay ay gumagana.

Upang magawa iyon kailangan natin:

1. Isang amplifier at speaker

2. Isang USB midi keyboard

Ikonekta ang SN76489 pin 7, audio out, sa audio ng amplifier.

Patayin ang amplifier at pagkatapos ay i-power ang arduino nano. Dapat mo na ngayong marinig ang lakas ng tunog ng pagsubok sa loob ng isang segundo.

Ikonekta ang USB midi keyboard at subukan.

Kung gumagana ang lahat ng tama, dapat mong i-play nang sabay-sabay ang 3 mga tono, at maglaro din ng 8 mga uri ng ingay at kahit na ilang-kapat ng tono ng 24 EDO-Scale.

Kung hindi ito gumana, gawin ang mga hakbang upang makita kung ano ang maaaring maging mali.

Kung sa tingin mo ang mga resulta na ito mula sa hindi malinaw na mga tagubilin mangyaring mag-drop sa akin ng isang tala kaya ina-update ko ang mga tagubilin upang ayusin ito.

Hakbang 6: Kumpletuhin ang Circuit Sa isang 5V Voltage Regulator, 12V Connector, Power On / off Switch at Power LED

Sa hakbang na ito dapat mong mabalot ang circuit pagkatapos subukan ito upang gumana nang wasto.

1. Magdagdag ng isang power regulator na may LM7805 at dalawang 10uF capacitors at 0.1uF. Maraming mga tutorial dito, maaari mong gamitin ang sumusunod na maituturo upang magawa iyon -

2. Magdagdag ng isang 12V power konektor kasama ang Vcc sa pamamagitan ng isang on / off switch

3. Magdagdag ng isang LED na may isang nililimitahan kasalukuyang risistor upang ipahiwatig kung ang lakas ay nakabukas.

Hakbang 7: Isara sa isang Kahon, Kulayan at Masiyahan sa Iyong Bagong Synth

Kapag nasubukan ang circuitry at gumagana ayon sa gusto mo, walang natitirang gawin maliban sa pagbuo ng isang magandang enclosure, pintura ito ng mga magagandang kulay at magpatugtog ng ilang musika.

Inaasahan kong nasiyahan ka sa pagbabasa ng itinuturo na ito, at pinasigla ka nitong bumuo ng iyong sariling synth o pumunta sa ibang proyekto na iyong pinagtatrabahuhan.

Mangyaring magkomento sa ibaba ng anumang mga katanungan at kung nakagawa ka ng anumang katulad batay sa tutorial na ito ay mahusay kung ibabahagi mo ang iyong ginawa sa "Ginawa ko ito!" lugar o sa seksyon ng feedback.

Inirerekumendang: