A controller for use in a device which comprises at least two force sensors in a given arrangement, the controller operable, based on input sensor signals derived from the force sensors, to carry out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the force sensors in the device so that the output sensor signal is dependent on said arrangement.
|
1. A controller for use in a device which comprises at least two force sensors in a given arrangement, the controller operable, based on input sensor signals derived from the at least two force sensors, to carry out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the at least two force sensors in the device so that the output sensor signal is dependent on said arrangement,
wherein:
the arrangement-related operation is a crosstalk suppression operation; and
the output sensor signal of the crosstalk suppression operation corresponds to one input sensor signal of the at least two said input sensor signals of the crosstalk suppression operation and results from a subtraction from its corresponding input sensor signal of a fraction of another input sensor signal of the at least two said input sensor signals, that fraction associated with that pair of input sensor signals.
2. The controller as claimed in
the crosstalk suppression operation is configured to generate a plurality of output sensor signals of the crosstalk suppression operation which correspond to respective input sensor signals of the at least two said input sensor signals of the crosstalk suppression operation; and
each output sensor signal of the plurality of output sensor signals of the crosstalk suppression operation results from a subtraction from its corresponding input sensor signal of the crosstalk suppression operation of a fraction of an input sensor signal of the crosstalk suppression operation other than its corresponding input sensor signal, that fraction associated with that corresponding pair of input sensor signals.
3. The controller as claimed in
the crosstalk suppression operation is applied in respect of a given output sensor signal of the crosstalk suppression operation dependent on a magnitude of its corresponding input sensor signal exceeding a given threshold; or
the crosstalk suppression operation is configured in respect of the given output sensor signal of the crosstalk suppression operation to replace each fraction concerned with a zero-valued fraction when the magnitude of its corresponding input sensor signal does not exceed the given threshold.
4. The controller as claimed in
5. The controller as claimed in
the updating is at a rate defined by an above-threshold rate parameter when a magnitude of one or both of the associated pair of input sensor signals is above a threshold value; and/or
the updating is at a rate defined by a below-threshold rate parameter when a magnitude of one or both of the associated pair of input sensor signals is below a threshold value.
6. The controller as claimed in
the updating is controlled based on an optimization algorithm configured to find a minimum of an error function, the error function optionally defining the output sensor signal of the crosstalk suppression operation for the fraction concerned based on its corresponding input sensor signal of the crosstalk suppression operation, that fraction and another input sensor signal of the crosstalk suppression operation concerned,
optionally wherein the optimization algorithm is an iterative minimization algorithm such as a gradient descent algorithm.
7. The controller as claimed in
the crosstalk suppression operation is configured to generate a plurality of output sensor signals which correspond to respective input sensor signals of the at least two said input sensor signals of the crosstalk suppression operation, and the at least two input sensor signals of the localisation operation are at least two output sensor signals of the plurality of output sensor signals of the crosstalk suppression operation; or
the localisation operation is configured to generate a plurality of output sensor signals each based on a given weighting associated with at least two input sensor signals of the at least two input sensor signals of the localisation operation, and the at least two input sensor signals of the crosstalk suppression operation are at least two output sensor signals of the plurality of output sensor signals of the localisation operation.
8. The controller as claimed in
9. The controller as claimed in
the weighted combination is a weighted average or a weighted sum; and/or
each of the plurality of output sensor signals of the localisation operation is representative of a force applied at the location of interest concerned.
10. The controller as claimed in
11. The controller as claimed in
12. The controller as claimed in
the calculation comprises comparing the first ratio concerned with the second ratio concerned; and/or
each said output sensor signal of the localisation operation calculated as a function of the first ratio concerned and the second ratio concerned is representative of whether a force applied is applied at the location of interest concerned or how close a location at which that force is applied is to the location of interest concerned.
13. The controller as claimed in
15. The controller as claimed in
16. The controller as claimed in
17. The controller as claimed in
18. A device, comprising:
the at least two force sensors in the given arrangement; and
the controller of
|
The present disclosure relates in general to a controller for use in a device comprising force sensors. Such a device may be a portable electrical or electronic device.
The present disclosure extends to the device comprising the controller and to corresponding methods and computer programs.
Force sensors are known as possible input transducers for devices such as portable electrical or electronic devices, and can be used as alternatives to traditional mechanical switches. Such sensors detect forces on the device to determine user interaction, e.g. touches or presses of the device.
It is desirable to process the sensor signals originating from such force sensors in a convenient and useful manner.
According to a first aspect of the present disclosure, there is provided a controller for use in a device which comprises at least two force sensors in a given arrangement, the controller operable, based on input sensor signals derived from the force sensors, to carry out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the force sensors in the device so that the output sensor signal is dependent on said arrangement.
The arrangement of the force sensors in the device may be referred to as a topology of the device, and as such the arrangement-related operation may be referred to as a topology-dependent operation or a device-topology operation. The input sensor signals may be derived from the force sensors in the sense that they are produced by the force sensors or derived from signals produced by the force sensors. The input sensor signals may have a one-to-one relationship with the force sensors or a one-to-many relationship e.g. where they are generated based on a combination of sensor signals produced by the respective force sensors.
By generating the output sensor signal dependent on the arrangement of the force sensors in the device it is possible to take account of that arrangement, for example to compensate for the effect of the arrangement on the sensor signals or to generate a sensor signal which might be expected from a different arrangement or topology.
The arrangement-related operation may be a crosstalk suppression operation. In this regard, the output sensor signal of the crosstalk suppression operation may correspond to one of the input sensor signals of the crosstalk suppression operation and result from a subtraction from its corresponding input sensor signal of a fraction of another said input sensor signal, that fraction associated with that pair of input sensor signals.
In this way, the effect of mechanical crosstalk may be reduced or suppressed in the output sensor signal.
The crosstalk suppression operation may be configured to generate a plurality of output sensor signals of the crosstalk suppression operation which correspond to respective said input sensor signals of the crosstalk suppression operation. Each said output sensor signal of the crosstalk suppression operation may result from a subtraction from its corresponding input sensor signal of the crosstalk suppression operation of a fraction of a said input sensor signal of the crosstalk suppression operation other than its corresponding input sensor signal, that fraction associated with that pair of input sensor signals.
At least one said output sensor signal of the crosstalk suppression operation may result from a subtraction from its corresponding input sensor signal of respective fractions of respective said input sensor signals of the crosstalk suppression operation other than its corresponding input sensor signal, each respective fraction associated with a pair of those input sensor signals concerned.
Each fraction and its association with input sensor signals of the crosstalk suppression operation may be based on the arrangement of the force sensors in the device. Each fraction may be dependent on a distance, and/or mechanical interaction, between the force sensors from which its associated pair of input sensor signals of the crosstalk suppression operation originate. For each said subtraction of a said fraction of a said input sensor signal of the crosstalk suppression operation, an amount subtracted may be the product of that fraction and that input sensor signal.
Each fraction may have a value between a minimum fraction value, greater than or equal to 0, and a maximum fraction value, less than 1 and larger than the minimum fraction. The minimum fraction value may be 0 and the maximum fraction value may be between 0.2 and 0.6, optionally being 0.3.
The crosstalk suppression operation may be applied in respect of a given output sensor signal of the crosstalk suppression operation dependent on a magnitude of its corresponding input sensor signal exceeding a given threshold. The crosstalk suppression operation may be configured in respect of a given output sensor signal of the crosstalk suppression operation to replace each fraction concerned with a zero-valued fraction (i.e. zero) when a magnitude of its corresponding input sensor signal does not exceed the given threshold.
The controller may be configured to update a said fraction over time dependent on magnitudes or relative magnitudes of its associated pair of input sensor signals, optionally at a rate defined by a rate parameter. This may enable the fraction (and thus the crosstalk suppression operation) to be adaptive so that its performance tends to an optimum or target performance over time.
The updating may be at a rate defined by an above-threshold rate parameter when a magnitude of one or both of the associated pair of input sensor signals is above a threshold value. The updating may be at a rate defined by a below-threshold rate parameter when a magnitude of one or both of the associated pair of input sensor signals is below a threshold value. Such rate parameters may be different from one another.
The updating may be controlled based on an optimization or minimization algorithm. Such an algorithm may be configured to find a minimum of an error function, the error function optionally defining the output signal of the crosstalk suppression operation for the fraction concerned based on its corresponding input sensor signal of the crosstalk suppression operation, that fraction and the other said input sensor signal of the crosstalk suppression operation concerned. The algorithm may be an iterative minimization algorithm such as a gradient descent algorithm.
The controller may be configured to store initial and updated values of the fraction and/or estimate values for the fraction.
The fraction may have a constant or maintained value. That is, it may be desirable to not employ adaptive control of the crosstalk suppression operation in some cases.
The controller may be operable to carry out at least first and second different arrangement-related operations, the first arrangement-related operation being the crosstalk suppression operation and the second arrangement-related operation being a localisation operation. An output sensor signal of the localisation operation may be generated based on a given weighting associated with at least two input sensor signals of the localisation operation derived from the force sensors and defining a location of interest relative to locations of the force sensors so that the output signal of the localisation operation is representative of the location of interest.
As one possibility, the crosstalk suppression operation may be performed before the localisation operation. That is, the input sensor signals of the localisation operation may be output sensor signals of the crosstalk suppression operation where the crosstalk suppression operation is configured to generate a plurality of output sensor signals which correspond to respective input sensor signals of the crosstalk suppression operation.
As another possibility, the localisation operation may be performed before the crosstalk suppression operation. That is, the input sensor signals of the crosstalk suppression operation may be output sensor signals of the localisation operation where the localisation operation is configured to generate a plurality of output sensor signals each based on a given weighting associated with at least two input sensor signals of the localisation operation.
The controller may be configured to carry out a localisation operation without carrying out a crosstalk suppression operation. That is, the arrangement-related operation may be a localisation operation in which the output sensor signal is generated based on a given weighting associated with the at least two said input sensor signals and defining a location of interest relative to locations of the force sensors so that the output signal of the localisation operation is representative of the location of interest, the input sensor signals being input sensor signals of the localisation operation.
The localisation operation may be configured to generate a plurality of output sensor signals, each output sensor signal of the localisation operation being generated based on a given weighting associated with at least two said input sensor signals of the localisation operation and defining a location of interest relative to locations of the force sensors so that the output signal of the localisation operation concerned is representative of the location of interest concerned.
At least two output sensor signals of the localisation operation may be generated based on different given weightings and/or different input sensor signals of the localisation operation so that those output sensor signals are different from one another.
Each said output sensor signal of the localisation operation may result from a weighted combination of the at least two input sensor signals of the localisation operation concerned, the weighted combination weighted according to the given weighting concerned. The weighting may effectively provide location/directional information, so that an output sensor signal of the localisation operation is representative of a force sensed at a given location (which may be different from that of any of the force sensors).
The weighted combination may be a weighted average or a weighted sum. Each output sensor signal of the localisation operation may be representative of a force applied at the location of interest concerned. Each weighted average or weighted sum may comprise a sum of products, the products corresponding respectively to the input sensor signals of that weighted sum, and each product being the product of the input sensor signal of that product and a corresponding weight defined by the weighting concerned.
As one option, the localisation operation may comprise, in association with at least one of its output sensor signals, calculation of a further output sensor signal as a function of a first ratio of the input sensor signals concerned to one another and a second ratio defining the weighting concerned.
As another option, each output sensor signal of the localisation operation may be calculated as a function of a first ratio of magnitudes of the input sensor signals concerned to one another and a second ratio defining the weighting concerned.
The calculation may comprise comparing the first ratio concerned with the second ratio concerned. Each output sensor signal of the localisation operation calculated as a function of the first ratio concerned and the second ratio concerned may be representative of whether a force applied is applied at the location of interest concerned or how close a location at which that force is applied is to the location of interest concerned.
The calculation may comprise determining how close the first ratio concerned is to the second ratio concerned. The first and second ratios may be log ratios (i.e. ratios of log values). The calculation may comprise calculating values constrained between defined upper and lower values (such as 1 and 0) using a Gaussian function whose input parameters comprise the first and second ratios concerned. The Gaussian function may be an unnormalized Gaussian radial basis function.
Each weighting comprises a series of weights corresponding respectively to the input sensor signals concerned of the localisation operation. For each weighting its weights may be fractions which sum to 1 (e.g. 0.3 and 0.7).
Each said weighting may be based on the arrangement of the force sensors in the device and the location of interest concerned. Each said weighting may be dependent on locations of the force sensors in the device and the location of interest concerned.
The controller may be configured to store or access arrangement information defining the arrangement of the force sensors in the device, such as the relative locations of the force sensors. The controller may be configured to carry out the arrangement-related operation based on the arrangement information.
The controller may be configured to calculate each said output sensor signal based on the input sensor signals concerned and the arrangement information using matrix calculations, i.e. calculations operating on matrices. For example, the input sensor signals, output sensor signals, weights and factors may be presented in matrices.
The controller may be configured to determine a user touch event based on a said output sensor signal or based on a combination of two or more said output sensor signals.
According to a second aspect of the present disclosure, there is provided a device, comprising: at least two force sensors in a given arrangement; and the controller of the aforementioned first aspect, wherein the input sensor signals originate from the respective force sensors of the device.
The force sensors may be provided at different locations on the device. Each of the force sensors may comprise one or more of: a capacitive displacement sensor; an inductive force sensor; a strain gauge; a piezoelectric force sensor; a force sensing resistor; a piezoresistive force sensor; a thin film force sensor; and a quantum tunnelling composite-based force sensor.
The device may comprise one or more input/output components, wherein the controller is configured to control operation of at least one of the input/output components based on a said output sensor signal.
The device may be a portable electrical or electronic device such as a portable telephone or computer. Other example types of device are mentioned later.
According to a third aspect of the present disclosure, there is provided a controller for use in a device which comprises at least two force sensors, the controller operable, based on input sensor signals derived from the force sensors, to carry out a crosstalk suppression operation in which an output sensor signal is generated which corresponds to one of the input sensor signals and results from a subtraction from its corresponding input sensor signal of a fraction of another said input sensor signal.
According to a fourth aspect of the present disclosure, there is provided a controller for use in a device which comprises at least two force sensors, the controller operable, based on input sensor signals derived from the force sensors, to carry out a localisation operation in which an output sensor signal is generated based on a given weighting associated with at least two said input sensor signals and defining a location of interest relative to locations of those force sensors so that the output signal is representative of the location of interest.
According to a fifth aspect of the present disclosure, there is provided a controller for use in a device which comprises at least two sensors, the controller operable, based on input sensor signals derived from the sensors, to carry out a localisation operation in which an output sensor signal is generated based on a given weighting associated with at least two said input sensor signals and defining a location of interest relative to locations of those sensors so that the output signal is representative of the location of interest, wherein said output sensor signal is calculated as a function of a first ratio of magnitudes of the input sensor signals concerned to one another and a second ratio defining the weighting concerned, the function optionally configured so that the output sensor signal indicates how close the first ratio is to the second ratio.
According to a sixth aspect of the present disclosure, there is provided a method of controlling a device which comprises at least two force sensors in a given arrangement, the method comprising, based on input sensor signals derived from the force sensors, carrying out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the force sensors in the device so that the output sensor signal is dependent on said arrangement.
According to a seventh aspect of the present disclosure, there is provided a computer program which, when executed on a controller of a device which comprises at least two force sensors in a given arrangement, causes the controller, based on input sensor signals derived from the force sensors, to carry out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the force sensors in the device so that the output sensor signal is dependent on said arrangement.
Reference will now be made, by way of example only, to the accompanying drawings, of which:
As shown in
The enclosure 101 may comprise any suitable housing, casing, or other enclosure for housing the various components of device 100. Enclosure 101 may be constructed from plastic, metal, and/or any other suitable materials. In addition, enclosure 101 may be adapted (e.g., sized and shaped) such that device 100 is readily transported by a user (i.e. a person).
Controller 110 may be housed within enclosure 101 and may include any system, device, or apparatus configured to control functionality of the device 100, including any or all of the memory 120, the force sensors 130, and the I/O unit 140. Controller 110 may be implemented as digital or analogue circuitry, in hardware or in software running on a processor, or in any combination of these.
Thus controller 110 may include any system, device, or apparatus configured to interpret and/or execute program instructions or code and/or process data, and may include, without limitation a processor, microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), FPGA (Field Programmable Gate Array) or any other digital or analogue circuitry configured to interpret and/or execute program instructions and/or process data. Thus the code may comprise program code or microcode or, for example, code for setting up or controlling an ASIC or FPGA. The code may also comprise code for dynamically configuring re-configurable apparatus such as re-programmable logic gate arrays. Similarly, the code may comprise code for a hardware description language such as Verilog™ or VHDL. As the skilled person will appreciate, the code may be distributed between a plurality of coupled components in communication with one another. Where appropriate, such aspects may also be implemented using code running on a field-(re)programmable analogue array or similar device in order to configure analogue hardware. Processor control code for execution by the controller 110, may be provided on a non-volatile carrier medium such as a disk, CD- or DVD-ROM, programmed memory such as read only memory (Firmware), or on a data carrier such as an optical or electrical signal carrier. The controller 110 may be referred to as control circuitry and may be provided as, or as part of, an integrated circuit such as an IC chip.
Memory 120 may be housed within enclosure 101, may be communicatively coupled to controller 110, and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). In some embodiments, controller 110 interprets and/or executes program instructions and/or processes data stored in memory 120 and/or other computer-readable media accessible to controller 110.
The force sensors 130 may be housed within, be located on or form part of the enclosure 101, and may be communicatively coupled to the controller 110. Each force sensor 130 may include any suitable system, device, or apparatus for sensing a force, a pressure, or a touch (e.g., an interaction with a human finger) and for generating an electrical or electronic signal in response to such force, pressure, or touch. Example force sensors 130 include or comprise capacitive displacement sensors, inductive force sensors, strain gauges, piezoelectric force sensors, force sensing resistors, piezoresistive force sensors, thin film force sensors and quantum tunnelling composite-based force sensors. In some arrangements, other types of sensor may be employed.
In some arrangements, the electrical or electronic signal generated by a force sensor 130 may be a function of a magnitude of the force, pressure, or touch applied to the force sensor. Such electronic or electrical signal may comprise a general purpose input/output signal (GPIO) associated with an input signal in response to which the controller 110 controls some functionality of the device 100. The term “force” as used herein may refer not only to force, but to physical quantities indicative of force or analogous to force such as, but not limited to, pressure and touch.
The I/O unit 140 may be housed within enclosure 101, may be distributed across the device 100 (i.e. it may represent a plurality of units) and may be communicatively coupled to the controller 110. Although not specifically shown in
As a convenient example to keep in mind, the device 100 may be a haptic-enabled device. As is well known, haptic technology recreates the sense of touch by applying forces, vibrations, or motions to a user. The device 100 for example may be considered a haptic-enabled device (a device enabled with haptic technology) where its force sensors 130 (input transducers) measure forces exerted by the user on a user interface (such as a button or touchscreen on a mobile telephone or tablet computer), and an LRA or other output transducer of the I/O unit 140 applies forces directly or indirectly (e.g. via a touchscreen) to the user, e.g. to give haptic feedback. Some aspects of the present disclosure, for example the controller 110 and/or the force sensors 130, may be arranged as part of a haptic circuit, for instance a haptic circuit which may be provided in the device 100. A circuit or circuitry embodying aspects of the present disclosure (such as the controller 110) may be implemented (at least in part) as an integrated circuit (IC), for example on an IC chip. One or more input or output transducers (such as the force sensors 130 or an LRA) may be connected to the integrated circuit in use.
Of course, this application to haptic technology is just one example application of the device 100 comprising the plurality of force sensors 130. The force sensors 130 may simply serve as generic input transducers to provide input (sensor) signals to control other aspects of the device 100, such as a GUI (graphical user interface) displayed on a touchscreen of the I/O unit 140 or an operational state of the device 100 (such as waking components from a low-power “sleep” state).
The device 100 is shown comprising four force sensors 130, labelled s1, s2, s3 and s4, with their signals labelled S1, S2, S3, and S4, respectively. However, it will be understood that the device 100 generally need only comprise a pair of (i.e. at least two) force sensors 130 in connection with the techniques described herein, for example any pair of the sensors s1 to s4. Example pairs comprise s1 and s2, s1 and s3, s1 and s4, s2 and s4, s2 and s3, and s3 and s4. The four force sensors 130 s1 to s4 are shown for ready understanding of a particular arrangement described later. Of course, the device 100 may comprise more than four force sensors 130, such as additional sensors s5 to s8 arranged in a similar way to sensors s1 to s4 but in another area of the device 100.
Although
Thus, the force sensors s1 to s4 may be located on the device according to anthropometric measurements of a human hand. For example, where there is only a pair of force sensors 130, they may be provided on the same side (e.g. s1 and s2) of the device 100. It will be understood that the force sensors 130 are provided at different locations on the device, but may be in close proximity to one another.
For example, as suggested schematically in
In overview, the controller 110 is operable, based on input sensor signals S1 to S4 which originate (stem or are derived or received) from the respective force sensors s1 to s4, to carry out an arrangement-related operation in which an output sensor signal is generated based on at least two said input sensor signals and the arrangement of the force sensors 130 in the device 100.
That is, the output sensor signal will be dependent to an extent on the arrangement of the force sensors 130 in the device 100, and may be considered characterised by or influenced by that arrangement. Such an arrangement may include any of the location of the force sensors 130 in the device 100, the physical or mechanical coupling of them to one another and to the exterior enclosure 101, their orientation relative to one another and the enclosure 101, etc. In this regard, the arrangement of the force sensors 130 in the device 100 will determine or affect (at least to an extent) how a given user force input (applied at a given location) is represented in the input sensor signals. For example, the location of the force sensors 130 in the device 100, including any mechanical interaction between them, will have an effect on the input sensor signals. Thus, information concerning or defining this arrangement may be used to generate an output sensor signal which is dependent on the arrangement. An arrangement-related operation may be considered a device-arrangement operation, or an adjustment operation or a signal conditioning or profiling operation.
One example arrangement-related operation may be referred to as a crosstalk suppression operation. Considering
In the present example, as indicated in
To compensate for the distortion suffered in input sensor signal 1, a compensated input sensor signal S1′ could be calculated according to the following equation:
S1′=S1−0.3*S2
In this way, the effect of the mechanical crosstalk is substantially cancelled in the compensated input sensor signal S1′ (which corresponds to the input sensor signal S1) providing that the factor 0.3 is correct, or at least suppressed if the factor 0.3 is not perfect or if simply applying such subtraction does not give perfect cancellation. The cancellation mechanism here is to subtract from the pre-compensated input sensor signal (leakage target) the relevant fraction or proportion or part of the input sensor signal (leakage source) which is causing the distortion. Similar examples could of course be given to produce compensated input sensor signals S3′ and S4′, corresponding to input sensor signals S3 and S4, respectively.
Another example arrangement-related operation may be referred to as a localisation operation. Considering
For example, that virtual force sensor 130v may be equated with a virtual button provided at that location of interest, so that a force determined to be applied at that location is assessed (e.g. compared to a threshold) to determine whether a button press of that virtual button should be deemed to have occurred.
It is assumed in
VS=0.5*S1+0.5*S2
Of course, the virtual force sensor vs is not real, and thus could be defined as located between the force sensors s1 and s2 (e.g. closer to force sensor s1 than s2) so that the virtual input sensor signal VS has unequal contributions from the forces picked up at the force sensors s1 and s2. In such a case, the virtual input sensor signal VS (as an output sensor signal of the operation) corresponding to the virtual force sensor vs may be obtained by applying unequal weights to the input sensor signals S1 and S2, such as according to the following equation:
VS=0.7*S1+0.3*S2
For simplicity, it may be helpful when generating a virtual input sensor signal VS by applying factors to a plurality of input sensor signals (i.e. two or more) to express those weights such that they sum to 1 (e.g. 0.5+0.5=1, and 0.7+0.3=1) or as percentages (e.g. 50%/50%, or 70%/30%).
These possible arrangement-related operations are dependent at least to an extent on the arrangement of the force sensors 130 in the device 100, and relate in particular to how the input sensor signals are handled in the controller 110 based on that arrangement. The skilled person will accordingly recognise that aspects of the arrangement-related operations disclosed herein (and associated methods) may be embodied within the controller 110 itself based on the input sensor signals it receives. As such, the controller 110 itself and the methods it carries out may embody the present invention.
In
The input sensor signals and the compensated input sensor signals may be considered generally as input sensor signals which originate from respective force sensors 130, i.e. are based on or result from the forces detected at those force sensors 130. For example, the signals S1 and S1′ may be considered to originate from the force sensor s1, the signals S2 and S2′ from the force sensor s2, and so on and so forth.
In
In
In
Thus, it will be appreciated that the input sensor signals of the CS operation may have a one-to-one relationship with the force sensors 130 (see
The input sensor signals shown in
The crosstalk suppression and localisation operations will now be considered in more detail in turn.
Starting with the crosstalk suppression operation, and by way of recap, the device 100 may be considered to comprise at least two force sensors 130, for example s1 and s2 in
Looking for example at
In this context, the fraction may be considered associated with the pair of input sensor signals concerned. In the example of
S1′=S1−0.3*S2
S2′=S2−0.3*S1
It is recalled that the input sensor signals of the crosstalk suppression operation may be output signals of the localisation operation, and this will be kept in mind although for simplicity the signal notation S1, S2 (relating to the force sensors s1, s2) will be used here.
Using x for input sensor signals and y for output sensor signals for a given operation, and assuming that the input and output sensor signals are digital signals comprising a series of samples where n is the sample number, the above equation for S2′ may be presented in the form:
y2(n)=x2(n)−c12*x1(n)
Here, y2(n) corresponds to S2′, x2(n) corresponds to S2 and x1(n) corresponds to S1. Further, y2 and x2 may be referred to as channel 2 signals since they originate from sensor s2, and x1 may similarly be referred to as a channel 1 signal since it originates from sensor s1. Again, recall that the channels may relate to virtual buttons rather than to individual sensors.
Here, c12 is the correlation factor defining the crosstalk from channel 1 to channel 2, and is 0.3 in the example above. Similarly, c21 would be the correlation factor defining the crosstalk from channel 2 to channel 1. This notation and terminology will be carried forwards.
A given correlation factor such as c12 may differ from device to device, dependent on the arrangement of the force sensors 130. Even in devices 100 apparently of the same type, tolerances in manufacture may lead to differences in correlation factor between those devices 100. Indeed, it will become apparent that a given correlation factor such as c12 may vary over time in a given device 100, for example due to aging or temperature changes or in an iteration process towards an improved value.
In the context of the crosstalk suppression operation generating a plurality of output sensor signals which correspond to respective input sensor signals, those output sensor signals could thus be represented in the context of
y1(n)=x1(n)−c21*x2(n)
y2(n)=x2(n)−c12*x1(n)
Each output sensor signal results from a subtraction from its corresponding input sensor signal of a fraction (determined by the correlation factor concerned) of an input sensor signal other than its corresponding input sensor signal, that fraction associated with that pair of input sensor signals.
More generally, there could be more than two input sensor signals contributing to a single output sensor signal. For example, where there are three channels 1 to 3 (corresponding to force sensors s1 to s3, respectively), channel 2 may suffer crosstalk from channel s1 and 3 and the crosstalk suppression operation may serve to address this with the output sensor signal for channel 2 represented as:
y2(n)=x2(n)−[c12*x1(n)+c32*x3(n)]
Thus, at least one output sensor signal may result from a subtraction from its corresponding input sensor signal of respective fractions (determined by respective correlation factors) of respective input sensor signals other than its corresponding input sensor signal, each respective fraction associated with a pair of input sensor signals concerned.
The general idea is thus to suppress the contribution (crosstalk) from one force sensor 130 to another (e.g. adjacent) force sensor 130, or from one virtual button to another. This may improve the quality or accuracy of the output sensor signals (i.e. in which the crosstalk has been suppressed) as compared to their corresponding input sensor signals (i.e. in which the crosstalk has not yet been suppressed), and in some cases avoid false triggering of an action or event or state under control by the controller 110.
Generalising the crosstalk suppression operation to be used in a device 100 having N force sensors 130 producing N respective channels, the aim of the crosstalk suppression operation could be summarised as being to obtain the vector y(n)=[y1(n), y2(n) . . . yN(n)] which has crosstalk between (e.g. adjacent) force sensors suppressed given the input sensor signals x(n)=[x1(n), x2(n) . . . xN(n)] in an N-channel configuration.
As above, the correlation factors (fractions) and their association with input sensor signals are based on the arrangement of the force sensors 130 in the device 100. For example, each correlation factor may be dependent on a distance, and/or mechanical interaction, between the force sensors 130 from which its associated pair of input sensor signals originate (or between the virtual buttons from which its associated pair of input sensor signals originate).
In practice, the correlation factors may have values between a minimum fraction value, greater than or equal to 0, and a maximum fraction value, less than or equal to 1 and larger than the minimum fraction value. The minimum fraction value may be 0 (indicating no crosstalk) and the maximum fraction value may be between 0.2 and 0.6 (indicating the maximum leakage expected, i.e. percentage of signal transferred to adjacent force sensors). In practical embodiments, a suitable maximum fraction value may be 0.3. That is, the leakage will likely be limited in practice.
It was mentioned earlier that it may be necessary to update or change the correlation factors over time (as an alternative to maintaining fixed, predetermined or set, values), e.g. to take account of changing conditions (such as aging or temperature changes) or to iterate towards a value better or even best representative of the true crosstalk.
This will now be considered further taking the channel 2 output signal y2(n) as an example, where (as mentioned earlier):
y2(n)=x2(−c12*x1(n)
One approach considered is to use running values of the input and output sensor signals to determine the correlation factor c12, based on the following minimization:
where E[ ] is the expected value and the minimization finds the value of the argument c12 that minimizes the objective function E[y2(n)2].
Applying gradient descent to minimize to find this minimum leads to the following correlation factor update expression:
Here the symbol μ (mu) defines a learning rate to adapt the correlation factor c12. This adaptation of the correlation factor c12 may for example be applied only where a magnitude of the input sensor signal x2(n) is above a threshold TH, so that it is likely that a user force input was intended in respect of the signal x2 (e.g. to avoid updating the correlation factor c12 based on noise).
The updating is thus controlled here based on an optimization (minimization) algorithm configured to find a minimum of an error function. Here y2(n)2 may be considered an error function for example assuming that a user force input was applied only at sensor s1. The example optimization algorithm provided here is an iterative minimization algorithm, in particular a gradient descent algorithm.
A constraint may be applied to this correlation factor c12 such that it doesn't exceed a given maximum fractional value (maxCorr) as mentioned earlier, such as 0.3, because it is not expected that all the energy would leak from one force sensor to another. A further constraint may be applied to such that it doesn't fall below a given minimum fractional value, such as 0 so that it does not become negative. Such constraints may be applied to provide update expressions as follows:
c12(n+1)=min(maxCorr,c12)n+1))
c12(n+1)=max(0,c12(n+1))
Generalizing the previous example based on y2(n) to an N-channel configuration leads to the following set of equations expressed using matrices:
where x, y and 1 are 1×N matrices, and C, X and M are N×N matrices, and ∘ and Ø are the Hadamard (element-wise) product and division. The matrix C is a correlation matrix containing the correlation factors for corresponding pairs of channels. The matrix M is a correlation mask matrix containing either 0 or 1 to indicate pairs of channels where crosstalk is likely to happen. For example, the element m12 in the matrix M signifies whether it is desired to estimate the crosstalk from channel 1 to channel 2 in an adaptive manner. The symbol epsilon is a bias value.
As with the example for y2(n) above, the equation (2) might only be applied on those channels where the input sensor signal from which crosstalk is to be removed is greater than a threshold TH. For example, it could be that no crosstalk suppression is applied on those channels where the input sensor signal from which crosstalk is to be removed is less than the threshold TH.
As another option, when the input sensor signal from which crosstalk is to be removed is below this threshold TH then the equation (2) could be replaced by:
C(n+1)=C(n)−μdC(n)=C(n)·(1−μd) (3)
wherein symbol μd defines another learning rate (or, in this case, a decay rate) to adapt the correlation factors of the matrix C.
Combining the two situations (above and below the threshold TH), leads to the update expression:
C(n+1)=W∘(C(n)+2μ(XMT−C(n)∘XM)Ø(xT(n)·{right arrow over (I)}+ε))+(1−W)∘(C(n)·(1−μd))
where the N×N matrix W has the nth row equal to 1 if the amplitude of x(n)>TH and 0 otherwise.
Accordingly, each fraction (correlation factor) may be updated over time dependent on magnitudes or relative magnitudes of its associated pair of input sensor signals. For example, each fraction may be adapted at a first rate when a magnitude of one or both of its associated pair of input sensor signals is above a threshold value TH. It may also be that crosstalk suppression is applied only when a magnitude of one or both of an associated pair of input sensor signals is above a threshold value. As another example, each fraction may be adapted over time (e.g. decreased down to the minimum fractional value) at a second rate when a magnitude of one or both of its associated pair of input sensor signals is below the threshold value TH. It will be appreciated that the controller 110 may be configured to store initial and updated values of each said fraction, for example in internal registers or in the memory 120.
It will be appreciated that the above equations could be implemented in software, for example in an iterative manner (e.g. channel-by-channel) to avoid the complexity of handling matrices. The equations may be applied in this way individually for each sample of each channel, i.e. for each value of n, first process x1(n), then x2(n) and so on and so forth. One possible implementation may omit applying the learning rate μd to adapt the correlation factors when the input sensor signals are below the threshold value TH.
It is also assumed that the interaction between the force sensors is such as to have a corresponding mask matrix M:
Thus, the relevant correlation factors are c21, c12, c43 and c34.
The input sensor signals correspond to an example where firstly a single press is carried out on Channel 2 (from sample 1800 to 3500), secondly a single press is carried out on Channel 1 AND Channel 2 (from sample 5000 to 7520), and thirdly a single press is carried out on Channel 1 AND Channel 2 AND Channel 3 (from sample 9400 to 13000).
For
In each case, the uppermost plot shows the output sensor signals y1(n) to y4(n) as if no crosstalk suppression (AdSS) is performed so that the output sensor signals y1(n) to y4(n) are the same as the input sensor signals x1(n) to x4(n), respectively. The plot shows the output sensor signals y1(n) to y4(n) as if crosstalk suppression (AdSS) is performed. The lowermost plot shows the values of the correlation factors (elements) used in connection with the middle plot.
Thus, the relevant correlation factors are thus c21, c12, c32, c23, c43 and c34.
For
For
In each case, the uppermost plot shows the output sensor signals y1(n) to y4(n) as if no crosstalk suppression (AdSS) is performed so that the output sensor signals y1(n) to y4(n) are the same as the input sensor signals x1(n) to x4(n), respectively. The middle plot shows the output sensor signals y1(n) to y4(n) as if crosstalk suppression (AdSS) is performed. The lowermost plot shows the values of the correlation factors (elements) used in connection with the middle plot.
In each of
Moving now to the localisation operation, and by way of recap, the device 100 may be considered to comprise at least two force sensors 130, for example s1 and s2 in
Here the weighting effectively defines a location of interest (i.e. the location of the virtual sensor vs) relative to locations of the force sensors s1 and s2 so that the output signal of the localisation operation is representative of the location of interest. It will become apparent that the output signal of the localisation operation may be representative of a force applied at the location of interest, i.e. may correspond to the virtual input sensor signal VS in
As in
VS=0.5*S1+0.5*S2
Such a virtual input sensor signal VS may correspond to a virtual force sensor vs (location of interest) located equidistant between the force sensors s1 and s2, or at least so that the user force input concerned has equal effect at the force sensors s1 and s2, hence the applied weights 0.5 and 0.5 as above. The given weighting here may be expressed as 0.5:0.5 or 50%:50% for example, whereby the weights are effectively fractions which sum to 1.
Of course, the localisation operation may be configured to generate a plurality of output sensor signals, each output sensor signal being generated based on a given weighting associated with at least two input sensor signals of the localisation operation. For example, a first virtual input sensor signal VS1 and a second virtual input sensor signal VS2 could be generated according to the following equations:
VS1=0.5*S1+0.5*S2
VS2=0.7*S1+0.3*S2
Such virtual input sensor signals VS1 and VS2 may correspond to virtual force sensors vs1 and vs2 (locations of interest) located in different places relative to force sensors s1 and s2, as indicated by the different weightings 0.5:0.5 and 0.7:0.3.
As another example, there may be more than two force sensors 130 such as force sensors s1 to s3 or s1 to s4 as in
VS1=0.5*S1+0.5*S2
VS2=0.7*S1+0.3*S3
VS3=0.5*S2+0.5*S3
Such virtual input sensor signals (as output sensor signals of the operation) may correspond to virtual force sensors vs1, vs2 and vs3 (locations of interest) located in different places, as indicated by the different weightings and/or different input sensor signals employed.
As another example, the localisation operation may be configured to generate at least one output sensor signal based on a given weighting associated with three or more input sensor signals of the localisation operation. For example, a fourth virtual input sensor signal VS4 could be generated according to the following equation:
VS4=0.5*S1+0.3*S2+0.2*S3
Such a virtual input sensor signal VS4 may correspond to a virtual force sensor vs4 (location of interest) located relative to the force sensors s1, s2 and s3. A ratio defining the ratio here may be expressed e.g. as 0.5:0.3:0.2.
The above virtual input sensor signals (output sensor signals of the localisation operation) result from a weighted combination of the at least two input sensor signals of the localisation operation concerned, the weighted combination weighted according to the given weighting concerned. The weighted combination may be considered a weighted average or a weighted sum (having the weights as fractions which sum to 1 enables a weighted average to be conveniently expressed as a weighted sum). As can be seen above, each weighted average or weighted sum comprises a sum of products, the products corresponding respectively to the input sensor signals of that sum. Each product is the product of the input sensor signal of that product and a corresponding weight defined by the weighting concerned.
Using x for input sensor signals and y for output sensor signals for a given operation (as earlier), and assuming that the input and output sensor signals are digital signals comprising a series of samples where n is the sample number, the above equation for VS1 may be presented in the form:
y1(n)=w11*x1(n)+w21*x2(n)
Here, y1(n) corresponds to VS1, x1(n) corresponds to S1, and x2(n) corresponds to S2. Further, x1 and x2 may be referred to as channel 1 and 2 signals since they originate from force sensors s1 and s2, respectively. Here, w11 is the weight defining the contribution from channel 1 to output signal 1, and is 0.5 in the VS1 example above. Similarly, w21 is the weight defining the contribution from channel 2 to output signal 1, and is also 0.5 in the VS1 example above. This notation and terminology will be carried forwards.
Generalizing the previous example based on y1(n) to an N-channel configuration leads to the following set of equations expressed using matrices:
y(n)=x(n)×S2B
where the matrix y(n) is a 1×M matrix and corresponds to M output sensor signals, matrix x(n) is a 1×N matrix and corresponds to N input sensor signals or channels, and matrix S2B is a N×M matrix and provides the weighting mapping from the N input sensor signals to the M output sensor signals. These matrices may thus be defined:
In an example mapping of 4 force sensors (N=4) to 2 virtual force sensors (M=2), the mapping matrix S2B may look like:
It will be recalled that the virtual force sensors (locations of interest) may be equated with virtual buttons, hence S2B may be interpreted as “Sensor-to-Button”. Here, absent uneven mechanical interactions between the force sensors s1 to s4, the weighting appears to locate the first virtual button halfway between force sensors s1 and s2, and the second virtual button halfway between force sensors s3 and s4.
The position of the virtual buttons (virtual force sensors) can accordingly be readily controlled by controlling the weightings, as expressed in the S2B matrix. A weighting applied in the weighted average or sum used to calculate the output sensor signals y(n) for a given virtual button can be controlled to steer that virtual button (location of interest) closer to the location of a given (actual) force sensor 130 by increasing the corresponding weight applied to its input sensor signal (assuming for example that the total of the weights in that weighting remains the same). For example, the following S2B matrix, as compared to the previous one, would steer the location of the first virtual button (location of interest) closer to the force sensor s1 than force sensor s2.
As mentioned earlier, an alternative or additional type of output sensor signal of the localisation operation may be representative of whether a force applied is applied at the location of interest concerned or how close a location at which that force is applied is to the location of interest concerned. Such an output sensor signal may be referred to as a confidence-measure output sensor signal, whereas the output sensor signals of the localisation operation described thus far (representative of a force applied at the location of interest concerned) may be considered weighted-combination output sensor signals.
Such a confidence-measure output sensor signal (or simply, confidence measure) may also be based on a given weighting associated with at least two said input sensor signals, similarly to the weighted-combination output sensor signals. However, a confidence-measure output sensor signal may more readily provide an indication of how close (in terms of location) a given user force input is to the maximum sensitivity (location) mapped by the weighting concerned.
Such a confidence-measure output sensor signal may be calculated as function of a first ratio of magnitudes of the input sensor signals concerned to one another and a second ratio defining the weighting concerned. For example, for a given virtual force sensor or virtual button (defined by a weighting and associated input sensor signals), the first and second ratios concerned may be compared with one another to generate the confidence-measure output sensor signal. The confidence-measure output sensor signal may then indicate how close the first and second ratios concerned are to one another.
In one possible implementation, the first and second ratios may be log ratios. Further, the calculation of the confidence-measure output sensor signal may comprise calculating values constrained between defined upper and lower values (such as 1 and 0) using a Gaussian function whose input parameters comprise the first and second ratios concerned.
An example will now be considered in which the Gaussian function is an unnormalized Gaussian radial basis function. The example comprises two main steps, and will consider the following example weight mapping matrix S2B between input sensor signals x1(n) to x4(n) and output sensor signals y1(n) and y2(n) (generated by weighted averages or sums) as described earlier, i.e. where two input sensor signals are used to generate one output sensor signal.
In a first step, a log ratio γ(n) is calculated as follows:
where s1(n) and s2(n) are the first and second source signals for the mapping concerned. In the present mapping, for y1(n), s1(n)=x1(n) and s2(n)=x2(n), and for y2(n), s1(n)=x3(n) and s2(n)=x4(n). The parameter eps (epsilon) is a bias value.
In a second step, the log ratio α(n) is mapped to a constrained (confidence) value from 0 to 1 using an unnormalized Gaussian radial basis function:
where μ and σ are the mean and standard variation of the unnormalized Gaussian radial basis function. The parameter μ may be a user defined parameter. The parameter a however is derived from the active rows of the S2B matrix (corresponding to the input sensor signals concerned) for a given column (corresponding to the output sensor signal concerned). For example, in the present S B matrix example:
For y1(n):
μ=log 10(S2B(1,1)/S2B(2,1))=log 10(0.5/0.5)=0
For y2(n):
μ=log 10(S2B(3,2)/S2B(4,2))=log 10(0.5/0.5)=0
Using the log ratio instead of a simple ratio helps to enforce symmetry around the maximum sensitivity (location) of the weighting mapping, i.e. so the proportions at each side of this point are mapped to the same confidence value.
Of course, a combination (or either) of the signals of the middle and bottom plots may be used to control the controller 110 as mentioned earlier, e.g. to determine whether a touch event has occurred. It will be appreciated that either of both of the weighted average/sum output sensor signals and the confidence-measure output sensor signals could be generated, depending on the application.
It will be appreciated that the above arrangement-related operations are example operations which are dependent to an extent on the arrangement of the force sensor 130 in the device 100. In order to carry out the operations, the controller 110 may be configured to store (e.g. in internal registers) or access (e.g. from memory 120) arrangement information defining the arrangement of the force sensors in the device 100, such as the relative locations of the force sensors, so as to carry out the arrangement-related operation based on the arrangement information. For example, such arrangement information may comprise the various correlation factors, weightings, weights and/or mappings described above, any of which may be updated on a dynamic basis.
Based on an output sensor signal generated in one of the arrangement-related operations, the controller 110 may be configured to determine that a user touch event (such as a user swiping, touching or pressing the device 100 in the vicinity of associated force sensors 130) has occurred.
Indeed, the controller 110 may be configured to control operation of the device 100 based on an output sensor signal generated in one of the arrangement-related operations. For example, the controller 110 may be configured to control operation of itself or of at least one of the input/output components of the I/O unit 140. In the context of haptic functionality, the controller 110 may be configured to control an LRA within the I/O unit 140 based on an output sensor signal generated in one of the arrangement-related operations.
As another example, an output sensor signal generated in one of the arrangement-related operations may be taken to be a user input in connection with a GUI (graphical user interface) displayed on a touchscreen of the device 100. Of course, numerous other example will occur to the skilled person, an output sensor signal generated in one of the arrangement-related operations simply serving as a generic user input which may be taken advantage of in any way.
As apparent from
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in the claim, “a” or “an” does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference numerals or labels in the claims shall not be construed so as to limit their scope.
Peso Parada, Pablo, Birchall, Tom, Sepehr, Hamid
Patent | Priority | Assignee | Title |
11500469, | May 08 2017 | Cirrus Logic, Inc. | Integrated haptic system |
11644370, | Mar 29 2019 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Force sensing with an electromagnetic load |
11662821, | Apr 16 2020 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | In-situ monitoring, calibration, and testing of a haptic actuator |
11669165, | Jun 07 2019 | Cirrus Logic, Inc. | Methods and apparatuses for controlling operation of a vibrational output system and/or operation of an input sensor system |
11692889, | Oct 15 2019 | Cirrus Logic, Inc. | Control methods for a force sensor system |
11726596, | Mar 29 2019 | Cirrus Logic, Inc. | Controller for use in a device comprising force sensors |
11733112, | Mar 31 2021 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Characterization of force-sensor equipped devices |
11736093, | Mar 29 2019 | Cirrus Logic Inc. | Identifying mechanical impedance of an electromagnetic load using least-mean-squares filter |
11765499, | Jun 22 2021 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Methods and systems for managing mixed mode electromechanical actuator drive |
11779956, | Mar 29 2019 | Cirrus Logic Inc. | Driver circuitry |
11847906, | Oct 24 2019 | Cirrus Logic Inc. | Reproducibility of haptic waveform |
11908310, | Jun 22 2021 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Methods and systems for detecting and managing unexpected spectral content in an amplifier system |
11933822, | Jun 16 2021 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Methods and systems for in-system estimation of actuator parameters |
11966513, | Aug 14 2018 | Cirrus Logic Inc. | Haptic output systems |
11972057, | Jun 07 2019 | Cirrus Logic Inc. | Methods and apparatuses for controlling operation of a vibrational output system and/or operation of an input sensor system |
11972105, | Oct 26 2018 | Cirrus Logic Inc. | Force sensing system and method |
ER6927, | |||
ER8621, |
Patent | Priority | Assignee | Title |
10032550, | Mar 30 2017 | Apple Inc. | Moving-coil haptic actuator for electronic devices |
10055950, | Feb 11 2011 | Immersion Corporation | Sound to haptic effect conversion system using waveform |
10074246, | Apr 04 2012 | Immersion Corporation | Sound to haptic effect conversion system using multiple actuators |
10110152, | Sep 29 2017 | Apple Inc | Integrated driver and controller for haptic engine |
10171008, | Oct 27 2014 | Canon Kabushiki Kaisha | Vibration wave motor and driving apparatus using the vibration wave motor |
10175763, | Dec 04 2014 | Immersion Corporation | Device and method for controlling haptic signals |
10264348, | Dec 29 2017 | GOOGLE LLC | Multi-resonant coupled system for flat panel actuation |
10447217, | Sep 27 2016 | Cirrus Logic, Inc. | Amplifier with configurable final output stage |
10564727, | Jun 16 2016 | Immersion Corporation | Systems and methods for a low profile haptic actuator |
10620704, | Jan 19 2018 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Haptic output systems |
10732714, | May 08 2017 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Integrated haptic system |
10782785, | Jan 29 2018 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Vibro-haptic design and automatic evaluation of haptic stimuli |
4902136, | Oct 26 1987 | Siemens Aktiengesellschaft | Arrangement for high-resolution spectroscopy |
5684722, | Sep 21 1994 | VIRTUAL REALITY FEEDBACK CORPORATION | Apparatus and method for generating a control signal for a tactile sensation generator |
5748578, | Jan 25 1995 | Discovision Associates | Colpitts type oscillator having reduced ringing and improved optical disc system utilizing same |
5857986, | May 24 1996 | THORNER, CRAIG AND VRF CORPORATION | Interactive vibrator for multimedia |
6050393, | Oct 14 1996 | Aisan Kogyo Kabushiki Kaisha | Drive apparatus for driving an oscillator and a powder feeder having the drive apparatus therein |
6278790, | Nov 11 1997 | New Transducers Limited | Electroacoustic transducers comprising vibrating panels |
6332029, | Sep 02 1995 | GOOGLE LLC | Acoustic device |
6388520, | Dec 27 1999 | Semiconductor Technology Academic Research Center | Semiconductor integrated circuit |
6580796, | Jan 27 1998 | Yamaha Corporation | Sound effect imparting apparatus |
6683437, | Oct 31 2001 | Immersion Corporation | Current controlled motor amplifier system |
6703550, | Oct 10 2001 | Immersion Corporation | Sound data output and manipulation using haptic feedback |
6762745, | May 10 1999 | Immersion Corporation | Actuator control providing linear and continuous force output |
6906697, | Aug 11 2000 | IMMERSION CORPORATION | Haptic sensations for tactile feedback interface devices |
6995747, | Sep 07 2001 | Microsoft Technology Licensing, LLC | Capacitive sensing and data input device power management |
7623114, | Oct 09 2001 | Immersion Corporation | Haptic feedback sensations based on audio output from computer devices |
7639232, | Nov 30 2004 | Immersion Corporation | Systems and methods for controlling a resonant device for generating vibrotactile haptic effects |
7791588, | Dec 22 2003 | Immersion Corporation | System and method for mapping instructions associated with haptic feedback |
7979146, | Apr 13 2006 | Immersion Corporation | System and method for automatically producing haptic events from a digital audio signal |
8068025, | May 28 2009 | Personal alerting device and method | |
8098234, | Feb 20 2007 | Immersion Corporation | Haptic feedback system with stored effects |
8102364, | Aug 02 2001 | Immersion Corporation | Envelope modulator for haptic feedback devices |
8325144, | Oct 17 2007 | Immersion Corporation | Digital envelope modulator for haptic feedback devices |
8427286, | Dec 22 2003 | Immersion Corporation | System and method for controlling haptic devices having multiple operational modes |
8441444, | Sep 28 2000 | Immersion Corporation | System and method for providing directional tactile sensations |
8466778, | Jul 31 2009 | LG Electronics Inc. | Apparatus and method for generating vibration pattern |
8480240, | Feb 20 2007 | Canon Kabushiki Kaisha | Image capturing apparatus |
8572296, | Jun 30 2005 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Device and method for arbitrating between direct memory access task requests |
8593269, | Dec 22 2003 | Immersion Corporation | System and method for controlling haptic devices having multiple operational modes |
8648829, | Oct 20 2002 | Immersion Corporation | System and method for providing rotational haptic feedback |
8659208, | Jun 14 2007 | MISONIX OPCO, LLC | Waveform generator for driving electromechanical device |
8947216, | Nov 02 2012 | Immersion Corporation | Encoding dynamic haptic effects |
8981915, | May 16 2012 | Immersion Corporation | System and method for display of multiple data channels on a single haptic display |
8994518, | Dec 16 2008 | Immersion Corporation | Haptic feedback generation based on resonant frequency |
9030428, | Jul 11 2012 | Immersion Corporation | Generating haptic effects for dynamic events |
9063570, | Jun 27 2012 | Immersion Corporation | Haptic feedback control system |
9083821, | Jun 03 2011 | Apple Inc. | Converting audio to haptic feedback in an electronic device |
9092059, | Oct 26 2012 | Immersion Corporation | Stream-independent sound to haptic effect conversion system |
9117347, | Feb 25 2013 | Nokia Technologies Oy | Method and apparatus for a flexible housing |
9128523, | Dec 20 2012 | Amazon Technologies, Inc | Dynamically generating haptic effects from audio data |
9164587, | Nov 14 2013 | Immersion Corporation | Haptic spatialization system |
9196135, | Jun 28 2013 | Immersion Corporation | Uniform haptic actuator response with a variable supply voltage |
9248840, | Dec 20 2013 | Immersion Corporation | Gesture based input system in a vehicle with haptic feedback |
9326066, | Aug 01 2013 | Arrangement and method for converting an input signal into an output signal and for generating a predefined transfer behavior between said input signal and said output signal | |
9329721, | Aug 05 2010 | Amazon Technologies, Inc. | Reduction of touch-sensor interference from stable display |
9354704, | May 17 2013 | Immersion Corporation | Low-frequency effects haptic conversion system |
9368005, | Aug 31 2012 | Immersion Corporation | Sound to haptic effect conversion system using mapping |
9489047, | Mar 01 2013 | Immersion Corporation | Haptic device with linear resonant actuator |
9507423, | Oct 08 2013 | Immersion Corporation | Generating haptic effects while minimizing cascading |
9513709, | Dec 16 2008 | Immersion Corporation | Haptic feedback generation based on resonant frequency |
9520036, | Sep 18 2013 | Amazon Technologies, Inc | Haptic output generation with dynamic feedback control |
9588586, | Jun 09 2014 | Immersion Corporation | Programmable haptic devices and methods for modifying haptic strength based on perspective and/or proximity |
9640047, | Jul 25 2014 | POSTECH ACADEMY-INDUSTRY FOUNDATION | Method and apparatus for generating haptic signal with auditory saliency estimation |
9652041, | Mar 01 2013 | Immersion Corporation | Haptic device with linear resonant actuator |
9697450, | Jul 29 2016 | Alpha and Omega Semiconductor Incorporated | Magnetic stripe data transmission system and method for reliable data transmission and low power consumption |
9740381, | Sep 06 2016 | Apple Inc | Devices, methods, and graphical user interfaces for providing feedback during interaction with an intensity-sensitive button |
9842476, | Sep 25 2015 | Immersion Corporation | Programmable haptic devices and methods for modifying haptic effects to compensate for audio-haptic interference |
9864567, | Dec 03 2012 | Samsung Electronics Co., Ltd. | Portable apparatus having a plurality of touch screens and method of outputting sound thereof |
9881467, | Feb 22 2016 | Immersion Corporation | Haptic effects conflict avoidance |
9946348, | Mar 21 2014 | Immersion Corporation | Automatic tuning of haptic effects |
9947186, | Dec 10 2015 | GOODIX TECHNOLOGY HK COMPANY LIMITED | Haptic feedback controller |
9959744, | Apr 25 2014 | MOTOROLA SOLUTIONS, INC. | Method and system for providing alerts for radio communications |
9965092, | May 18 2016 | Apple Inc. | Managing power consumption of force sensors |
20020018578, | |||
20030068053, | |||
20030214485, | |||
20060028095, | |||
20060284856, | |||
20080167832, | |||
20080240458, | |||
20080293453, | |||
20080316181, | |||
20090079690, | |||
20090088220, | |||
20090102805, | |||
20090153499, | |||
20100013761, | |||
20100141408, | |||
20100141606, | |||
20110056763, | |||
20110141052, | |||
20110167391, | |||
20120105358, | |||
20120206246, | |||
20120206247, | |||
20120229264, | |||
20120306631, | |||
20130027359, | |||
20130141382, | |||
20130275058, | |||
20130289994, | |||
20140056461, | |||
20140064516, | |||
20140079248, | |||
20140085064, | |||
20140118125, | |||
20140119244, | |||
20140139327, | |||
20140292501, | |||
20140340209, | |||
20150061846, | |||
20150070260, | |||
20150084752, | |||
20150216762, | |||
20150324116, | |||
20150325116, | |||
20150341714, | |||
20160063826, | |||
20160074278, | |||
20160132118, | |||
20160162031, | |||
20160179203, | |||
20160239089, | |||
20160246378, | |||
20160358605, | |||
20170078804, | |||
20170083096, | |||
20170090572, | |||
20170153760, | |||
20170168574, | |||
20170220197, | |||
20170256145, | |||
20170277350, | |||
20170357440, | |||
20180059733, | |||
20180059793, | |||
20180074637, | |||
20180082673, | |||
20180084362, | |||
20180151036, | |||
20180158289, | |||
20180160227, | |||
20180178114, | |||
20180183372, | |||
20180237033, | |||
20180253123, | |||
20180294757, | |||
20180301060, | |||
20180321748, | |||
20180329172, | |||
20180335848, | |||
20180367897, | |||
20190064925, | |||
20190073078, | |||
20190103829, | |||
20190114496, | |||
20190138098, | |||
20190163234, | |||
20190206396, | |||
20190215349, | |||
20190227628, | |||
20190294247, | |||
20190296674, | |||
20190297418, | |||
20190311590, | |||
20190341903, | |||
20200218352, | |||
CN103165328, | |||
EP784844, | |||
EP2363785, | |||
EP2600225, | |||
EP2846218, | |||
EP2846329, | |||
EP3125508, | |||
EP3379382, | |||
JP8149006, | |||
WO2013104919, | |||
WO2013186845, | |||
WO2014018086, | |||
WO2014094283, | |||
WO2016105496, | |||
WO2016164193, | |||
WO2017113651, | |||
WO2018053159, | |||
WO2018067613, | |||
WO2018125347, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 07 2015 | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | Cirrus Logic, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 055030 | /0710 | |
Mar 29 2019 | Cirrus Logic, Inc. | (assignment on the face of the patent) | / | |||
Apr 09 2019 | PESO PARADA, PABLO | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048897 | /0461 | |
Apr 09 2019 | BIRCHALL, TOM | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048897 | /0461 | |
Apr 09 2019 | SEPEHR, HAMID | CIRRUS LOGIC INTERNATIONAL SEMICONDUCTOR LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048897 | /0461 |
Date | Maintenance Fee Events |
Mar 29 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Sep 23 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 23 2024 | 4 years fee payment window open |
Sep 23 2024 | 6 months grace period start (w surcharge) |
Mar 23 2025 | patent expiry (for year 4) |
Mar 23 2027 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 23 2028 | 8 years fee payment window open |
Sep 23 2028 | 6 months grace period start (w surcharge) |
Mar 23 2029 | patent expiry (for year 8) |
Mar 23 2031 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 23 2032 | 12 years fee payment window open |
Sep 23 2032 | 6 months grace period start (w surcharge) |
Mar 23 2033 | patent expiry (for year 12) |
Mar 23 2035 | 2 years to revive unintentionally abandoned end. (for year 12) |