Kazalo:

Arduino tipkovnica Joystick Extender Box in Sound Controller Thing Using Deej: 8 korakov
Arduino tipkovnica Joystick Extender Box in Sound Controller Thing Using Deej: 8 korakov

Video: Arduino tipkovnica Joystick Extender Box in Sound Controller Thing Using Deej: 8 korakov

Video: Arduino tipkovnica Joystick Extender Box in Sound Controller Thing Using Deej: 8 korakov
Video: 5 Best USB Volume Control Knobs for Audio Adjustment 2024, Julij
Anonim
Arduino tipkovnica Joystick Extender Box in Thin Controller Thing using Deej
Arduino tipkovnica Joystick Extender Box in Thin Controller Thing using Deej

Tinkercad projekti »

Zakaj

Že nekaj časa želim na tipkovnico dodati majhno krmilno palčko za nadzor elementov vmesnika ali drugih manjših opravil v igrah in simulatorjih (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons itd.).

Tudi za Elite: Dangerous se borim z mešanjem ravni glasnosti iz zunanjega zvoka (vgrajena glasba, čeprav je dobra, se po več urah v črni barvi ponavlja), zvoka v igri in podpore za zunanji glasovni paket.

Vgrajen mešalnik virov v sistemu Windows je v redu, vendar je težko zamenjati zaslone in drsnike za upravljanje miške sredi igre. Zdi se, da je razširjena kontrolna omarica za tipkovnico prava pot. Deej je rešitev, ki sem jo našel.

Kako

Pred kratkim sem se učil o Arduinu in na redditu naletel na projekt deej. Zdelo se je, da bo to rešilo obe težavi v enem priročnem paketu. To bi mi omogočilo oblikovanje in tiskanje čudovitega 3D ohišja.

Kaj je deej?

(s spletnega mesta) deej je ** odprtokodni mešalnik glasnosti strojne opreme ** za osebne računalnike Windows in Linux. Omogoča vam, da z drsniki v resničnem življenju (kot je DJ!) ** brezhibno nadzirate glasnost različnih aplikacij ** (na primer predvajalnik glasbe, igro, ki jo igrate, in sejo glasovnega klepeta), ne da bi morali kar koli ustaviti počnete.

Moja različica

Da bi bila škatla majhna, sem se namesto drsnikov odločil za gumbe (rotacijski linearni potenciometer (lonci = upori)). Funkcionalno delujejo enako. Trenutni in priljubljeni modeli deej ne vsebujejo igralne palice, zato bo to nekoliko oblikovalski hibrid. V nasprotnem primeru je gradnja precej preprosta.

Deej bo sodeloval z Arduino Nano, Pro Micro ali Uno, vendar sta razvijalca "uradno priporočila" Nano in Pro Micro. Za Arduino Pro Micro sem se odločil, ker sem želel krmilno palčko, knjižnica igralnih palic Arduino pa jo podpira. Knjižnico Arduino tipkovnice lahko uporabim tudi, če želim uporabiti funkcijo izklopa predstavnosti tipkovnice (namesto »mehkega izklopa zvoka«) z gumbom na krmilni palici, vendar je to še naprej.

1. korak: Zaloge

Zaloge
Zaloge
Zaloge
Zaloge
Zaloge
Zaloge

Škatla

Prenesite datoteke STL (oblikovane v Tinkercadu):

  • Datoteke ohišja na Prusa (https://www.prusaprinters.org/)
  • Thingiverse (kmalu)

Strojna oprema (proizvodna enota)

  • 1x Arduino Pro Micro
  • 4x 10k rotacijski (gumb) potenciometri (ne vrtljivi regulatorji, uporabite lonce)
  • 1x krmilna palica Arduino KY-023
  • 5ft ostanki mrežnega kabla cat5
  • 1x mikro USB kabel USB A do USB B (USB A je velik kvadratni priključek, USB B micro je tisto, kar je na Arduino Pro Micro)
  • 1x 5 mm rdeča LED
  • 1x 220 ohmski upor

Imel sem nekaj dodatnih delov, zato sem mislil, da bom zgradil razvojno enoto, na kateri bom preizkusil stvari. Že samo povezovanje stvari na ploščo je olajšalo vizualizacijo zadnje stvari.

  • 1x Arduino Pro Micro
  • 4x 10k rotacijski (gumb) potenciometri (ne vrtljivi regulatorji, uporabite lonce)
  • 1x kratkotrajno stikalo (stikalo za ponastavitev)
  • 1x mikro USB kabel USB A do USB B (USB A je velik kvadratni priključek, USB B micro je tisto, kar je na Arduino Pro Micro)
  • različne mostične žice
  • deska
  • 1x 5 mm rdeča LED
  • 1x 220 ohmski upor

2. korak: ohišje

Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje

Dizajn

Všeč so mi bili nekateri drugi modeli, ki so bili profilirani v galeriji skupnosti deej, zato sem glede na svoje značilnosti uporabil:

  • Enostavno oblikovanje in tiskanje
  • Ne ovirajte mojih drugih namiznih naprav
  • Za pritrditev ohišja ne uporabljajte vijakov ali pritrdilnih elementov
  • Podobna oblikovalska estetika kot tipkovnica

Preden sem se odločil za to končno zasnovo, sem oblikoval in natisnil dva prototipa. Všeč mi je, da se igram s fizično različico v prostoru, v katerem ga uporabljam, saj mi daje boljši občutek, kako bo končni predmet deloval.

Na kratko sem začel oblikovati v Fusion360, vendar tega ne vem tako dobro kot Tinkercad, zato sem preklopil in tam delal.

Ker sem želel obliko brez vijakov, sem ustvaril gnezdilnico. Prvi prototip je imel tanek pokrov in globoko škatlo za vse. Druga zasnova je to zamenjala z globokim pokrovom in plitvo spodnjo škatlo. Le držati je moral Arduino Pro Mini, zato res ni bilo treba biti velik. Vključene so tudi reliefne ikone.

Tretji dizajn je bil spremenjen tako, da ustreza prostoru poleg tipkovnice.

Tisk

Natisnil sem polje v PLA in programiral zamenjavo žarilne nitke / plasti iz črne v rdečo za pokrov, kjer bi bile ikone šele vidne, in spet nazaj v črno za preostanek pokrova.

Problem

Skozi vse to je bil nosilec krmilne palice težava. Tudi pri tretji izvedbi se palica na enem mestu zaleti ob nosilce. Naslednja ponovitev bo imela boljše razdalje. Pri oblikovanju bi lahko delal več, vendar bi želel preiti na naslednjo fazo, namestitev.

3. korak: vezje

Vezje
Vezje
Vezje
Vezje
Vezje
Vezje

Najslabše ožičenje

V redu, to je moj prvi celostni projekt Arduino. Da, že prej sem delal stvari na ploščah in jih uporabljam za izdelavo razvojne različice tega, kar pa se tiče izdelovanja in sestavljanja, je to moje prvo. Tako da moje ožičenje izgleda kot sranje. No, to ni možno:)

Posodobitev: Od takrat sem zgradil še enega in ožičenje je tam veliko lepše. Oglejte si slike:)

Proizvodna enota - kaj kam gre

Arduino Pro Micro je majhna deska in se prilega oblikovanemu delu na dnu. Ročaji in krmilna palica se prilegajo v ustrezne luknje na pokrovu. Toda ne nameščajte ničesar, dokler ne dosežete konkurence med spajkanjem.

Ožičenje

Nisem imel ustrezne žice vezja, vendar sem imel preostanek zvitka enojedrnega omrežnega kabla cat5, zato sem to uporabil. Je nekoliko trši in morda bolj krhek kot nasedla žica, vendar deluje.

Pri postavitvi komponent v približnem položaju njihove končne vgradnje sem ocenil razdaljo za vsako žico, dodal še malo za ohlapnost itd., Nato pa žico prerezal in obrezal. Puščal sem veliko prostora.

Glede na shemo ožičenja sem dotikal skupne točke (črna) in VCC (rdeča) do gumbov in krmilne palice, kjer je navedeno. Ker omrežni kabel ni v teh barvah, sem izbral barvo in ohranil ožičenje skladno s funkcijo.

