Sisällysluettelo:
- Vaihe 1: Tarvikkeet
- Vaihe 2: Kotelo
- Vaihe 3: Piiri
- Vaihe 4: Laitteiston viimeistely
- Vaihe 5: Ohjelmisto
- Vaihe 6: Lopeta
- Vaihe 7: Lisäys..dum..dum
- Vaihe 8: Lisäresursseja
Video: Arduino -näppäimistön ohjaussauvan laajennuslaatikko ja ääniohjaimen asia Deej -toiminnolla: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
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
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
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
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
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
Yleiskatsaus
Tämä on siis kaksiosainen prosessi.
- Hanki ja ymmärrä Deejin toiminta ja muokkaa Config.yaml -tiedostoa
- Muokkaa Arduino -koodia vastaamaan haluttua laitteistoa ja ominaisuuksia
- 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
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
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
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:
Ohjaussauvan hallinta Arduinolle: 3 vaihetta
Kuinka tehdä ohjaussauvan ohjaus Arduinolle: Tässä ohjeessa näytän sinulle, kuinka tehdä lego -ohjaussauvoja arduinoa varten
Kaksoisakselin ohjaussauvan liittäminen Arduino Unoon: 5 vaihetta
Kuinka yhdistää kaksiakselinen ohjaussauva Arduino Unon kanssa: Tässä liitämme yhden kaksintakselisen ohjaussauvan arduino uno: n kanssa. Tässä ohjaussauvassa on kaksi analogista nastaa x -akselia ja y -akselia varten ja yksi digitaalinen tappi kytkintä varten
1980 -luvun ohjaussauvan USB -muunnos: 7 vaihetta (kuvilla)
1980 -luvun ohjaussauvan USB -muunnos: Tämä alkuperäinen 1980 -luvun Cheetah 125 -ohjaussauva on saanut rakastavan muunnoksen uusilla kiiltävillä mikrokytkimillä, arcade -painikkeilla ja Pimoroni Player X -ohjainkortilla. Sillä on nyt neljä itsenäistä "tulta"; painikkeet ja yhteyden muodostaminen USB: n kautta, valmiina
Moottoroidun sisäänvedettävän ohjaussauvan kehittäminen: 10 vaihetta (kuvilla)
Moottoroidun sisäänvedettävän ohjaussauvan kehittäminen: Tämä moottorikäyttöinen sisäänvedettävä ohjaussauva on edullinen ratkaisu sähköpyörätuolin käyttäjille, joilla on vaikeuksia kääntyvien manuaalisten joystick-kiinnikkeiden käytössä. Se on suunnittelun iterointi aiemmasta sisäänvedettävästä joystick -projektista. Projekti koostuu
Hauskoja projekteja Elegoo Uno R3 Super Start Kit -sovelluksella - DC -moottorin ohjaussauvan ohjaus: 4 vaihetta
Hauskoja projekteja Elegoo Uno R3 Super Start Kit -sovelluksella - DC -moottorin ohjaussauvan ohjaus: Tässä ohjeessa yritän ohjata tasavirtamoottorin suuntaa ja nopeutta ohjaussauvalla Arduinon avulla. Elegoo Uno R3 Super Start Kit on saatavana Amazon.com -sivustolta