Sisällysluettelo:

Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej -toiminnolla: 8 vaihetta
Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej -toiminnolla: 8 vaihetta

Video: Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej -toiminnolla: 8 vaihetta

Video: Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej -toiminnolla: 8 vaihetta
Video: Ohjaussauva 2024, Marraskuu
Anonim
Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej: n avulla
Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej: n avulla

Tinkercad -projektit »

Miksi

Olen jo jonkin aikaa halunnut lisätä näppäimistöön pienen ohjaussauvan käyttöliittymäelementtien ohjaamiseksi tai muita pienempiä tehtäviä peleissä ja simulaattoreissa (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons jne.).

Myös Elite: Dangerous -pelissä olen kamppaillut äänenvoimakkuuden sekoittamisen kanssa ulkoisesta äänestä (sisäänrakennettu musiikki, vaikka se on hyvä, toistuu monien tuntien jälkeen mustalla), pelin sisäisellä äänellä ja ulkoisella äänipaketilla.

Windowsin sisäänrakennettu lähdesekoitin on "ok", mutta näytön ja hiiren liukusäätimien vaihtaminen pelin keskellä on tuskallista. Laajennettu näppäimistön ohjauslaatikko näytti oikealta. Deej on ratkaisu, jonka löysin.

Miten

Olen äskettäin oppinut Arduinosta ja törmännyt deej -projektiin redditissä. Näytti siltä, että tämä ratkaisi molemmat ongelmat yhdessä kätevässä paketissa. Ja se antaisi minun suunnitella ja tulostaa hienon 3D -kotelon.

Mikä on deej?

(sivustolta) deej on ** avoimen lähdekoodin laitteiston äänenvoimakkuuden sekoitin ** Windows- ja Linux-tietokoneille. Sen avulla voit käyttää tosielämän liukusäätimiä (kuten DJ!) ** hallita saumattomasti eri sovellusten ** (kuten musiikkisoittimesi, pelaamasi pelin ja äänikeskusteluistasi) äänenvoimakkuutta ilman, että joudut keskeyttämään olet tekemässä.

Oma versio

Jotta laatikko pysyisi pienenä, valitsin nupit (pyörivä lineaarinen potentiometri (ruukut = vastukset)) liukusäätimien sijasta. Toiminnallisesti ne toimivat samalla tavalla. Nykyiset ja suositut deej -mallit eivät sisällä ohjaussauvaa, joten tämä on hieman muotoiluhybridi. Muuten se on melko suoraviivainen rakenne.

Deej toimii Arduino Nanon, Pro Mikron tai Unon kanssa, mutta kehittäjä suosittelee Nanoa ja Pro Mikroa virallisesti. Valitsin Arduino Pro Micron, koska halusin ohjaussauvan, ja Arduino Joystick Library tukee sitä. Voin käyttää myös Arduino -näppäimistökirjastoa, kun haluan käyttää median näppäimistön mykistystoimintoa ("pehmeän mykistyksen" sijasta) ohjaussauvan painikkeen kanssa, mutta se on kauempana tiellä.

Vaihe 1: Tarvikkeet

Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet

Laatikko

