Patent Description:
A user-input device, such as a video game controller, may be used to provide user input to control an application executed by a computing device, such as an object or a character in a video game, or to provide some other form of control. A video game controller may include various types of physical controls that may be configured to be manipulated by a finger to provide different types of user input. Non-limiting examples of such controls may include triggers, push buttons, touch pads, joysticks, paddles, bumpers, and directional pads. The various physical controls may be physically manipulated, and the physical controller may send control signals to a computing device based on such physical manipulation to effect control of an application executed by the computing device, for example.

<CIT> teaches systems and methods for controlling a haptic output device including a processor, a haptic peripheral including a haptic output device, and a sensor coupled to the haptic output device. The processor is configured to generate the control signal for the haptic output device depending on a plurality of inputs including a desired haptic effect waveform and a signal received from the sensor. The inputs may also include at least one parameter of the haptic output device. As such, the control signal causes the profile of the haptic effect to substantially match the desired haptic effect waveform.

<NPL>, describes how a transducer is a device transforming a quantity from a form of energy to another. A sensor is a transducer that transforms the quantity of interest into a form of energy for which it is possible to measure, to store, to process and to transmit the information.

<CIT> describes a touch sensitive input device in a computer system having touch sensitive auxiliary controls system can be used to anticipate a user's action. When a user's hand approaches a touch sensitive input device, feedback can be displayed on a display screen. A user can receive feedback without activating the input device. The feedback may take the form of status information related to the feature controlled by the input device and can vary depending upon the application open. Likewise, when the hand of a user is moved away from the touch sensitive input device, the feedback brought on by sensing the user's hand may disappear.

<NPL>, describes a torque sensor design which could be used in an Electric Power Assisted Steering (ERAS) application. This torque sensor is a non-contact Hall effect design. The specificity of this structure is its ability to measure the shift angle between two rotating shafts linked by a torsion bar. This measurement is done with stationary electronic components. This structure generates enough magnetic flux variation to measure angular shifts from +/-<NUM>° to +/-<NUM> ° with low-cost standard Hall ASICs available from various suppliers.

<CIT> describes multi-stage variable resistance triggers, including an input device comprising a communicative output configured to send control information to a computing device for controlling the computing device The input device further comprises a multi-stage variable resistance trigger assembly configured to provide a first trigger resistance sub-profile throughout a first stage of a trigger pull and a second trigger resistance sub-profile throughout a second stage of the trigger pull.

<CIT> describes a haptic peripheral comprising a housing, a user input element, a position sensor coupled to the user input element, and an actuator located within the housing and coupled to the user input element. The position sensor is configured to detect a position of the user input element and is configured to send the position to a processor. The actuator is configured to receive a haptic effect drive signal from the processor and is configured to output a force in response to the haptic effect drive signal from the processor. The force is transmitted to the user input element as a kinesthetic haptic effect.

<CIT> describes a system and method for a rotary control in a device that comprises a knob, a shaft supporting the knob and coupled to rotate therewith a base supporting the shaft. A sensor, operationally coupled to the base, is configured to detect an aspect of manipulation of the knob, which may include information relating to position, velocity, acceleration, torque, rate of rotation, time of rotation, or a combination thereof. A mechanical haptic assembly is operationally coupled between the base and the shaft to provide mechanical based haptic effects in response to movement of the knob with respect to the base. A programmable electronic-based actuator is operationally coupled to the knob and provides electronic-based haptic force feedback to the knob.

According to aspects of the present invention there is provided a device as defined in the accompanying claims.

Input devices, such as game controllers, may include one or more vibrators (e.g., Eccentric Rotational Mass (ERMs)) configured to vibrate the entire game controller body such that the vibration is felt in the palm of the hand(s) supporting the controller. Further, in some implementations, vibrator(s) may be localized to user-actuatable trigger(s) of the game controller to provide independent localized vibrations in each trigger. For example, localized vibrations or pulses through a user's finger(s) may approximate a recoil of a real or fantasy weapon in a first person shooting game or another type of game.

Although a vibrator can provide feedback in the form of vibration, a vibrator cannot adjust any other user-perceived state of the trigger, such as a resistance/tension, return speed, and/or a length of travel/rotation. Moreover, a vibrator cannot dynamically change the user-perceived state of the trigger based on varying conditions, such as a parameter of a computing device/video game, or user preferences.

Accordingly, the present disclosure is directed to a user-input device including a user-actuatable trigger configured to rotate about a trigger axis and operatively connected with a force-feedback motor. The force-feedback motor is configured to activate based on a force-feedback signal received by a computing device in communication with the user-input device. When activated, the force-feedback motor is configured to selectively drive the trigger (e.g., by applying a torque, linear force, or adjustable tension via spring) and adjust a user-perceived state of the trigger.

Such a motor-driven, force-feedback trigger configuration enables the user-perceived state of the trigger to be dynamically adjusted in a variety of ways. For example, the trigger may be driven by the force-feedback motor to adjust a user-perceived resistance of the user-actuatable trigger. In another example, the trigger may be driven by the force-feedback motor to simulate a hard stop that effectively adjusts a pull length or range of rotation of the trigger. In another example, the trigger may be driven by the force-feedback motor to assist the trigger in returning to a fully-extended or "unpressed" posture when a user's finger is removed from the trigger. In another example, the trigger may be driven by the force-feedback motor to vibrate the trigger.

Furthermore, such a motor-driven, force-feedback trigger configuration enables the user-perceived state of the trigger to be dynamically adjusted in any suitable manner based on any suitable conditions. For example, the user-perceived state of the trigger may be changed based on a parameter of a computing device or an application executed by the computing device, such as a game parameter of a video game. In one example, the user-perceived resistance of the trigger is dynamically adjusted to correspond to characteristics (e.g., pull length, pull weight) of different virtual triggers of different virtual weapons. In another example, the user-perceived state of the trigger may be dynamically adjusted based on different user preferences. Such dynamic control of the user-perceived state of the trigger may increase a level of immersion of a user experience, such as playing a video game.

<FIG> show an example user-input device in the form of a physical video game controller <NUM>. The game controller <NUM> is configured to translate user input into control signals. These control signals are provided to a computing device <NUM>, such as a gaming console to control an operating state of the computing device <NUM>. For example, the game controller <NUM> may translate user input into control signals to control an application (e.g., video game) executed by the computing device <NUM>, or to provide some other form of control. The game controller <NUM> includes a communication subsystem <NUM> configured to communicatively couple the game controller <NUM> with the computing device <NUM>. The communication subsystem <NUM> may include a wired or wireless connection with the computing device <NUM>. The communication subsystem <NUM> may include any suitable communication hardware to enable communication according to any suitable communication protocol (e.g., Wi-Fi, Bluetooth). For example, such communicative coupling may enable two-way communication between the game controller <NUM> and the computing device <NUM>.

The control signals sent from the game controller <NUM> to the computing device <NUM> via the communication subsystem <NUM> may be mapped to commands to control a video game or any other application, or to perform any other computing operations The computing device <NUM> and/or the game controller <NUM> may be configured to map different control signals to different commands based on a state of the computing device <NUM>, the game controller <NUM>, a particular application being executed by the computing device <NUM>, and/or a particular identified user that is controlling the game controller <NUM> and/or the computing device <NUM>.

The game controller <NUM> includes a plurality of physical controls <NUM> configured to generate different control signals responsive to physical manipulation. The physical controls <NUM> may include a plurality of action buttons <NUM> (e.g., 108A, 108B, 108C, 108D, 108E, 108F, <NUM>, and <NUM>), a plurality of joysticks <NUM> (e.g., a left joystick 110A and a right joystick 110B), a plurality of triggers <NUM> (e.g., a left trigger 112A and a right trigger 112B), and a directional pad <NUM>. The game controller <NUM> may include any number of physical controls, any type of physical controls, any number of electronic input sensors, and any type of electronic input sensors without departing from the scope of this disclosure.

Physical controls <NUM> may be coupled to one or more frames <NUM> (shown in <FIG>). The frame(s) <NUM> may be contained in a housing <NUM> of the game controller <NUM>. One or more printed circuit boards <NUM> may be coupled to the frame(s) <NUM>. Although a single printed circuit board is depicted, in some implementations, two or more printed circuit boards may be employed in the game controller <NUM>. The printed circuit board <NUM> may include a plurality of electronic input sensors <NUM>. Each electronic input sensor <NUM> may be configured to generate an activation signal responsive to interaction with a corresponding physical control <NUM>, or may determine a state or characteristic of a corresponding physical control <NUM>. Non-limiting examples of electronic input sensors include dome switches, tactile switches, posture sensors (e.g., Hall Effect sensors), force sensors, speed sensors, potentiometers, and other magnetic or electronic sensing components. Any suitable sensor may be implemented in the game controller <NUM>.

Each of the action buttons <NUM> may be configured to activate a corresponding electronic input sensor <NUM>, to generate an activation signal responsive to being depressed (e.g., via physical manipulation). Each of the joysticks <NUM> may be configured to provide two-dimensional input that is based on a position of the joystick in relation to a default "center" position. For example, the joysticks <NUM> may interact with electronic input sensors in the form of potentiometers that use continuous electrical activity to provide an analog input control signal. The directional pad <NUM> may be configured to reside in an "unpressed" posture when no touch force is applied to the directional pad <NUM>. In the unpressed posture, the directional pad <NUM> does not cause any of the plurality of electronic input sensors <NUM> to generate an activation signal. Further, the directional pad <NUM> may be configured to move from the unpressed posture to a selected activation posture responsive to a touch force being applied to the directional pad <NUM>. The selected activation posture may be one of multiple different activation postures that each generate a different activation signal, or a combination of activation signals, by interfacing with different electronic input sensors.

Each of the triggers <NUM> may be configured to pivot about a trigger axis between an extended posture and a retracted posture. Each of the triggers <NUM> may be forward biased to pivot towards the fully-extended posture when not being manipulated by an external force. For example, each of the triggers <NUM> may pivot based on manipulation by a user's finger away from the fully-extended posture and toward the retracted posture. As such, the triggers <NUM> may be referred to as user-actuatable triggers.

Furthermore, in some implementations, under some conditions, the triggers <NUM> may be configured to pivot due to being driven by a force-feedback motor without manipulation from a user's finger. For example, a trigger <NUM> may be driven by a force-feedback motor and held at a retracted posture as part of a real-time effect for a video game. In one example, the real-time effect indicates that a virtual weapon is out of ammunition and needs to be reloaded. Each trigger <NUM> may be driven by a force-feedback motor to adjust any suitable user-perceived state of the trigger <NUM>.

Different aspects of the each of the triggers <NUM> may be determined by different activation sensors. Each of these sensors may generate one or more activation signals that may be used to control operation of the triggers <NUM> and/or the computing device <NUM>.

Note that an activation signal produced by an electronic input sensor <NUM> when a corresponding physical control <NUM> is in an activation posture may be any signal that differs from a signal or lack thereof produced by the electronic input sensor <NUM> in the default posture. For example, in some implementations, the activation signal may correspond to a supply voltage (e.g., VDD) of the game controller <NUM> and the signal produced in the default state may correspond to a relative ground. (e.g., <NUM>). In other implementations, the activation signal may correspond to a relative ground and the signal produced in the default state may correspond to the supply voltage of the game controller <NUM>. An activation signal produced by an electronic input sensor <NUM> may take any suitable form.

The game controller <NUM> includes an integrated microcontroller <NUM> configured to receive activation signals from the plurality of physical controls <NUM>, and send the activation signals to the computing device <NUM>, via the communication subsystem <NUM>. Further, the computing device <NUM> may use the activation signals to control operation of the computing device <NUM>, such as controlling a video game or other application executed by the computing device <NUM>. Further, the microcontroller <NUM> is configured to receive, via the communication subsystem <NUM>, control signals from the computing device <NUM>. The microcontroller <NUM> may use the control signals to control operation of the game controller <NUM>. For example, the microcontroller <NUM> may receive force-feedback signals to control operation of a force-feedback motor to drive one or more of the triggers <NUM>.

In some implementations, the microcontroller <NUM> may be configured to control operation of the force-feedback motor without continuously receiving control signals (e.g., force feedback signals) from the computing device <NUM>. In other words, the microcontroller <NUM> may be configured to perform at least some of the functionality of the computing device <NUM> related to controlling operation of the triggers <NUM>. In some implementations, the microcontroller <NUM> may control operation of the force-feedback motor to drive the triggers <NUM> based on one or more force-feedback definitions. For example, a force-feedback definition may be a data structure representing one or more resistance/assistance/vibration profiles that may be used throughout the course of playing a video game or interacting with an application. In some implementations, the computing device <NUM> may send one or more force-feedback definitions to the game controller <NUM>. In some such implementations, the microcontroller <NUM> may control operation of the force-feedback motor to drive the trigger <NUM> based on one or more force-feedback definitions until the computing device <NUM> sends different force-feedback definitions to the game controller <NUM>, and then the microcontroller <NUM> may control the force-feedback motor based on the updated force-feedback definitions. In other implementations, the microcontroller <NUM> may be pre-loaded with one or more force-feedback definitions. In some such implementations, the microcontroller <NUM> may control operation of the force-feedback motor to drive the trigger <NUM> without being required to communicate with the computing device <NUM>. In some implementations, the microcontroller <NUM> may continue to receive operating parameters (e.g., video game parameters) from the computing device <NUM> that affect how the microcontroller <NUM> uses the force-feedback definition(s) to control the force-feedback motor. In such implementations, since force-feedback processing is handled on-board by the microcontroller <NUM>, the force feedback control loop does not depend on processing by the computing device <NUM>. In this way, force-feedback control may be perceived as substantially real-time feedback to the user.

The force-feedback definitions may allow the force-feedback triggers to be controlled in a manner that is exceedingly configurable. The force-feedback definitions may define rules that are a function of any suitable input (e.g., the posture sensor, the force sensor, the touch sensor, time, the state of any other controller input including buttons, thumbsticks, and the sensors of other triggers, or any combination thereof).

In one example of a force-feedback definition, if the posture of the trigger is more than fifteen degrees from the fully-extended posture, then the target force is ten Newtons; otherwise if the posture of the trigger is less than fifteen degrees from the fully-extended posture, then the target force is a maximum force of one Newton. This example defines a hard stop at fifteen degrees. In another example of a force-feedback definition, if the posture of the trigger is greater than ten degrees from the fully-extended posture, the target force tracks a sine wave function having a maximum amplitude of five Newtons.

These rules may result in a force-feedback signal being output to control the force-feedback motor. In some examples, the force-feedback signal may define a target or set point for the force-feedback motor to try to achieve/maintain. The target or set point may take various forms. For example, the target may be a trigger position, trigger velocity, trigger force, or a combination of thereof. When two or more different targets are used, one or more of the sub-targets may act as constraints which cannot be violated. In one example, a first sub-target requires the trigger to move to a fully-extended posture, but a second sub-target dictates that the maximum force cannot exceed five Newtons. A target may be constant, a time variant profile, or a constant or time-variant function of one or more inputs. Such functions may be defined in any suitable manner. In one example, the function is a set of points from which the output is linearly interpolated based on the input. In another example, the function is a set of value/range pairs from which the value is selected when the input is in the corresponding range.

<FIG> schematically shows an example user-input device <NUM> including a force-feedback trigger assembly <NUM>. The user-input device <NUM> may be an example of the game controller <NUM> of <FIG>. The force-feedback trigger assembly <NUM> is configured to receive user input in the form of touch and/or pull force from a user's finger (e.g., index finger) and further provide force feedback to the user. The force-feedback trigger assembly <NUM> includes a trigger <NUM> (e.g., trigger <NUM> of <FIG>), a force-feedback motor <NUM>, and a gear train <NUM> operatively intermediate the trigger <NUM> and the force-feedback motor <NUM>.

The trigger <NUM> is configured to pivot about a trigger axis or otherwise move under an applied external force (e.g., via a user's index finger). The trigger <NUM> is rotatable from a fully-extended posture (sometimes referred to herein as an unpressed posture) through a pivot range to a fully-retracted posture (sometimes referred to herein as a fully pressed posture). The pivot range may be any suitable angular range about the trigger axis. In some implementations, the trigger <NUM> may be forward biased to remain in the fully-extended posture when no external force (e.g., touch force) is applied to the trigger <NUM>. For example, the assembly <NUM> may include a return spring to forward bias the trigger <NUM>.

The force-feedback motor <NUM> is configured to drive the trigger <NUM> via the gear train <NUM> to adjust a user-perceived state of the trigger <NUM>. The force-feedback motor <NUM> has a fixed position within the trigger assembly <NUM> and does not move with the trigger <NUM>. For example, the motor may be coupled in a fixed position to the frame or the housing of the user-input device <NUM>. The force-feedback motor <NUM> may be activated to provide a user-perceived resistance (e.g., pull weight, soft stop, hard stop), return assistance, vibration, or another form of force feedback via the trigger <NUM>. The force-feedback motor <NUM> may include any suitable type of motor that can provide an appropriate torque and speed response for force feedback. Non-limiting examples of motors that may be used in the force-feedback trigger assembly <NUM> include a brushed direct current (DC) motor, a brushless DC motor, and a stepper motor. The brushed DC motor may be less expensive, but louder, not as compact, and less power efficient than the brushless DC motor.

The force-feedback motor <NUM> may be configured to drive the trigger <NUM> in any suitable manner. The force-feedback motor <NUM> may operate at any suitable speed and in any suitable direction to output torque to achieve a desired user-perceived state of the trigger <NUM>. Further, the force-feedback motor <NUM> may rotate in different directions to adjust the trigger <NUM> differently. For example, the force-feedback motor <NUM> may rotate in different directions to pivot the trigger <NUM> in different directions about the trigger axis (e.g., forward direction toward the fully-extended posture or the backward direction toward the fully-retracted posture). In another example, the force-feedback motor <NUM> may alternate between rotating in a forward direction and a backward direction to generate a desired series of pulses or vibrations. The period, speed, and/or frequency of rotation in either direction may be varied to adjust the amplitude of the pulses/vibrations.

The gear train <NUM> may operatively connect the force-feedback motor <NUM> to the trigger <NUM> in any suitable arrangement that allows the force-feedback motor <NUM> to selectively drive the trigger <NUM>. The gear train <NUM> may include one or more reduction gears configured to provide speed and/or torque conversions from the force-feedback motor to the trigger <NUM>. The reduction gears may provide any suitable magnitude of speed/torque conversion/reduction. The gear train <NUM> may include any suitable type of gear(s). Non-limiting examples of gears that may be used in the gear train <NUM> include rotary spur gears, rack-and-pinion gears, helical gears, herringbone gears, planetary gears, worm gears, and bevel gears. Furthermore, gear train <NUM> may include any other suitable torque-transferring elements such as shafts, couplings, belts and pulleys, chains and sprockets, clutches, and differentials.

In some implementations, the gear train <NUM> may include a clutch <NUM> operatively intermediate the trigger <NUM> and the force-feedback motor <NUM>. The clutch <NUM> is configured to mechanically change engagement between the trigger <NUM> and the force-feedback motor <NUM>. For example, when the clutch <NUM> is engaged, the force-feedback motor <NUM> drives the trigger <NUM> via the clutch <NUM> to adjust a user-perceived state of the trigger <NUM>. In another example, when the clutch <NUM> is disengaged, the force-feedback motor <NUM> may drive the clutch <NUM>, but since the clutch is not engaged, the clutch <NUM> does not drive the trigger <NUM>. In yet another example, the clutch <NUM> may lessen or mitigate a drag of the force-feedback motor <NUM> (and at least some of the gear train <NUM>) from the trigger <NUM>.

In some implementations, the clutch <NUM> may be a one-way clutch configured to disengage the trigger <NUM> from the force-feedback motor <NUM> when the trigger <NUM> pivots in the forward direction toward the fully-extended posture. In this way, the motor drag may be lessened or mitigated from the trigger <NUM> whenever the trigger <NUM> is released from a user's finger in order to provide a faster return rate of the trigger <NUM>.

In some implementations, the clutch <NUM> may be an active/electronic clutch that disengages the trigger <NUM> from the force-feedback motor <NUM> via electronically controlled actuation. For example, the active clutch may include a solenoid that is actuated based on a control signal to selectively break the mechanical linkage between the trigger <NUM> and the force-feedback motor <NUM>. In other examples, the active clutch may include another motor, a piezo, an electromagnetic or electrostatic clutch, or any other suitable mechanism for engaging and disengaging trigger <NUM> from force-feedback motor <NUM>.

The user-input device <NUM> further includes a sensor subsystem <NUM> including one or more sensors configured to determine aspects of the force-feedback trigger assembly <NUM>. The sensor subsystem <NUM> may include any suitable number of sensors and any suitable type of sensors to determine aspects of the force-feedback trigger assembly <NUM>.

The sensor subsystem <NUM> may include a posture sensor <NUM> configured to determine a posture of the trigger <NUM> about the trigger axis. The determined posture may include one or more motion parameters of the trigger <NUM>, such as displacement, velocity, acceleration, angle, absolute position, or a combination thereof. Non-limiting examples of types of posture sensors that may be employed include mechanical sensors (e.g., limit switch), optical sensors (e.g., optical encoder or optical break sensor), magnetic sensors (e.g., magnetic reed switch or magnetic encoder), capacitive sensors, potentiometers, or a combination thereof. In one example, a magnet is coupled to the trigger <NUM>, and the posture sensor <NUM> includes a Hall effect sensor configured to determine the posture of the trigger <NUM> based on the position of the magnet relative to the Hall effect sensor. The posture sensor <NUM> may be configured to send a posture signal <NUM> that communicates the posture of the trigger <NUM> to a force-feedback control system <NUM>.

The sensor subsystem <NUM> may include a force sensor <NUM> configured to determine an actuation force applied to the trigger <NUM> by a user's finger. The force sensor <NUM> may take any suitable form and may be positioned in any suitable manner within the assembly <NUM> to determine the actuation force applied to the trigger <NUM>. For example, the force sensor <NUM> may be integrated into the trigger <NUM>. In particular, the force sensor <NUM> is operatively intermediate a finger-interface portion and a motor-interface portion of the trigger <NUM>. For example, in some such implementations, the force sensor <NUM> may include a pair of capacitive plates configured to determine the actuation force based on a relative capacitance between the pair of capacitive plates. In another example, the force sensor <NUM> may include a torque gauge operatively intermediate the force-feedback motor <NUM> and the trigger <NUM>, such as integrated into a gear in the gear train <NUM>. In yet another example, the force sensor <NUM> may include a current monitoring device configured to determine the actuation force from a motor current of the force-feedback motor <NUM>. The force sensor <NUM> may be configured to send a force signal <NUM> that communicates and actuation force applied to the trigger <NUM> to the force-feedback control system <NUM>.

The sensor subsystem <NUM> may include a touch sensor <NUM> operatively coupled to the trigger <NUM> and configured to detect a finger touch on the trigger <NUM>. The touch sensor <NUM> may take any suitable form. For example, the touch sensor <NUM> may be capacitive, resistive, or optical. In some implementations, touch sensor <NUM> additionally or alternatively may be configured to detect touch on the trigger <NUM> and/or a finger in proximity to the trigger <NUM>. Furthermore, touch sensor <NUM> may be used to sense an approximate distance of the finger from trigger <NUM>. As such, touch sensor <NUM> may be used either as a binary sensor that detects whether a finger is present or as an analog sensor that detects the approximate position of the finger if the finger is present. In one example, the touch sensor <NUM> may include one or more capacitive plates operatively coupled to a finger-interface portion of the trigger <NUM> and configured to detect a finger touch based on a capacitance of the finger to a plate or between a pair of plates. In one example implementation, a pair of capacitive plates may act as a force sensor by detecting the change in capacitance between the plates as the plates are compressed together. In some implementations, a pair of plates may be used as both a touch sensor and a force sensor. The touch sensor <NUM> may be configured to send a touch signal <NUM> that communicates a detected finger touch on the trigger <NUM> to the force-feedback control system <NUM>.

The user-input device <NUM> includes a communication subsystem <NUM> configured to communicatively couple the user-input device <NUM> with a computing device <NUM>. The computing device <NUM> may take any suitable form, such as a game console, desktop computer, laptop computer, mobile computer (e.g., smartphone), augmented-reality computer, or virtual-reality computer. The communication subsystem <NUM> may include any suitable communication hardware to enable communication with the computing device <NUM> according to any suitable communication protocol (e.g., Wi-Fi, Bluetooth). The communication subsystem <NUM> may be configured to send various signals to communicate the state of the force-feedback trigger assembly <NUM> to the computing device <NUM>. For example, the communication subsystem <NUM> may be configured to send the posture signal <NUM>, the force signal <NUM>, and/or the touch signal <NUM> to the computing device <NUM>. The computing device <NUM> may be configured to execute an application <NUM>, such as a video game, and the computing device <NUM> may use these signals to control execution of the application.

Furthermore, the communication subsystem <NUM> may be further configured to receive, from the computing device <NUM>, one or more force-feedback signals <NUM> configured to activate the force-feedback motor <NUM> to drive the trigger <NUM>. In some implementations, the force-feedback control system <NUM> may be configured to receive, via the communication subsystem <NUM>, the force-feedback signal <NUM> from the computing device <NUM>. In other implementations, the force-feedback control system <NUM> may be configured to generate the force-feedback signal <NUM> instead of the computing device <NUM>. The force-feedback control system <NUM> may be configured to control the force-feedback motor <NUM> based on the force-feedback signal <NUM> to adjust a user-perceived state of the trigger <NUM> in any suitable manner. The force-feedback signal <NUM> may be determined from any suitable parameters, conditions, states, and/or other information. For example, the force-feedback signal may be based at least on one or more of the posture signal <NUM>, the force signal <NUM>, and the touch signal <NUM>. Alternatively, or additionally, the force-feedback signal <NUM> may be based on a parameter of the computing device <NUM>, such as a game parameter of a video game. Further still, the force-feedback signal <NUM> may be based at least on a user's preferences. For example, a user may specify a desired trigger resistance (e.g., a pull weight), and the force-feedback signal <NUM> may be configured to activate the force-feedback motor to provide the desired resistance. In some implementations, the computing device <NUM> may send other signals to the user-input device <NUM> to control various aspects of the user-input device. For example, in a configuration that uses an active/electronic clutch, the computing device may send a control signal to control clutch engagement.

The force-feedback control system <NUM> may include any suitable hardware components to control operation of the force-feedback trigger assembly <NUM> and/or other components of the user-input device <NUM>. In one example, the force-feedback control system <NUM> incudes a microprocessor. The force-feedback control system <NUM> may be an example of the microcontroller <NUM> of <FIG>.

In some implementations, the user-input device <NUM> and the computing device <NUM> may be incorporated into a single device. For example, the user-input device <NUM> and the computing device <NUM> may form a stand-alone handheld gaming device. In some implementations, the computational functions/operations of the user-input device <NUM> and the computing device <NUM> may be performed by a single microprocessor (e.g., force-feedback control system <NUM>) that is integral to the user-input device <NUM>.

In some implementations, the force-feedback control system <NUM> may be configured to control the force-feedback motor <NUM> based on one or more force-feedback definitions <NUM>. For example, a force-feedback definition may be a data structure representing one or more resistance/assistance/vibration profiles that may be used throughout the course of playing a video game or interacting with an application. In some implementations, the computing device <NUM> may send one or more force-feedback definitions <NUM> to the game controller <NUM>. In other implementations, the force-feedback control system <NUM> may be pre-loaded with one or more force-feedback definitions <NUM>. In some such implementations, the force-feedback control system <NUM> may control operation of the force-feedback motor <NUM> to drive the trigger <NUM> without being required to communicate with the computing device <NUM>. In some implementations, the force-feedback control system <NUM> may continue to receive operating parameters (e.g., video game parameters) from the computing device <NUM> that affect how the force-feedback control system <NUM> uses the force-feedback definition(s) to control the force-feedback motor <NUM>. In such implementations, since force-feedback processing is handled on-board by the force-feedback control system <NUM>, the force feedback control loop does not depend on processing by the computing device <NUM>. In this way, force-feedback control may be provided in a fast manner, such as fast enough to be perceived by the user substantially in real-time.

<FIG> and <FIG> show different example force-feedback trigger assemblies that may be incorporated into a user-input device, such as the user input device <NUM> of <FIG> or the user-input device <NUM> of <FIG>. <FIG> show an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a sector gear <NUM> also referred to as an arched gear. The trigger <NUM> is configured to pivot about a trigger axis <NUM> of a mounting frame <NUM>. The mounting frame <NUM> may be incorporated into a housing of a user-input device to secure the trigger <NUM> in the user-input device. The trigger <NUM> pivots about the trigger axis <NUM> between a fully-extended posture shown in <FIG> and a fully-retracted posture shown in <FIG>. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>.

The trigger <NUM> includes a finger-interface portion <NUM> and a motor-interface portion <NUM> that opposes the finger-interface portion <NUM>. The finger-interface portion <NUM> is externally oriented and configured to receive an actuation force applied by a user's finger to pivot the trigger <NUM> away from the fully-extended posture. The motor-interface portion <NUM> is internally oriented and configured to interface with the force-feedback motor <NUM> such that the force-feedback motor <NUM> can drive the trigger <NUM> when the force-feedback motor <NUM> is activated. In particular, the sector gear <NUM> is arranged on the motor-interface portion <NUM> and includes a plurality of gear teeth <NUM> arranged on an outer, convex side of the sector gear <NUM>. The plurality of gear teeth <NUM> are configured to mesh with a drive gear <NUM> of the force-feedback motor <NUM>. The drive gear <NUM> is a rotary gear fixed on an output shaft <NUM> of the force-feedback motor <NUM>. Drive gear <NUM> may be any suitable type of gear including a spur gear, a helical gear, a bevel gear, a crown gear, a worm gear, or an elliptical gear. In other implementations, driver gear <NUM> may be a drive pulley or drive sprocket that interfaces with a belt or chain. When the force-feedback motor <NUM> is activated, the output shaft <NUM> rotates the drive gear <NUM> that meshes with the gear teeth <NUM> of the sector gear <NUM> to drive the trigger <NUM>. The force-feedback motor <NUM> may be mounted to the mounting frame <NUM> in a fixed position such that the force-feedback motor <NUM> does not move with the trigger <NUM> when the trigger <NUM> pivots about the trigger axis <NUM>. Such a configuration may be referred to as a fixed-gear, force-feedback configuration.

A trigger return spring <NUM> may be configured to forward bias the trigger <NUM> toward the fully-extended posture. The trigger return spring <NUM> may take any suitable form. In the illustrated example, the trigger return spring <NUM> is a torsion spring wrapped around the trigger axis <NUM> to apply a spring force between the mounting frame <NUM> and the trigger <NUM> to forward bias the trigger <NUM>.

The force-feedback motor <NUM> may be configured to rotate in a clockwise direction or a counter-clockwise direction. When the force-feedback motor <NUM> rotates in the clockwise direction, the drive gear <NUM> rotates correspondingly and drives the sector gear <NUM> to pivot the trigger <NUM> about the trigger axis <NUM> in a counter-clockwise direction. In this case, the trigger <NUM> pivots/retracts inward away from the fully-extended posture and toward the fully-retracted posture. When the force-feedback motor <NUM> rotates in the counter-clockwise direction, the drive gear <NUM> rotates correspondingly and drives the sector gear <NUM> to pivot the trigger <NUM> about the trigger axis <NUM> in a clockwise direction. In this case, the trigger <NUM> pivots/extends outward toward the fully-extended posture and away from the fully-retracted posture.

In some cases, depending on the actuation force applied by a user's finger to the finger-interface portion <NUM> of the trigger <NUM>, an activation force/torque output by the force-feedback motor <NUM> may not actually pivot the trigger <NUM>, and instead may provide a user-perceived resistance that opposes the actuation force of the user's finger.

A posture of the trigger <NUM> may be determined by a posture sensor. In the illustrated implementation, the trigger <NUM> includes a trough configured to retain a magnet <NUM> such that the magnet is coupled to the trigger <NUM>. A Hall effect sensor may be configured to determine the posture of the trigger <NUM> based on the position of the magnet <NUM> relative to the Hall effect sensor. In one example, the determined posture is an absolute position of the trigger <NUM> within the pivot range of the trigger <NUM>.

The trigger <NUM> may be formed from any suitable material. For example, the trigger <NUM> may include plastic or metal. In some implementations, the trigger <NUM> may be a single formed component, such as a molded plastic part or a machined metal part. In such implementations, the sector gear <NUM> may be integrated into the single component. In other implementations, the trigger <NUM> may include a plurality of components in an assembly. For example, the user-interface portion <NUM> and the motor-interface portion <NUM> may be separate components that are coupled together.

Sector gear <NUM> may be any suitable type of gear including a spur gear, a helical gear, a bevel gear, a crown gear, or an elliptical gear. The sector gear <NUM> may have any suitable arc shape including any suitable arc angle and/or arc radius. Further, the sector gear <NUM> may be oriented on the motor-interface portion <NUM> in any suitable manner to mesh with the drive gear <NUM>. In some implementations, the plurality of gear teeth may be arranged on an interior, concave side of the sector gear <NUM> instead of being oriented on an outer, convex side. In such a configuration, the sector gear <NUM> may extend outward from the trigger <NUM> or the trigger <NUM> may form a cut-out in order to accommodate the drive gear <NUM>. Such a configuration may be more compact relative to the illustrated example, but may also restrict the size of the motor/drive gear that may be used to drive the trigger.

The sector gear force-feedback trigger assembly provides a compact arrangement, because the sector gear can be incorporated directly into the trigger. Moreover, the drive gear of the motor may interface directly with the sector gear without requiring additional reduction gears or other intermediate gears. Although, in some implementations, the force-feedback trigger assembly may include additional gears operatively intermediate the drive gear and the sector gear.

<FIG> show an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a rack gear <NUM>. The trigger <NUM> is configured to pivot about a trigger axis <NUM> of a mounting frame <NUM>. The mounting frame <NUM> may be incorporated into a housing of a user-input device to secure the trigger <NUM> in the user-input device. The trigger <NUM> pivots about the trigger axis <NUM> between a fully-extended posture shown in <FIG> and a fully-retracted posture shown in <FIG>. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>. A trigger return spring <NUM> may be configured to forward bias the trigger <NUM> toward the fully-extended posture.

The trigger <NUM> includes a finger-interface portion <NUM> and a motor-interface portion <NUM> that opposes the finger-interface portion <NUM>. The finger-interface portion <NUM> is externally oriented and configured to receive an actuation force applied by a user's finger to pivot the trigger <NUM> away from the fully-extended posture. The motor-interface portion <NUM> is internally oriented and configured to interface with the rack gear <NUM>. The rack gear <NUM> is further configured to interface with the force-feedback motor <NUM> such that the force-feedback motor <NUM> can drive the trigger <NUM> when the force-feedback motor <NUM> is activated. In particular, the rack gear <NUM> includes a plurality of gear teeth <NUM> configured to mesh with a drive gear <NUM> of the force-feedback motor <NUM>. The drive gear <NUM> is a pinion/rotary gear fixed on an output shaft <NUM> of the force-feedback motor <NUM> although in other implementations drive gear <NUM> may be any suitable type of gear including a spur gear, a helical gear, a bevel gear, a crown gear, a worm gear, or an elliptical gear. Alternatively, driver gear <NUM> may be a drive pulley or drive sprocket that interfaces with a belt or chain. When the force-feedback motor <NUM> is activated, the output shaft <NUM> rotates the drive gear <NUM> that meshes with the gear teeth <NUM> of the rack gear <NUM> to laterally translate the rack gear <NUM> and drive the trigger <NUM>. In some implementations, force-feedback trigger assembly <NUM> may include additional gears or any other suitable torque-transferring elements such as shafts, couplings, belts and pulleys, chain and sprockets, clutches, and differentials intermediate force-feedback motor <NUM> and rack gear <NUM>.

The rack gear <NUM> interfaces with the trigger <NUM> via a guided connection that allows the trigger <NUM> to move relative to the rack gear <NUM> within a designated range of movement. Such a guided connection allows the trigger <NUM> to remain connected to the rack gear <NUM> as the trigger pivots about the trigger axis <NUM> and the rack gear moves laterally. The trigger <NUM> may be guidedly connected with the rack gear <NUM> in any suitable manner. In the illustrated example, the trigger <NUM> and the rack gear <NUM> collectively form a pin-in-slot mechanism <NUM> that guidedly connects the trigger <NUM> with the rack gear <NUM>. In particular, a slot <NUM> is formed in the motor-interface portion <NUM> of the trigger <NUM>. A pin <NUM> extends from the rack gear <NUM> and into the slot <NUM> such that the pin <NUM> moves relative to the slot <NUM> as the trigger <NUM> pivots about the trigger axis <NUM> and the rack gear <NUM> laterally translates. As shown in <FIG>, when the trigger <NUM> is fully-extended, the pin <NUM> is positioned at a top end of the slot <NUM>. Further, as shown in <FIG>, when the trigger <NUM> is fully-retracted, the pin <NUM> is positioned in a middle section of the slot <NUM>. The slot <NUM> may be sized to accommodate any suitable pivot range of the trigger <NUM> and/or amount of lateral translation of the rack gear <NUM>.

In other implementations, the slot may be formed in the rack gear and the pin may be formed by the trigger to collectively form a pin-in-slot mechanism that is functionally equivalent.

An additional pin-in-slot mechanism <NUM> is collectively formed by the rack gear <NUM> and the mounting frame <NUM>. This pin-in-slot mechanism <NUM> may guidedly connect the rack gear <NUM> with the frame <NUM> to provide additional stability to the rack gear <NUM> as it translates laterally to drive the trigger <NUM>. As shown in <FIG>, when the trigger <NUM> is fully-extended, the rack gear <NUM> is translated forward such that the pin is positioned at a front end of the slot. Further, as shown in <FIG>, when the trigger <NUM> is fully-retracted, the rack gear <NUM> is translated backward such that the pin is positioned in a middle section of the slot.

The force-feedback motor <NUM> may be configured to rotate in a clockwise direction or a counter-clockwise direction. When the force-feedback motor <NUM> rotates in the clockwise direction, the drive gear <NUM> rotates correspondingly and drives the rack gear <NUM> forward to pivot the trigger <NUM> about the trigger axis <NUM> in a clockwise direction. In this case, the trigger <NUM> pivots/extends outward toward the fully-extended posture and away from the fully-retracted posture. When the force-feedback motor <NUM> rotates in the counter-clockwise direction, the drive gear <NUM> rotates correspondingly and drives the rack gear <NUM> backwards to pivot the trigger <NUM> about the trigger axis <NUM> in a counter-clockwise direction. In this case, the trigger <NUM> pivots/retracts inward away from the fully-extended posture and toward the fully-retracted posture.

In some implementations, the rack gear may be forward-biased toward the user-actuatable trigger. For example, a rack return spring may be operatively intermediate the mounting frame <NUM> and the rack gear <NUM>. The rack return spring may be configured to forward bias the rack gear <NUM> to interface with the trigger <NUM> and further forward bias the trigger <NUM> toward the fully-extended posture. The rack return spring may help speed up a return response of the trigger <NUM> to the fully-extended posture when the user's finger is lifted from the trigger <NUM>. In some cases, the spring force of the rack return spring may be greater than a drag of the motor/gear on the trigger <NUM>. In some such implementations, the trigger return spring <NUM> may be omitted in favor of the rack return spring.

In some implementations, the rack gear <NUM> may not connect to the trigger <NUM>, but instead may abut against the trigger. In such implementations, the rack gear <NUM> may drive the trigger <NUM> only in the forward direction based on activation of the force-feedback motor <NUM>. In this way, the rack gear <NUM> can provide user-perceived resistance and return assistance to the trigger <NUM>. However, the rack gear <NUM> would be unable to retract/pivot the trigger <NUM> toward the fully-retracted posture without actuation force provided by the user's finger.

Furthermore, in some such implementations, the force-feedback motor <NUM> may be configured to selectively drive the rack gear <NUM> to a position where the rack gear <NUM> does not interface with the trigger <NUM> during any point in the pivot range of the trigger <NUM>. In other words, the rack gear <NUM> may be positioned to provide no force-feedback to the trigger <NUM> (and no drag from the motor/gears). Instead, the trigger <NUM> is only subject to the forward bias of the trigger return spring <NUM> and the actuation force of the user's finger. Such a configuration may be preferred by some users that do not want force feedback from the trigger. This is one of many different settings that may be provided to cater to the individual preferences of different users.

The rack gear force-feedback trigger assembly may provide force feedback in a quiet and stable manner, because the rack gear translates laterally and is additionally stabilized by the mounting frame.

<FIG> show an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a rack gear <NUM> and an adjustable tension trigger return spring <NUM>. The trigger <NUM> is configured to pivot about a trigger axis <NUM> of a mounting frame <NUM>. The mounting frame <NUM> may be incorporated into a housing of a user-input device to secure the trigger <NUM> in the user-input device. The trigger <NUM> pivots about the trigger axis <NUM> between a fully-extended posture shown in <FIG> and <FIG> and a fully-retracted posture shown in <FIG> and <FIG>. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>.

The trigger return spring <NUM> is operatively intermediate the <NUM> trigger and the rack gear <NUM>. In some implementations, the trigger return spring <NUM> may be incorporated into the rack gear <NUM>. For example, the rack gear <NUM> may include a telescoping portion that houses the trigger return spring <NUM>. In other implementations, the trigger return spring <NUM> may be separate from the rack gear <NUM> and coupled to the rack gear <NUM>.

The trigger return spring <NUM> interfaces with the trigger <NUM> via a guided connection that allows the trigger <NUM> to move relative to the trigger return spring <NUM> within a designated range of movement. Such a guided connection allows the trigger <NUM> to pivot about the trigger axis <NUM> based on lateral translation of the rack gear <NUM> that drives the trigger <NUM>. The trigger <NUM> may be guidedly connected with the trigger return spring <NUM> in any suitable manner. In the illustrated example, the trigger <NUM> and the trigger return spring <NUM> collectively form a pin-in-slot mechanism <NUM> that guidedly connects the trigger <NUM> with the trigger return spring <NUM>. In particular, a slot <NUM> is formed in a motor-interface portion <NUM> of the trigger <NUM>. A pin <NUM> extends from the trigger return spring <NUM> and into the slot <NUM> such that the pin <NUM> moves relative to the slot <NUM> as the trigger <NUM> pivots about the trigger axis <NUM> and the trigger return spring <NUM>/rack gear <NUM> translates laterally. The slot <NUM> may be positioned on the motor-interface portion <NUM> such that the slot <NUM> is spaced apart from the trigger axis <NUM> to allow for a great enough range of travel of the pin <NUM> within the slot <NUM> to allow the trigger <NUM> to pivot. For example, the slot <NUM> may be positioned on a portion of the trigger <NUM> that opposes the trigger axis <NUM>.

The trigger return spring <NUM> is configured to forward bias the trigger <NUM> toward the fully-extended posture. A spring force applied to the trigger <NUM> by the trigger return spring <NUM> may be dynamically adjusted based on a position of the rack gear <NUM> that may be driven by the force-feedback motor <NUM>. As shown in <FIG>, the rack gear <NUM> is laterally translated backward away from the trigger <NUM>. This position of the rack gear <NUM> allows the trigger return spring <NUM> to expand, and thus reduces the spring force applied to the trigger <NUM>. As shown in <FIG>, the rack gear <NUM> is laterally translated forward toward the trigger <NUM>. This position of the rack gear <NUM> compresses the trigger return spring <NUM>, and thus increases the spring force applied to the trigger <NUM>.

The force-feedback motor <NUM> is configured to drive the rack gear <NUM> to adjust the spring force applied to the trigger <NUM> by the trigger return spring <NUM>. In particular, the rack gear <NUM> includes a plurality of gear teeth <NUM> configured to mesh with a drive gear <NUM> of the force-feedback motor <NUM>. The drive gear <NUM> is a pinion/rotary gear fixed on an output shaft <NUM> of the force-feedback motor <NUM>. When the force-feedback motor <NUM> is activated, the output shaft <NUM> rotates the drive gear <NUM> that meshes with the gear teeth <NUM> of the rack gear <NUM> to laterally translate the rack gear <NUM> and adjust the spring tension of the trigger return spring <NUM>. Moreover, the force-feedback motor <NUM> may be configured to, in some cases, drive the rack gear <NUM> to provide a force/resistance greater than the spring force of the trigger return spring <NUM>. For example, the force-feedback motor <NUM> may drive the rack gear <NUM> to provide a hard stop at a designated posture within the pivot range of the trigger <NUM>. The hard stop does not allow an actuation force applied by the user's finger to easily retract/pivot the trigger <NUM> beyond the designated posture of the hard stop.

The force-feedback motor <NUM> may be configured to rotate in a clockwise direction or a counter-clockwise direction. When the force-feedback motor <NUM> rotates in the clockwise direction, the drive gear <NUM> rotates correspondingly and drives the rack gear <NUM> forward to compress the trigger return spring <NUM> and/or pivot the trigger <NUM> about the trigger axis <NUM> in a clockwise direction. As shown in <FIG>, the rack gear <NUM> is translated forward to compress the trigger return spring <NUM>. As such, the activation force required by the user's finger to retract the trigger <NUM> from the fully-extended posture in <FIG> to the retracted posture in <FIG> is higher.

When the force-feedback motor <NUM> rotates in the counter-clockwise direction, the drive gear <NUM> rotates correspondingly and drives the rack gear <NUM> backwards to allow the trigger return spring <NUM> to expand and/or pivot the trigger <NUM> about the trigger axis <NUM> in a counter-clockwise direction. As shown in <FIG>, the rack gear <NUM> is translated backward to allow the trigger return spring <NUM> to expand. As such, the activation force required by the user's finger to retract the trigger <NUM> from the fully-extended posture in <FIG> to the retracted posture in <FIG> is lower.

The adjustable spring tension force-feedback assembly allows the trigger return tension/spring bias to be adjusted at a highly granular level to cater to the individual preferences of different users. Moreover, the trigger return tension may be adjusted in a manner that is power efficient, because the force-feedback motor only needs to be activated to drive the rack gear to maintain the desired position for the desired tension/spring. In this way, battery power consumption may be reduced. Although the force-feedback motor may be activated to provide other user-perceived force feedback effects as desired.

<FIG>, and <FIG> show an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a clutch <NUM>. The trigger <NUM> is configured to pivot about a trigger axis <NUM> of a mounting frame <NUM>. The mounting frame <NUM> may be incorporated into a housing of a user-input device to secure the trigger <NUM> in the user-input device. The trigger <NUM> pivots about the trigger axis <NUM> between a fully-extended posture shown in <FIG> and a fully-retracted posture shown in <FIG>. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>.

The trigger <NUM> includes a finger-interface portion <NUM> and a motor-interface portion <NUM> that opposes the finger-interface portion <NUM>. The motor-interface portion <NUM> includes a sector gear <NUM> configured to mesh with a smaller gear <NUM> (shown in <FIG>) of the clutch <NUM>. The clutch <NUM> further includes a larger gear <NUM> configured to mesh with a drive gear <NUM> of the force-feedback motor <NUM>. The drive gear <NUM> is fixed on an output shaft <NUM> of the force-feedback motor <NUM>. When the force-feedback motor <NUM> is activated, the output shaft <NUM> rotates the drive gear <NUM> that drives the larger gear of the clutch <NUM>.

The clutch <NUM> is configured to mechanically change engagement between the trigger <NUM> and the force-feedback motor <NUM>. When the force-feedback motor <NUM> is activated and the clutch <NUM> engages the force-feedback motor <NUM> with the trigger <NUM>, the force-feedback motor <NUM> drives the clutch <NUM>, and the clutch <NUM> drives the trigger <NUM> to adjust a user-perceived state (e.g., resistance, hard stop, vibration) of the trigger <NUM>. When the force-feedback motor <NUM> is activated and the clutch <NUM> disengages the force-feedback motor <NUM> from the trigger <NUM>, the force-feedback motor <NUM> drives the clutch <NUM>, and the clutch <NUM> does not drive the trigger <NUM>. When the force-feedback motor <NUM> is not activated and the clutch <NUM> disengages the force-feedback motor <NUM> from the trigger <NUM>, the clutch <NUM> lessens or mitigates a drag of the force-feedback motor <NUM> from the trigger <NUM>. In this way, the trigger <NUM> may pivot freely (with spring bias) without the force-feedback motor <NUM> affecting the motion response of the trigger <NUM>.

Note that although the clutch <NUM> may change engagement between the force-feedback motor <NUM> and the trigger <NUM>, the clutch <NUM> remains physically coupled to the force-feedback motor <NUM> and the trigger <NUM> via the larger and smaller gears of the clutch <NUM>.

The force-feedback motor <NUM> may be configured to rotate in a clockwise direction or a counter-clockwise direction. When the force-feedback motor <NUM> rotates in the clockwise direction and the clutch <NUM> is engaged, the drive gear <NUM> rotates correspondingly and drives the sector gear <NUM> to pivot the trigger <NUM> about the trigger axis <NUM> in a counter-clockwise direction. In this case, the trigger <NUM> pivots/retracts inward away from the fully-extended posture and toward the fully-retracted posture. When the force-feedback motor <NUM> rotates in the counter-clockwise direction and the clutch <NUM> is engaged, the drive gear <NUM> rotates correspondingly and drives the sector gear <NUM> to pivot the trigger <NUM> about the trigger axis <NUM> in a clockwise direction. In this case, the trigger <NUM> pivots/extends outward toward the fully-extended posture and away from the fully-retracted posture.

In some implementations, the clutch <NUM> may be a one-way clutch configured to disengage the trigger <NUM> from the force-feedback motor <NUM> when the trigger <NUM> pivots in a forward direction toward the fully-extended posture. The one-way clutch may automatically lessen or mitigate the drag of the force-feedback motor <NUM> from the trigger <NUM> whenever the user's finger lifts from the finger-interface portion <NUM> and/or reduces actuation force on the trigger <NUM> below a threshold actuation force. When the motor drag is lessened or mitigated from the trigger <NUM> by the clutch <NUM>, the trigger <NUM> pivots in the forward direction due to the forward bias of the trigger return spring <NUM> with less drag from the motor. In this way, the trigger <NUM> may have a fast response rate to return to the fully-extended posture.

<FIG> shows a cross-sectional view of an example one-way clutch <NUM> that may be implemented in a force-feedback trigger assembly, such as assembly <NUM> of <FIG>, and <FIG>. The one-way clutch <NUM> includes a larger gear <NUM> and a smaller gear <NUM> separated by an intermediate slip structure <NUM>. The slip structure <NUM> is fixed to the smaller gear <NUM> and selectively engages the larger gear <NUM>. A plurality of ball bearings <NUM> are arranged around a circumference of the slip structure <NUM>. In particular, each ball bearing <NUM> is situated in a corresponding cavity <NUM> formed in the slip structure <NUM>. Each ball bearing <NUM> is biased outward by an associated spring <NUM> that is positioned underneath the ball bearing <NUM> in the cavity <NUM> such that the ball bearing contacts the larger gear <NUM>.

According to this configuration, when the larger gear <NUM> rotates clockwise, the larger gear <NUM> traps the ball bearings <NUM> against a sidewall of the cavity <NUM> that causes the slip structure <NUM> and correspondingly the smaller gear <NUM> to remain fixed relative to the larger gear <NUM>. As such, the smaller gear <NUM> and the larger gear <NUM> may rotate clockwise together. When the larger gear <NUM> rotates counter-clockwise, the larger gear <NUM> presses the ball bearings <NUM> into an adjacent free space <NUM> in the cavity <NUM> such that the ball bearings do not engage the slip structure <NUM> with the larger gear <NUM>. As such, the larger gear <NUM> may rotate counter-clockwise, and the smaller gear <NUM> may remain still.

The one-way clutch <NUM> is provided as an example and is meant to be non-limiting. In other implementations, the one-way clutch may include rollers or gears instead of ball bearings. In a geared configuration, the springs may be omitted in favor of a planetary gear arrangement that forces floating planetary gears into the larger gear in order to engage the smaller gear with the larger gear.

In some implementations clutch <NUM> may be a slip clutch, rotary friction clutch, or breakaway clutch such that clutch <NUM> transfers torque between force feedback motor <NUM> and trigger <NUM> under normal operation, but if the torque exceeds a certain threshold the clutch slips and only the threshold torque, or no torque, is transferred until the torque drops below the threshold. In this way, the clutch protects force feedback motor <NUM>, trigger <NUM>, and any intermediate components by limiting the maximum force/torque that these components must bear - for example from the game controller being dropped on the trigger or being roughly handled by a user.

In some implementations, the clutch may be an active/electronic clutch configured to change engagement between the trigger and the force-feedback motor based on a control signal. For example, the control signal may be provided by a computing device in communication with the user-input device to adjust a user-perceived state of the trigger.

Clutch <NUM> may take any suitable form to engage and disengage force feedback motor <NUM> from trigger <NUM>. In one example implementation, an inner rotary portion of clutch <NUM> attaches to a shaft and an outer rotary portion of clutch <NUM> has gear teeth. Of the shaft and the gear, one interfaces with sector gear <NUM>, a rack gear that engages with trigger <NUM>, or an intermediate gear or belt and the other interfaces with the shaft of force feedback motor <NUM>, drive gear <NUM>, or an intermediate gear or belt. In one such implementation, drive gear <NUM> is composed of clutch <NUM> and the inner rotary portion of clutch <NUM> engages directly with the shaft of force feedback motor <NUM>. In another implementation, clutch <NUM> engages and disengages two rotatable shafts one of which interfaces to force feedback motor <NUM> and one of which interfaces to trigger <NUM>.

In one example implementation, clutch <NUM> is comprised of at least two gears one of which interfaces with force feedback motor <NUM> and one of which interfaces with trigger <NUM>. Clutch <NUM> engages and disengages force feedback motor <NUM> from trigger <NUM> by adjusting the relative position of the two gears by switching between a state in which the gear teeth interface and force feedback motor <NUM> and trigger <NUM> are engaged and a state in which the gear teeth do not interface and force feedback motor <NUM> and trigger <NUM> are disengaged. The gears may be switched between interfacing and not interfacing either by translating relative to each other along the axis of rotation of one of the gears or by translating relative to each other normal to the axis of rotation of one of the gears.

<FIG> show an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a sector gear <NUM> that moves separately from the trigger <NUM>. The trigger <NUM> is configured to pivot about a trigger axis <NUM> between a fully-extended posture and a fully-retracted posture. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>.

The sector gear <NUM> is configured to pivot about the trigger axis <NUM> separately from the trigger <NUM>. The sector gear <NUM> is configured to interface with the force-feedback motor <NUM> such that the force-feedback motor <NUM> can drive the user-actuatable trigger <NUM> via the sector gear <NUM> when the force-feedback motor <NUM> is activated. In particular, the sector gear <NUM> includes a plurality of gear teeth <NUM> arranged on an outer, convex side of the sector gear <NUM>. The plurality of gear teeth <NUM> are configured to mesh with a drive gear <NUM> of the force-feedback motor <NUM>. When the force-feedback motor <NUM> is activated, the drive gear <NUM> rotates and meshes with the gear teeth <NUM> of the sector gear <NUM> to drive the trigger <NUM>.

In the depicted implementation, the sector gear <NUM> is not locked against the trigger <NUM>, but may abut against the trigger as shown in <FIG>. In such implementations, the sector gear <NUM> may drive the trigger <NUM> only in the forward direction based on activation of the force-feedback motor <NUM>. In this way, the sector gear <NUM> can provide user-perceived resistance and return assistance to the trigger <NUM>. However, the sector gear <NUM> would be unable to retract/pivot the trigger <NUM> toward the fully-retracted posture without actuation force provided by the user's finger.

As shown in <FIG>, the force-feedback motor <NUM> may be configured to selectively drive the sector gear <NUM> to a position where the sector gear does not interface with the trigger <NUM> during any point in the pivot range of the trigger <NUM>. In other words, the sector gear <NUM> may be positioned to provide no force-feedback to the trigger <NUM> (and no drag from the motor/gears). Instead, the trigger <NUM> may be subject to the forward bias of a trigger return spring (when included) and the actuation force of the user's finger. Such a configuration may be preferred by some users that do not want force feedback from the trigger. This is one of many different settings that may be provided to cater to the individual preferences of different users.

<FIG> shows an example force-feedback trigger assembly <NUM> in which a trigger <NUM> interfaces with a force-feedback motor <NUM> via a sector gear <NUM> and an adjustable tension trigger return spring <NUM>. The trigger <NUM> is configured to pivot about a trigger axis <NUM>. The trigger <NUM> pivots about the trigger axis <NUM> between a fully-extended posture and a fully-retracted posture. The fully-extended posture and the fully-retracted posture define the boundaries of a pivot range or range of rotation of the trigger <NUM>.

The trigger return spring <NUM> is operatively intermediate the <NUM> trigger and the sector gear <NUM>. The trigger return spring <NUM> interfaces with the trigger <NUM> via a guided connection that allows the trigger <NUM> to move relative to the trigger return spring <NUM> within a designated range of movement. Such a guided connection allows the trigger <NUM> to pivot about the trigger axis <NUM> based on rotation of the sector gear <NUM> that drives the trigger <NUM>. The trigger <NUM> may be guidedly connected with the trigger return spring <NUM> in any suitable manner. In the illustrated example, the trigger <NUM> and the trigger return spring <NUM> collectively form a pin-in-slot mechanism <NUM> that guidedly connects the trigger <NUM> with the trigger return spring <NUM>.

The trigger return spring <NUM> is configured to forward bias the trigger <NUM> toward the fully-extended posture. A spring force applied to the trigger <NUM> by the trigger return spring <NUM> may be dynamically adjusted based on a position of the arched gear <NUM> that may be driven by the force-feedback motor <NUM>. For example, the force-feedback motor <NUM> may drive the sector gear <NUM> to pivot counter-clockwise away from the fully-extended posture of the trigger <NUM> that allows the trigger return spring <NUM> to expand, and thus reduces the spring force applied to the trigger <NUM>. On the other hand, the force-feedback motor <NUM> may drive the sector gear <NUM> to pivot clockwise, compresses the trigger return spring <NUM>, and thus increases the spring force applied to the trigger <NUM>.

The adjustable spring tension force-feedback assembly allows the trigger return tension/spring bias to be adjusted at a highly granular level to cater to the individual preferences of different users. Moreover, the trigger return tension may be adjusted in a manner that is power efficient, because the force-feedback motor only needs to be activated to maintain the desired position for the desired tension/spring. In this way, battery power consumption may be reduced. Although the force-feedback motor may be activated to provide other user-perceived force feedback effects as desired.

<NUM> shows an example trigger assembly <NUM> including a force sensor <NUM> configured to determine an actuation force applied to a trigger <NUM> by a user's finger. The trigger <NUM> is configured to pivot about a trigger axis <NUM> of a mounting frame <NUM>. The mounting frame <NUM> may be incorporated into a housing of a user-input device to secure the trigger <NUM> in the user-input device. The trigger <NUM> pivots about the trigger axis <NUM>. The trigger <NUM> includes a finger-interface portion <NUM> and a motor-interface portion <NUM> that opposes the finger-interface portion <NUM>. The motor-interface portion <NUM> includes a sector gear <NUM> configured to mesh with a drive gear <NUM> of a force-feedback motor <NUM>. The drive gear <NUM> is fixed on an output shaft <NUM> of the force-feedback motor <NUM>. When the force-feedback motor <NUM> is activated, the output shaft <NUM> rotates the drive gear <NUM> that drives the sector gear <NUM> to pivot the trigger <NUM>.

The force sensor <NUM> is operatively intermediate the finger-interface portion <NUM> and the motor-interface portion <NUM>. For example, the finger-interface portion <NUM> and the motor-interface portion <NUM> may collectively form a cavity <NUM> to hold the force sensor <NUM>. The finger-interface portion <NUM> may rotate separately from the motor-interface portion <NUM>. As such, when an actuation force is applied to the finger-interface portion <NUM> by a user's finger, the finger-interface portion <NUM> compresses the force sensor <NUM> against the motor-interface portion <NUM>, and the force sensor <NUM> determines the actuation force.

The force sensor <NUM> may take any suitable form. In some implementations, the force sensor <NUM> may include a strain gauge or deformable diaphragm that is used to determine force. In other implementations, the force sensor <NUM> may include a pair of capacitive plates that are configured to capacitively determine the actuation force based on a distance between the capacitive plates. In yet other implementations, piezo-electric material, an electro-active polymer, or a force-sensitive resistive material that electrically responds to pressure may be used.

Furthermore, in some implementations, the force sensor <NUM> may take other forms and may be positioned elsewhere in the force-feedback trigger assembly <NUM>. For example, the force sensor may include a torque gauge operatively intermediate the force-feedback motor <NUM> and the trigger <NUM>. In one example, the torque gage may be positioned on the output shaft <NUM> or an axle of an intermediate reduction gear when it is included in the assembly. In yet another example since generally the instantaneous torque output of an electric motor is proportional to its instantaneous current draw, the force sensor may include a current monitoring device configured to determine the actuation force based on a motor current of the force-feedback motor <NUM>.

In the force-feedback trigger assembly <NUM>, because the force-feedback motor <NUM> has a fixed gear relationship with the trigger <NUM>, a drag of the forced-feedback motor <NUM> and the intermediate gear train is applied to the trigger <NUM> when the motor <NUM> is not activated (e.g., being powered). This causes the trigger <NUM> to also have a slow return rate to the fully-extended posture when the user's finger reduces an actuation force applied to the finger-interface portion <NUM>. This also requires the user to press on the finger-interface portion <NUM> of the trigger <NUM> with a greater actuation force in order overcome the motor drag when actuating the trigger <NUM>.

By implementing the force sensor <NUM> in the trigger assembly <NUM>, the actuation force determined by the force sensor <NUM> may be used to recognize if the user is attempting to actuate or release the trigger <NUM>. This recognition allows the force-feedback motor <NUM> to be activated in a timely manner to pivot the trigger <NUM> in the forward direction toward the fully-extended posture. For example, the force-feedback motor may drive the trigger toward the fully-extended posture based on the actuation force becoming less than a threshold force. In this way, the fixed gear assembly <NUM> may provide a quick return rate of the trigger <NUM> to the fully-extended posture. Moreover, the actuation force determined by the force sensor <NUM> may be used to activate the force-feedback motor <NUM> to provide other real-time, force-feedback effects.

It will be appreciated that any of the features of the above described force-feedback trigger assemblies may be combined in other implementations.

The above described force-feedback trigger assemblies may enable a user-input device to adjust a user-perceived state of a trigger, and the adjustments may change over the course of a pivot range of the trigger. <FIG> show different example user-perceived trigger state profiles that may be enabled by the above described force-feedback trigger assemblies. <FIG> shows an example user-perceived resistance profile <NUM> for a user-actuatable trigger. The resistance profile <NUM> is plotted on a graph of trigger resistance versus distance of travel/pivot/rotation of the trigger. The resistance profile <NUM> characterizes a trigger resistance that is provided over the course of the entire pivot range of the trigger. The origin of the distance axis corresponds to the fully-extended posture of the trigger. In the illustrated example, as the trigger retracts away from the fully-extended posture and toward the fully-retracted posture at the other end of the pivot range, the resistance applied to the trigger to oppose the actuation force applied by the user's finger increases linearly until a designated posture <NUM>. Once the trigger reaches the designated posture <NUM>, the resistance decreases sharply in a leaner manner for the remainder of the pivot range until the trigger reaches the fully-retracted posture.

The resistance profile <NUM> may be enabled by activating the force-feedback motor based on a force-feedback signal that is provided by a computing device in communication with the user-input device. The force-feedback signal may be based at least on a posture of the trigger and/or an actuation force applied to the trigger by the user's finger. The posture of the trigger may be determined by a posture sensor of the user-input device and sent to the computing device. The actuation force may be determined by a force sensor of the user-input device and sent to the computing device.

The resistance profile <NUM> simulates a trigger pull of a real-world gun that may be simulated in a video game executed by the computing device. In particular, the posture <NUM> at which the resistance is greatest may correspond to a point in the trigger pull at which a hammer drops to fire the real-world gun. In other words, the resistance profile <NUM> mimics the "click" of a gun.

<FIG> shows another example user-perceived resistance profile <NUM> including a hard stop for a user-actuatable trigger. In this resistance profile, as the trigger retracts away from the fully-extended posture and toward the fully-retracted posture at the other end of the pivot range, the resistance applied to the trigger to oppose the actuation force applied by the user's finger increases linearly until a designated posture <NUM>. Once the trigger reaches the designated posture <NUM>, the resistance increases to a resistance that prevents the user from easily pulling the trigger any further toward the fully-retracted posture. In other words, a hard stop is created at the designated posture <NUM> that effectively shortens the pivot range of the trigger.

It will be appreciated that a hard stop may be created at any suitable posture within the pivot range of the trigger in order to create any desired trigger pull length. The shorter pivot range created by the resistance profile <NUM> may be desirable to a user to make it easier to rapidly fire a virtual weapon in a video game.

<FIG> shows an example user-perceived resistance and assistance profile <NUM> for a user-actuatable trigger. The resistance and assistance profile <NUM> is plotted on a graph of trigger resistance/assistance versus time. During a first period <NUM>, the trigger resistance provided by the force-feedback motor linearly increases to oppose the actuation force applied to the trigger by the user's finger. During a second period <NUM>, the trigger resistance provided by the force-feedback motor is reduced from a peak resistance down to zero resistance. The first and second periods collectively form a profile similar to the resistance profile <NUM> of <FIG>. During a third period <NUM>, it is recognized that the user's finger has been lifted from the trigger, and the trigger is assisted with an assistance force provided by the force-feedback motor to pivot the trigger forward until it reaches the fully-extended posture.

It will be appreciated that the above described profiles are provided as examples and are meant to be non-limiting. Any suitable resistance and/or assistance may be provided to adjust a user-perceived state of a trigger.

The above described force-feedback trigger assemblies may enable a user-input device to dynamically change a user-perceived state of a trigger in any suitable manner under any suitable conditions. <FIG> show different example scenarios in which a user-perceived resistance profile of a trigger is changed dynamically. <FIG> shows an example scenario in which a user-perceived resistance of a user-actuatable trigger is dynamically changed based on a parameter of a computing device. In this scenario, a user-input device <NUM> is in communication with a computing device <NUM>. The user-input device <NUM> sends trigger assembly state information to the computing device <NUM>, such as a trigger posture, an actuation force, and/or a detection of touch input to the trigger. The computing device <NUM> sends force-feedback signals to the user-input device <NUM>. The force feedback signals are used to control the force-feedback motor to provide the appropriate resistance/assistance to the trigger.

At time T1, the computing device <NUM> is operating in a first state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a first resistance profile <NUM>. The first resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the first state. The first resistance profile <NUM> specifies that a trigger resistance is constant across a pivot range of the trigger. For example, the first resistance profile <NUM> may be a default profile, and the first state of the computing device <NUM> may correspond to a state where a video game is not being executed, and the user is generically interacting with the computing device <NUM> via the user-input device <NUM>. In this case, the parameter of the computing device <NUM> specifies using the default profile.

At time T2, the computing device <NUM> is operating in a second state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a second resistance profile <NUM>. The second resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the second state. The second resistance profile <NUM> specifies that a trigger resistance increases linearly over the course of the pivot range until a designated posture at which the resistance decreases for the remainder of the pivot range. For example, the second resistance profile <NUM> may correspond to a trigger pull of a virtual semiautomatic weapon, and the second state of the computing device <NUM> may correspond to a state where a video game is being executed. In particular, the video game may be a first-person-shooter (FPS) video game in which a virtual avatar that is controlled by the user is holding a virtual semi-automatic weapon where a single bullet is fired each time the trigger of the user-input device <NUM> is pulled. In this case, the parameter of the computing device <NUM> is a video game parameter that specifies using the profile associated with the virtual semi-automatic weapon.

At time T3, the computing device <NUM> is operating in a third state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a third resistance profile <NUM>. The third resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the third state. The third resistance profile <NUM> specifies that the trigger vibrates or pulses while the trigger is in a designated region <NUM> of the pivot range. The trigger resistance increases linearly from the fully extended posture to the boundary of the designated region <NUM> at which point a stop is encountered. This simulates an initial "click" of the trigger. Further, while the trigger is in the designated region <NUM>, the trigger vibrates or pulses according to a vibration profile <NUM>. In particular, the force-feedback motor drives the trigger back and forth with alternating resistance and assistance forces based on the vibration profile <NUM>. For example, the third resistance profile <NUM> and the vibration profile <NUM> may correspond to a trigger pull of a virtual fully-automatic weapon. In this example, the trigger pulses or vibrates as long as the trigger remains in the designated region <NUM> of the pivot range and the computing device <NUM> specifies use of the vibration profile <NUM>. For example, the trigger may pulse until the user releases the trigger, the virtual fully-automatic weapon runs out of ammunition (or another parameter of the computing device changes). The third state of the computing device <NUM> may correspond to a state where the FPS video game is being executed. In particular, the game state of the video game may change, because the virtual avatar that is controlled by the user is holding a different virtual weapon having different force-feedback characteristics. In this case, the parameter of the computing device <NUM> is a video game parameter that specifies using the profile associated with the virtual fully-automatic weapon.

<FIG> shows an example scenario in which a hard stop of a user-actuatable trigger is dynamically changed based on a state of a computing device. In this scenario, a user-input device <NUM> is in communication with a computing device <NUM>. At time T1, the computing device <NUM> is operating in a first state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a first resistance profile <NUM>. The first resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the first state. The first resistance profile <NUM> specifies that a trigger resistance is constant across a pivot range of the trigger to allow the trigger to move through the entire pivot range. For example, the first resistance profile <NUM> may be a default profile, and the first state of the computing device <NUM> may correspond to a state where a video game is not being executed, and the user is generically interacting with the computing device <NUM> via the user-input device <NUM>. In this case, the parameter of the computing device <NUM> specifies using the default profile.

At time T2, the computing device <NUM> is operating in a second state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a second resistance profile <NUM>. The second resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the second state. The second resistance profile <NUM> specifies that a trigger has a hard stop at a first designated posture of the pivot range. For example, the second state of the computing device <NUM> may correspond to a state where the computing device <NUM> is executing a FPS video game in which a virtual avatar that is controlled by the user is holding a first virtual weapon, and the second resistance profile <NUM> corresponds to a trigger pull of the first virtual weapon. In this case, the parameter of the computing device <NUM> is a video game parameter that specifies using the profile associated with the first virtual weapon.

At time T3, the computing device <NUM> is operating in a third state, and the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a third resistance profile <NUM>. The third resistance profile <NUM> may be selected based on a parameter of the computing device <NUM> while operating in the third state. The third resistance profile <NUM> specifies that a trigger has a hard stop at a different designated posture than the second resistance profile <NUM>. For example, the third state of the computing device <NUM> may correspond to a state where the computing device <NUM> is executing the FPS video game and the virtual avatar is holding a second virtual weapon that is different than the first virtual weapon, and the third resistance profile <NUM> corresponds to a trigger pull of the second virtual weapon. In this case, the parameter of the computing device <NUM> is a video game parameter that specifies using the profile associated with the second virtual weapon.

<FIG> shows an example scenario in which a user-perceived resistance of a user-actuatable trigger is dynamically changed based on a change in user preference. In this scenario, a user-input device <NUM> is in communication with a computing device <NUM>. At time T <NUM>, the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a first resistance profile <NUM> that is based on a first user preference of a first user. The first resistance profile <NUM> specifies that a trigger resistance is constant across a pivot range of the trigger. The first resistance profile may be selected based on a user-preference parameter set by the first user.

At time T2, the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a second resistance profile <NUM> that is based on a second user preference of the first user. The second resistance profile <NUM> specifies that a resistance of the trigger increases linearly over the course of the pivot range of the trigger. The second resistance profile may be selected based on a user-preference parameter set by the first user.

The trigger resistance profile of the first user may automatically change based on the type of interaction the first user is having with the computing device <NUM>. For example, the first user may use the first resistance profile for a first video game, and the first user may user the second resistance profile for a second, different video game. In another example, the first user may use the first resistance profile for general computer interactions, such as navigating a website, and the first user may use the second resistance profile to play a video game.

At time T3, the computing device <NUM> sends force feedback signals to the user-input device <NUM> to control the trigger according to a third resistance profile <NUM> that is based on a first user preference of a second user different than the first user. The third resistance profile may be selected based on a user-preference parameter set by the second user. The third resistance profile <NUM> specifies that a trigger has a hard stop at a designated posture in the pivot range of the trigger. At time T3, the computing device <NUM> recognizes that a different user is using the user-input device <NUM> (e.g., the second user logs into the computing device), and automatically adjusts the resistance profile of the trigger based on the user preferences of the second, different user.

It will be appreciated that any suitable force-feedback characteristic of the trigger may be set and/or dynamically changed based on a user-preference parameter of a user. For example, a resistance, resistance profile, trigger tension, hard stop, and other force-feedback characteristics of a trigger may be set and/or dynamically changed based on user-preference parameters.

The above described scenarios are provided as examples and are meant to be non-limiting. A motor-driven, force-feedback trigger assembly may be controlled to dynamically adjust a user-perceived state of a trigger in any suitable manner based on any suitable conditions.

In an example, a user-input device comprises a user-actuatable trigger, a posture sensor configured to determine a posture of the user-actuatable trigger, a force sensor configured to determine an actuation force applied to the user-actuatable trigger, and a force-feedback motor operatively coupled to the user-actuatable trigger and configured to adjust a user-perceived state of the user-actuatable trigger based on at least the force feedback signal. In this example and/or another example, the user-actuatable trigger may include a finger-interface portion and a motor-interface portion, and the force sensor may be operatively intermediate the finger-interface portion and the motor-interface portion. In this example and/or another example, the force sensor may include a pair of capacitive plates configured to determine the actuation force based on a capacitance between the pair of capacitive plates. In this example and/or another example, the user-input device may further comprise a touch sensor configured to detect a finger touch on the user-actuatable trigger, the force-feedback signal may be determined based at least on the detected finger touch to dynamically change a user-perceived state of the user-actuatable trigger. In this example and/or another example, the force sensor may include a torque gauge operatively intermediate the force-feedback motor and the user-actuatable trigger. In this example and/or another example, the force sensor may include a current monitoring device configured to determine the actuation force based on a motor current of the force-feedback motor. In this example and/or another example, the force-feedback signal may be determined based at least on the actuation force. In this example and/or another example, the force-feedback motor may be configured to drive the user-actuatable trigger in a forward direction toward an extended posture based on the actuation force becoming less than a threshold force. In this example and/or another example, the force-feedback signal may be determined based at least on the posture of the user-actuatable trigger. In this example and/or another example, the force-feedback motor may be configured to drive the user-actuatable trigger to provide a user-perceived resistance based on the force-feedback signal. In this example and/or another example, the user-perceived resistance may include a hard stop at a designated posture within a pivot range of the user-actuatable trigger. In this example and/or another example, the user-perceived resistance may be configured to change according to a resistance profile for a pivot range of the user-actuatable trigger. In this example and/or another example, the user-input device may further comprise a communication subsystem communicatively coupled to a computing device and the force-feedback signal may be determined based at least on a parameter of the computing device to dynamically change the user-perceived resistance.

In an example, a user-input device comprises a user-actuatable trigger, a posture sensor configured to determine a position of the user-actuatable trigger, a force sensor configured to determine an actuation force applied to the user-actuatable trigger, a communication subsystem communicatively coupled to a computing device and configured to send the posture of the user-actuatable trigger to the computing device, send the actuation force to the computing device, receive from the computing device a force feedback signal, and a force-feedback motor operatively coupled to the user-actuatable trigger and configured to adjust a user-perceived resistance of the user-actuatable trigger based on at least the force feedback signal and a resistance profile. In this example and/or another example, the force-feedback motor may be configured to drive the user-actuatable trigger in a forward direction toward an extended posture based on the actuation force becoming less than a threshold force. In this example and/or another example, the user-perceived resistance may include a hard stop designated by the resistance profile. In this example and/or another example, the force-feedback signal may be determined based at least on a parameter of the computing device to dynamically change the user-perceived resistance. In this example and/or another example, the parameter of the computing device may be user-adjustable. In this example and/or another example, the parameter of the computing device may include a parameter of a video game executed by the computing device.

Claim 1:
A user-input device (<NUM>) comprising:
a user-actuatable trigger (<NUM>);
a posture sensor (<NUM>) configured to determine a posture of the user-actuatable trigger (<NUM>);
a force sensor (<NUM>) configured to determine an actuation force applied to the user-actuatable trigger (<NUM>); and
a force-feedback motor (<NUM>) operatively coupled to the user-actuatable trigger (<NUM>) and configured to selectively drive the user-actuatable trigger (<NUM>) based on at least a force feedback signal; wherein
the user-actuatable trigger includes a finger-interface portion and a motor-interface portion, and wherein the force sensor is operatively intermediate the finger-interface portion and the motor-interface portion.