Obsah:

Zostavenie MIDI ovládača Arduino: 9 krokov (s obrázkami)
Zostavenie MIDI ovládača Arduino: 9 krokov (s obrázkami)

Video: Zostavenie MIDI ovládača Arduino: 9 krokov (s obrázkami)

Video: Zostavenie MIDI ovládača Arduino: 9 krokov (s obrázkami)
Video: Настройка 3D-принтера с помощью MKS sGen L v1.0 2024, November
Anonim

Tento návod bol pôvodne uverejnený na mojom blogu 28. júna 2020

Baví ma stavať veci, ktoré obsahujú elektroniku, a vždy som chcel niečo postaviť pomocou Arduina.

Jednou z najbežnejších zostáv pre začiatočníkov, ktorú som našiel, bol MIDI ovládač. Ovládač MIDI je akýkoľvek hardvér, ktorý odosiela údaje MIDI (digitálne rozhranie hudobných nástrojov) do zariadenia na spúšťanie zvukov a vytváranie hudby.

Zistil som, že mnohé implementácie sú komplikované, dokonca aj tie, ktoré sú pre začiatočníkov. Bolo veľmi frustrujúce zistiť, že potrebujem použiť stovky riadkov nečitateľného kódu. Alebo že okrem iných príkladov musím v niektorých prípadoch spájkovať odpor.

Projekt

Postavením vlastného MIDI ovládača Arduino som mal v úmysle urobiť príjemný projekt a udržať hluk na najnižšej úrovni. Niečo, čo by mohol sledovať každý začiatočník. Aby som to dosiahol, použil som MIDI Fighter 3D ako základnú inšpiráciu a odstránil všetky nepodstatné funkcie.

Celkové náklady na môj projekt boli nižšie ako 30 dolárov a zoznam materiálov bol skutočne krátky (odkazy na pobočky):

  • Arduino Leonardo (alebo klon): od 10 do 20 dolárov.
  • 16 x tlačidiel Sanwa 24 mm (alebo klon): od 1 do 2,50 dolára za tlačidlo.
  • Spájkovačka
  • Elektrický vodič 22 AWG

Doska Arduino

Keď som začal s týmto projektom, zistil som, že existuje veľa nových modelov Arduino (bez stoviek kompatibilných dosiek). A všetky ponúkajú mierne odlišné možnosti.

Potreboval som odoslať MIDI signály do počítača a najjednoduchšie to bolo cez USB. Akákoľvek doska Arduino založená na mikrokontroléri ATmega32u4 má vstavanú komunikáciu USB.

Oficiálnymi doskami Arduino s natívnou podporou USB sú Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Tieto dosky majú integrovanú podporu USB, čo znamená, že môžu fungovať ako zariadenie USB MIDI.

Rozhodol som sa ísť s klonom Arduina Leonarda. Má dostatok vstupov pre tento projekt a obsahuje aj hlavičky, ktoré uľahčujú zapojenie/odpojenie káblov.

Prvé kroky

Napriek tomu, že krok za krokom vysvetlím, ako som implementoval kód pre tento projekt, konečnú verziu si môžete stiahnuť.

Na nahranie kódu na dosku musíte použiť Arduino IDE. Majú tiež webový editor, ktorý je veľmi užitočný, ale majú obmedzenú kvótu na denné kompilácie kódu.

Krok 1: Blikanie vstavanej diódy LED

Je zábavné, ako „Hello World“vo svete hardvéru bliká diódou LED.

Bolo pre mňa milým prekvapením, keď som zistil, že Arduino Leonardo má vstavanú diódu LED, na ktorú môžete mrknutím otestovať svoj kód. Vďaka tomu nebudete musieť stavať externý obvod na doske s LED diódou a odporom.

Kód:

Krok 2: Blikanie diódy LED na manuálnom vstupe

Ďalším logickým krokom bolo blikanie tej istej LED diódy vždy, keď pošlem signál. Odstránil som plastový kryt jedného konca 2 vodičov Dupont a druhý koniec som pripojil k doske:

  • Pin číslo 2: Jeden z digitálnych vstupov (kladný). Môže to byť akýkoľvek digitálny pin.
  • Pin GND: Akýkoľvek uzemňovací kolík (negatívny).

Teraz, zakaždým, keď sa spojím s odkrytými koncami drôtov, zatvorím obvod, a tak môžem v dôsledku toho spustiť kód

Každý z 20 digitálnych pinov na zariadení Leonardo má vnútorný odpor (predvolene odpojený), ktorý je možné povoliť pomocou INPUT_PULLUP. Majte na pamäti, že vyťahovací vstup znamená, že stav tlačidla je obrátený:

  • VYSOKÉ, keď je obvod otvorený (tlačidlo NIE JE stlačené).
  • LOW, keď je obvod uzavretý (tlačidlo je stlačené).

Kód:

Krok 3: Inštalácia knižnice MIDIUSB

Táto knižnica umožňuje doske Arduino s možnosťami USB fungovať ako MIDI nástroj cez USB. Viac informácií nájdete v oficiálnej dokumentácii.

Pomocou Arduino IDE môžete nainštalovať ďalšie knižnice Arduino pomocou Správcu knižníc:

  1. Otvorte IDE a kliknite na ponuku „Skica“, potom „Zahrnúť knižnicu“a potom „Spravovať knižnice“.
  2. Vyhľadajte MIDIUSB a kliknite na Inštalovať.
  3. Po dokončení by sa vedľa knižnice MIDIUSB mal objaviť nainštalovaný tag.
  4. Zatvorte správcu knižnice.

Teraz môže Leonardo odosielať MIDI správy cez USB! Najprv je však potrebný určitý prehľad o tom, ako MIDI funguje.

Ako funguje MIDI

„MIDI (digitálne rozhranie hudobných nástrojov) je štandardný komunikačný protokol, ktorý spája elektronické hudobné nástroje, počítače a súvisiace zvukové zariadenia na prehrávanie hudby.“- Wikipedia

Okrem iných pokynov zvláda správy o udalostiach s údajmi o výške a rýchlosti odohranej noty

V tomto konkrétnom projekte vstup zo 16 tlačidiel odosiela rôzne správy cez USB. Tieto správy je možné v počítači previesť na zvuk pomocou akéhokoľvek vhodného softvéru, ako je GarageBand alebo Ableton Live.

Anatómia MIDI správy

Na odoslanie správy MIDI som použil metódu sendMIDI () z knižnice MIDIUSB, ktorú som nainštaloval v kroku 3.

Táto metóda môže prijímať 4 parametre:

  • Typ udalosti: 0x09 pre notu zapnutú (nota na prehrávanie) alebo 0x08 pre notu vypnutú (zastavenie hry noty).
  • Poznámka On/Off: Typ udalosti v kombinácii s MIDI kanálom (1-16). Používam iba kanál 1, takže je to buď 0x90 pre poznámku zapnutú, alebo 0x80 pre poznámku vypnutú.
  • Číslo poznámky: Každá poznámka má priradenú číselnú výšku (frekvenčnú stupnicu).
  • Rýchlosť: Od 0 (žiadna rýchlosť) do 127 (najrýchlejšia).

Krok 4: Odoslanie správy MIDI

Zahrnul som MIDIUSB Library a namiesto blikania vstavanej LED som poslal poznámku.

Kód:

⚠ Dôležité: Od tohto kroku sa Arduino zmení na MIDI USB kontrolér a prestane prijímať kód cez USB.

Keď sa dostanete do polohy, v ktorej už Arduino nemožno naprogramovať, postupujte podľa týchto krokov:

  1. Podržte zaoblené tlačidlo reset na doske Arduino.
  2. Kliknite na položku Nahrať v IDE Arduino.
  3. Uvoľnite tlačidlo reset.
  4. Aktualizovaný kód bude nahraný na nástenku.

Krok 5: Odoslanie MIDI správy z každého tlačidla

Odoslanie MIDI správy z každého tlačidla
Odoslanie MIDI správy z každého tlačidla

Posledným krokom bolo mapovať každé ihrisko na tlačidlo. Pre 16 tlačidiel som definoval stupnicu od C2 do E3b, čo sú rozstupy od 36 do 51 v poradí zdola nahor a zľava doprava. V tomto súbore z Arduino Tutorials zistíte, aká výška zodpovedá každej note.

Použil som digitálne piny od 2 do 12 a analógové piny (používajúce ich ako digitálne) od A0 do A4.

A takto vyzerá konečný kód

Krok 6: Nastavenie kanálov alebo bánk (voliteľné)

Nastavenie kanálov alebo bánk (voliteľné)
Nastavenie kanálov alebo bánk (voliteľné)

V prípade, že chcete pridať ďalšie tlačidlá s možnosťou prepínania kanálov alebo bánk, ako v MIDI Fighter 3D (pozri obrázok), Arduino Leonardo má ďalšie štyri piny, ktoré môžete použiť. Arduino Leonardo má 20 digitálnych vstupných/výstupných pinov, z ktorých sa iba 16 používa na prehrávanie poznámok.

Tieto ďalšie tlačidlá môžete použiť na aktualizáciu premennej v kóde a odoslanie jej hodnoty ako parametra metóde MidiUSB.sendMIDI:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Krok 7: Prípad

Púzdro
Púzdro
Púzdro
Púzdro

Aby bol tento projekt jednoduchý, bol som veľmi vyberavý pri výbere funkcií, ktoré obsahujú.

  • Iba tlačidlá: 16 arkádových tlačidiel v štýle Sanwa, v mriežke 4x4. Žiadne gombíky, žiadne posúvače, žiadne fadery ani iný analógový vstup.
  • Jednodielne puzdro: Na skriňu alebo na držanie dosky Arduino nepoužívajte žiadne skrutky, matice, skrutky ani lepidlo.
  • Nástroje pre každý deň: Napríklad som spájkoval drôty namiesto toho, aby som si kúpil konkrétny strihač drôtov pre arkádové tlačidlá.

Unibody dizajn

Jednou z výziev, s ktorými som sa stretol, bolo navrhnutie dostatočne jednoduchého puzdra, ktoré nevyžaduje montáž a dá sa vytlačiť 3D tlačou v rámci jedného cyklu.

Aby som sa vyhýbal použitiu skrutiek alebo lepidla, potreboval som navrhnúť kryt, ktorý poskytuje najmenší prístup k elektronike. Mojou najväčšou inšpiráciou pre kryt bol Mac Mini, ktorý má v spodnej časti kruhový otvor. Chcel som na to tiež navrhnúť skrutkovateľné veko, ale rozhodol som sa, že ho otvorím, aby sa odhalila elektronika.

Stiahnite si 3D tlačiteľné puzdro (322 KB). Odporúčané nastavenia: PLA, vrstvy 0,15 mm, 20% výplň, podporné prvky aspoň pre zaoblený spodný otvor, držiaky Arduino a micro USB.

Držte Arduino bez skrutiek

Leonardo má 4 otvory na zaskrutkovanie dosky do akéhokoľvek vhodného puzdra, ale mojou myšlienkou bolo uľahčiť pridávanie a vyberanie dosky z puzdra.

Nájdenie držiaka klipu pre Arduino na serveri Thingiverse bolo jednoduché a integrácia tohto držiaka do návrhu jedného tela mi zabrala 5 iterácií. Najťažšie bolo vyrobiť nohy tak, aby sa vyhli otvorom pre tlačidlá, a aby bol mikro USB zarovnaný na stred k puzdru.

Krok 8: Zhromaždenie

Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie

Po vložení všetkých tlačidiel na miesto som spájkoval krátke čierne drôty spájajúce všetky negatívne nohy tlačidiel medzi nimi.

Potom som z každej kladnej nohy spájkoval dlhé červené drôty, aby som sa pripojil priamo k doske.

Na pripojenie drôtov k Arduinu som odrezal a spájkoval niektoré konce Dupontu a zakryl ich zmršťovacou trubicou.

Pripojil som vodiče k doske v rovnakom poradí ako v MIDI Fighteri. Zdola hore a zľava doprava

Krok 9: Použitie MIDI ovládača

Použitie MIDI ovládača
Použitie MIDI ovládača

Na príjem MIDI a vytváranie hudby je možné použiť akýkoľvek hudobný softvér (alebo vhodný hardvér). Najviac odporúčanými sú Garage Band, Ableton Live a viem, že do telefónu je možné nainštalovať veľa aplikácií.

Všetky tieto nástroje sú užitočné na načítanie preddefinovaných zvukov na bubnovanie prstom, ale boli navrhnuté na väčšie účely. Nastavenie týchto nástrojov môže byť pre začiatočníkov náročné.

MIDI vo webovom prehliadači

Aby som niečo viac zosúladil s týmto projektom a jeho jednoduchosťou, postavil som webový nástroj úplne zameraný na MIDI kontroléry.

Punchy: Implementácia WebMIDI a WebAudio pre MIDI kontroléry.

Dokáže čítať správy MIDI v ľubovoľnom prehliadači, ktorý podporuje rozhranie WebMIDI JavaScript API. Potom prehráva zvuky v syntetizátore (pomocou rozhrania WebAudio API) alebo vo vzorkovníku a načítava vlastné zvuky z akéhokoľvek zvukového balíka.

Nastavte Ableton Live

Aby MIDI ovládač fungoval s Ableton Live, postupujte podľa týchto jednoduchých krokov z ich oficiálnej dokumentácie.

Prejdite na Predvoľby → Prepojiť MIDI a uistite sa, že „Vstup“má „Track“a „Remote“ZAPNUTÝ a výstup má „ON“zapnutý, ako je uvedené v príručke:

Odporúča: