Turinys:
Video: „Arduino“klaviatūros vairasvirtės išplėtimo dėžutė ir garso valdiklio dalykas naudojant „Deej“: 8 žingsniai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Tinkercad projektai »
Kodėl
Jau kurį laiką norėjau prie klaviatūros pridėti mažą vairasvirtę, kad galėčiau valdyti sąsajos elementus, arba atlikti kitas mažesnes žaidimų ir simuliatorių užduotis („MS Flight Sim“, „Elite: Dangerous“, „Star Wars: Squadrons“ir kt.).
Be to, „Elite: Dangerous“kovojau su maišymo garsumo lygiu iš išorinio garso (integruota muzika, nors ir gera, pasikartoja po daugelio valandų nespalvotai), žaidimo garso ir išorinio balso paketo palaikymo.
„Windows“įmontuotas šaltinio maišytuvas yra „gerai“, tačiau sunku perjungti ekranus ir pelės valdymo slankiklius žaidimo viduryje. Turėti išplėstinę klaviatūros valdymo dėžutę atrodė kaip išeitis. Deej yra mano rastas sprendimas.
Kaip
Neseniai sužinojau apie „Arduino“ir susidūriau su „deej“projektu „reddit“. Atrodė, kad tai išspręs abi šias problemas vienoje patogioje pakuotėje. Ir tai leistų man suprojektuoti ir atspausdinti puikų 3D dėklą.
Kas yra deej?
(iš svetainės) „deej“yra ** atvirojo kodo aparatinės įrangos garsumo maišytuvas **, skirtas „Windows“ir „Linux“kompiuteriams. Tai leidžia jums naudoti realaus gyvenimo slankiklius (kaip didžėjus!), Kad ** sklandžiai valdytumėte skirtingų programų garsą ** (pvz., Muzikos grotuvą, žaidimą, kurį žaidžiate ir balso pokalbių sesiją), nenutraukdami Tu darai.
Mano versija
Kad dėžutė būtų maža, aš pasirinkau rankenėles (sukamasis linijinis potenciometras (puodai = rezistoriai)), o ne slankikliai. Funkcionaliai jie veikia vienodai. Dabartiniuose ir populiariuose „deej“dizainuose nėra kreiptuko, todėl tai bus šiek tiek dizaino hibridas. Priešingu atveju tai gana paprasta konstrukcija.
Deej dirbs su „Arduino Nano“, „Pro Micro“arba „Uno“, tačiau kūrėjas „oficialiai rekomenduoja“„Nano“ir „Pro Micro“. Aš pasirinkau „Arduino Pro Micro“, nes norėjau vairasvirtės, o „Arduino Joystick“biblioteka ją palaiko. Taip pat galiu naudoti „Arduino“klaviatūros biblioteką, kai noriu naudoti medijos klaviatūros nutildymo funkciją (o ne „minkštą nutildymą“) su kreiptuko mygtuku, tačiau tai yra toliau.
1 žingsnis: reikmenys
Dėžė
Atsisiųskite STL failus (sukurtus „Tinkercad“):
- Prusa priedų failai adresu Prusa (https://www.prusaprinters.org/)
- „Thingiverse“(netrukus)
Techninė įranga (gamybos padalinys)
- 1x „Arduino Pro Micro“
- 4x 10 k sukamieji (rankenėlės) potenciometrai (ne sukamieji valdikliai, puodai)
- 1x „Arduino KY-023“vairasvirtė
- 5 pėdų Cat5 tinklo kabelis
- 1x USB A - USB B mikro kabelis (USB A yra didelis kvadratinis jungtis, USB B micro yra tai, kas yra „Arduino Pro Micro“)
- 1x 5 mm raudonas šviesos diodas
- 1x 220 omų rezistorius
Turėjau keletą papildomų dalių, todėl maniau, kad sukursiu kūrimo padalinį, kad galėčiau išbandyti dalykus. Tiesiog prijungus daiktus prie duonos lentos, buvo lengviau įsivaizduoti galutinį dalyką.
- 1x „Arduino Pro Micro“
- 4x 10 k sukamieji (rankenėlės) potenciometrai (ne sukamieji valdikliai, puodai)
- 1x momentinis mygtuko jungiklis („hard reset“jungiklis)
- 1x USB A - USB B mikro kabelis (USB A yra didelis kvadratinis jungtis, USB B micro yra tai, kas yra „Arduino Pro Micro“)
- jungiamųjų laidų asortimentas
- Bandomoji Lenta
- 1x 5 mm raudonas šviesos diodas
-
1x 220 omų rezistorius
2 žingsnis: gaubtas
Dizainas
Man patiko kai kurie kiti dizainai, aprašyti „deej“bendruomenės galerijoje, todėl atsižvelgiau į man patikusias funkcijas:
- Lengva kurti ir spausdinti
- Netrukdykite kitiems mano darbalaukio periferiniams įrenginiams
- Nenaudokite varžtų ar tvirtinimo elementų korpuso tvirtinimui
- Klaviatūros dizainas panašus į estetiką
Aš suprojektavau ir atspausdinau du prototipus prieš nuspręsdamas dėl šio galutinio dizaino. Man patinka turėti fizinę versiją, kurioje galėčiau žaisti erdvėje, kurioje ją naudoju, nes tai leidžia geriau suprasti, kaip veiks galutinis objektas.
Trumpai pradėjau kurti „Fusion360“, bet nežinau to taip gerai, kaip „Tinkercad“, todėl persijungiau ir dirbau ten.
Kadangi norėjau dizaino be varžtų, sukūriau lizdą. Pirmasis prototipas turėjo ploną dangtį ir gilią dėžę viskam. Antrasis dizainas pakeitė jį giliu dangteliu ir seklia dugno dėže. Jis turėjo laikyti tik „Arduino Pro Mini“, todėl tikrai nereikėjo būti didelio. Taip pat įtrauktos reljefinės piktogramos.
Trečiojo dizaino dydis buvo pakeistas, kad tilptų erdvė šalia mano klaviatūros.
Spauda
Aš atspausdinau dėžutę PLA, užprogramavęs kaitinimo siūlelio / sluoksnio keitimą iš juodos į raudoną dangteliui, kur tik pradės matytis piktogramos, ir vėl į juodą likusiam dangteliui.
Problema
Viso to metu kreiptuko laikiklis buvo problema. Net ir trečiojoje konstrukcijoje lazda atsitrenkia į laikiklius vienoje vietoje. Kitas kartojimas turės geresnius atstumus. Aš galėjau daugiau dirbti su projektu, bet norėjau pereiti prie kito etapo, diegimo.
3 žingsnis: grandinė
Blogiausias visų laikų elektros instaliacijos darbas
Gerai, tai yra mano pirmasis visiškai užpildytas „Arduino“projektas. Taip, aš anksčiau darydavau duonos lentas ir naudoju ją kurdamas šios versijos kūrimo versiją, tačiau tai yra pirmasis mano gaminimas ir surinkimas. Taigi mano laidai atrodo kaip šūdas. Štai, tai nekelia kelio:)
Atnaujinimas: nuo to laiko aš pastatiau kitą, o laidai yra daug gražesni. Žiūrėkite paveikslėlius:)
Gamybos padalinys - kas kur vyksta
„Arduino Pro Micro“yra maža lentelė ir tilps į suformuotą pagrindo skyrių. Rankenėlės ir vairasvirtė telpa į atitinkamas skyles dangtelyje. Bet nieko nemontuokite, kol nesulauksite litavimo varžybų.
Laidai
Neturėjau tinkamo grandinės laido, tačiau turėjau likusią kietojo branduolio „Cat5“tinklo kabelio ritinį, todėl aš tai ir naudojau. Jis yra šiek tiek standesnis ir galbūt trapesnis nei grandinės laidas, tačiau jis veikia.
Išdėstydamas komponentus maždaug pagal jų galutinę montavimo padėtį, aš įvertinau kiekvienos vielos atstumą, pridėjau šiek tiek daugiau, kad būtų laisvas ir tt, tada nukirpau ir nukirpau laidą. Palikau daug laisvės.
Remdamasis elektros instaliacijos schema, bendrąją žemę (juoda) ir VCC (raudona) sujungiau su rankenėlėmis ir vairasvirte, kur nurodyta. Kadangi tinklo kabelis nėra šių spalvų, aš tiesiog pasirinkau spalvą ir išlaikiau laidus, atitinkančius funkciją.
Individualus puodas. analoginės linijos (geltona) ėjo iki kaiščių A0 - A3. „Joystick“linijos (oranžinės spalvos), taip pat analogiškos, ėjo iki 8 ir 9 įvesties/išvesties kaiščių. „Arduino“koduose jie turės būti pažymėti kaip analoginiai kaip A8 ir A9.
Vairasvirtės jungiklio kaištis (mėlynas) nusileido iki 7. kaiščio. Tai bus skaitmeninis kodo kodas.
Izoliacija
Kadangi ši standi viela bus įkišta į nedidelę erdvę, aš nusprendžiau izoliuoti savo litavimo jungtis sveiku karšto lydalo klijų likučiu. Tada viską sudėjo į savo vietas ir atliko paprastą bandymą ant lentos ir puodų, naudodami „Arduino“pavyzdžio analoginio įvesties kodo versiją - pakeistą taip, kad būtų perskaityti visi puodai.
Antra versija
Paskutiniuose dviejuose paveikslėliuose parodyta kita mano kuriama dėžutė. Šis turės 5 rankenėles ir vieną momentinį mygtuką, skirtą nutildymui. Nėra vairasvirtės. Vienodo dydžio dėžutė.
4 žingsnis: Aparatūros užbaigimas
Įdiegęs vairasvirtę supratau, kad tarp plokštės ir „Pro Micro“paliktų kaiščių antgalių nėra daug vietos.
Šiek tiek atsargiai sulenkus kaiščių antgalius ir pakartotinai užtepus karšto lydalo klijų (izoliacijai), korpusas tinkamai užsidarė.
Puodų montavimas vyko be problemų.
Vėl su laidais
Tvirtos vielos laidai yra šiek tiek standūs ir gali būti trapūs, jei per daug kartų sulenkti, todėl atsargiai juos sulenkite (be aštrių kampų) į laisvą vietą. Kai kurie mano buvo per ilgi ir reikalavo šiek tiek papildomo lankstymo.
Kai viskas bus padėta į vietą, tiesiog pritvirtinkite pagrindą prie viršaus ir turėtumėte baigti aparatūrą …
Bet palaukite, yra daugiau
Žinoma, po kelių savaičių naudojimo nusprendžiau, kad man reikia indikatoriaus, kuris leistų man žinoti, kokia yra švelniai užkoduotos MUTE funkcijos būsena.
Redagavęs kodą, kad pridėtumėte šviesos diodų funkcionalumą (žr. Kitą skyrių), aš greitai litavau LED / laidus / rezistorių ir prijungiau juos prie plokštės.
Aš praleidau daugiau laiko, kad išgręžčiau skylę per korpuso viršų, nes nenorėjau sugadinti viršutinės apdailos. Pažymėjau centrinę vietą, ją įlenkiau, tada ranka sukiau grąžtą, kad padarytų skylę.
Papildomas kruopštus užpildymas išvalė skylę ir užtikrino gražų sandarumą, kad šviesos diodas nebūtų pernelyg išsikišęs virš viršutinio paviršiaus.
5 žingsnis: programinė įranga
Apžvalga
Taigi, tai yra dviejų dalių procesas.
- Gaukite ir supraskite, kaip veikia „Deej“, ir redaguokite failą „Config.yaml“
- Redaguokite „Arduino“kodą, kad jis atitiktų norimą aparatūrą ir funkcijas
- Gaukite „Arduino Joystick“biblioteką
Mano atveju norėjau šių funkcijų:
- Rankenėlės, valdančios lygius (mikrofonas ir išvestis)
- Nutildymo jungiklis
- „Windows“atpažįsta 2 ašių vairasvirtę, skirtą naudoti programoje
Lygiai
Deej beveik pasirūpina pirmuoju punktu. Aš nekeičiau šios funkcijos
Nutildymo jungiklis
Anksti nusprendžiau, kad naudosiu valdymo svirties paspaudimo/jungiklio funkciją kaip funkcinį nutildymo mygtuką.
Išnagrinėję kodą pamatysite, kad (iš pradžių) pasirinkau naudoti „minkštą“nutildymą - paspaudus mygtuką, MIC garsumas sumažėja iki nulio (ir šviečia šviesos diodas). Paspaudus dar kartą, MIC garsumas grąžinamas į ankstesnį nustatymą ir šviesos diodas užgęsta.
Galų gale aš ketinu įdiegti „Arduino“klaviatūros biblioteką, kad perjungtumėte nutildymo būseną per išplėstinį laikmenos klaviatūros kodų rinkinį.
Vairasvirtės įgyvendinimas
Tam reikia naudoti „Arduino Joystick“biblioteką, kad „Windows“, taigi ir bet kuris žaidimas/programa, atpažintų kreiptuką kaip HID įrenginį.
Aš esu šiek tiek niekšas, kai reikia koduoti, ir radau, kad „Joystick“bibliotekos dokumentacija yra šiek tiek menka faktinėje įgyvendinimo pusėje, tačiau šiek tiek susikaupęs „Google“ieškojo kitų pavyzdžių, kurie padėjo man suprasti, kas vyksta. Išsamesnės informacijos ieškokite pabaigoje esančiame išteklių skyriuje.
Viskas, ką turėjau padaryti, buvo nustatyti X/Y kaiščius, perskaityti jų būseną ir nusiųsti ją į „Joystick“biblioteką. „Arduino“pasirodė „Leonardo“sistemoje „Windows“ir buvo tinkamai sukonfigūruotas kaip vairasvirtės įrenginys.
Aš galėjau jį nustatyti „Elite Dangerous“kartu su esama HOTAS sąranka ir turėti, kad vairasvirtė tinkamai valdytų dalykus ir neprieštarautų „HOTAS“. Tai taip pat gerai veikia „Žvaigždžių karai: eskadrilės“- aš turiu tai nustatyti kaip greitą jungiklį, kad būtų galima nustatyti skydus kovojant.
Failai, kurie veikia su mano vairasvirtės sąranka
Įkėliau dabartinius (2020 m. Spalio mėn.) Failus į „Codepile“.
- „Arduino“kodas (.ino failas)
- Deej config.yaml
6 žingsnis: pabaiga
Na, šis yra padarytas. Tai veikia ir esu labai patenkinta, kaip tai įvyko. Ir aš sužinojau šiek tiek daugiau apie aparatūros dizainą, integraciją ir „Arduino“programavimą.
7 veiksmas: priedas..dum..dum
VLC - šis nuostabus garso ir vaizdo grotuvas turi šiek tiek keistumo, kai garso lygis, valdomas išoriškai, šokteli nuo 0% iki 27%. Tai neįvyksta reguliuojant lygį naudojant programinės įrangos sąsajos garsumo valdiklį, tik naudojant išorinius valdiklius, tokius kaip „Deej“.
„Deej“kūrėjas greitai rado „VLC“sprendimą, kuris atlieka šį darbą, žr.
"… jei norite išjungti šį" stebėjimo "elgesį, galite tai padaryti pakeisdami VLC garso išvesties modulį. Čia bandžiau naudoti" DirectX ". Kad pakeitimas įsigaliotų, turėsite iš naujo paleisti VLC. (Vis tiek turėkite „Windows“garso sesiją ir galėsite ją valdyti naudodami „deej“, tai tik neleis VLC garsumo juosta su ja judėti) “
8 žingsnis: papildomi ištekliai
Rasta per galingą „Google“, išvardytą jokia konkrečia tvarka …
- „Arduino“vairasvirtės biblioteka (v2) - reikalinga norint integruoti vairasvirtę
- „Sparkfun Pro Micro“prijungimo vadovas - geras šaltinis apie šį „Arduino“
- deej - programinė įranga, valdanti rankenėles
- USB jungčių tipai - kas žinojo, kad yra tiek daug variantų?
- „Arduino Pro Micro“analoginiai kištukai
- „Arduino Leonardo Gaming Joystick“- „Leonardo“yra panašus į „Pro Micro“, tik didesnis
- „Arduino Pro Micro“(klonavimo) prievadas neaptiktas (sprendimas) - kai užmūrijote „Pro Micro“(aš padariau)
- „Arduino Leonardo“/„Micro“kaip žaidimų valdiklis/vairasvirtė
- Multimedijos rakto naudojimo nutildymui pavyzdys - naudojant „HID Project“biblioteką
- HID projekto bibliotekos pavyzdinis kodas, skirtas pristabdyti / leisti mediją
- Kitas kodo pavyzdys, rodantis žaidimų pulto valdiklį.
- „ArduinoGamingController_updated“- geras „Joystick“bibliotekos naudojimo kodo aprašymas
- LED rezistorių skaičiuotuvas - sužinoti, kokio dydžio rezistoriaus jums reikia jūsų projekte
- Piktogramų biblioteka - flaticon.com - virš rankenėlių naudojamų vaizdų šaltinis
- Kitas rezistorių spalvų dekoderis - spustelėkite spalvą ir altas!