Posamezni lonec. analogne črte (rumene) so potekale do zatičev A0 - A3. Vrstice igralne palice (oranžne), prav tako analogne, so potekale do V/I nožic 8 in 9. Te bodo v kodi Arduino označene kot analogne kot A8 in A9.

Zatič stikala krmilne ročice (modro) je tekel na nožico 7. To bo digitalni zatič v kodi.

Izolacija

Ker bo to trdo žico natisnjeno v majhen prostor, sem se odločil, da svoje spajkalne povezave izoliram z zdravo kapljico vroče topljenega lepila. Nato ste vse postavili na svoje mesto in izvedli preprost preizkus na plošči in lončkih z uporabo različice Arduino Primer AnalogInput kode - spremenjene za branje vseh loncev.

Druga različica

Zadnji dve zgornji sliki prikazujeta naslednjo škatlo, ki jo gradim. Ta bo imel 5 gumbov in en trenutni gumb za izklop zvoka. Brez igralne palice. Škatla enake velikosti.

4. korak: Dokončanje strojne opreme

Dokončanje strojne opreme
Dokončanje strojne opreme

Ko sem namestil igralno palico, sem spoznal, da med njeno ploščo in glavnimi zatiči na Pro Micro ni veliko prostora.

Po rahlem previdnem upogibanju glav zatičev in ponovnem nanašanju lepila za topljenje (za izolacijo) se je ohišje pravilno zaprlo.

Namestitev loncev je potekala brez težav.

Spet z žicami

Žice iz trdnega jedra so nekoliko trde in so lahko krhke, če jih prevečkrat upognete, zato jih previdno (brez ostrih vogalov) prepognite v razpoložljiv prostor. Nekateri moji so bili predolgi in jih je bilo treba dodatno zložiti.

Ko je vse postavljeno na svoje mesto, samo namestite podlago na vrh in končali boste s strojno opremo….

Ampak počakaj, še več je

Seveda sem se po nekaj tednih uporabe odločil, da potrebujem indikator, ki mi bo povedal, v kakšnem stanju je funkcija mehkega kodiranja MUTE.

Po urejanju kode za dodajanje funkcionalnosti LED (glej naslednji razdelek) sem hitro spajkal LED / žice / upor in jih povezal s ploščo.

Več časa sem porabil za vrtanje luknje skozi zgornji del ohišja, saj nisem želel pokvariti zgornje površine. Označil sem osrednjo točko, jo vdrl, nato sem ročno zavrtel sveder, da naredim luknjo.

Dodatna previdna vložka je očistila luknjo in zagotovila lepo tesno prileganje, da LED ne bi štrlela predaleč nad zgornjo površino.

5. korak: programska oprema

Programska oprema
Programska oprema
Programska oprema
Programska oprema
Programska oprema
Programska oprema

Pregled

Torej, to je postopek iz dveh delov.

  1. Spoznajte in razumejte, kako Deej deluje, in uredite datoteko Config.yaml
  2. Uredite kodo Arduino, da ustreza želeni strojni opremi in funkcijam
  3. Pridobite knjižnico Arduino Joystick

V mojem primeru sem želel te funkcije:

  • Ročaji za nadzor ravni (mikrofon in izhod)
  • Stikalo za izklop zvoka
  • 2 -osna krmilna palica, ki jo Windows prepozna za uporabo v aplikacijah

Ravni

Deej precej skrbi za prvo točko, ko pride. Te funkcije nisem popravljal

Stikalo za izklop zvoka

Že zgodaj sem se odločil, da bom pritisnil/stikalo na igralni ročici uporabljal kot funkcijski gumb za izklop zvoka.

Ko pregledate kodo, boste videli, da sem se (na začetku) odločil za uporabo "mehkega" izklopa zvoka - ko pritisnete gumb, se glasnost mikrofona zmanjša na nič (in sveti LED). Ko znova pritisnete, se glasnost mikrofona vrne na prejšnjo nastavitev in LED ugasne.

Sčasoma bom razmišljal o izvajanju knjižnice tipkovnice Arduino za preklop statusa Mute prek nabora kodne tipkovnice za razširjeno predstavnost.

Izvedba igralne palice

To zahteva uporabo knjižnice igralne palice Arduino, da Windows zagotovo prepozna krmilno palčko kot napravo HID in posledično katero koli igro/aplikacijo.

Pri kodiranju sem malce neumen in se mi je zdelo, da je dokumentacija knjižnice Joystick nekoliko skopa na strani dejanske izvedbe - vendar me je malo osredotočenega googlanja pripeljalo do drugih primerov, ki so mi pomagali razumeti, kaj se dogaja. Za podrobnosti preverite razdelek o virih na koncu.

Vse, kar sem moral narediti, je, da prepoznam X/Y zatiče, preberem njihovo stanje in to pošljem v knjižnico Joystick. Arduino se je v sistemu Windows pojavil kot Leonardo in je bil pravilno konfiguriran kot naprava Joystick.

Lahko sem ga nastavil v Elite Dangerous, skupaj z obstoječimi nastavitvami HOTAS in igralno palico pravilno nadzoroval in ne bil v nasprotju s HOTAS. Dobro deluje tudi v Star Wars: Squadrons - nastavljen sem kot hiter preklop za nastavitev ščitov v boju.

Datoteke, ki delujejo z nastavitvijo igralne palice

Naložil sem svoje trenutne (oktober 2020) datoteke v Codepile.

  • Koda Arduino (datoteka.ino)
  • Deej config.yaml

Korak 6: Konec

Konec
Konec

No, ta je narejen. Deluje in zelo sem zadovoljen, kako je vse skupaj prišlo. Naučil sem se nekaj več o oblikovanju strojne opreme, integraciji in programiranju Arduino.

7. korak: Dodatek..dum..dum

Dodatek..dum..dum
Dodatek..dum..dum

VLC - ta čudovit avdio in video predvajalnik ima malo nenavadnosti, ko raven glasnosti, če jo upravljate od zunaj, skoči z 0% na 27%. To se ne zgodi pri prilagajanju ravni z uporabo nadzora glasnosti vmesnika v aplikaciji, samo z zunanjimi kontrolami, kot je Deej.

Razvijalec Deej je hitro našel rešitev v VLC, ki opravi delo, glejte zgornjo sliko:

"… če želite onemogočiti to" sledenje ", lahko to storite tako, da spremenite zvočni izhodni modul VLC. Tukaj sem uporabil DirectX. Če želite, da sprememba začne veljati, boste morali znova zagnati VLC. (Še vedno boste imeti zvočno sejo windows in jo lahko nadzirate prek deeja, to bo preprečilo premikanje vrstice za glasnost VLC z njo)"

8. korak: Dodatni viri

Dodatni viri
Dodatni viri

Najdeno prek mogočnega Googa, ki ni navedeno v določenem vrstnem redu …

  • Knjižnica igralnih palic Arduino (v2) - potrebna za integracijo krmilne palice
  • Priročnik za priključitev Sparkfun Pro Micro - dober vir o tem Arduinu
  • deej - programska oprema, ki poganja gumbe
  • Vrste priključkov USB - kdo je vedel, da obstaja toliko različic?
  • Arduino Pro mikro analogni izhodi
  • Igralna igralna palica Arduino Leonardo - Leonardo je podoben Pro Micro, le večji
  • Vrata Arduino Pro Micro (Clone) niso zaznana (rešitev) - ko opečete svoj Pro Micro (jaz sem)
  • Arduino Leonardo/Micro kot krmilnik iger/igralna palica
  • Primer uporabe večpredstavnostnega ključa za izklop zvoka - uporaba knjižnice projekta HID
  • Primer kode knjižnice projekta HID za zaustavitev / predvajanje medija
  • Še en primer kode, ki prikazuje krmilnik igralne plošče.
  • ArduinoGamingController_updated - dober opis kode uporabe knjižnice Joystick
  • Kalkulator LED upornikov - če želite izvedeti, kako velik upor potrebujete v svojem projektu
  • Knjižnica ikon - flaticon.com - vir slik, uporabljenih nad gumbi
  • Še en barvni dekoder upora - kliknite barvo in violo!

Priporočena: