US 11,918,890 B2
Using touch sensing to make a trackball behave like a joystick
Ryan Albright, Santa Clara, CA (US); Ben Goska, Santa Clara, CA (US); Manoj Khanal, Santa Clara, CA (US); Kiril Stoynov, Santa Clara, CA (US); and Jordan Levy, Santa Clara, CA (US)
Assigned to NVIDIA Corporation, Santa Clara, CA (US)
Filed by Nvidia Corporation, Santa Clara, CA (US)
Filed on May 13, 2022, as Appl. No. 17/744,087.
Application 17/744,087 is a continuation of application No. 16/513,040, filed on Jul. 16, 2019, granted, now 11,364,434.
Prior Publication US 2022/0274013 A1, Sep. 1, 2022
Int. Cl. A63F 13/24 (2014.01); A63F 13/214 (2014.01); A63F 13/22 (2014.01); G06F 3/02 (2006.01); G06F 3/03 (2006.01); G06F 3/0338 (2013.01); G06F 3/0354 (2013.01)
CPC A63F 13/24 (2014.09) [A63F 13/214 (2014.09); A63F 13/22 (2014.09); G06F 3/02 (2013.01); G06F 3/0312 (2013.01); G06F 3/0338 (2013.01); G06F 3/03549 (2013.01); A63F 2300/1018 (2013.01); A63F 2300/1043 (2013.01); A63F 2300/1068 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A game controller, comprising:
a housing;
a trackball rotatably retained within the housing;
a motion sensor, located within the housing, that detects a rotation of the trackball;
a touch sensor, located within the housing, that detects when a user is touching the trackball; and
a processor, located within the housing, coupled to the motion sensor and the touch sensor;
wherein the game controller allows the user to operate the trackball as a mouse in a first mode and as a joystick in a second mode, wherein the game controller automatically determines an input type for a game and automatically switches between the first and second modes based on the input type,
wherein, in the first mode, the game controller determines an incremental movement of the trackball in a particular direction, and
wherein, in the second mode, the game controller determines a movement of the trackball from a central position of a simulated joystick by:
determining an offset value indicating the rotation of the trackball when the user is touching the trackball, wherein a zero value for the offset value represents the central position;
setting the offset value to the zero value when the user stops touching the trackball; and
determining a distance and a direction in an X-Y coordinate system based on the offset value.