Joystick USB
bobboteck levert software joysticks (HTML5 + js) voor op een touchscreen of een ander pointing device zoals bijvoorbeeld een muis.
Gamepad_API komt in de richting. Maar hoe werkt het?

1. Logitech Extreme 3D pro

Deze Logitech Extreme 3D Pro heb ik gekregen op mijn verjaardag van 2013. Hij heeft een USB aansluiting en is daarom digitaal. Dit in tegenstelling tot de verouderde analoge joysticks die via de gameport werken, zoals de Microsoft SideWinder 3D Pro (zie onder). Onder Ubuntu meldt de joystick zich automatisch aan en is dus hotpluggable. Anno 2014 kent latop default al een js0, dus wordt js1 geopend. Verder wordt er ook een stream met de naam event9 geopend.

Een test kan worden uitgevoerd met jstest /dev/input/js1 of nog leuker met cat /dev/input/js1 dat de output laat zien die wij willen gebruiken. cat /dev/input/event9 laat zijn dat ook dit data spuugt, maar jstest kan er geen joystick in zien.

Door het bestand /dev/input/js1 byte voor byte uit te lezen kan er met sdlBasic een quick en dirty programmaatje worden gemaakt om de joystick geluidjes te laten maken. Het blijkt dat er telkens 8 bytes worden uitgespogen om een verandering aan te geven. De eerste 3 bytes zijn een LSB-tijdcode. Byte 4 is altijd 0. De volgende 2 bytes geven de gewijzigde waarde. De laatste 2 bytes geven aan om welke switch of as het gaat.

Dit document gaat over joysticks die op een PC aangesloten kunnen worden. Tegenwoordig zijn dit alle joysticks met een USB aansluiting. Voor de Arduino joystick module kijk op deze pagina.