Lataa STL -tiedostot (suunniteltu Tinkercadissa):

  • Liitetiedostot Prusassa (https://www.prusaprinters.org/)
  • Thingiverse (tulossa pian)

Laitteisto (tuotantoyksikkö)

  • 1x Arduino Pro Micro
  • 4x 10k pyörivä (nuppi) potentiometrit (ei kiertosäätimiä, käytä kattiloita)
  • 1x Arduino KY-023 Joystick
  • Catft -verkkokaapeli, 5 jalkaa
  • 1x USB A - USB B -mikrokaapeli (USB A on iso neliöliitin, USB B micro on Arduino Pro Micro -laitteen sisältö)
  • 1x 5mm punainen LED
  • 1x 220 ohmin vastus

Minulla oli joitain ylimääräisiä osia, joten ajattelin rakentaa kehitysyksikön testaamaan asioita. Pelkkä asioiden liittäminen leipälautaan helpotti lopullisen asian visualisointia.

  • 1x Arduino Pro Micro
  • 4x 10k pyörivä (nuppi) potentiometrit (ei kiertosäätimiä, käytä kattiloita)
  • 1x hetkellinen painikekytkin (kova nollauskytkin)
  • 1x USB A - USB B -mikrokaapeli (USB A on iso neliöliitin, USB B micro on Arduino Pro Micro -laitteen sisältö)
  • valikoituja hyppyjohtoja
  • leipälauta
  • 1x 5mm punainen LED
  • 1x 220 ohmin vastus

Vaihe 2: Kotelo

Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo

Muotoilu

Pidin joistakin muista deej -yhteisön galleriassa profiloiduista malleista, joten perustuin ominaisuuksiin, joista pidin:

  • Helppo suunnitella ja tulostaa
  • Älä häiritse muita työpöydän oheislaitteitani
  • Älä käytä ruuveja tai kiinnikkeitä kotelon kiinnittämiseen
  • Samanlainen muotoilu esteettisesti kuin näppäimistö

Suunnittelin ja tulostin kaksi prototyyppiä ennen lopullista suunnittelua. Pidän siitä, että minulla on fyysinen versio pelatakseni tilassa, jossa käytän sitä, koska se antaa minulle paremman käsityksen siitä, miten lopullinen esine toimii.

Aloitin lyhyesti suunnittelun Fusion360: ssa, mutta en tiedä sitä yhtä hyvin kuin Tinkercad, joten vaihdoin ja työskentelin siellä.

Koska halusin ruuvitonta muotoilua, loin pesälaatikon. Ensimmäisessä prototyypissä oli ohut kansi ja syvä laatikko kaikelle. Toinen malli vaihtoi sen syvällä kannella ja matalalla pohjalaatikolla. Sen piti pitää vain Arduino Pro Mini, joten sen ei todellakaan tarvinnut olla suuri. Mukana myös kohokuvioidut kuvakkeet.

Kolmas muotoilu muutettiin sopivaksi näppäimistön viereen.

Painatus

Tulostin laatikon PLA: ssa ohjelmoimalla filamentin / kerroksen vaihtamisen mustasta punaiseksi kannelle, jossa kuvakkeet vain alkavat näkyä, ja takaisin takaisin mustaan kannen loppuosaan.

Ongelma

Kaiken tämän kautta ohjaussauvan kiinnitys oli ongelma. Jopa kolmannessa mallissa tikku törmää kiinnikkeisiin yhdessä paikassa. Seuraavalla toistolla on paremmat välykset. Olisin voinut työskennellä enemmän suunnittelun parissa, mutta halusin siirtyä seuraavaan vaiheeseen, asennukseen.

Vaihe 3: Piiri

Piiri
Piiri
Piiri
Piiri
Piiri
Piiri

Huonoin johdotustyö koskaan

Ok, tämä on ensimmäinen täysi Arduino-projektini. Kyllä, olen tehnyt asioita leipälaudoilla aikaisemmin ja käytän sitä rakentaakseni tämän kehitysversion, mutta itse valmistuksen ja kokoonpanon osalta tämä on ensimmäinen. Johdotukseni näyttää siis paskalta. Siellä se on poissa tieltä:)

Päivitys: Olen sittemmin rakentanut toisen ja johdotus on siellä paljon mukavampaa. Katso kuvat:)

Tuotantoyksikkö - mitä missä tapahtuu

Arduino Pro Micro on pieni pieni levy ja sopii pohjan valettuun osaan. Nupit ja ohjaussauva sopivat kannen reikiin. Mutta älä asenna mitään ennen kuin saat juotoskilpailun.

Johdotus

Minulla ei ollut kunnollista piirijohtoa, mutta minulla oli jäljellä rulla kiinteäydinistä cat5-verkkokaapelia, joten käytin sitä. Se on hieman jäykempi ja ehkä hauraampi kuin monisäikeinen piirijohto, mutta se toimii.

Kun asetin komponentit suunnilleen niiden lopulliseen asennusasentoon, arvioin kunkin langan etäisyyden, lisäsin hieman enemmän löysyydelle jne., Leikkasin ja leikkasin langan. Jätin paljon löysää.

Viitaten kytkentäkaavioon käytin yhteistä maata (musta) ja VCC (punainen) nuppeihin ja ohjaussauvaan, jos niin on ilmoitettu. Koska verkkokaapeli ei tule näissä väreissä, valitsin vain värin ja pidin johdotuksen johdonmukaisena toiminnon kanssa.

Yksittäinen potti. analogiset linjat (keltainen) kulkivat nastoihin A0 - A3. Joystick -linjat (oranssi), myös analogiset, kulkivat I/O -nastoihin 8 ja 9. Nämä on nimettävä analogiseksi Arduino -koodissa A8 ja A9.

Joystick -kytkimen tappi (sininen) juoksi nastaan 7. Tämä on koodin digitaalinen nasta.

Eristys

Koska tämä jäykkä lanka täytetään pieneen tilaan, päätin eristää juotosliitokseni terveellä kuumasulateliimalla. Sitten työnsi kaiken paikalleen ja suoritti yksinkertaisen testin taululle ja kattiloille käyttäen Arduino -esimerkin AnalogInput -koodiversiota - muokattu lukemaan kaikki ruukut.

Toinen versio

Kaksi viimeistä kuvaa yllä näyttävät seuraavan laatikon. Tässä on 5 nuppia ja yksi hetkellinen mykistyspainike. Ei ohjaussauvaa. Sama kokoinen laatikko.

Vaihe 4: Laitteiston viimeistely

Laitteiston viimeistely
Laitteiston viimeistely

Kun olin asentanut ohjaussauvan, huomasin, että sen levyn ja Pro Micro -laitteeseen jääneiden nastaotsikoiden välillä ei ollut paljon tilaa.

Kotelo sulkeutui kunnolla pienen varovan taivuttamisen jälkeen ja kuumasulateliiman (eristyksen) uudelleen levittämisen jälkeen.

Ruukkujen asennus sujui ongelmitta.

Taas johtojen kanssa

Kiinteät ydinjohdot ovat hieman jäykkiä ja voivat olla hauraita, jos niitä taivutetaan liian monta kertaa, joten taita ne varovasti (ilman teräviä kulmia) vapaaseen tilaan. Jotkut omistani olivat liian pitkiä ja vaativat hieman ylimääräistä taittamista.

Kun kaikki on asetettu paikoilleen, aseta pohja vain yläosaan ja sinun pitäisi olla valmis laitteistoon….

Mutta odota, on enemmän

Tietenkin muutaman viikon käytön jälkeen päätin, että tarvitsen indikaattorin, joka ilmoittaa minulle, mikä on pehmeästi koodatun MUTE-toiminnon tila.

Kun olet muokannut koodia lisätäksesi LED -toiminnot (katso seuraava osa), juotin nopeasti LED / johdot / vastuksen ja liitin ne piirilevyyn.

Vietin enemmän aikaa porata reikä kotelon yläosan läpi, koska en halunnut marinoida yläpäätä. Merkitsin keskikohdan, taittelin sen ja kehräsin käsin poranterän reiän tekemiseksi.

Lisäksi huolellinen arkistointi puhdisti reiän ja varmisti mukavan tiukan puristusliitoksen, jotta LED ei ulottuisi liian pitkälle yläpinnan yläpuolelle.

Vaihe 5: Ohjelmisto

Ohjelmisto
Ohjelmisto
Ohjelmisto
Ohjelmisto
Ohjelmisto
Ohjelmisto

Yleiskatsaus

Tämä on siis kaksiosainen prosessi.

  1. Hanki ja ymmärrä Deejin toiminta ja muokkaa Config.yaml -tiedostoa
  2. Muokkaa Arduino -koodia vastaamaan haluttua laitteistoa ja ominaisuuksia
  3. Hanki Arduino -joystick -kirjasto

Minun tapauksessani halusin nämä ominaisuudet:

  • Nupit, jotka ohjaavat tasoja (mikrofoni ja lähtö)
  • Mykistyskytkin
  • 2 -akselinen ohjaussauva, jonka Windows tunnistaa sovellusten käyttöön

Tasot

Deej huolehtii suuresti ensimmäisestä kohdasta sellaisena kuin se tulee. En säätänyt tätä toimintoa

Mykistyskytkin

Olin jo varhain päättänyt, että aion käyttää ohjaussauvan puristinta/kytkintä toiminnallisena mykistyspainikkeena.

Kun tarkastelet koodia, huomaat, että olen valinnut (aluksi) pehmeän mykistyksen - kun painiketta painetaan, MIC -äänenvoimakkuus pienenee nollaan (ja LED palaa). Kun sitä painetaan uudelleen, MIC -äänenvoimakkuus palautetaan edelliseen asetukseen ja LED sammuu.

Lopulta aion ottaa käyttöön Arduino -näppäimistökirjaston vaihtaaksesi mykistystilan laajennetun medianäppäimistön koodisarjan kautta.

Ohjaussauvan toteutus

Tämä edellyttää Arduino -joystick -kirjaston käyttöä sen varmistamiseksi, että Windows ja siten kaikki pelit/sovellukset tunnistavat ohjaussauvan HID -laitteeksi.

Olen hieman noob koodauksen suhteen ja löysin Joystick -kirjaston dokumentaation hieman niukasti todellisella toteutuspuolella - mutta hieman keskittynyt googlaus johti minut muihin esimerkkeihin, jotka auttoivat minua ymmärtämään, mitä tapahtuu. Katso lisätietoja resurssiosasta lopussa.

Minun täytyi vain tunnistaa X/Y -nastat, lukea niiden tila ja lähettää se Joystick -kirjastoon. Arduino ilmestyi Leonardoksi Windowsille, ja se oli määritetty oikein ohjaussauvaksi.

Pystyin asentamaan sen Elite Dangerousiin nykyisen HOTAS -asennuksen rinnalle ja saamaan ohjaussauvan hallitsemaan asioita oikein eikä ristiriidassa HOTASin kanssa. Se toimii hyvin myös Star Wars: Squadronsissa - minulla on se asetettu pikavaihteeksi kilpien asettamiseksi taistelun aikana.

Tiedostot, jotka toimivat Joystick -asennukseni kanssa

Olen ladannut nykyiset (lokakuu 2020) tiedostot Codepileen.

  • Arduino -koodi (.ino -tiedosto)
  • Deej config.yaml

Vaihe 6: Lopeta

Loppu
Loppu

No tämä on tehty. Se toimii ja olen melko tyytyväinen siihen, miten se tuli yhteen. Ja opin hieman enemmän laitteistosuunnittelusta, integroinnista ja Arduino -ohjelmoinnista.

Vaihe 7: Lisäys..dum..dum

Lisäys..dum..dum
Lisäys..dum..dum

VLC - mahtavassa ääni- ja videosoittimessa on hieman outoa, kun äänenvoimakkuus hyppää 0%: sta 27%: iin, kun sitä ohjataan ulkoisesti. Tämä ei tapahdu, kun säädät tasoa sovelluksen sisäisen käyttöliittymän äänenvoimakkuuden säätimellä, vain ulkoisilla säätimillä, kuten Deej.

Deej-kehittäjä löysi nopeasti VLC-kiertotavan, joka tekee työn, katso yllä oleva kuva:

"… jos haluat poistaa tämän" seurannan "käytöstä, voit tehdä sen vaihtamalla VLC: n äänilähtömoduulin. Käytin tässä DirectX: tä. VLC on käynnistettävä uudelleen, jotta muutos tulee voimaan. Jos sinulla on Windows -äänisessio ja voit hallita sitä deej: n kautta, tämä estää vain VLC -äänenvoimakkuuspalkin liikkumisen mukana)"

Vaihe 8: Lisäresursseja

Lisäresurssit
Lisäresurssit

Löytyi mahtavan Googin kautta, ei missään erityisessä järjestyksessä…

  • Arduino Joystick Library (v2) - tarvitaan ohjaussauvan integrointiin
  • Sparkfun Pro Micro -liitäntäopas - hyvä resurssi tästä Arduinosta
  • deej - ohjelmisto, joka ohjaa nuppeja
  • USB -liitäntätyypit - kuka tiesi, että vaihtoehtoja oli niin paljon?
  • Arduino Pro Micro Analogiset Pinoutit
  • Arduino Leonardo Gaming Joystick - Leonardo on samanlainen kuin Pro Micro, vain isompi
  • Arduino Pro Micro (klooni) -porttia ei havaittu (ratkaisu) - kun muraat Pro Micro -laitteen (tein)
  • Arduino Leonardo/Micro peliohjaimena/ohjaussauva
  • Esimerkki multimedia -avaimen käytöstä mykistämiseen - HID -projektikirjaston avulla
  • HID -projektikirjaston esimerkkikoodi median keskeyttämiseen / toistamiseen
  • Toinen koodiesimerkki, joka näyttää peliohjaimen ohjaimen.
  • ArduinoGamingController_updated - hyvä koodikuvaus ohjaussauvan kirjaston käytöstä
  • LED -vastuslaskin - voit selvittää, kuinka suuren vastuksen tarvitset projektissasi
  • Kuvakekirjasto - flaticon.com - nuppien yläpuolella käytettyjen kuvien lähde
  • Toinen Resistor Color Decoder - napsauta väriä ja alttoviulua!

Suositeltava: