Inhoudsopgave:

USB-toetsenbord-joystick: 5 stappen
USB-toetsenbord-joystick: 5 stappen

Video: USB-toetsenbord-joystick: 5 stappen

Video: USB-toetsenbord-joystick: 5 stappen
Video: Forza Motorsport - Fix PS5 Controller Not Working Glitch PC 2024, November
Anonim
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick
USB-toetsenbord-joystick

Het is eenvoudig om aangepaste USB-toetsenbord- en muiscontrollers te maken.

Ik gebruik een paar sneltoetsen bij het beoordelen van afbeeldingen in Adobe Lightroom en ontdekte dat ik nog sneller kan zijn met een eenvoudige joystick voor de gamecontroller. Ik bespotte het op een breadboard met twee componenten die ik al in mijn werkplaats had en ontdekte dat het geweldig werkte, maar er was een mooiere "kast" nodig om het op mijn bureau te laten leven.

Omdat het op Arduino is gebaseerd, is het eenvoudig om de joystickfuncties aan te passen en extra knoppen, draaiknoppen of andere bedieningselementen toe te voegen.

Dit project bestaat uit drie delen:

  • Hardware
  • Software
  • Bureauwaardige koffer om de hardware in te bewaren

Onderdelen

  • Arduino - 5v 16MHz Itsy Bitsy van Adafruit. Veel andere Arduino's zullen prima werken, maar zorg ervoor dat hun USB kan werken met de toetsenbord- en muisbibliotheken.
  • Joystick - Gamecontroller-stijl 2-as met schakelaar (hier is een pakket van tien: WGCD 10st Joystick Breakout Module Game Controller voor Arduino PS2).
  • Hout of acryl voor koffer. Misschien wat verf.
  • Draad en een USB-kabel.

Stap 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Arduino

Ik wilde een klein Arduino-bord gebruiken om deze build zo compact mogelijk te houden. Ik heb een paar Pro Trinkets, maar die werken niet goed voor toetsenbord- en muissimulatie omdat USB niet volledig is geïmplementeerd op de Trinkets. Voor dit project heb ik een 5V 16MHz Itsy Bitsy van Adafruit gebruikt die standaard HID-bibliotheken kan gebruiken als toetsenbord en muis via USB.

Joystick

Dit is het type joystick dat wordt gebruikt in gamecontrollers. Ze zijn twee-assig en hebben een schakelaar die tijdelijk aan staat wanneer de stick wordt ingedrukt. Ze zijn gemakkelijk online te vinden. Als je er maar één wilt kopen, kunnen ze ergens tussen de $ 4 en $ 10 zijn, maar ze kunnen voor ongeveer $ 11 in bulk van 10 pakketten op Amazon worden gekocht.

Let op, de vergelijkbare joysticks van Adafruit en Sparkfun hebben andere pinouts dan alle andere die je online kunt vinden. Let daar goed op als je hem aansluit.

Op de Arduino gebruikt dit project A0 voor de schakelaar, A1 voor de X-as en A2 voor de Y-as. Dit laat 19 andere invoerpinnen over om creatief mee om te gaan.

De joystick 5v komt van de 5v USB-voeding (als zodanig aangeduid op de Itsy Bitsy). En het heeft een aarde - sluit het aan op de Arduino-aarde.

Stap 2: Software

Software
Software

De Arduino-code is heel eenvoudig. Ik heb het speciaal geprogrammeerd voor een paar Lightroom-sneltoetsen die ik gebruik om foto's te beoordelen. Door op de schakelaar te drukken, schakelt u tussen de loep ("e") en de rasterweergave ("g"). Door de joystick naar links en rechts te bewegen, gaat u naar de vorige (pijl naar links) of volgende (pijl naar rechts) afbeelding. Door de stick omhoog te duwen, wordt een ster toegevoegd aan de beoordeling ("["), en als u de stick omlaag duwt, wordt de vlag ("u") verwijderd. (Geloof me, dit is logisch voor de manier waarop ik mijn afbeeldingen beoordeel.) Je kunt de code veranderen om te doen wat je wilt.

De hoofdlus leest eerst de schakelstatus. Als het van HOOG naar LAAG is veranderd, schakelt en typt u 'e' of 'g' om te schakelen tussen loep- en rasterweergave.

Vervolgens wijst het programma de analoge waarden van de joystick (0 tot 1024) toe aan een ander bereik (-5 tot +5). De code herkent +/- waarden van 5 als acties voor het verzenden van tekens, dus u moet de joystick naar het einde van zijn bereik verplaatsen om een sneltoets te verzenden. De joystick moet dan door 0 gaan voordat hij nog een toetsaanslag verzendt. De code om dit te doen is vrij kort en ik vind het behoorlijk elegant. Het netto-effect is dat je bewust moet zijn met je bewegingen en het zal niet per ongeluk een stroom van dezelfde toetsaanslag uitzenden (wat mijn eerste versie van de code deed!).

U kunt de muisbibliotheek en de analoge waarden van de joystick gebruiken om uw cursor, scrollwielen, volumeregelaars of elke andere analoge (ish) functie te bedienen.

Stap 3: Case, deel 1 - Ontwerp en snijden

