Sadržaj:

Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja: 8 koraka
Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja: 8 koraka

Video: Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja: 8 koraka

Video: Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja: 8 koraka
Video: Joystick Robot | Best Arduino Project #shorts 2024, Srpanj
Anonim
Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja
Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja

Tinkercad projekti »

Zašto

Neko sam vrijeme želio dodati malu tipku za upravljanje na tipkovnicu za kontrolu elemenata sučelja ili druge manje zadatke u igrama i simulatorima (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons itd.).

Također, za Elite: Dangerous, borio sam se s miješanjem glasnoće iz vanjskog zvuka (ugrađena glazba, iako dobra, ponavlja se nakon mnogo sati u crnom), zvuka u igri i podrške za vanjski glasovni paket.

Ugrađeni izvorni mikser u sustavu Windows je 'u redu', ali muka je mijenjati zaslone i klizače za upravljanje mišem usred igre. Činilo se da je imati proširenu kontrolnu kutiju na tipkovnici. Deej je rješenje koje sam pronašao.

Kako

Nedavno sam učio o Arduinu i na redditu sam naišao na projekt deej. Činilo se da će ovo riješiti oba problema u jednom praktičnom paketu. To bi mi omogućilo da dizajniram i odštampam sjajno 3d kućište.

Što je deej?

(s web mjesta) deej je ** hardverski mikser volumena otvorenog koda ** za Windows i Linux računala. Omogućuje vam korištenje klizača iz stvarnog života (poput DJ-a!) Za ** besprijekornu kontrolu glasnoće različitih aplikacija ** (poput glazbenog playera, igre koju igrate i sesije glasovnog chata) bez zaustavljanja ti radiš.

Moja verzija

Kako bi kutija bila mala, radije sam se odlučio za gumbe (rotacijski linearni potenciometar (lonci = otpornici)), a ne za klizače. Funkcionalno rade isto. Trenutni i popularni deej dizajni ne uključuju joystick, pa će ovo biti pomalo dizajnerski hibrid. Inače, to je prilično jednostavna izrada.

Deej će raditi s Arduino Nano, Pro Micro ili Uno, ali programer 'službeno preporučuje' Nano i Pro Micro. Odabrao sam Arduino Pro Micro jer sam želio joystick, a Arduino Joystick Library to podržava. Također mogu koristiti Arduino knjižnicu tipkovnice kada želim koristiti funkciju isključivanja zvuka tipkovnice na medijima (umjesto "mekog isključivanja zvuka") s gumbom na upravljačkoj tipki, ali to je dalje.

Korak 1: Opskrba

Pribor
Pribor
Pribor
Pribor
Pribor
Pribor

Kutija

