Obsah:

Klávesnica Arduino Joystick Extender Box a ovládač zvuku vec používajúca Deej: 8 krokov
Klávesnica Arduino Joystick Extender Box a ovládač zvuku vec používajúca Deej: 8 krokov

Video: Klávesnica Arduino Joystick Extender Box a ovládač zvuku vec používajúca Deej: 8 krokov

Video: Klávesnica Arduino Joystick Extender Box a ovládač zvuku vec používajúca Deej: 8 krokov
Video: ESP32 Tutorial 2 - What's ESP32, Camera Extension Board, unboxing SunFounder's ESP32 IoT Learnig kit 2024, November
Anonim
Vec pre rozšírenie klávesnice Joystick Arduino a ovládač zvuku pomocou Deej
Vec pre rozšírenie klávesnice Joystick Arduino a ovládač zvuku pomocou Deej

Projekty Tinkercad »

Prečo

Nejaký čas som chcel na svoju klávesnicu pridať malý joystick na ovládanie prvkov rozhrania alebo iné menšie úlohy v hrách a simulátoroch (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons atď.).

Tiež pre Elite: Dangerous som bojoval s miešaním úrovní hlasitosti z externého zvuku (vstavaná hudba, aj keď je dobrá, opakuje sa po mnohých hodinách v čiernych farbách), zvuku v hre a podpory externého hlasového balíka.

Vstavaný mixér zdrojov v systéme Windows je „v poriadku“, ale je náročné prepínať obrazovky a posuvníky ovládania myšou uprostred hry. Rozšírený ovládací panel klávesnice sa zdal byť správnou cestou. Deej je riešenie, ktoré som našiel.

Ako

Nedávno som sa učil o Arduine a na reddit som narazil na projekt deej. Vyzeralo to, že týmto sa oba tieto problémy vyriešia v jednom šikovnom balíku. A umožnilo by mi to navrhnúť a vytlačiť šikovné 3D puzdro.

Čo je deej?

(z webu) deej je ** open-source hardvérový mixér ** pre počítače so systémom Windows a Linux. Umožňuje vám používať posuvníky v reálnom živote (ako DJ!) Na ** bezproblémové ovládanie hlasitosti rôznych aplikácií ** (napríklad hudobného prehrávača, hry, ktorú hráte a relácie hlasového rozhovoru) bez toho, aby ste museli zastaviť robíš.

Moja verzia

Aby bola škatuľa malá, rozhodol som sa skôr pre gombíky (rotačný lineárny potenciometer (hrnce = odpory)) ako posuvníky. Funkčne fungujú rovnako. Aktuálne a obľúbené prevedenia deej neobsahujú joystick, takže toto bude trochu dizajnový hybrid. V opačnom prípade je to celkom priama konštrukcia.

Deej bude pracovať s Arduino Nano, Pro Micro alebo Uno, ale Nano a Pro Micro sú „oficiálne odporúčané“vývojárom. Vybral som si Arduino Pro Micro, pretože som chcel joystick, a knižnica Arduino Joystick Library to podporuje. Knižnicu klávesnice Arduino môžem použiť aj vtedy, keď chcem pomocou tlačidla na joysticku používať funkciu stlmenia mediálnej klávesnice (nie „tiché stlmenie“), ale to je ešte nižšie.

Krok 1: Spotrebný materiál

Zásoby
Zásoby
Zásoby
Zásoby
Zásoby
Zásoby

Box

