Talaan ng mga Nilalaman:

HX1-DM - ang Upcycled Arduino DUE Powered DIY Drum Machine (ginawa Ng Patay na Maschine MK2): 4 na Hakbang
HX1-DM - ang Upcycled Arduino DUE Powered DIY Drum Machine (ginawa Ng Patay na Maschine MK2): 4 na Hakbang

Video: HX1-DM - ang Upcycled Arduino DUE Powered DIY Drum Machine (ginawa Ng Patay na Maschine MK2): 4 na Hakbang

Video: HX1-DM - ang Upcycled Arduino DUE Powered DIY Drum Machine (ginawa Ng Patay na Maschine MK2): 4 na Hakbang
Video: Just another Arduino DUE powered DIY Drum Machine (made with a dead Maschine MK2) 2024, Nobyembre
Anonim
Image
Image
Ang Pag-aayos
Ang Pag-aayos

Ang Tukoy

  • Hybrid Midi controller / drum machine: Arduino DUE pinapatakbo!
  • 16 Velocity sensing pad na may napakababang latency na 1> ms
  • 8 mga knobs na itatalaga ng gumagamit sa anumang utos ng Midi #CC
  • 16ch Built-in na tagasunod (hindi kailangan ng computer !!)
  • MIDI in / out / thru functionality (maaaring magamit bilang isang USB midi interface!)
  • Bahagyang MIDI na orasan at suporta sa MTC (nagtatrabaho sa kontrol ng MMC at DAW)

Ito ay tiyak na isa sa mga pinaka-kumplikadong mga proyekto na nagtrabaho ako, ay nagsasalita ng 17 mga rehistro ng shift ng output, 6 na rehistro ng shift shift, 2x 16 na mga multiplexer ng channel na nagtatrabaho sa isang circuit board na wala akong ideya kung ano kung ano at saan plus hindi pa ako nagulo. kasama ang mga shift register / multiplexer bago ……

Nagsimula ito bilang isang salpok na bumili ng eBay, talagang gusto ko ng isang Native Instruments Maschine dahil palagi kong nagustuhan ang mga drum pad sa kanila kumpara sa mga nasa MPC studio na pag-aari ko kaya nang makita ko ang isang may sira sa eBay sa halagang £ 40 quid naisip ko Bibigyan ko ang pag-aayos nito sa pinakapangit na senaryo ng kaso na 'kung hindi ko ito ayusin Nakakuha ako ng isang Arduino DUE at ilang mga kasinungalingan ng UNO, palagi akong nakakagawa ng ilang hack'

Gusto ko talaga ang mga drum pad na yan !!!!

Mga gamit

1 x may sira na Mga Instrumentong Maschine MK2

1 x Arduino Dahil.

17 x SN74HC595's - 8-bit na rehistro ng paglilipat ng output

6 x SN74HC165's - 8-bit na rehistro ng shift shift

2 x 74HC4067 - 16 na mga multiplexer ng channel.

2 x 3.2 256x64 OLED ay nagpapakita.

ilang flat wire (gagawin ng lumang floppy cable)

Hakbang 1: Ang Pag-aayos

Ang nagbebenta ng eBay ay mabait upang magbigay ng isang ideya kung ano ang aasahan sa paglalarawan at tinanggal ang USB port. Ang board ay nagdusa ng labis na boltahe at hindi nagpapatakbo ng lakas. Cue ang multimeter …. Ang board ay lilitaw na mayroong isang maikling.. 'Inayos ko ang hindi mabilang na mga motherboard na may shorts bago Kaya gaano kahirap!?!' Ito ay higit sa boltahe (at marahil sa bahagi ng disenyo ng board), naalis ang halos BAWAT bahagi sa board kabilang ang pangunahing CPU. Ang board na ito ay nasa isang talagang masamang paraan!

Nagpatuloy akong gumawa at sundutin sa aking multimeter, gumawa ng kaunting pagsasaliksik sa mga bahagi at nalaman kung ano ang ginagawa ng bawat isa kasama ang NI na gumawa ng isang mahusay na trabaho ng paggawa ng mga bagay na halata sa iba't ibang mga puntos ng pagsubok sa paligid ng motherboard ??.

Hakbang 2: Ang Hack

Ang Hack
Ang Hack
Ang Hack
Ang Hack
Ang Hack
Ang Hack

Alam na kakailanganin kong palitan ang lahat ng bagay sa pangunahing CPU (na hindi kakailanganin) Bumaling ako sa eBay. Sa kabutihang palad lahat ng kailangan ay mura kaya ang pag-order ng isang load ng mga ito ay masaya. ?

17 x SN74HC595's - 8-bit na rehistro ng paglilipat ng output

Ginagamit ang 17 rehistro ng shift ng output upang makontrol ang mga multi-kulay LED ng drum pad at lahat ng mga LED Button (136 na eksaktong !!) Ang mga ito ay talagang madaling gamitin at mabilis na natagpuan ang isang silid-aklatan gamit ang Arduino IDE upang mai-save ang aking sarili na gumagawa ng isa.. magkadena silang nakakadena.

6 x SN74HC165's - 8-bit na rehistro ng shift shift

Ang mga rehistro ng shift shift ay mahusay para sa maraming mga input sa 1 channel. Mayroong 48 na mga pindutan sa kabuuan.

2 x 74HC4067 - 16 na mga multiplexer ng channel

Mayroon kaming 16 pads at 8 knobs na natira ito ay analog din. Nahanap ko na mas madaling gamitin ang mga ito bilang ang nasa board ay 8channel at nagkaroon ako ng mga problema sa paghanap ng kung saan ikonekta ang mga pin ng data.. cue spaghetti junction ….

2 x 3.2 "256x64 OLED ay nagpapakita

Kailangan itong magkaroon ng ilang mga screen !!! Wala akong makitang anumang impormasyon sa orihinal na mga LCD screen na dumating sa NI Maschine at hindi na ako mapakali na magsayang lang ng oras sa pagsubok kaya't napagpasyahan kong mag-order ng ilang mula sa china … Ginamit ko ang library ng UG8x8 upang magawa ang mga ito. Ang mga bagong screen ay bahagyang mas maliit kaysa sa orihinal kaya't binalikan ko lamang ang 'masamang mga piraso'.

1 x Arduino Dahil

Nagkaroon ako ng nakahiga sa paligid ng ilang oras na naghihintay sa isang proyekto na sapat na karapat-dapat para sa lahat ng kapangyarihang iyon !! Mayroong isang problema na naranasan ko, Tila ang ilang mga pagbabago ng mga board na ito ay may isang isyu sa pag-reset na nangangahulugang kailangan kong pindutin ang pindutan ng pag-reset minsan upang makuha ang bagay na tumakbo pagkatapos mag-upload ng isang sketch. Madali itong naayos sa isang resistor na 10K (mayroong isang post sa Arduino forum tungkol dito).

Hakbang 3: Ang Code

Talagang napahanga ako sa kung magkano ang suporta sa pamayanan ng Arduino, ang paghahanap ng mga halimbawa ng code at aklatan para sa iba't ibang mga sangkap ay talagang simple at tuwid.

Ang pagkuha ng USB midi up at running ay madali at tumagal ng ilang minuto. Ang mga LED ay tumagal ng ilang oras at kailangan kong lumikha ng isang sketch na incrementally itinakda ang bawat pin TAAS sa 1 segundo na agwat at kumuha ng isang tala.. Gumawa ako ng isang array na kung saan gaganapin ang mga numero ng PIN upang gawing mas madali pagdating sa pag-coding ng lahat.

Gumawa ako ng 2 mga silid-aklatan upang kausapin ang mga multiplexer, hinahawakan ng isa ang mga analog pad at ang iba pang mga knobs. Muli ito ay talagang simple. Inilakip ko sa kanila huwag mag-atubiling gumamit ng pag-edit atbp.

Nais kong magkaroon ng isang tagapagsunud-sunod at may kakayahang magrekord nang hindi kailangan ng isang computer, Natagpuan ko ang ilang impormasyon sa kung paano i-convert ang BPM sa ms at natagpuan ang isang mahusay na Arduino DUE timer library.

Gamit ang timer library nakapagtakda ako ng mga input sa pagbasa at mga bagay sa agwat:

Pads @ 1ms - Natagpuan ko ito upang mabigyan ang pinakamahusay na balanse sa pagitan ng mga tugon / de-bounce na artifact.

Mga Pindutan @ 40ms - Gumamit ako ng isang queue library kaya walang mga pagpindot na napalampas.

Ang pagpoproseso ay tapos na sa pangunahing loop, hindi ka maaaring gumawa ng sobra kapag ang iyong nasa isang nakakagambala dahil ikakandado nito ang Arduino.

Midi bagay na @BPM (sa ms) - para sa pagkakasunud-sunod, sa nais na BPM isang pagpapaandar ang tinatawag na mga pag-update na kung saan ang tala ng ETC ay dapat i-play at tataasan ang beat counter.

Hakbang 4: Konklusyon

Konklusyon
Konklusyon

Hindi sigurado kung ano ang nagawa ko rito ngunit lubos akong ipinagmamalaki, mahusay ang pagtugon ng mga pad, kinailangan kong kumilos sa tiyempo upang makuha ang tamang balanse sa mga isyu sa pagtugon at pag-debounce. Ang pagkakasunud-sunod ay mahusay at sa sandaling malaman ko ang suporta ng DAW maaari kong ganap na isama ang bagay na ito sa aking daloy ng trabaho at makapagdaragdag ng mga bagay sa isang controller na palaging nais ko! Ito ay isang talagang kasiya-siyang proyekto upang gumana at isang mahusay na ehersisyo sa paghawak sa C, pag-unawa sa reverse-engineering at kung paano gumagana ang mga multiplexer, shift register at MIDI sequencing. Patuloy kong pinapahusay ang pangunahing code at maaaring ilabas ito balang araw bilang isang taga-disenyo ng bukas na mapagkukunan ng ritmo.

TIP:

Nalaman ko kung paano baguhin ang pangalan ng USB ng DUE sa pamamagitan ng pag-edit ng isa sa mga file ng header sa Arduino / SAM folder.

Ang MIDI-OX ay isang mahusay na tool para sa pagsubok ng pag-andar ng Midi

Mga link:

www.usb.org/site/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi … Ang ilang impormasyon sa kung paano i-convert ang BPM sa ms

travis-ci.com/SMFSW/Queue - Para sa mga pag-input ng pindutan upang hindi namin makaligtaan ang anumang pagpindot!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib para sa mga LED / LCD Screens

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib para sa malaking knob

shiftregister.simsso.de/ - ShiftIn Register lib - Nilikha ni Henrik Heine, Hulyo 24, 2016

forum.arduino.cc/index.php?topic=57636.0 - Mga bagay sa Time Code ng MIDI

Inirerekumendang: