Arcade Buttons MIDI Kontrolér
Pred pár rokmi som objavil MIDI Fighter. MIDI kontrolér s arkádovými tlačidlami namiesto tradičných padov. Výborný nápad. Na začiatku to bolo DIY riešenie a to bolo aj mojou inšpiráciou. Arkádové tlačidlá sú ideálne na finger drummming alebo ako je to v mojom prípade na ovládanie Cue Points (s viacfarebnými LED diódami je to perfektná kombinácia) v akomkoľvek softvéri pre DJing (ako NI TRAKTOR alebo Mixxx). Skvelý nápad, ako rozšíriť možnosti zostavu pre Djing.
Funkcie
4x4 matica Arcade tlačidiel:
Matica arkádových tlačidiel 4x4 má celkom jednoduchú funkciu. Odoslanie správy Note On pri stlačení tlačidla a správy Note Off po uvoľnení tlačidla.
Bajty takejto MIDI správy (message) sa delia na dva typy. Stavové alebo dátové. Stavové bajty hovoria príjemcovi správy o akú správu sa jedná a na akom kanáli pôjde (k dispozícii je 16 kanálov). Teda v tomto prípade je to správa note On - teda že treba zahrať určitú notu
Dátové bajty potom (jeden prípadne dva) určujú hodnotu, v tomto prípade (pre správu note On) je to výška tónu.
To či je daný bajt stavový alebo dátovy určuje jeho 1.bit, takže ak dátový bajt používa 1.bit na to aby oznámil, že je dátový ostáva na definovanie hodnoty zvyšných 7 bitov. MIDI protokol preto umožňuje zasielať 128 roznych hodnôt (0-127) čo je najvyššia možná kombinácia pre 7bitov v dvojkovej sústave.
Kontrolér je naprogramovaní tak že posielaná hodnota pre hranú notu závisí od arcade tlačidla (1-16) a tiež od výberu banky (1-8). 16 hodnot v každej z 8mich bánk dáva výsledných 128 možností.
Výber banky sa dá prepínať jedným zo štyroch malých tlačidiel umiestnených nad Arcade tlačidlami (nastavenia).
MIDI správa NoteOn obsahuje aj informácie o kanáli (podľa špecifikácie je 16 MIDI kanálov). MIDI kanál je určený 4 bitmi 1. bajtu (stavový tkz. statu byte). Kánál je možné meniť druhým tlačítkom určením pre nastavenie.
Tu je výcuc zo špecifikácie MIDI protokolu, ktorý ma na starosti tieto správy (midi.org)
Status D7----D0 |
Data Bajt(y) D7----D0 |
Popis |
Channel Voice Messages [nnnn = 0-15 (MIDI číslo kanála 1-16)] |
||
1000nnnn | 0kkkkkkk 0vvvvvvv |
Note Off správa. Správa posielaná pri uvolnení klávesy (ukončenie). (kkkkkkk) je hodnota noty. (vvvvvvv) je sila úderu. |
1001nnnn | 0kkkkkkk 0vvvvvvv |
Note On správa. Správa posielaná pri zatlačení klávesy (start). (kkkkkkk) je hodnota noty. (vvvvvvv) je sila úderu. |
4 tlačítka pre nastavenia:
B1 - Zmena banky
B2 - Zmena kanála
B3 - Reserve (aktuálne pre firmware v 1.0.1)
B4 - Nastavenie farby tlačidla (pri zatlačení)
Návrh
Pre návrh DPS základnej dosky ako aj dosky systémových tlačidiel pre nastavenie bol použitý Eagle CAD v.9. Celkový dizajn je vytvorený v programe Sketchup s pluginom "eagleup" na export a import DPS s Eaglu do Sketchupu.
Hardware
Základová doska
Za logiku a spracovanie všetkých signálov a MIDI dát a komunikáciu s počítačom je zodpovedný 8-bitový mikrokontrolér PIC18F4550 s možnosťou pripojenia cez USB. Hlavná doska pozostáva z mikrokontroléra a dvoch 8-bitových statických posuvných registrov (4021) na spracovanie signálov tlačidiel, LED diód (SK9822 v sériovom zapojení) a konektorov pre arkádové tlačidlá.
konentory pre montáž do DPS (musí byť odstrihnutá jedna noha, aby lepšie zapadla do základnej dosky)
Všetko schémy sú k dispozícii download sekcii.
Tlačítka pre nastavenia
Velmi jednoduchá. 4 tactile tlačítka z pullup rezistormi a konektor.
Spojenie so základnou doskou je zabezpečené štandardným 6-žilovým plochým káblom cez 6-pinové konektory IDC.
Arkádové tlačidlá
Použité tlačidlá sú OEM 30mm transparent push buttons as a replacement for Arcade Sanwa buttons.
RGB LEDky - SK9822
Na podsvietenie tlačidiel sú použité LEDky SK9822. Na ich ovládanie som nepoužil som žiadnu špecifickú knižnicu, protokol je pomerne jednoduchý, takže som naprogramoval len niekoľko funkcií na odosielanie údajov na výstupy LED.
Telo (plastické) kontroléra
Puzdro je vyrobené z extrudovaného PVC vyrezaním jednotlivých dielov na CNC fréze X-CARVE. Fréza má ovládač GRBL, takže potrebuje štandardný G-code. Rezný nástroj je 2-drážkový tkz. upcut bit. Ako vreteno je použitá fréza Makita RC0700. Možnosť RMP bola nastavená na 3. úroveň (cca 12 000 RPM).
Časti boli zlepené dohromady a ručne brúsené, aby sa zarovnali okraje.
Potom nastriekané bežnými sprejmi - medzi vrstvami som to zľahka prebrúsil brúsnym papierom zrnitosti 1000 - 2 vrstvy základného náteru a 2 vrstvy vrchného náteru.
Firmware
Základom celého kontroléra zodpovedného za spracovanie signálov a odosielanie MIDI dát cez USB do počítača je PIC micro-controller 18F4550 od Microchipu. Na vývoj firmvéru používam MPLAB X IDE (v tom čase v5.05) a základný C kompilátor pre 8bitové mikrokontroléry rodiny XC8. Na ladenie a programovanie čipu PIC bol použitý programátor PICKIT3. USB MIDI rozhranie je vytvorené knižnicami Microchip pre aplikácie pre USB MIDI komunikáciu. Súvisiace súbory boli vytiahnuté z knižníc a zahrnuté do projektu, aby projekt prenosny v rozsahu jedného priečinka, takže nie je potrebné mať nainštalovanú MLA (knižnice). Stiahnutie projektu MPLAB je k dispozícii v sekcii na stiahnutie nižšie.