Preuzmite STL datoteke (dizajnirane u Tinkercadu):

  • Datoteke priloga na Prusi (https://www.prusaprinters.org/)
  • Thingiverse (uskoro)

Hardver (proizvodna jedinica)

  • 1x Arduino Pro Micro
  • 4x 10k rotacijski (gumb) potenciometri (ne rotacijski kontroleri, koristite lonce)
  • 1x Arduino KY-023 joystick
  • Mrežni kabel od 5 metara od otpadnog materijala cat5
  • 1x USB A do USB B mikrokabel (USB A je veliki kvadratni priključak, USB B micro je ono što se nalazi na Arduino Pro Micro)
  • 1x 5 mm crvena LED dioda
  • 1x 220 ohmski otpornik

Imao sam još nekih dodatnih dijelova pa sam mislio izgraditi razvojnu jedinicu za testiranje stvari. Samo spajanje stvari na ploču olakšalo je vizualizaciju konačne stvari.

  • 1x Arduino Pro Micro
  • 4x 10k rotacijski (gumb) potenciometri (ne rotacijski kontroleri, koristite lonce)
  • 1x kratki prekidač na gumb (prekidač za hard reset)
  • 1x USB A do USB B mikrokabel (USB A je veliki kvadratni priključak, USB B micro je ono što se nalazi na Arduino Pro Micro)
  • razne kratkospojne žice
  • matična ploča
  • 1x 5 mm crvena LED dioda
  • 1x 220 ohmski otpornik

Korak 2: Ograđivanje

Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište

Dizajn

Sviđali su mi se neki od drugih dizajna profiliranih u galeriji deej zajednice, pa sam na temelju svojih osobina dopao:

  • Lako za dizajn i ispis
  • Ne ometajte moju drugu perifernu opremu za stolna računala
  • Nemojte koristiti vijke ili pričvršćivače za pričvršćivanje kućišta
  • Sličan estetski dizajn tipkovnici

Dizajnirao sam i ispisao dva prototipa prije nego što sam se odlučio za ovaj konačni dizajn. Volim imati fizičku verziju za igru u prostoru u kojem je koristim jer mi daje bolji osjećaj o tome kako će završni objekt funkcionirati.

Kratko sam počeo projektirati u Fusion360, ali to ne znam kao Tinkercad pa sam prešao i tamo radio.

Budući da sam želio dizajn bez vijaka, stvorio sam kutiju za gniježđenje. Prvi prototip imao je tanki poklopac i duboku kutiju za sve. Drugi dizajn zamijenio je to dubokim poklopcem i kutijom s plitkim dnom. Morao je držati samo Arduino Pro Mini pa stvarno nije morao biti velik. Uključene su i reljefne ikone.

Treći dizajn je promijenjen kako bi odgovarao prostoru uz moju tipkovnicu.

Ispis

Ispisao sam kutiju u PLA -i, programirajući zamjenu filamenta / sloja s crne na crvenu za poklopac gdje bi ikone tek počele biti vidljive, i opet natrag na crnu za ostatak poklopca.

Problem

Kroz sve to, problem je bio u postavljanju upravljačke palice. Čak i u trećem dizajnu, štap se sudara o nosače na jednom mjestu. Sljedeća će iteracija imati bolje razmake. Mogao sam više raditi na dizajnu, ali htio bih prijeći na sljedeću fazu, instalaciju.

Korak 3: Krug

Krug
Krug
Krug
Krug
Krug
Krug

Najgori posao ožičenja ikada

U redu, ovo je moj prvi cjeloviti Arduino projekt. Da, već sam radio stvari na pločama i koristim ih za izradu razvojne verzije ovoga, ali što se tiče izrade i sastavljanja, ovo mi je prvo. Tako da moje ožičenje izgleda kao sranje. Eto, to nije u redu:)

Ažuriranje: Od tada sam napravio još jedan i ožičenje je tamo puno ljepše. Pogledajte slike:)

Proizvodna jedinica - Što kamo ide

Arduino Pro Micro je mala ploča koja će stati u oblikovani dio u bazi. Ručke i upravljačka palica staju u odgovarajuće rupe na poklopcu. Ali nemojte ništa montirati dok se ne natječete u lemljenju.

Ožičenje

Nisam imao odgovarajuću žicu, ali sam imao preostali kolut mrežnog kabela s čvrstom jezgrom, pa sam to i upotrijebio. Malo je čvršći i možda krhkiji od upletene žice, ali radi.

Postavljajući komponente približno u odnosu na njihov konačni položaj ugradnje, procijenio sam udaljenost za svaku žicu, dodao još malo za popuštanje itd., A zatim prerezao i obrezao žicu. Ostavio sam dosta posla.

Pozivajući se na shemu ožičenja, pokrenuo sam zajedničku masu (crno) i VCC (crveno) do gumba i upravljačke palice gdje je naznačeno. Budući da mrežni kabel ne dolazi u ovim bojama, upravo sam odabrao boju i ožičenje održao dosljednim funkciji.

Pojedinačni Pot. analogne linije (žute) vodile su do pinova A0 - A3. Joystick linije (narančasta), također analogne, išle su do I/O pinova 8 i 9. One će se morati označiti kao analogne u Arduino kodu kao A8 i A9.

Igla prekidača joysticka (plava) otišla je na pin 7. Ovo će biti digitalni pin u kodu.

Izolacija

Budući da će se ova kruta žica ugurati u mali prostor, odlučio sam izolirati svoje lemne spojeve zdravom kapljicom topljivog ljepila. Zatim je sve stavio na svoje mjesto i pokrenuo jednostavan test na ploči i loncima koristeći verziju Arduino primjera AnalogInput koda - izmijenjenog za čitanje svih lonaca.

Druga verzija

Zadnje dvije slike gore prikazuju sljedeću kutiju koju gradim. Ovaj će imati 5 gumba i jedan trenutni gumb za isključivanje zvuka. Bez upravljačke palice. Kutija iste veličine.

Korak 4: Dovršavanje hardvera

Dovršavanje hardvera
Dovršavanje hardvera

Kad sam instalirao Joystick, shvatio sam da nema puno slobodnog prostora između ploče i zaglavlja pinova na Pro Micro -u.

Nakon malo pažljivog savijanja zaglavlja igala i ponovnog nanošenja ljepila za topljenje (za izolaciju), kućište se pravilno zatvorilo.

Ugradnja lonaca prošla je bez problema.

Opet sa žicama

Žice s čvrstom jezgrom pomalo su krute i mogu biti krhke ako se savijaju previše puta, pa ih pažljivo presavijte (bez oštrih kutova) u raspoloživi prostor. Neki od mojih bili su predugi i zahtijevali su dodatno sklapanje.

Kad sve sjedne na svoje mjesto, samo postavite bazu na vrh i trebali biste završiti s hardverom ….

Ali čekaj, ima još

Naravno, nakon nekoliko tjedana korištenja, odlučio sam da mi treba indikator koji bi me obavijestio o statusu funkcije mekog kodiranja MUTE.

Nakon uređivanja koda za dodavanje LED funkcije (vidi sljedeći odjeljak), brzo sam zalemio LED / žice / otpornik i spojio ih na ploču.

Proveo sam više vremena za bušenje rupe na vrhu kućišta jer nisam želio pokvariti gornju završnu obradu. Označio sam središnje mjesto, udubio ga, a zatim ručno okrenuo burgiju da napravim rupu.

Dodatni pažljivi ulošci očistili su rupu i osigurali lijepo tijesno uklapanje kako bi se osiguralo da LED dioda ne strši previše iznad gornje površine.

Korak 5: Softver

Softver
Softver
Softver
Softver
Softver
Softver

Pregled

Dakle, ovo je proces koji se sastoji od dva dijela.

  1. Saznajte i shvatite kako Deej radi te uredite datoteku Config.yaml
  2. Uredite Arduino kôd tako da odgovara željenom hardveru i značajkama
  3. Nabavite biblioteku Arduino Joystick

U mom slučaju želio sam ove značajke:

  • Gumbi za kontrolu razine (mikrofon i izlaz)
  • Prekidač za isključivanje zvuka
  • Dvoosna upravljačka palica koju Windows prepoznaje za upotrebu u aplikacijama

Razine

Deej se poprilično brine o prvoj točki koja dolazi. Nisam prilagodio ovu funkcionalnost

Prekidač za isključivanje zvuka

Rano sam odlučio da ću pritisnuti/preklopiti na upravljačkoj palici kao funkcionalni gumb za isključivanje zvuka.

Kad pregledate kôd, vidjet ćete da sam odabrao (u početku) korištenje "mekog" isključivanja zvuka - kad se pritisne tipka, glasnoća mikrofona se smanjuje na nulu (i LED svijetli). Kad se ponovno pritisne, glasnoća mikrofona se vraća na prethodnu postavku i LED se gasi.

Na kraju ću pogledati implementaciju Arduino knjižnice tipkovnice za prebacivanje statusa Isključi zvuk kroz skup kodova tipkovnice za proširene medije.

Implementacija joysticka

To zahtijeva korištenje knjižnice Arduino Joystick kako bi se osiguralo da je joystick prepoznat kao HID uređaj od strane Windowsa, a time i od strane bilo koje igre/aplikacije.

Ja sam pomalo lud kad je kodiranje u pitanju i otkrio sam da je dokumentacija knjižnice Joystick malo oskudna sa strane stvarne implementacije - ali malo usredotočenog guglanja dovelo me do drugih primjera koji su mi pomogli da shvatim što se događa. Za detalje pogledajte odjeljak resursa na kraju.

Sve što sam trebao učiniti je identificirati X/Y pinove, pročitati njihovo stanje i poslati to u Joystick knjižnicu. Arduino se pojavio kao Leonardo u sustavu Windows i bio je ispravno konfiguriran kao Joystick uređaj.

Uspio sam ga postaviti u Elite Dangerous, uz svoje postojeće postavke HOTAS -a i dati Joystick -u da pravilno kontrolira stvari, a ne u sukobu s HOTAS -om. Također dobro funkcionira u Star Wars: Squadrons - postavio sam ga kao brzi prekidač za postavljanje štitova tijekom borbe.

Datoteke koje rade s postavkom Joystick -a

Prenio sam svoje trenutne (listopad 2020.) datoteke u Codepile.

  • Arduino kôd (.ino datoteka)
  • Deej config.yaml

Korak 6: Završite

Kraj
Kraj

Pa, ovaj je gotov. Djeluje i prilično sam zadovoljan kako se to spojilo. Naučio sam nešto više o dizajnu hardvera, integraciji i Arduino programiranju.

Korak 7: Dodatak..dum..dum

Dodatak..dum..dum
Dodatak..dum..dum

VLC - taj strašan audio i video player ima malu neobičnost u kojoj razina glasnoće, kad se kontrolira izvana, skoči s 0% na 27%. To se ne događa pri podešavanju razine pomoću kontrole glasnoće sučelja u aplikaciji, samo s vanjskim kontrolama poput Deeja.

Deej programer brzo je pronašao zaobilazno rješenje u VLC-u koje obavlja posao, pogledajte gornju sliku:

"… ako želite onemogućiti ovo ponašanje" Praćenja ", to možete učiniti promjenom VLC audio izlaznog modula. Ovdje sam u svojim pokušajima koristio DirectX. Morat ćete ponovno pokrenuti VLC da bi promjena stupila na snagu. (I dalje ćete imati Windows audio sesiju i moći ćete je kontrolirati putem deeja, to će samo spriječiti da se VLC traka za glasnoću pomakne s njom)"

Korak 8: Dodatni izvori

Dodatna sredstva
Dodatna sredstva

Pronađen putem moćnog Googa, naveden nije određenim redoslijedom …

  • Arduino knjižnica joystick (v2) - potrebna za integraciju upravljačke palice
  • Vodič za spajanje Sparkfun Pro Micro - dobar resurs o ovom Arduinu
  • deej - softver koji pokreće gumbe
  • Vrste USB priključaka - tko je znao da postoji toliko mnogo varijanti?
  • Arduino Pro mikro analogni izlazi
  • Arduino Leonardo igraća joystick - Leonardo je sličan Pro Micro, samo veći
  • Arduino Pro Micro (Clone) port nije otkriven (rješenje) - kada opečete svoj Pro Micro (ja sam to učinio)
  • Arduino Leonardo/Micro kao kontroler igre/joystick
  • Primjer korištenja multimedijskog ključa za isključivanje zvuka - pomoću knjižnice HID projekta
  • Primjer koda knjižnice HID projekta za pauziranje / reprodukciju medija
  • Još jedan primjer koda koji prikazuje kontroler gamepada.
  • ArduinoGamingController_updated - dobar opis koda korištenja Joystick Library
  • Kalkulator LED otpornika - da biste saznali koliko bi otpornik trebao biti u vašem projektu
  • Biblioteka ikona - flaticon.com - izvor slika korištenih iznad gumba
  • Još jedan dekoder u boji otpornika - kliknite na boju i violu!

Preporučeni: