Përmbajtje:

Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej: 8 hapa
Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej: 8 hapa

Video: Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej: 8 hapa

Video: Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej: 8 hapa
Video: Arduino USB Volume Controller | Hobby Electronics 2024, Nëntor
Anonim
Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej
Arduino Keyboard Joystick Extender Box dhe Sound Controller Thing Using Deej

Projektet Tinkercad »

Pse

Për një kohë kam dashur të shtoj një levë të vogël në tastierën time për të kontrolluar elementët e ndërfaqes, ose detyra të tjera më të vogla në lojëra dhe imitues (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons, etj).

Gjithashtu, për Elite: Dangerous, kam luftuar me përzierjen e niveleve të volumit nga audio e jashtme (muzika e integruar, edhe pse e mirë, përsëritet pas shumë orësh në të zezë), audio në lojë dhe mbështetje të jashtme të paketës zanore.

Përzierësi i burimit i integruar i Windows është 'ok', por një dhimbje për të ndërruar ekranet dhe rrëshqitësit e kontrollit të miut në mes të lojës. Të kesh një kuti të zgjeruar të kontrollit të tastierës dukej mënyra për të shkuar. Deej është zgjidhja që gjeta.

Si

Kohët e fundit kam mësuar për Arduino, dhe hasa në projektin deej në reddit. Dukej se kjo do t'i zgjidhte të dyja këto probleme në një paketë të dobishme. Dhe do të më lejonte të hartoja dhe të printoja një kuti të mrekullueshme 3D.

Çfarë është deej?

(nga faqja e internetit) deej është një përzierës i volumit të harduerit me burim të hapur ** për kompjuterët Windows dhe Linux. Kjo ju lejon të përdorni rrëshqitës të jetës reale (si një DJ!) Për të ** kontrolluar pa probleme volumin e aplikacioneve të ndryshme ** (të tilla si muzikanti juaj, loja që po luani dhe sesioni juaj i bisedës me zë) pa pasur nevojë të ndaloni atë që ti po bën.

Versioni im

Për ta mbajtur kutinë të vogël, unë zgjodha çelësat (potenciometër rrotullues linear (tenxhere = rezistorë)) dhe jo rrëshqitës. Funksionalisht ata punojnë njësoj. Modelet aktuale dhe të njohura të deej nuk përfshijnë një levë, kështu që kjo do të jetë pak një hibrid dizajni. Përndryshe, është një ndërtim mjaft i drejtpërdrejtë.

Deej do të punojë me një Arduino Nano, Pro Micro ose Uno, por Nano dhe Pro Micro 'rekomandohen zyrtarisht' nga zhvilluesi. Zgjodha Arduino Pro Micro sepse doja levën, dhe Biblioteka Arduino Joystick e mbështet atë. Unë gjithashtu mund të përdor bibliotekën e tastierës Arduino kur dua të përdor funksionin e heshtjes së tastierës së mediave (në vend të "heshtjes së butë") me butonin e levës, por kjo është më tutje.

Hapi 1: Furnizimet

Furnizimet
Furnizimet
Furnizimet
Furnizimet
Furnizimet
Furnizimet

Kutia

Shkarkoni skedarët STL (të krijuar në Tinkercad):

  • Dosjet e mbylljes në Prusa (https://www.prusaprinters.org/)
  • Universi Thing (vjen së shpejti)

Pajisjet kompjuterike (njësia e prodhimit)

  • 1x Arduino Pro Micro
  • 4x 10k rrotulluese (çelës) Potenciometra (jo Kontrollues rrotullues, përdorni tenxhere)
  • 1x Joystick Arduino KY-023
  • 5ft skrap kabllo rrjeti cat5
  • 1x kabllo mikro USB A në USB B (USB A është lidhësi i madh katror, USB B mikro është ajo që gjendet në Arduino Pro Micro)
  • LED 1x 5 mm e kuqe
  • Rezistencë 1x 220 ohm

Kisha disa pjesë shtesë përreth kështu që mendova se do të ndërtoja një njësi zhvillimi për të testuar gjërat. Vetëm lidhja e gjërave me një dërrasë buke e bëri më të lehtë të vizualizosh gjënë përfundimtare.

  • 1x Arduino Pro Micro
  • 4x 10k rrotulluese (çelës) Potenciometra (jo Kontrollues rrotullues, përdorni tenxhere)
  • Çelësi i butonit 1x të çastit (çelësi i rivendosjes së fortë)
  • 1x kabllo mikro USB A në USB B (USB A është lidhësi i madh katror, USB B mikro është ajo që gjendet në Arduino Pro Micro)
  • tela të ndryshëm kërcyes
  • dërrasë buke
  • LED 1x 5 mm e kuqe
  • Rezistencë 1x 220 ohm

Hapi 2: Mbyllja

Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi

Dizajni

Më pëlqyen disa nga modelet e tjera të profilizuara në galerinë e komunitetit deej, kështu që bazuar në imazhin e veçorive që më pëlqyen:

  • Lehtë për tu dizajnuar dhe printuar
  • Mos u pengoni në periferikët e mi të tjerë të desktopit
  • Mos përdorni vida ose fiksues për të siguruar rrethimin
  • Dizajn i ngjashëm estetik me tastierën

Unë projektova dhe printova dy prototipe para se të vendosja në këtë model përfundimtar. Më pëlqen të kem një version fizik për të luajtur me të në hapësirën në të cilën e përdor pasi më jep një ndjenjë më të mirë se si do të funksionojë objekti përfundimtar.

Fillova shkurtimisht të dizajnoja në Fusion360, por nuk e di aq mirë sa Tinkercad kështu kalova dhe punova atje.

Meqenëse doja një model pa vida, krijova një kuti fole. Prototipi i parë kishte një kapak të hollë dhe një kuti të thellë për gjithçka. Dizajni i dytë e ndërroi atë me një kapak të thellë dhe një kuti të cekët të poshtme. Duhej të mbante vetëm Arduino Pro Mini, kështu që me të vërtetë nuk kishte nevojë të ishte i madh. Gjithashtu inkorporuan ikonat e stampuara.

Dizajni i tretë u ndryshua në madhësi për t'iu përshtatur hapësirës së bashku me tastierën time.

Shtypja

Unë e printova kutinë në PLA, duke programuar një ndërrim fije / shtrese nga e zeza në të kuqe për kapakun ku ikonat sapo do të fillonin të ishin të dukshme, dhe përsëri përsëri në të zezë për pjesën e mbetur të kapakut.

Një problem

Gjatë gjithë kësaj, montimi i levës ishte një problem. Edhe në modelin e tretë, shkopi përplaset me montuesit në një vend. Përsëritja tjetër do të ketë pastrime më të mira. Mund të kisha punuar më shumë në dizajn, por doja të kaloja në fazën tjetër, instalimin.

Hapi 3: Qarku

Qarku
Qarku
Qarku
Qarku
Qarku
Qarku

Puna më e keqe e instalimeve elektrike ndonjëherë

Ok, ky është projekti im i parë i plotë i Arduino. Po, unë kam bërë gjëra në panelet e bukës më parë dhe po përdor një për të ndërtuar versionin e zhvillimit të kësaj, por sa i përket fabrikimit dhe montimit të vërtetë, kjo është e para ime. Kështu që instalimet e mia elektrike duken si të kota. Atje, kjo është jashtë rrugës:)

Përditësim: Që atëherë kam ndërtuar një tjetër dhe instalimet elektrike janë shumë më të bukura atje. Shikoni imazhet:)

Njësia e prodhimit - Çfarë po ndodh ku

Arduino Pro Micro është një dërrasë e vogël e vogël dhe do të përshtatet në pjesën e derdhur në bazë. Dorezat dhe levë përshtaten në vrimat e tyre përkatëse në kapak. Por mos montoni asgjë derisa të fitoni garën e saldimit.

Instalime elektrike

Unë nuk kisha asnjë tel qark të duhur, por kisha një rrotull të mbetur të kabllit të rrjetit cat5 me bazë të ngurtë, kështu që kjo është ajo që kam përdorur. Ashtë pak më e ashpër dhe ndoshta më e brishtë se tela e qarkut të bllokuar, por funksionon.

Vendosja e përbërësve në një përafrim të pozicionit të tyre përfundimtar të montimit, unë vlerësova distancën, për secilën tel, shtova pak më shumë për zbehje, etj., Pastaj preva dhe shkurtova tela. Kam lënë shumë boshllëk.

Duke iu referuar diagramit të instalimeve elektrike, unë drejtova bazën e përbashkët (E zezë) dhe VCC (E kuqe) te pullat dhe levë aty ku tregohet. Meqenëse kablloja e rrjetit nuk vjen në këto ngjyra, unë thjesht zgjodha një ngjyrë dhe i mbajta instalimet e mia në përputhje me funksionin.

Tenxhere individuale. linjat analoge (të verdha) kaluan në kunjat A0 - A3. Linjat Joystick (Portokalli), gjithashtu analoge, shkuan në kunjat I/O 8 dhe 9. Këto do të duhet të përcaktohen si Analog në kodin Arduino si A8 dhe A9.

Pina e kalimit të levës (Blu) shkoi në kunjin 7. Ky do të jetë një kunj dixhital në kod.

Izolim

Meqenëse ky tel i ngurtë do të mbushet në një hapësirë të vogël, unë zgjodha të izoloja lidhjet e mia të saldimit me një lugë të shëndetshme zam të shkrirë të nxehtë. Pastaj vendosi gjithçka në vend dhe bëri një provë të thjeshtë në tabelë dhe tenxhere duke përdorur versionin e kodit Arduino Shembull AnalogInput - i modifikuar për të lexuar të gjitha tenxheret.

Versioni i dytë

Dy imazhet e fundit më sipër tregojnë kutinë tjetër që po ndërtoj. Ky do të ketë 5 çelësa dhe një buton shtypës të çastit për memecin. Asnjë levë. Kuti me të njëjtën madhësi.

Hapi 4: Përfundimi i harduerit

Përfundimi i harduerit
Përfundimi i harduerit

Në kohën kur instalova Joystick, kuptova se nuk kishte shumë hapësirë midis tabelës së tij dhe titujve të kunjave të mbetur në Pro Micro.

Pas një përkuljeje të kujdesshme të kokave të kunjave dhe një riaplikimi të ngjitësit të shkrirë të nxehtë (për izolim), mbyllja u mbyll siç duhet.

Instalimi i tenxhereve shkoi pa probleme.

Përsëri me telat

Telat me bërthamë të ngurtë janë pak të ngurtë dhe mund të jenë të brishtë nëse përkulen shumë herë, prandaj palosini me kujdes (pa qoshe të mprehta) në hapësirën në dispozicion. Disa nga të miat ishin shumë të gjatë dhe kërkonin pak palosje shtesë.

Pasi gjithçka të jetë vendosur në vend, thjesht vendosni bazën në krye dhe duhet të përfundoni me pajisjen….

Por prisni, ka më shumë

Sigurisht, pas disa javësh përdorimi, vendosa që kisha nevojë për një tregues për të më treguar se cili është statusi i funksionit të butë të koduar MUTE.

Pas redaktimit të kodit për të shtuar funksionalitetin LED (shiko seksionin tjetër), unë shpejt ngjita LED / telat / rezistencën dhe i lidha me tabelën.

Kalova më shumë kohë për të shpuar vrimën në pjesën e sipërme të kutisë pasi nuk doja të prishja përfundimin e sipërm. Unë shënova një vend qendror, e dhëmba atë, pastaj me dorë rrotullova një stërvitje për të bërë vrimën.

Regjistrimi shtesë i kujdesshëm pastroi vrimën dhe siguroi një përshtatje të mirë të ngushtë të shtypjes për të siguruar që LED nuk të dalë shumë sipër sipërfaqes së sipërme.

Hapi 5: Softueri

Softueri
Softueri
Softueri
Softueri
Softueri
Softueri

Vështrim i përgjithshëm

Pra, ky është një proces me dy pjesë.

  1. Merrni dhe kuptoni se si funksionon Deej dhe redaktoni skedarin Config.yaml
  2. Ndryshoni kodin Arduino që të përputhet me pajisjen dhe veçoritë e dëshiruara
  3. Merrni bibliotekën Arduino Joystick

Në rastin tim, doja këto veçori:

  • Dorezat që kontrollojnë nivelet (Mikrofoni dhe dalja)
  • Çelësi i heshtjes
  • Xhojstik 2 aksesh i njohur nga Windows për përdorim aplikacioni

Nivelet

Deej shumë kujdeset për pikën e parë siç vjen. Unë nuk e ndryshova këtë funksionalitet

Çelësi i heshtjes

E kisha përcaktuar herët që do të përdorja shtypin/çelësin në Joystick si një buton funksional të heshtjes.

Kur shqyrtoni kodin, do të shihni që unë kam zgjedhur (fillimisht) të përdor një memec 'të butë' - kur shtypet butoni, vëllimi i MIC zvogëlohet në zero (dhe LED është ndezur). Kur shtypet përsëri, vëllimi i MIC kthehet në cilësimin e mëparshëm dhe LED shuhet.

Përfundimisht do të shikoj zbatimin e bibliotekës së tastierës Arduino për të ndryshuar statusin Mute përmes grupit të kodit të tastierës së zgjeruar të mediave.

Zbatimi i xhojstikut

Kjo kërkon përdorimin e bibliotekës Arduino Joystick për të siguruar që xhoustick të njihet si një pajisje HID nga Windows dhe rrjedhimisht nga çdo lojë/aplikacion.

Unë jam pa kuptim kur bëhet fjalë për kodimin dhe e kam gjetur dokumentacionin e bibliotekës Joystick pak të rrallë në anën aktuale të zbatimit - por një googlizëm i fokusuar më çoi në shembuj të tjerë që më ndihmuan të kuptoja se çfarë po ndodhte. Kontrolloni pjesën e burimeve në fund për detaje.

E tëra çfarë më duhej të bëja ishte të identifikoja kunjat X/Y, të lexoja gjendjen e tyre dhe ta dërgoja atë në bibliotekën Joystick. Arduino u shfaq si Leonardo në Windows dhe ishte konfiguruar siç duhet si një pajisje Joystick.

Unë kam qenë në gjendje ta vendos atë në Elite Dangerous, së bashku me konfigurimin tim ekzistues të HOTAS dhe që Joystick të kontrollojë siç duhet gjërat dhe të mos jetë në konflikt me HOTAS. Gjithashtu funksionon mirë në Star Wars: Squadrons - e kam vendosur si një ndërprerës të shpejtë për të ngritur mburojat gjatë luftimit.

Skedarët që punojnë me konfigurimin tim Joystick

Unë kam ngarkuar skedarët e mi aktualë (tetor 2020) në Codepile.

  • Kodi Arduino (skedari.ino)
  • Deej config.yaml

Hapi 6: Përfundoni

Fund
Fund

Epo, kjo është bërë. Punon dhe unë jam mjaft i kënaqur me mënyrën se si u bashkua. Dhe mësova pak më shumë rreth dizajnit të harduerit, integrimit dhe programimit Arduino.

Hapi 7: Shtesa..dum..dum

Shtesë..dum..dum
Shtesë..dum..dum

VLC - ai luajtës i mrekullueshëm audio dhe video ka pak çuditshmëri ku niveli i volumit, kur kontrollohet nga jashtë, kërcen nga 0% në 27% ish. Kjo nuk ndodh kur rregulloni nivelin duke përdorur kontrollin e volumit të ndërfaqes brenda aplikacionit, vetëm me kontrollet e jashtme si Deej.

Zhvilluesi i Deej shpejt gjeti një zgjidhje në VLC që bën punën, shihni imazhin më lart:

"… nëse doni të çaktivizoni këtë sjellje" Ndjekja ", mund ta bëni këtë duke ndryshuar modulin e daljes audio të VLC. Kam përdorur DirectX në përpjekjet e mia këtu. Ju do të duhet të rinisni VLC që ndryshimi të hyjë në fuqi. (Akoma keni një sesion audio të Windows dhe të jeni në gjendje ta kontrolloni atë përmes deej, kjo thjesht do të parandalojë që shiriti i volumit VLC të lëvizë me të)"

Hapi 8: Burime shtesë

Burimet shtesë
Burimet shtesë

Gjetur përmes Googut të fuqishëm, të listuar në asnjë rend të veçantë…

  • Biblioteka Arduino Joystick (v2) - e nevojshme për të integruar levën
  • Udhëzues lidhës Sparkfun Pro Micro - burim i mirë për këtë Arduino
  • deej - softueri që drejton çelësat
  • Llojet e lidhësve USB - kush e dinte që kishte kaq shumë variante?
  • Pinout Arduino Pro Mikro Analog
  • Arduino Leonardo Gaming Joystick - Leonardo është i ngjashëm me Pro Micro, vetëm më i madh
  • Porti Arduino Pro Micro (Clone) nuk u zbulua (Zgjidhja) - kur tulloni Pro Micro tuaj (e bëra)
  • Arduino Leonardo/Mikro si kontrollues loje/xhojstik
  • Shembull i përdorimit të një çelësi multimedial për të heshtur - duke përdorur bibliotekën e Projektit HID
  • KID -i i bibliotekës së HID Project për të ndaluar / luajtur media
  • Një shembull tjetër i kodit që tregon kontrolluesin e gamepad.
  • ArduinoGamingController_updated - përshkrim i mirë i kodit të përdorimit të Bibliotekës Joystick
  • Gjëja llogaritëse e Rezistencës LED - për të gjetur se sa i madh është një rezistencë që ju nevojitet në projektin tuaj
  • Biblioteka e ikonave - flaticon.com - burimi i imazheve të përdorura mbi çelësat
  • Një deshifrues tjetër i ngjyrave të rezistencës - klikoni në një ngjyrë dhe vjollcë!

Recommended: