Cov txheej txheem:

Tsim ib qho Arduino MIDI maub los: 9 Kauj Ruam (nrog Duab)
Tsim ib qho Arduino MIDI maub los: 9 Kauj Ruam (nrog Duab)
Anonim

Cov lus qhia no tau luam tawm thawj zaug ntawm kuv blog thaum Lub Rau Hli 28, 2020

Kuv nyiam tsim cov khoom uas suav nrog khoom siv hluav taws xob, thiab kuv ib txwm xav tsim qee yam siv Arduino.

Ib qho ntawm qhov ua tau zoo tshaj plaws rau cov pib kuv pom yog MIDI maub los. MIDI maub los yog ib qho khoom siv uas xa MIDI cov ntaub ntawv (Suab paj nruas Ntsuas Digital Interface) mus rau lub cuab yeej kom ua suab nrov thiab ua suab paj nruag.

Kuv pom tias ntau qhov kev siv yog qhov nyuaj, txawm tias yog rau cov pib tshiab. Nws nyuaj siab heev pom tias kuv xav tau siv ntau pua kab ntawm cov lej uas nyeem tsis tau. Los yog tias kuv yuav tsum tau siv cov tshuaj tiv thaiv kab mob hauv qee kis, ntawm lwm qhov piv txwv.

Txoj Haujlwm

Los ntawm kev tsim kuv tus kheej Arduino MIDI maub los, kuv lub hom phiaj yog ua kom muaj txoj haujlwm zoo, khaws lub suab nrov qis tshaj. Ib yam dab tsi txhua tus pib tuaj yeem ua raws. Txhawm rau ua tiav qhov ntawd, Kuv siv MIDI Fighter 3D ua lub hauv paus kev tshoov siab thiab tshem tawm txhua qhov tsis tseem ceeb.

Tus nqi tag nrho ntawm kuv txoj haujlwm yog qis dua $ 30, thiab cov npe ntawm cov ntaub ntawv tau luv heev (koom nrog txuas):

  • Arduino Leonardo (lossis clone): ntawm $ 10 txog $ 20.
  • 16 x Sanwa cov nyees khawm 24mm (lossis clone): nruab nrab ntawm $ 1 txog $ 2.50 ib lub pob.
  • Soldering Hlau
  • 22 AWG Hluav Taws Xob Hlau

Pawg Arduino

Thaum kuv pib qhov haujlwm no kuv pom muaj cov pawg ntawm Arduino tus qauv tshiab (tsis suav nrog ntau pua ntawm cov laug cam sib xws). Thiab txhua tus ntawm lawv muaj peev xwm sib txawv me ntsis.

Kuv xav tau kom xa MIDI cov cim rau lub khoos phis tawj thiab txoj hauv kev yooj yim tshaj plaws uas yog los ntawm USB. Ib qho Arduino pawg thawj coj raws ATmega32u4 microcontroller tau teeb tsa hauv USB kev sib txuas lus.

Cov nom Arduino cov laug cam nrog kev txhawb nqa USB ib txwm yog Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Cov laug cam no suav nrog kev txhawb nqa USB uas txhais tau tias lawv tuaj yeem ua haujlwm li USB MIDI ntaus ntawv.

Kuv txiav txim siab mus nrog clone ntawm Arduino Leonardo. Nws muaj cov tswv yim txaus rau txoj haujlwm no thiab nws tseem suav nrog lub taub hau, uas ua rau nws yooj yim rau ntsaws/tshem tawm cov xov hlau.

Thawj kauj ruam

Txawm hais tias kuv yuav piav qhia ib qib zuj zus tias kuv siv cov cai rau txoj haujlwm no li cas, koj tuaj yeem rub tawm qhov kawg.

Txhawm rau upload cov cai rau pawg thawj coj koj yuav tsum siv Arduino IDE. Lawv kuj muaj Web editor uas muaj txiaj ntsig zoo tab sis lawv muaj qhov txwv qis ib zaug hauv ib hnub uas koj tuaj yeem sau cov cai.

Kauj Ruam 1: Tsiv Lub Teeb Ua-nyob rau hauv LED

Nws yog qhov txaus luag li cas "Nyob Zoo Ntiaj Teb" hauv ntiaj teb cov khoom siv tau ntsais muag LED.

Nws yog qhov kev xav tsis zoo rau kuv kom pom tias Arduino Leonardo muaj lub teeb tsa LED uas koj tuaj yeem ntsais muag los ntsuas koj tus lej. Txoj kev ntawd koj tsis tas yuav tsim ib qho kev sib txuas sab nraud ntawm lub khob cij nrog LED thiab tus tiv thaiv.

Code:

Kauj Ruam 2: Tsiv lub LED ntawm Kev Nkag Mus Los

Cov kauj ruam tom ntej yog kom ntsais tib lub LED thaum twg kuv xa lub teeb liab. Kuv tshem cov yas npog ntawm ib kawg ntawm 2 Dupont xov hlau, thiab txuas lwm qhov kawg rau pawg thawj coj:

  • Tus lej tus lej 2: Ib qho ntawm cov khoom siv digital (zoo). Nws tuaj yeem yog ib tus lej digital.
  • Pin GND: Txhua tus pin hauv av (tsis zoo).

Tam sim no, txhua lub sijhawm kuv koom nrog qhov kawg ntawm cov xov hlau kuv kaw lub Circuit thiab yog li kuv tuaj yeem ua tus lej raws li qhov tsim nyog

Txhua ntawm 20 tus lej digital ntawm Leonardo muaj tus tiv thaiv sab hauv (txiav tawm los ntawm lub neej ntawd) uas tuaj yeem qhib siv INPUT_PULLUP. Nco ntsoov tias qhov rub tawm nkag txhais tau tias lub xeev khawm rov qab:

  • HIGH thaum qhib lub Circuit Court (tsis khawm).
  • LOW thaum lub kaw lus kaw (khawm raug nias).

Code:

Kauj Ruam 3: Txhim Kho Lub Tsev Qiv Ntawv MIDIUSB

Lub tsev qiv ntawv no tso cai rau Arduino board nrog USB muaj peev xwm los ua lub cuab yeej MIDI hla USB. Txheeb xyuas cov ntaub ntawv raug cai rau cov ntaub ntawv ntxiv.

Siv Arduino IDE, koj tuaj yeem teeb tsa Arduino Libraries ntxiv uas siv Tus Thawj Saib Xyuas Tsev Qiv Ntawv:

  1. Qhib IDE thiab nyem rau ntawm "Sketch" ntawv qhia zaub mov, tom qab ntawd "suav nrog Lub Tsev Qiv Ntawv", tom qab ntawd "Tswj Cov Tsev Qiv Ntawv".
  2. Nrhiav MIDIUSB thiab nyem Nruab.
  3. Thaum nws tau ua tiav, Cov cim npe uas tau teeb tsa yuav tsum tshwm ntawm ib sab ntawm MIDIUSB lub tsev qiv ntawv.
  4. Kaw Tus Thawj Saib Xyuas Tsev Qiv Ntawv.

Tam sim no Leonardo tuaj yeem xa xov MIDI ntawm USB! Tab sis ua ntej, qee qhov kev nkag siab txog yuav ua li cas MIDI ua haujlwm xav tau.

Yuav ua li cas MIDI Ua Haujlwm

"MIDI (Cov Khoom Siv Suab Nkauj Digital Interface) yog txheej txheem kev sib txuas lus uas txuas cov twj paj nruas hluav taws xob, khoos phis tawj, thiab lwm yam khoom siv suab rau ua suab paj nruag." - Wikipedia

Nws ua haujlwm cov lus tshwm sim nrog cov ntaub ntawv ntawm lub suab thiab nrawm ntawm daim ntawv ua si, ntawm lwm cov lus qhia

Hauv qhov haujlwm tshwj xeeb no, cov tswv yim los ntawm 16 cov nyees khawm xa cov lus sib txawv ntawm USB. Cov lus no tuaj yeem hloov pauv mus ua suab hauv computer siv cov software tsim nyog xws li GarageBand lossis Ableton Live.

Anatomy ntawm MIDI lus

Txhawm rau xa MIDI cov lus, Kuv tau siv sendMIDI () txoj hauv kev los ntawm MIDIUSB Library Kuv tau teeb tsa ntawm theem 3.

Txoj kev no tuaj yeem tau txais 4 qhov ntsuas:

  • Hom xwm txheej: Nws tuaj yeem yog 0x09 rau kev ceeb toom Rau (ua si nco) lossis 0x08 rau kev ceeb toom Tawm (nres ua si nco).
  • Nco tseg On/Off: Hom kev tshwm sim ua ke nrog MIDI channel (1-16). Kuv tsuas siv channel 1 yog li nws yog 0x90 rau kev ceeb toom On lossis 0x80 rau ceeb toom tawm.
  • Nco tseg tus lej: Txhua daim ntawv muaj qhov cuam tshuam tus lej (zaus ntsuas).
  • Tshaj tawm: Los ntawm 0 (tsis muaj nrawm) mus rau 127 (nrawm tshaj).

Kauj Ruam 4: Xa Ntawv MIDI

Kuv suav nrog MIDIUSB Lub Tsev Qiv Ntawv thiab tsis txhob ntsais lub teeb tsa hauv, kuv tau xa daim ntawv ceeb toom.

Code:

⚠ Tseem ceeb: Los ntawm cov kauj ruam no mus Arduino hloov mus rau MIDI USB Controller, thiab nws tsis tau txais cov cai ntawm USB.

Thaum koj tau nyam hauv txoj haujlwm uas Arduino tsis tuaj yeem ua haujlwm ntxiv, ua raws cov theem no:

  1. Tuav khawm khawm rov pib dua ntawm Arduino board.
  2. Nyem Upload rau Arduino IDE.
  3. Tso lub khawm pib dua.
  4. Cov cai hloov tshiab yuav muab tso rau hauv pawg thawj coj saib.

Kauj Ruam 5: Xa Ntawv MIDI Los Ntawm Txhua Khawm

Xa Ntawv MIDI Los Ntawm Txhua Khawm
Xa Ntawv MIDI Los Ntawm Txhua Khawm

Kauj ruam kawg yog ua daim duab qhia txhua lub suab rau lub pob. Rau 16 cov nyees khawm, Kuv tau teev cov nplai los ntawm C2 txog E3b, uas yog cov suab los ntawm 36 txog 51 hauv ib ntu los ntawm hauv qab mus rau saum thiab ntawm sab laug mus rau sab xis. Txheeb tawm cov ntawv no los ntawm Arduino Tutorials kom pom lub suab sib haum rau txhua daim ntawv.

Kuv siv cov koob digital los ntawm 2 txog 12 thiab tus pin zoo sib xws (siv lawv li digitals) los ntawm A0 txog A4.

Thiab qhov no yog li cas tus lej kawg zoo li https://gist.github.com/lean8086/7de896c3b8f29d15e …

Kauj Ruam 6: Teeb tsa Cov Chaw lossis Ntug Dej (xaiv tau)

Teem Up Channels lossis Banks (yeem)
Teem Up Channels lossis Banks (yeem)

Yog tias koj xav ntxiv cov nyees khawm ntxiv nrog lub peev xwm hloov pauv cov channel lossis txhab nyiaj, zoo li hauv MIDI Fighter 3D (saib duab), Arduino Leonardo muaj plaub tus lej ntxiv koj tuaj yeem siv. Arduino Leonardo muaj 20 tus lej digital input/output pins, uas tsuas yog 16 tus siv los ua si sau ntawv.

Koj tuaj yeem siv cov nyees khawm ntxiv no txhawm rau hloov pauv qhov sib txawv hauv cov cai, thiab xa nws tus nqi raws li qhov ntsuas mus rau MidiUSB.sendMIDI txoj hauv kev:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Kauj Ruam 7: Rooj plaub

Rooj plaub
Rooj plaub
Rooj plaub
Rooj plaub

Txhawm rau ua txoj haujlwm no yooj yim, Kuv tau xaiv ntau heev txog kev xaiv cov yam ntxwv twg suav nrog.

  • Khawm nkaus xwb: 16 Sanwa zoo li cov nyees khawm arcade, hauv 4x4 daim phiaj. Tsis muaj pob qhov rooj, tsis muaj sliders, tsis muaj faders, lossis lwm yam analog input.
  • Unibody case: Siv tsis muaj cov ntsia hlau, txiv ntseej, ntsia liaj qhov rooj, lossis kua nplaum rau lub thawv lossis tuav lub Rooj Tswjhwm Saib Arduino.
  • Cov cuab yeej niaj hnub: Piv txwv li, Kuv tau siv cov xaim hluav taws xob es tsis txhob yuav cov xaim hluav taws xob tshwj xeeb rau cov khawm arcade.

Unibody Tsim

Ib qho ntawm cov teeb meem kuv tau ntsib yog tsim cov ntaub ntawv yooj yim txaus uas nws tsis xav tau sib dhos thiab tuaj yeem luam tawm 3d hauv ib zaug.

Txhawm rau zam kev siv cov ntsia hlau lossis cov kua nplaum, kuv xav tau los tsim lub thawv ntawv uas muab cov khoom siv hluav taws xob tsawg tshaj plaws. Kuv qhov kev tshoov siab loj tshaj plaws rau lub thawv yog Mac Mini, uas muaj lub voj voog zoo li lub qhov nyob hauv qab. Kuv kuj xav tsim lub hau ntswj rau qhov ntawd, tab sis kuv txiav txim siab tso nws qhib kom nthuav tawm cov khoom siv hluav taws xob.

Rub tawm cov ntaub ntawv luam tawm 3d (322 KB). Pom zoo teeb tsa: PLA, 0.15mm txheej, 20% ntxiv, txhawb cov neeg ua haujlwm tsawg kawg rau qhov sib npaug hauv qab, cov tuav Arduino, thiab micro USB.

Tuav tus Arduino uas tsis muaj cov ntsia hlau

Leonardo muaj 4 lub qhov los ntsia lub rooj tsavxwm rau hauv txhua rooj plaub uas tsim nyog, tab sis kuv lub tswv yim yog ua kom yooj yim ntxiv thiab tshem lub rooj tsavxwm ntawm rooj plaub.

Kev nrhiav tus tuav lub clip rau Arduino ntawm Thingiverse tau yooj yim, thiab nws coj kuv 5 qhov rov ua dua los ua ke tus tuav rau qhov tsis xav tau ntawm lub cev. Qhov nyuaj tshaj plaws yog ua nws ob txhais ceg kom tsis txhob muaj lub qhov rau cov nyees khawm, thiab ua kom micro USB kom nyob hauv nruab nrab ntawm rooj plaub.

Kauj Ruam 8: Rooj Sib Tham

Lub Rooj Sib Tham
Lub Rooj Sib Tham
Lub Rooj Sib Tham
Lub Rooj Sib Tham
Lub Rooj Sib Tham
Lub Rooj Sib Tham

Tom qab ntxig tag nrho cov nyees khawm rau hauv qhov chaw, Kuv tau siv cov xov dub dub txuas rau txhua qhov tsis zoo ntawm cov nyees khawm ntawm lawv.

Tom qab ntawd kuv tau siv cov xov hlau liab ntev los ntawm txhua ceg zoo los txuas ncaj qha mus rau lub rooj tsavxwm.

Txhawm rau txuas cov xov hlau mus rau Arduino, Kuv tau txiav thiab muag qee qhov Dupont xaus thiab npog lawv nrog cua sov-ntsws tubing.

Kuv txuas cov xov hlau mus rau pawg thawj coj raws li qhov kev txiav txim ib yam li hauv MIDI Fighter. Los ntawm hauv qab mus rau saum thiab los ntawm sab laug mus rau sab xis

Kauj Ruam 9: Siv MIDI Tus Tswj

Siv MIDI Controller
Siv MIDI Controller

Ib qho software software (lossis kho vajtse tsim nyog) tuaj yeem siv tau txais MIDI thiab ua suab paj nruag. Cov uas tau pom zoo tshaj plaws yog Garage Band, Ableton Live, thiab kuv paub tias muaj cov pawg app los teeb tsa hauv xov tooj.

Tag nrho cov cuab yeej no muaj txiaj ntsig zoo rau kev rub lub suab ua ntej ua ntej rau kev ntaus nrig, tab sis lawv tau ua rau lub hom phiaj loj dua. Cov cuab yeej no tuaj yeem nyuaj rau cov pib tsim teeb tsa.

MIDI hauv Web browser

Txhawm rau ua qee yam ntxiv ua ke nrog txoj haujlwm no thiab nws qhov yooj yim, Kuv tau tsim Lub Vev Xaib ua kom pom tseeb ntawm MIDI cov tswj hwm.

Punchy: WebMIDI thiab WebAudio siv rau MIDI cov tswj.

Nws tuaj yeem nyeem MIDI cov lus ntawm txhua lub browser uas txhawb nqa WebMIDI JavaScript API. Tom qab ntawd nws ua suab nrov hauv cov khoom sib xyaw (siv WebAudio API) lossis hauv tus qauv, rub cov suab nrov los ntawm ib pob suab.

Teeb tsa Ableton Live

Txhawm rau ua MIDI Tus Tswj Xyuas Haujlwm ua haujlwm nrog Ableton Live, ua raws cov kauj ruam yooj yim no los ntawm lawv cov ntaub ntawv raug cai.

Mus rau Preferences → Txuas MIDI thiab xyuas kom tseeb tias "Cov tswv yim" muaj "Track" thiab "Remote" ON thiab cov zis muaj "Remote" ON raws li tau hais hauv phau ntawv qhia:

Pom zoo: