Obsah:
- Tento návod byl původně publikován na mém blogu 28. června 2020
- Krok 1: Blikání vestavěné LED
- Krok 2: Blikání LED na ručním vstupu
- Krok 3: Instalace knihovny MIDIUSB
- Krok 4: Odeslání MIDI zprávy
- Krok 5: Odeslání MIDI zprávy z každého tlačítka
- Krok 6: Nastavení kanálů nebo bank (volitelně)
- Krok 7: Případ
- Krok 8: Shromáždění
- Krok 9: Použití MIDI ovladače
Video: Sestavení MIDI ovladače Arduino: 9 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Tento návod byl původně publikován na mém blogu 28. června 2020
Baví mě stavět věci, které obsahují elektroniku, a vždy jsem chtěl něco postavit pomocí Arduina.
Jednou z nejběžnějších sestav pro začátečníky, kterou jsem našel, byl MIDI ovladač. MIDI kontrolér je jakýkoli hardware, který odesílá MIDI data (digitální rozhraní hudebního nástroje) do zařízení pro spouštění zvuků a vytváření hudby.
Zjistil jsem, že mnoho implementací je komplikovaných, dokonce i těch, které jsou pro začátečníky. Bylo velmi frustrující zjistit, že potřebuji použít stovky řádků nečitelného kódu. Nebo že mimo jiné musím v některých případech pájet odpor.
Projekt
Vybudováním vlastního MIDI ovladače Arduino jsem měl v úmyslu udělat zábavný projekt a udržet hluk na nejnižší úrovni. Něco, co by mohl sledovat každý začátečník. Abych toho dosáhl, použil jsem MIDI Fighter 3D jako základní inspiraci a odstranil všechny nepodstatné funkce.
Celkové náklady na můj projekt byly pod 30 $ a seznam materiálů byl opravdu krátký (odkazy na pobočky):
- Arduino Leonardo (nebo klon): mezi 10 a 20 dolary.
- 16 x tlačítka Sanwa 24 mm (nebo klon): mezi 1 $ a 2,50 $ za tlačítko.
- Páječka
- Elektrický vodič 22 AWG
Deska Arduino
Když jsem zahájil tento projekt, zjistil jsem, že existuje spousta nových modelů Arduino (bez stovek kompatibilních desek). A všechny nabízejí mírně odlišné možnosti.
Potřeboval jsem poslat MIDI signály do počítače a nejjednodušší způsob, jak to udělat, je přes USB. Jakákoli deska Arduino založená na mikrokontroléru ATmega32u4 má vestavěnou komunikaci USB.
Oficiální desky Arduino s nativní podporou USB jsou Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Tyto desky mají integrovanou podporu USB, což znamená, že mohou fungovat jako USB MIDI zařízení.
Rozhodl jsem se jít s klonem Arduina Leonarda. Má dostatek vstupů pro tento projekt a obsahuje také záhlaví, což usnadňuje připojení/odpojení vodičů.
První kroky
I když vysvětlím krok za krokem, jak jsem implementoval kód pro tento projekt, můžete si stáhnout konečnou verzi.
K nahrání kódu na desku musíte použít Arduino IDE. Mají také webový editor, který je velmi užitečný, ale mají omezenou kvótu na časy za den, kdy můžete kompilovat kód.
Krok 1: Blikání vestavěné LED
Je zábavné, jak „Hello World“ve světě hardwaru bliká LED diodou.
Bylo pro mě milým překvapením, když jsem zjistil, že Arduino Leonardo má vestavěnou LED diodu, na kterou můžete mrknout a otestovat svůj kód. Tímto způsobem nemusíte stavět externí obvod na prkénku s LED a odporem.
Kód:
Krok 2: Blikání LED na ručním vstupu
Dalším logickým krokem bylo blikat stejnou LED diodou, kdykoli odešlu signál. Odstranil jsem plastový kryt jednoho konce 2 vodičů Dupont a druhý konec jsem připojil k desce:
- Pin číslo 2: Jeden z digitálních vstupů (kladný). Může to být jakýkoli digitální pin.
- Pin GND: Jakýkoli zemnící pin (negativní).
Nyní pokaždé, když se připojím k odkrytým koncům vodičů, zavřu obvod, a tak mohu následně spustit kód
Každý z 20 digitálních pinů na Leonardu má interní odpor (ve výchozím nastavení odpojený), který lze aktivovat pomocí INPUT_PULLUP. Pamatujte, že pull-up vstup znamená, že stav tlačítka je invertován:
- VYSOKÝ, když je obvod otevřený (tlačítko NENÍ stisknuto).
- LOW, když je obvod uzavřen (tlačítko je stisknuto).
Kód:
Krok 3: Instalace knihovny MIDIUSB
Tato knihovna umožňuje desce Arduino s možností USB fungovat jako MIDI nástroj přes USB. Další informace naleznete v oficiální dokumentaci.
Pomocí Arduino IDE můžete nainstalovat další knihovny Arduino pomocí Správce knihoven:
- Otevřete IDE a klikněte na nabídku „Skica“, poté „Zahrnout knihovnu“a poté „Spravovat knihovny“.
- Vyhledejte MIDIUSB a klikněte na Instalovat.
- Jakmile bude hotový, měl by se vedle knihovny MIDIUSB objevit nainstalovaný tag.
- Zavřete Správce knihovny.
Nyní může Leonardo posílat MIDI zprávy přes USB! Nejprve je však potřeba nějaký přehled o tom, jak MIDI funguje.
Jak MIDI funguje
„MIDI (Musical Instrument Digital Interface) je standardní komunikační protokol, který spojuje elektronické hudební nástroje, počítače a související zvuková zařízení pro přehrávání hudby.“- Wikipedie
Mimo jiné zpracovává zprávy o událostech s údaji o výšce a rychlosti zahrané noty
V tomto konkrétním projektu vstup ze 16 tlačítek odesílá různé zprávy přes USB. Tyto zprávy lze převést na zvuk v počítači pomocí jakéhokoli vhodného softwaru, jako je GarageBand nebo Ableton Live.
Anatomie MIDI zprávy
K odeslání zprávy MIDI jsem použil metodu sendMIDI () z knihovny MIDIUSB, kterou jsem nainstaloval v kroku 3.
Tato metoda může přijímat 4 parametry:
- Typ události: Může to být 0x09 pro notu zapnutou (přehrát notu) nebo 0x08 pro notu vypnutou (přestat hrát notu).
- Poznámka Zapnuto/Vypnuto: Typ události kombinovaný s MIDI kanálem (1-16). Používám pouze kanál 1, takže je to buď 0x90 pro poznámku zapnuto, nebo 0x80 pro poznámku vypnuto.
- Číslo poznámky: Každá poznámka má přiřazenou číselnou výšku (frekvenční stupnici).
- Rychlost: Od 0 (žádná rychlost) do 127 (nejrychlejší).
Krok 4: Odeslání MIDI zprávy
Zahrnul jsem knihovnu MIDIUSB a místo blikání vestavěné LED jsem poslal poznámku.
Kód:
⚠ Důležité: Od tohoto kroku se Arduino změní na MIDI USB kontrolér a přestane přijímat kód přes USB.
Když uvíznete v poloze, kde již nelze Arduino naprogramovat, postupujte takto:
- Podržte zaoblené tlačítko reset na desce Arduino.
- Klikněte na Nahrát v Arduino IDE.
- Uvolněte resetovací tlačítko.
- Aktualizovaný kód bude nahrán na tabuli.
Krok 5: Odeslání MIDI zprávy z každého tlačítka
Posledním krokem bylo zmapovat každé hřiště na tlačítko. Pro 16 tlačítek jsem definoval měřítko od C2 do E3b, což jsou rozteče od 36 do 51 v pořadí zdola nahoru a zleva doprava. Podívejte se na tento soubor z Arduino Tutorials a zjistěte, jaká výška odpovídá každé notě.
Použil jsem digitální piny od 2 do 12 a analogové piny (používající je jako digitály) od A0 do A4.
A takto vypadá konečný kód
Krok 6: Nastavení kanálů nebo bank (volitelně)
V případě, že chcete přidat další tlačítka se schopností přepínat kanály nebo banky, jako v MIDI Fighter 3D (viz obrázek), Arduino Leonardo má další čtyři piny, které můžete použít. Arduino Leonardo má 20 digitálních vstupních/výstupních pinů, z nichž pouze 16 se používá pro přehrávání not.
Tato další tlačítka můžete použít k aktualizaci proměnné v kódu a odeslání její hodnoty jako parametru metodě MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Krok 7: Případ
Aby byl tento projekt jednoduchý, byl jsem extrémně vybíravý při výběru, které funkce obsahují.
- Pouze tlačítka: 16 arkádových tlačítek podobných Sanwě, v mřížce 4x4. Žádné knoflíky, žádné posuvníky, žádné fadery ani žádný jiný analogový vstup.
- Pouzdro Unibody: K pouzdru nebo k držení desky Arduino nepoužívejte žádné šrouby, matice, šrouby ani lepidlo.
- Každodenní nástroje: Například jsem připájel dráty místo toho, abych si koupil konkrétní zastřihovač drátu pro arkádová tlačítka.
Unibody design
Jednou z výzev, se kterými jsem se potýkal, bylo navrhnout dostatečně jednoduché pouzdro, které nevyžaduje montáž a lze jej vytisknout 3D v jediném běhu.
Abych se vyhnul použití šroubů nebo lepidla, potřeboval jsem navrhnout skříň, která poskytuje nejmenší přístup k elektronice. Mojí největší inspirací pro kryt byl Mac Mini, který má ve spodní části kruhový otvor. Chtěl jsem k tomu také navrhnout šroubovací víko, ale rozhodl jsem se to nechat otevřít, aby se odhalila elektronika.
Stáhněte si 3d tisknutelné pouzdro (322 KB). Doporučené nastavení: PLA, 0,15 mm vrstvy, 20% výplň, podpůrné vymahače alespoň pro zaoblený spodní otvor, držáky Arduino a micro USB.
Držím Arduino bez šroubů
Leonardo má 4 otvory pro zašroubování desky do jakéhokoli vhodného pouzdra, ale mojí myšlenkou bylo usnadnit přidávání a vyjímání desky z pouzdra.
Nalezení držáku klipu pro Arduino na Thingiverse bylo snadné a trvalo mi 5 iterací, než jsem tento držák integroval do návrhu unibody. Nejtěžší bylo udělat nohy tak, aby se vyhnuly otvorům pro tlačítka, a aby byl mikro USB zarovnán na střed s pouzdrem.
Krok 8: Shromáždění
Po vložení všech tlačítek na místo jsem připájel krátké černé dráty spojující všechny negativní nohy tlačítek mezi nimi.
Poté jsem z každé kladné nohy připájel dlouhé červené dráty, abych se připojil přímo k desce.
Abych připojil vodiče k Arduinu, uřízl jsem a připájel některé konce Dupontu a zakryl je teplem smrštitelnou bužírkou.
Připojil jsem dráty k desce ve stejném pořadí jako v MIDI Fighteru. Zespodu nahoru a zleva doprava
Krok 9: Použití MIDI ovladače
Pro příjem MIDI a tvorbu hudby lze použít jakýkoli hudební software (nebo vhodný hardware). Nejvíce doporučované jsou Garage Band, Ableton Live a vím, že do telefonu lze nainstalovat spoustu aplikací.
Všechny tyto nástroje jsou užitečné pro načítání předdefinovaných zvuků pro bubnování prstem, ale byly vytvořeny pro větší účely. Tyto nástroje mohou být pro začátečníky náročné nastavit.
MIDI ve webovém prohlížeči
Abych něco sladil s tímto projektem a jeho jednoduchostí, vytvořil jsem webový nástroj zcela zaměřený na MIDI kontrolery.
Punchy: Implementace WebMIDI a WebAudio pro MIDI kontrolery.
Může číst zprávy MIDI v libovolném prohlížeči, který podporuje rozhraní API WebMIDI JavaScript. Poté přehraje zvuky v syntetizátoru (pomocí rozhraní WebAudio API) nebo ve vzorkovači a načte vlastní zvuky z jakéhokoli zvukového balíčku.
Nastavte Ableton Live
Aby MIDI ovladač fungoval s Ableton Live, postupujte podle těchto jednoduchých kroků z jejich oficiální dokumentace.
Přejděte na Předvolby → Propojit MIDI a ujistěte se, že „Vstup“má „Track“a „Remote“ZAPNUTO a výstup má „Dálkové“ZAPNUTO, jak je uvedeno v příručce:
Doporučuje:
Sestavení soupravy přijímače AM rádia: 9 kroků (s obrázky)
Sestavení soupravy rádiového přijímače AM: Miluji sestavování různých elektronických souprav. Rádia mě fascinují. Před měsíci jsem na internetu našel levnou soupravu AM rádiového přijímače. Objednal jsem si to a po standardním čekání asi měsíc to přišlo. Kit je DIY sedm tranzistorových superhet
Sestavení automatického solárního trackeru s Arduino Nano V2: 17 kroků (s obrázky)
Budování automatického solárního trackeru s Arduino Nano V2: Ahoj! Tento Instructable má být druhou částí mého projektu Solar Tracker. Chcete -li vysvětlit, jak fungují sluneční trackery a jak jsem navrhl svůj první tracker, použijte níže uvedený odkaz. To nabídne kontext pro tento projekt. Https://www.instructables.co
„Nejjednodušší světy“v sestavení neuralizátoru (guma v černé barvě pro muže): 10 kroků (s obrázky)
„Nejjednodušší světy“-Neuralizer build (Men in Black Memory Eraser): Chystáte se na kostýmní párty za pár dní, ale stále nemáte kostým? Pak je tato sestava pro vás! Se slunečními brýlemi a černým oblekem doplňuje tato rekvizita kostým vašeho muže v černém. Je založen na nejjednodušším možném elektronickém obvodu
Sestavení stroje bodového svařování z transformátoru mikrovlnné trouby: 7 kroků (s obrázky)
Sestavení stroje bodového svařování z transformátoru mikrovlnné trouby: V tomto projektu vyrábím bodový svářecí stroj pro vlastní použití pro stavbu baterií s lithium -iontovými články 18650. Mám také profesionálního bodového svářeče, model Sunkko 737G, který stojí kolem 100 $, ale mohu s potěšením říci, že můj bodový svářeč DIY o
LED Rainbow - Konstrukce ovladače RGB LED PWM - Snadné sestavení: 15 kroků
LED Rainbow - Konstrukce ovladače RGB LED PWM - Snadné sestavení: Podrobné pokyny k sestavení ovladače LED Rainbow RGB LED PWM krok za krokem. Je potřeba jen minimální množství dílů spolu s procesorem PIC a můžete postavit jeden z nejúžasnějších dostupných LED ovladačů. S