Stiahnite si súbory STL (navrhnuté v Tinkercad):

  • Súbory príloh na adrese Prusa (https://www.prusaprinters.org/)
  • Thingiverse (už čoskoro)

Hardvér (výrobná jednotka)

  • 1x Arduino Pro Micro
  • 4x 10k otočný (gombík) potenciometre (nie otočné ovládače, použite hrnce)
  • 1x Joystick Arduino KY-023
  • Sieťový kábel catft s dĺžkou 5 stôp
  • 1x mikro kábel USB A na USB B (USB A je veľký štvorcový konektor, USB B micro je to, čo je na Arduino Pro Micro)
  • 1x 5 mm červená LED
  • 1x odpor 220 ohmov

Mal som okolo seba niekoľko ďalších dielov, a tak som si povedal, že postavím vývojovú jednotku, na ktorej by som veci vyskúšal. Práve prepojenie vecí s doskou uľahčilo vizualizáciu konečnej veci.

  • 1x Arduino Pro Micro
  • 4x 10k otočný (gombík) potenciometre (nie otočné ovládače, použite hrnce)
  • 1x okamžitý spínač s tlačidlom (spínač s tvrdým resetom)
  • 1x mikro kábel USB A na USB B (USB A je veľký štvorcový konektor, USB B micro je to, čo je na Arduino Pro Micro)
  • rôzne prepojovacie vodiče
  • breadboard
  • 1x 5 mm červená LED
  • 1x odpor 220 ohmov

Krok 2: Príloha

Príloha
Príloha
Príloha
Príloha
Príloha
Príloha
Príloha
Príloha

Dizajn

Páčili sa mi niektoré ďalšie návrhy profilované v komunitnej galérii deej, takže som vychádzal z funkcií, ktoré sa mi páčili:

  • Jednoduché navrhnutie a tlač
  • Nezavadzajte v ceste mojim ďalším stolným perifériám
  • Na zaistenie krytu nepoužívajte skrutky ani upevňovacie prvky
  • Estetický dizajn podobný klávesnici

Predtým, ako som pristúpil k tomuto konečnému návrhu, navrhol som a vytlačil dva prototypy. Mám rád fyzickú verziu, s ktorou sa môžem hrať v priestore, v ktorom ju používam, pretože mi dáva lepší pocit, ako bude konečný objekt fungovať.

Krátko som začal navrhovať vo Fusion360, ale neviem to tak dobre, ako Tinkercad, takže som prešiel a pracoval tam.

Keďže som chcel bezskrutkový dizajn, vytvoril som hniezdo. Prvý prototyp mal tenké veko a hlbokú skrinku na všetko. Druhý dizajn to vymenil za hlboké veko a plytký spodný box. Musel držať iba Arduino Pro Mini, takže naozaj nemusel byť veľký. Zahrnuté sú aj reliéfne ikony.

Tretiemu dizajnu bola zmenená veľkosť, aby sa zmestil do priestoru vedľa mojej klávesnice.

Tlač

Vytlačil som škatuľu v PLA a naprogramoval som výmenu vlákna / vrstvy z čiernej na červenú za veko, kde by ikony začali byť viditeľné, a potom späť do čiernej za zvyšok veka.

Problém

To všetko spôsobil, že upevnenie joysticku bolo problémom. Aj v treťom prevedení palica naráža na držiaky na jednom mieste. Nasledujúca iterácia bude mať lepšie vôle. Mohol som na návrhu viac zapracovať, ale chcel som prejsť do ďalšej fázy, inštalácie.

Krok 3: Okruh

Okruh
Okruh
Okruh
Okruh
Okruh
Okruh

Najhoršia práca s elektroinštaláciou

Ok, toto je môj prvý kompletný projekt Arduino. Áno, už som niečo robil na doštičkách a jednu používam na vytvorenie tejto vývojovej verzie, ale pokiaľ ide o skutočnú výrobu a montáž, toto je moja prvá. Takže moje zapojenie vyzerá ako svinstvo. Tam to nie je v ceste:)

Aktualizácia: Odvtedy som postavil ďalší a zapojenie je tam oveľa krajšie. Pozrite si obrázky:)

Výrobná jednotka - Čo sa kde deje

Arduino Pro Micro je malá malá doska, ktorá sa zmestí do tvarovanej časti v základni. Gombíky a joystick sa hodia do príslušných otvorov vo veku. Ale nič nenamontujte, kým sa nedostanete k súťaži o spájkovanie.

Elektrické vedenie

Nemal som žiadny vhodný obvodový vodič, ale zostal mi zvitok sieťového kábla cat5 s pevným jadrom, takže som to použil. Je to o niečo tuhšie a možno krehkejšie ako drôt s obvodovým lankom, ale funguje to.

Rozložením komponentov na približnú hodnotu ich konečnej montážnej polohy som odhadol vzdialenosť pre každý drôt, pridal som trochu viac pre vôľu atď., Potom som kábel odstrihol a orezal. Nechal som veľa vôle.

S odkazom na schému zapojenia som viedol spoločným uzemnením (čierny) a VCC (červený) na gombíky a joystick tam, kde je to naznačené. Pretože sieťový kábel nie je v týchto farbách, vybral som len farbu a udržal som svoje zapojenie v súlade s funkciou.

Jednotlivé Pot. analógové linky (žlté) smerovali na piny A0 - A3. Riadky joysticku (oranžové), tiež analógové, smerovali na I/O piny 8 a 9. Tieto budú musieť byť v kóde Arduino označené ako analógové ako A8 a A9.

Pin prepínača joysticku (modrý) smeroval na pin 7. Toto bude digitálny pin v kóde.

Izolácia

Pretože tento tuhý drôt bude napchatý do malého priestoru, rozhodol som sa izolovať svoje spájkovacie spojenia zdravým kopčekom tavného lepidla. Potom zastrčil všetko na svoje miesto a spustil jednoduchý test na doske a bankách pomocou verzie kódu Arduino Example AnalogInput - upraveného tak, aby prečítal všetky hrnce.

Druhá verzia

Posledné dva obrázky vyššie ukazujú ďalší box, ktorý staviam. Tento bude mať 5 gombíkov a jedno dočasné tlačidlo na stlmenie zvuku. Žiadny joystick. Krabica rovnakej veľkosti.

Krok 4: Dokončenie hardvéru

Dokončenie hardvéru
Dokončenie hardvéru

V čase, keď som nainštaloval joystick, som si uvedomil, že medzi jeho doskou a kolíkovými konektormi v Pro Micro nie je veľa voľného miesta.

Po troche opatrného ohnutia kolíkových hlavičiek a opätovnom použití tavného lepidla (na izoláciu) sa kryt správne zatvoril.

Inštalácia hrncov prebehla bez problémov.

Opäť s drôtmi

Pevné jadrá sú trochu tuhé a môžu byť krehké, ak sú príliš často ohnuté, preto ich opatrne zložte (bez ostrých rohov) do dostupného priestoru. Niektoré z nich boli príliš dlhé a vyžadovali ďalšie skladanie.

Akonáhle je všetko zasunuté na svoje miesto, nasaďte základňu na vrch a mali by ste skončiť s hardvérom …

Ale počkajte, je toho viac

Samozrejme, po niekoľkých týždňoch používania som sa rozhodol, že potrebujem indikátor, ktorý mi dá vedieť, v akom stave je funkcia mäkko kódovaného MUTE.

Po úprave kódu na pridanie funkcie LED (pozri nasledujúcu časť) som rýchlo spájkoval LED / vodiče / odpor a pripojil ich k doske.

Strávil som viac času vŕtaním otvoru cez hornú časť puzdra, pretože som nechcel mariť horný povrch. Označil som stredové miesto, prehĺbil ho a potom ručne roztočil vrták, aby sa vytvorila diera.

Ďalšie starostlivé pilníky vyčistili otvor a zaistili pekné tesné pritlačenie, aby LED dióda nevyčnievala príliš vysoko nad horný povrch.

Krok 5: Softvér

Softvér
Softvér
Softvér
Softvér
Softvér
Softvér

Prehľad

Ide teda o dvojdielny proces.

  1. Zoznámte sa s tým, ako Deej funguje, a upravte súbor Config.yaml
  2. Upravte kód Arduino tak, aby zodpovedal požadovanému hardvéru a funkciám
  3. Získajte knižnicu Arduino Joystick

V mojom prípade som chcel tieto funkcie:

  • Gombíky, ktoré ovládajú úrovne (mikrofón a výstup)
  • Vypínač stlmenia
  • Dvojosový joystick rozpoznaný systémom Windows na použitie v aplikáciách

Úrovne

Deej sa do značnej miery stará o prvý bod, ktorý príde. Túto funkciu som neupravoval

Vypínač stlmenia

Už na začiatku som sa rozhodol, že použijem tlačidlo/spínač na joysticku ako funkčné tlačidlo stlmenia.

Keď preskúmate kód, uvidíte, že som sa (pôvodne) rozhodol použiť „jemné“stlmenie - po stlačení tlačidla sa hlasitosť MIC zníži na nulu (a dióda LED svieti). Po opätovnom stlačení sa hlasitosť MIC vráti na pôvodné nastavenie a kontrolka LED zhasne.