Case, deel 1 - Ontwerp en snijden
Case, deel 1 - Ontwerp en snijden
Case, deel 1 - Ontwerp en snijden
Case, deel 1 - Ontwerp en snijden
Case, deel 1 - Ontwerp en snijden
Case, deel 1 - Ontwerp en snijden

Een breadboard op mijn bureau hebben zag er gewoon niet cool uit, en de ergonomie was ook niet ideaal. Tijd om een hoesje te ontwerpen.

Dit zou een ideaal project zijn om een hoesje voor 3D te printen. Ik heb geen 3D-printer, maar ik heb wel een lasersnijder, dus alles ziet er nu voor mij uit als een lasergesneden project. Dit ontwerp kostte een avond om te ontwerpen in Adobe Illustrator, inclusief spelen met veel verschillende concepten zoals een eenvoudige stok, een meer organische vorm met lasergesneden scharnieren en boxy-vormen.

Ik begon met het breadboard op verschillende hoogtes en hoeken te houden en besloot dat een hoek van 30° op een hoogte van ongeveer 80 tot 100 mm vanaf het bureau comfortabel zou zijn. Het uiteindelijke ontwerp lijkt een beetje op een kleine joystick en voelt comfortabel aan om vast te houden.

Het originele Adobe Illustrator-bestand samen met de DXF- en PDF-versies zijn hieronder opgenomen. (De DXF en PDF zijn niet getest op een lasersnijder.) Het bestand bevat ook boven- en zijaanzichten van de joystick die u kunt gebruiken bij het ontwerpen van uw eigen project.

Er zijn twee materiaaldiktes gebruikt in dit ontwerp. Alles behalve de bovenkant is 0,187 "'utility'-multiplex van de plaatselijke grote kistenwinkel. Een vel van 2' x 4' kost slechts ongeveer $ 8. Het ontwerp gebruikt 5 mm als dikte voor het.187" hout in het ontwerp, en het assembleert perfect. De bovenkant is van 3 mm multiplex om extra ruimte voor de duimgreep op de joystick mogelijk te maken. Dit project zou ook leuk zijn in helder acryl.

Een paar opmerkingen over het voordeel van het maken van prototypes: ik deed eerst een proefsnede en montage met karton, wat hielp om één ontwerpfout te vinden. Toen ik de eerste keer de houten versie sneed, ontdekte ik ook dat de bovenplaat erg kwetsbaar was door het gat, dus heb ik de lipjes opnieuw ontworpen om daar extra stevigheid toe te voegen. Ik ontdekte ook dat de joystick de zijkant van de behuizing raakte, dus maakte ik twee wijzigingen: ik verplaatste de steun om hem beter te centreren en ik gebruikte 3 mm hout in plaats van 5 mm aan de bovenkant. Het geüploade ontwerpbestand bevat al die wijzigingen - zorg er wel voor dat u het bovenste stuk uit het dunnere hout snijdt.

Stap 4: Case, deel 2 - verf en montage

Behuizing, deel 2 - Verf en montage
Behuizing, deel 2 - Verf en montage
Behuizing, deel 2 - Verf en montage
Behuizing, deel 2 - Verf en montage
Behuizing, deel 2 - Verf en montage
Behuizing, deel 2 - Verf en montage

Nadat alle stukken waren gesneden, deed ik een laatste droge montage en monteerde ik tijdelijk de joystick. Alles was goed, dus ik heb alle stukjes gelijmd behalve de bovenkant. Het is niet mogelijk om de joystick te installeren nadat de bovenkant is bevestigd, dus dat komt later.

De rechterbenedenhoek van de bovenkant zou in de onderkant van mijn duim prikken, dus ik rondde de onderste hoeken af met wat snel schuren.

Als je van de lasergesneden look houdt, of als je dit van acryl hebt gemaakt, ben je klaar! Ik wilde een mooiere afwerking van het stuk bij mijn bureaublad. Ik gaf het een basislaag zwarte verf en vervolgens een paar lagen Rust-oleum Forged Hammered Burnished Amber. Ik heb dit product op de rand van mijn bureau gebruikt, dus dit bindt de stukken aan elkaar. Ik hou ook van de metallic afwerking van deze lak. Ik maskeerde de binnenkant van de vingergewrichten waar de bovenkant past, zodat de verf de pasvorm niet zou bederven.

De joystick en Arduino waren bedraad met zwarte draden en krimpkous om het er schoon uit te laten zien, en de draden werden op een lengte gesneden die er goed uitzag toen ze geïnstalleerd waren.

De joystick wordt op zijn plaats op de middensteun geschroefd. De schroeven die ik had waren een beetje lang, dus ik heb ze ingekort door ze door het ongebruikte hout te schroeven en de punten terug geschuurd met een tafelschuurmachine. De Arduino heeft geen montagegaten, dus het was heet op zijn plaats gelijmd.

Met alles gemonteerd heb ik de bovenkant op zijn plaats geklikt zonder te lijmen. Het past strak genoeg om zichzelf vast te houden en is niet structureel belangrijk.

Stap 5: Voltooiing

Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing

Het voltooide project ziet er geweldig uit op mijn bureau.

Het eerste waarvoor ik het gebruikte, was om de afbeeldingen voor deze Instuctable te bewerken.

Gedaan!

Aanbevolen: