Obsah:
- Krok 1: Spotřební materiál
- Krok 2: Příloha
- Krok 3: Okruh
- Krok 4: Dokončení hardwaru
- Krok 5: Software
- Krok 6: Konec
- Krok 7: Dodatek..dum..dum
- Krok 8: Další zdroje
Video: Arduino klávesnice Joystick Extender Box a ovladač zvuku věc pomocí Deej: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Projekty Tinkercad »
Proč
Nějakou dobu jsem chtěl na klávesnici přidat malý joystick pro ovládání prvků rozhraní nebo jiné menší úkoly ve hrách a simulátorech (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons atd.).
Také pro Elite: Dangerous jsem bojoval s mícháním úrovní hlasitosti z externího zvuku (vestavěná hudba, i když dobrá, se opakuje po mnoha hodinách v černé barvě), audio ve hře a podpora externího hlasového balíčku.
Vestavěný zdrojový mixér Windows je „v pořádku“, ale bolest při přepínání obrazovek a posuvníků ovládání myší uprostřed hry. Vypadalo to, že má rozšířený ovládací panel klávesnice. Deej je řešení, které jsem našel.
Jak
Nedávno jsem se učil o Arduinu a narazil jsem na projekt deej na redditu. Vypadalo to, že by to vyřešilo oba tyto problémy v jednom šikovném balíčku. A to by mi umožnilo navrhnout a vytisknout šikovný 3D kufřík.
Co je deej?
(z webu) deej je ** open-source hardware volume mixer ** pro Windows a Linux PC. Umožňuje vám pomocí posuvníků v reálném životě (jako DJ!) ** plynule ovládat hlasitost různých aplikací ** (například hudebního přehrávače, hry, kterou hrajete a relace hlasového chatu), aniž byste museli zastavovat děláš.
Moje verze
Aby byl box malý, rozhodl jsem se spíše pro knoflíky (otočný lineární potenciometr (hrnce = odpory)) než posuvníky. Funkčně fungují stejně. Aktuální a populární designy deej neobsahují joystick, takže tohle bude trochu designový hybrid. Jinak je to docela přímočará stavba.
Deej bude pracovat s Arduino Nano, Pro Micro nebo Uno, ale Nano a Pro Micro jsou „oficiálně doporučeny“vývojářem. Vybral jsem si Arduino Pro Micro, protože jsem chtěl joystick, a knihovna Arduino Joystick to podporuje. Mohu také použít knihovnu klávesnic Arduino, když chci pomocí tlačítka joysticku použít funkci ztlumení multimediální klávesnice (spíše než 'měkké ztlumení'), ale to je dále po silnici.
Krok 1: Spotřební materiál
Krabice
Stáhněte si soubory STL (navržené v Tinkercad):
- Soubory příloh na adrese Prusa (https://www.prusaprinters.org/)
- Thingiverse (již brzy)
Hardware (výrobní jednotka)
- 1x Arduino Pro Micro
- 4x 10k otočný (knoflík) potenciometry (ne otočné ovladače, použijte hrnce)
- 1x Joystick Arduino KY-023
- Síťový kabel catft o délce 5 stop
- 1x mikro kabel USB A na USB B (USB A je velký čtvercový konektor, USB B micro je to, co je na Arduino Pro Micro)
- 1x 5mm červená LED
- 1x odpor 220 ohmů
Měl jsem kolem sebe nějaké další díly, takže jsem si řekl, že postavím vývojovou jednotku, na které budu věci testovat. Pouhé připojení věcí k prkénku usnadnilo vizualizaci konečné věci.
- 1x Arduino Pro Micro
- 4x 10k otočný (knoflík) potenciometry (ne otočné ovladače, použijte hrnce)
- 1x momentový tlačítkový spínač (spínač pro tvrdý reset)
- 1x mikro kabel USB A na USB B (USB A je velký čtvercový konektor, USB B micro je to, co je na Arduino Pro Micro)
- různé propojovací vodiče
- prkénko
- 1x 5mm červená LED
-
1x odpor 220 ohmů
Krok 2: Příloha
Design
Líbily se mi některé další designy profilované v komunitní galerii deej, takže jsem založil ty funkce, které se mi líbily:
- Snadný design a tisk
- Nezasahujte do mých dalších stolních periferií
- K zajištění skříně nepoužívejte šrouby ani upevňovací prvky
- Podobný design jako klávesnice
Než jsem přistoupil k tomuto konečnému návrhu, navrhl a vytiskl jsem dva prototypy. Rád si hraji s fyzickou verzí v prostoru, ve kterém ji používám, protože mi dává lepší představu o tom, jak bude konečný objekt fungovat.
Krátce jsem začal navrhovat ve Fusion360, ale nevím to tak dobře jako Tinkercad, takže jsem přepnul a pracoval tam.
Protože jsem chtěl bezšroubový design, vytvořil jsem hnízdní budku. První prototyp měl tenké víko a hlubokou krabici na všechno. Druhý design to vyměnil s hlubokým víkem a mělkým spodním boxem. Musel držet pouze Arduino Pro Mini, takže opravdu nemusel být velký. Také začleněny reliéfní ikony.
Třetí design byl upraven tak, aby se vešel do prostoru vedle mé klávesnice.
Tisk
Vytiskl jsem krabici v PLA, naprogramoval jsem výměnu vlákna / vrstvy z černé na červenou pro víko, kde by ikony začaly být viditelné, a znovu zpět do černé pro zbývající část víka.
Problém
Po to všechno byl držák joysticku problém. I ve třetím provedení klacek naráží na úchyty na jednom místě. Další iterace bude mít lepší vůle. Mohl jsem na návrhu zapracovat více, ale chtěl jsem přejít k další fázi, instalaci.
Krok 3: Okruh
Nejhorší elektroinstalační práce vůbec
Dobře, toto je můj první plně rozvinutý projekt Arduino. Ano, dříve jsem dělal věci na prkénkách a používám jednu k vytvoření vývojové verze, ale pokud jde o skutečnou výrobu a montáž, je to moje první. Takže moje zapojení vypadá jako svinstvo. Tam, to je z cesty:)
Aktualizace: Od té doby jsem postavil další a kabeláž je tam mnohem hezčí. Podívejte se na obrázky:)
Výrobní jednotka - Co se kde děje
Arduino Pro Micro je malá deska a vejde se do tvarované části v základně. Knoflíky a joystick zapadají do příslušných otvorů ve víku. Ale nic nenamontujte, dokud se nedostanete k pájení.
Elektrické vedení
Neměl jsem žádný správný obvodový vodič, ale měl jsem zbylou roli síťového kabelu cat5 s pevným jádrem, takže jsem to použil. Je to trochu tužší a možná křehčí než lanko s obvodovým obvodem, ale funguje to.
Položením komponent v přibližné poloze k jejich konečné montážní poloze jsem odhadl vzdálenost pro každý vodič, přidal jsem trochu více pro prověšení atd., Potom jsem drát přestřihl a ořezal. Nechal jsem hodně flákače.
Podle schématu zapojení jsem vedl společnou zem (černá) a VCC (červená) na knoflíky a joystick tam, kde je to uvedeno. Vzhledem k tomu, že síťový kabel není v těchto barvách, vybral jsem jen barvu a udržoval jsem kabeláž v souladu s funkcí.
Jednotlivý Pot. analogové linky (žluté) vedly na piny A0 - A3. Řady Joysticku (oranžové), rovněž analogové, vedly na I/O piny 8 a 9. Ty budou muset být v kódu Arduino označeny jako analogové jako A8 a A9.
Kolík přepínače joysticku (modrý) směřoval na pin 7. Toto bude digitální pin v kódu.
Izolace
Vzhledem k tomu, že tento tuhý drát bude nacpaný do malého prostoru, rozhodl jsem se izolovat svá pájecí spojení zdravým spoustou tavného lepidla. Poté vše zasunul na místo a spustil jednoduchý test na desce a bankách pomocí verze kódu Arduino Example AnalogInput - upraveného tak, aby přečetl všechny poty.
Druhá verze
Poslední dva obrázky výše ukazují další pole, které stavím. Ten bude mít 5 knoflíků a jedno momentální tlačítko pro ztlumení. Žádný joystick. Krabice stejné velikosti.
Krok 4: Dokončení hardwaru
V době, kdy jsem Joystick nainstaloval, jsem si uvědomil, že mezi deskou a hlavičkami kolíků na Pro Micro není příliš mnoho prostoru.
Po trochu opatrném ohnutí hlaviček kolíků a opětovném použití tavného lepidla (pro izolaci) se skříň řádně zavřela.
Instalace hrnců proběhla bez problémů.
Opět s dráty
Pevné jádrové dráty jsou trochu tuhé a mohou být křehké, pokud jsou příliš často ohnuty, proto je opatrně složte (bez ostrých rohů) do dostupného prostoru. Některé z nich byly příliš dlouhé a vyžadovaly trochu dalšího skládání.
Jakmile je vše zasunuto na místo, stačí nasadit základnu na vrchol a měli byste být hotovi s hardwarem….
Ale počkejte, je toho víc
Po několika týdnech používání jsem se samozřejmě rozhodl, že potřebuji indikátor, který mi dá vědět, jaký je stav softkódované funkce MUTE.
Po úpravě kódu pro přidání funkce LED (viz další část) jsem rychle připájel LED / vodiče / odpor a připojil je k desce.
Strávil jsem více času vyvrtáním díry v horní části skříně, protože jsem nechtěl markovat horní povrch. Označil jsem středové místo, promáčkl ho a pak rukou roztočil vrták, abych vytvořil otvor.
Další pečlivé pilování vyčistilo otvor a zajistilo pěkné těsné přilnutí, aby LED nevyčnívala příliš vysoko nad horní povrch.
Krok 5: Software
Přehled
Jedná se tedy o dvoudílný proces.
- Zjistěte, jak Deej funguje, a upravte soubor Config.yaml
- Upravte kód Arduino tak, aby odpovídal požadovanému hardwaru a funkcím
- Získejte knihovnu Arduino Joystick
V mém případě jsem chtěl tyto funkce:
- Knoflíky, které ovládají úrovně (mikrofon a výstup)
- Vypnutí zvuku
- Dvouosý joystick rozpoznávaný systémem Windows pro použití aplikací
Úrovně
Deej se do značné míry stará o první bod, který přijde. Tuto funkci jsem nevyladil
Vypnutí zvuku
Brzy jsem se rozhodl, že použiji tlačítko/spínač na joysticku jako funkční tlačítko pro ztlumení.
Když prozkoumáte kód, uvidíte, že jsem se rozhodl (zpočátku) použít „měkké“ztlumení - po stisknutí tlačítka se hlasitost MIC sníží na nulu (a LED dioda svítí). Po dalším stisknutí se hlasitost MIC vrátí na předchozí nastavení a kontrolka LED zhasne.
Nakonec se podívám na implementaci knihovny klávesnice Arduino pro přepnutí stavu Ztlumit pomocí sady kódů klávesnice rozšířených médií.
Implementace joysticku
To vyžaduje použití knihovny Arduino Joystick, aby bylo zajištěno, že je joystick rozpoznán jako zařízení HID systémem Windows a následně jakoukoli hrou/aplikací.
Jsem trochu noob, pokud jde o kódování, a zjistil jsem, že dokumentace ke knihovně Joystick je na vlastní implementační stránce trochu řídká - ale trochu soustředěného googlování mě přivedlo k dalším příkladům, které mi pomohly pochopit, co se děje. Podrobnosti najdete v sekci zdroje na konci.
Jediné, co jsem musel udělat, bylo identifikovat X/Y piny, přečíst si jejich stav a odeslat to do knihovny Joystick. Arduino se objevil jako Leonardo pro Windows a byl správně nakonfigurován jako zařízení Joystick.
Byl jsem schopen jej nastavit v Elite Dangerous, vedle mého stávajícího nastavení HOTAS a nechat Joystick správně ovládat věci a nekolidovat s HOTAS. Funguje to také dobře ve Star Wars: Squadrons - mám to nastavené jako rychlý přepínač pro nastavení štítů během boje.
Soubory, které fungují s mým nastavením Joysticku
Nahrál jsem své aktuální (říjen 2020) soubory do Codepile.
- Arduino kód (soubor.ino)
- Deej config.yaml
Krok 6: Konec
Tak tohle je hotové. Funguje to a jsem docela rád, jak to vzniklo. A dozvěděl jsem se něco více o návrhu hardwaru, integraci a programování Arduino.
Krok 7: Dodatek..dum..dum
VLC - tento úžasný přehrávač zvuku a videa má trochu zvláštnosti, když úroveň hlasitosti při externím ovládání vyskočí z 0% na 27% ish. To se nestává při nastavování úrovně pomocí ovládání hlasitosti v aplikaci, pouze s externími ovládacími prvky, jako je Deej.
Vývojář Deej rychle našel řešení in-VLC, které tuto úlohu provede, viz obrázek výše:
"… pokud chcete toto chování" Sledování "deaktivovat, můžete to udělat změnou výstupního zvukového modulu VLC. Zde jsem použil DirectX. Aby se změna projevila, budete muset restartovat VLC. (Stále budete mít zvukovou relaci systému Windows a moci ji ovládat pomocí deej, to jen zabrání pohybu lišty hlasitosti VLC s ní)"
Krok 8: Další zdroje
Nalezeno prostřednictvím mocného Googlu, uvedeno v žádném konkrétním pořadí …
- Arduino Joystick Library (v2) - potřebné k integraci joysticku
- Průvodce připojením Sparkfun Pro Micro - dobrý zdroj o tomto Arduinu
- deej - software, který pohání knoflíky
- Typy konektorů USB - kdo věděl, že existuje tolik variant?
- Micro analogové vývody Arduino Pro
- Herní joystick Arduino Leonardo - Leonardo je podobný Pro Micro, jen je větší
- Port Arduino Pro Micro (klon) nebyl detekován (Řešení) - když vytvoříte Pro Pro Micro (udělal jsem)
- Arduino Leonardo/Micro jako herní ovladač/joystick
- Příklad použití multimediálního klíče ke ztlumení - pomocí knihovny projektu HID
- Ukázkový kód knihovny projektu HID pro pozastavení / přehrávání médií
- Další příklad kódu zobrazující ovladač gamepadu.
- ArduinoGamingController_updated - dobrý popis kódu použití Joystick Library
- Věc na kalkulačce odporu LED - abyste zjistili, jak velký odpor byste ve svém projektu potřebovali
- Knihovna ikon - flaticon.com - zdroj obrázků použitých nad knoflíky
- Další rezistorový barevný dekodér - klikněte na barvu a violu!
Doporučuje:
Ovladač klávesnice HID pro budoucí tón Project Diva Aracade: 5 kroků
Ovladač klávesnice HID pro Project Diva Aracade Future Tone: V-USB je nízkorychlostní řešení knihovny USB pro mikrořadiče AVR. Umožňuje nám vytvářet zařízení HID (klávesnice, myš, gamepad atd.) Pomocí mikrořadičů AVR. Implementace klávesnice HID je založena na HID 1.11. Podporuje maximálně 6 stisknutí kláves
Arduino DIY herní ovladač - Herní ovladač Arduino PS2 - Hra Tekken s gamepadem pro kutily Arduino: 7 kroků
Arduino DIY herní ovladač | Herní ovladač Arduino PS2 | Hraní Tekken s DIY Arduino Gamepad: Ahoj kluci, hraní her je vždy zábava, ale hraní s vaší vlastní DIY vlastní hrou je zábavnější. Takže v tomto návodu vytvoříme herní ovladač pomocí arduino pro micro
Indikátor úrovně zvuku/zvuku: 10 kroků
Indikátor úrovně zvuku/zvuku: V tomto projektu vám ukážu, jak pomocí operačních zesilovačů vytvořit jednoduchý indikátor úrovně zvuku. Poznámka: Chcete-li se zeptat, navštivte mé stránky Ask the Expert. Užitečná doplňková videa: Simulovaný obvod nastavený na prkénku (proto
Čištění hliníkové klávesnice Apple . nebo jakékoli jiné soft-touch klávesnice: 5 kroků
Čištění hliníkové klávesnice Apple …. nebo jakékoli jiné klávesnice s měkkým dotykem: Jakkoli se vy nebo já můžeme pokusit udržet naše hliníkové klávesnice Apple, začnou být po roce špinavé. Tento návod vám pomůže vyčistit ho. Buďte opatrní, protože nejsem zodpovědný, pokud se vám při tom rozbije klávesnice …. SUCKS F
Volič zvuku z mincovny: 3,5 mm přepínač zvuku: 6 kroků
Volič zvuku Mint Boxu: 3,5 mm Přepínač zvuku: Problém: Často na ploše musím používat sluchátka pro hry nebo poslech hudby, když jsou v místnosti jiní lidé, a pak se chci přepnout na reproduktory, pokud se chci pochlubit vtipným video nebo uskutečnit internetový hovor se vzdáleným příbuzným. Th