Nakoniec sa pozriem na implementáciu knižnice klávesnice Arduino na prepínanie stavu Stlmiť pomocou sady kódov klávesnice rozšírených médií.

Implementácia joysticku

To vyžaduje použitie knižnice Arduino Joystick, aby sa zaistilo, že je joystick v systéme Windows a následne v akejkoľvek hre/aplikácii rozpoznaný ako zariadenie HID.

Som trochu nóbl, pokiaľ ide o kódovanie, a dokumentácia knižnice Joystick sa mi zdala trochu riedka po stránke skutočnej implementácie - ale trochu sústredeného googlenia ma priviedlo k ďalším príkladom, ktoré mi pomohli pochopiť, čo sa deje. Podrobnosti nájdete v sekcii zdrojov na konci.

Jediné, čo som musel urobiť, bolo identifikovať kolíky X/Y, prečítať si ich stav a odoslať to do knižnice Joystick. Arduino sa v systéme Windows javil ako Leonardo a bol správne nakonfigurovaný ako zariadenie Joystick.

Dokázal som to nastaviť v Elite Dangerous, popri svojom existujúcom nastavení HOTAS, a nechať joystick správne ovládať veci a nie je v rozpore s HOTAS. Funguje to tiež dobre v Star Wars: Squadrons - mám to nastavené ako rýchly prepínač na nastavenie štítov počas boja.

Súbory, ktoré fungujú s mojím nastavením joysticku

Do Codepile som nahral svoje aktuálne (október 2020) súbory.

  • Kód Arduino (súbor.ino)
  • Deej config.yaml

Krok 6: Koniec

Koniec
Koniec

Tak tento je hotový. Funguje to a som celkom spokojný s tým, ako sa to spojilo. A dozvedel som sa niečo viac o návrhu hardvéru, integrácii a programovaní Arduino.

Krok 7: Dodatok..dum..dum

Dodatok..dum..dum
Dodatok..dum..dum

VLC - tento úžasný prehrávač zvuku a videa má malú zvláštnosť, keď úroveň hlasitosti pri externom ovládaní vyskočí z 0% na 27%. To sa nestane, keď nastavujete úroveň pomocou ovládača hlasitosti rozhrania v aplikácii, iba pomocou externých ovládačov, ako je Deej.

Vývojár Deej rýchlo našiel riešenie vo VLC, ktoré robí túto úlohu, pozri obrázok vyššie:

. máte zvukovú reláciu systému Windows a budete ju môcť ovládať prostredníctvom deej, zabráni to pohybu panela hlasitosti VLC s ním) “

Krok 8: Ďalšie zdroje

Dodatočné zdroje
Dodatočné zdroje

Nájdený prostredníctvom mocného Googlu, uvedený v žiadnom konkrétnom poradí …

  • Knižnica joysticku Arduino (v2) - potrebná na integráciu joysticku
  • Sprievodca pripojením Sparkfun Pro Micro - dobrý zdroj o tomto Arduine
  • deej - softvér, ktorý poháňa gombíky
  • Typy konektorov USB - kto vedel, že existuje toľko variantov?
  • Micro analógové vývody Arduino Pro
  • Herný joystick Arduino Leonardo - Leonardo je podobný Pro Micro, len je väčší
  • Port Arduino Pro Micro (klon) nebol zistený (Riešenie) - keď murujete svoj Pro Micro (urobil som)
  • Arduino Leonardo/Micro ako herný ovládač/joystick
  • Príklad použitia multimediálneho kľúča na stlmenie - pomocou knižnice HID Project
  • Príklad kódu knižnice projektu HID na pozastavenie / prehrávanie médií
  • Ďalší príklad kódu zobrazujúci ovládač gamepadu.
  • ArduinoGamingController_updated - dobrý popis kódu používania knižnice Joystick
  • Kalkulátor odporu LED - zistíte, aký veľký odpor by ste vo svojom projekte potrebovali
  • Knižnica ikon - flaticon.com - zdroj obrázkov použitých nad gombíkmi
  • Ďalší rezistorový farebný dekodér - kliknite na farbu a violu!

Odporúča: