Sadržaj:

Arduino džojstik kutija za produženje tipkovnice i kontroler zvuka pomoću Deeja: 8 koraka
Arduino džojstik kutija za produženje tipkovnice i kontroler zvuka pomoću Deeja: 8 koraka

Video: Arduino džojstik kutija za produženje tipkovnice i kontroler zvuka pomoću Deeja: 8 koraka

Video: Arduino džojstik kutija za produženje tipkovnice i kontroler zvuka pomoću Deeja: 8 koraka
Video: Leap Motion SDK 2024, Juli
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 mali džojstik na tastaturu 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 sa miješanjem glasnoće iz vanjskog zvuka (ugrađena muzika, iako dobra, ponavlja se nakon mnogo sati u crnom), zvuka u igri i podrške za vanjski glasovni paket.

Windows ugrađeni izvorni mikser je 'ok', ali muka je mijenjati ekrane i klizače za kontrolu miša usred igre. Činilo se da je imati proširenu kontrolnu kutiju na tastaturi. Deej je rješenje koje sam pronašao.

Kako

Nedavno sam učio o Arduinu i na redditu sam naišao na deej projekt. Č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.

Šta je deej?

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

Moja verzija

Kako bi kutija bila mala, odlučio sam se za kvačice (rotacijski linearni potenciometar (lonci = otpornici)) umjesto klizača. 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 konstrukcija.

Deej će raditi s Arduino Nano, Pro Micro ili Uno, ali programeri "službeno preporučuju" Nano i Pro Micro. Odabrao sam Arduino Pro Micro jer sam želio joystick, a Arduino Joystick Library to podržava. Mogu koristiti i Arduino biblioteku tastature kada želim koristiti funkciju isključivanja zvuka na medijskoj tastaturi (umjesto "mekog isključivanja zvuka") s gumbom na upravljačkoj palici, ali to je dalje na putu.

Korak 1: Potrošni materijal

Supplies
Supplies
Supplies
Supplies
Supplies
Supplies

Kutije

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
  • 5ft mrežni kabel za otpad Cat5
  • 1x USB A do USB B mikrokabel (USB A je veliki kvadratni konektor, 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 dugme (prekidač za hard reset)
  • 1x USB A do USB B mikrokabel (USB A je veliki kvadratni konektor, 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

The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure

Dizajn

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

  • Lako za dizajn i štampanje
  • Ne ometajte moju drugu periferiju za desktop računare
  • Nemojte koristiti vijke ili pričvršćivače za pričvršćivanje kućišta
  • Sličan dizajn kao i tastatura

Dizajnirao sam i štampao dva prototipa pre 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 dizajnirati u Fusion360, ali ne znam to dobro 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. Trebalo je samo držati Arduino Pro Mini tako da zaista nije morao biti velik. Uključene su i reljefne ikone.

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

Štampa

Odštampao sam kutiju u PLA -i, programirajući zamjenu filamenta / sloja sa crne na crvenu za poklopac gdje bi ikone tek počele biti vidljive, i ponovo na crno za ostatak poklopca.

Problem

Kroz sve ovo, postavljanje džojstika je predstavljalo problem. Čak i u trećem dizajnu, štap se sudara o nosače na jednom mjestu. Sljedeća iteracija će imati bolje razmake. Mogao sam više raditi na dizajnu, ali htio bih prijeći na sljedeću fazu, instalaciju.

Korak 3: Krug

The Circuit
The Circuit
The Circuit
The Circuit
The Circuit
The Circuit

Najgori posao ožičenja ikada

U redu, ovo je moj prvi cjeloviti Arduino projekt. Da, već sam radio stvari na matičnim 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 - Šta gdje ide

Arduino Pro Micro je mala ploča koja će stati u oblikovani dio u bazi. Ručke i džojstik 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 za krug, ali sam imao preostali kolut mrežnog kabela sa čvrstim jezgrom, pa sam to i iskoristio. Malo je čvršći i možda krhkiji od upletene žice, ali radi.

Postavljajući komponente približno prema njihovom konačnom položaju 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 dijagram ožičenja, pokrenuo sam zajedničko uzemljenje (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, samo sam odabrao boju i održao ožičenje dosljednim funkciji.

Pojedinačni lonac. analogne linije (žute) vodile su do pinova A0 - A3. Joystick linije (narandžaste), takođe analogne, išle su do I/O pinova 8 i 9. One će morati biti označene kao analogne u Arduino kodu kao A8 i A9.

Igla prekidača džojstika (plava) preš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 svoje spojeve za lemljenje izolirati zdravim komadom topljenog ljepila. Zatim je sve namjestio na svoje mjesto i pokrenuo jednostavan test na ploči i loncima koristeći verziju Arduino Primjera AnalogInput koda - modificiranog za čitanje svih lonaca.

Druga verzija

Zadnje dvije slike gore prikazuju sljedeću kutiju koju gradim. Ovaj će imati 5 dugmeta i jedno trenutno dugme za isključivanje zvuka. Nema džojstika. Kutija iste veličine.

Korak 4: Dovršavanje hardvera

Dovršavanje hardvera
Dovršavanje hardvera

Kad sam instalirao Joystick, shvatio sam da nema mnogo slobodnog prostora između njegove ploče i zaglavlja iglica preostalih na Pro Micro -u.

Nakon malo pažljivog savijanja zaglavlja iglica 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 čvrstim jezgrom pomalo su krute i mogu biti krhke ako se savijaju previše puta, pa ih pažljivo presavijte (bez oštrih uglova) u raspoloživi prostor. Neki od mojih bili su predugi i zahtijevali su dodatno sklapanje.

Nakon što je sve postavljeno 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 je potreban indikator koji će me obavijestiti 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 centralno mjesto, udubio ga, a zatim ručno okrenuo burgiju da napravim rupu.

Dodatnim pažljivim ubrizgavanjem očišćena je rupa i osigurano dobro prianjanje 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 iz 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:

  • Dugmad za kontrolu nivoa (mikrofon i izlaz)
  • Prekidač za isključivanje zvuka
  • Dvoosni džojstik koji Windows prepoznaje za upotrebu u aplikacijama

Nivoi

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 joystick kao funkcionalno dugme za isključivanje zvuka.

Kada pregledate kôd, vidjet ćete da sam odabrao (u početku) upotrebu 'mekog' isključivanja zvuka - kada se pritisne tipka, jačina zvuka mikrofona se smanjuje na nulu (i LED svijetli). Kada se ponovo pritisne, jačina zvuka mikrofona se vraća na prethodnu postavku i LED se gasi.

Na kraju ću pogledati implementaciju Arduino biblioteke tastature za prebacivanje statusa Mute preko skupa kodova tastature za proširene medije.

Implementacija džojstika

Ovo zahtijeva upotrebu biblioteke Arduino Joystick kako bi se osiguralo da je joystick prepoznat kao HID uređaj od strane Windows -a, a time i od strane bilo koje igre/aplikacije.

Ja sam pomalo lud kad je kodiranje u pitanju i otkrio sam da je dokumentacija Joystick biblioteke pomalo oskudna sa strane stvarne implementacije - ali malo fokusiranog guglanja dovelo me je do drugih primjera koji su mi pomogli da shvatim šta se dešava. 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 biblioteku. Arduino se pojavio kao Leonardo u sustavu Windows i bio je ispravno konfiguriran kao Joystick uređaj.

Uspio sam ga postaviti u Elite Dangerous, pored postojećih postavki HOTAS -a i postaviti Joystick 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 u borbi.

Datoteke koje funkcioniraju s postavkom Joystick -a

Otpremio sam svoje trenutne (oktobra 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 je to sve skupa nastalo. 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 - ovaj sjajni audio i video player ima malu čudnost u tome što nivo glasnoće, kada se kontroliše izvana, skoči sa 0% na 27%. To se ne događa pri podešavanju nivoa pomoću kontrole jačine zvuka na sučelju 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 koristio DirectX. Morat ćete ponovo 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 jačinu zvuka pomiče s njom)"

Korak 8: Dodatni resursi

Dodatni izvori
Dodatni izvori

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

  • Arduino biblioteka džojstika (v2) - potrebna za integraciju džojstika
  • Vodič za spajanje Sparkfun Pro Micro - dobar izvor o ovom Arduinu
  • deej - softver koji pokreće gumbe
  • Vrste USB konektora - tko je znao da postoji toliko mnogo varijanti?
  • Arduino Pro mikro analogni izlazi
  • Arduino Leonardo igraća joystick - Leonardo je sličan Pro Micro -u, samo je veći
  • Arduino Pro Micro (Clone) port nije otkriven (rješenje) - kada opečete svoj Pro Micro (ja jesam)
  • Arduino Leonardo/Micro kao kontroler igre/joystick
  • Primjer korištenja multimedijskog ključa za isključivanje zvuka - pomoću biblioteke HID projekta
  • Primjer koda biblioteke HID projekta za pauziranje / reprodukciju medija
  • Još jedan primjer koda koji prikazuje kontroler gamepad -a.
  • ArduinoGamingController_updated - dobar opis koda korištenja Joystick Library
  • Kalkulator sa LED otpornicima - da biste saznali koliko vam otpornik treba 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čuje se: