The present invention is generally related to haptic devices and, more particularly, to tuning of motor speed to improve haptic feedback.
Rotary vibration motors have a wide variation in speed due to mechanical differences. Typical variation of vibration motors is +/−30% of nominal speed. Vibration speed affects the sound of the vibration motor as well as the amount of force that it imparts to a user. This variation in speed is magnified in haptic devices because the tactile feedback felt by a user is the acceleration of the motor. For a rotating counterweight motor the acceleration is generally related to the rotation frequency squared. As such, the difference felt by a user between two motors used for haptic feedback may be significant due to variation in the frequency of operation.
Methods and apparatuses for adaptively tuning vibratory motor speed are discussed herein. One embodiment takes the form of a method of adaptively tuning a vibratory motor including operating the motor at a plurality of voltage levels and recording the frequency of operation of the motor at each of the plurality of voltage levels. The method also includes creating a curve based on the recorded frequency and voltage levels and selecting a drive voltage based upon an intersection of a desired frequency of operation and the created curve.
Another embodiment may take the form of an electronic device having a vibratory motor and a processor in communication with the vibratory motor. The processor is configured to drive the motor with a drive voltage. The electronic device also includes one or more sensors for determining a frequency of operation of the vibratory motor.
The processor is configured to determine if the frequency of operation is within an acceptable range of a desired operating frequency and, if not, adjust the drive voltage.
Yet another embodiment may take the form of a method of operating an electronic device including driving a motor at a first voltage level and determining an operating frequency of the motor. The method also includes comparing the operating frequency with a desired frequency and, if the operating frequency is not within an acceptable range of the desired frequency, adjusting the drive voltage to a second voltage level.
While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from the following Detailed Description. As will be realized, the embodiments are capable of modifications in various aspects, all without departing from the spirit and scope of the embodiments. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
Embodiments may generally take the form of apparatuses and methods for adaptively tuning vibratory motor speed. The motor speed tuning may be performed by a motor vendor prior to the motor being sold or installed into an electronic device, by an electronics manufacturer before or after the motor is installed into an electronic device and/or by the device itself while the device is in service and being used by an end-user. As such, the motor may be tuned one time, multiple times and/or continuously throughout its life.
The tuning of the motor by the motor vendor may be a non-contextual tuning. That is, the tuning is performed independent of an operating context in which the motor may be used. The motor is operated at two or more different voltage levels and the speed at which the motor operates for each voltage level is recorded. The voltage levels and speeds are used to extrapolate drive voltages that achieve a desired speed for the motor. The drive voltage may be recorded on the motor (or a label for the motor) using a scannable code. Upon installation into an electronic device, the code may be read and used to program the electronic device for proper operation of the motor. Specifically, the code may be read and the operating voltage may be recorded into the devices system configuration dataset.
Another embodiment may take the form of a method for tuning the motor when it is installed in an electronic device, for example by an electronics device manufacturer. Initially, the motor is installed into the device and driven at two or more different voltages and the speeds at which the motor operates is recorded for each voltage. The speed data points are used to create a curve which may be used to determine a voltage level that will achieve a desired speed. The motor is then driven with that voltage and the speed of the motor is recorded to verify that the voltage achieves the desired speed. The drive voltage is then stored in the devices system configuration and referenced to drive the motor at the desired speed when the motor is operated.
Yet another embodiment may take the form of a method of continuous or periodic tuning of the motor speed while the motor is in use by an end user. One or more of the prior described methods may be utilized to set an initial or baseline drive voltage and/or operating speed of the motor. One or more onboard sensors may be used to monitor the speed of the motor when it operates. Typically, the sensors data will be evaluated after an initial warm up period for the motor (e.g., approximately 80 milliseconds). A feedback control loop is used to adjust the drive voltage and, hence, the speed of the motor based on the sensor data to maintain operation of the motor at the desired speed. Thus, small changes in the speed of the motor due to age or damage may be accounted for by the device and the motor may continue to operate as desired.
Turning to the drawings and referring initially to
The electronic device 100 may include one or more input and output devices including, but not limited to a display 102, one or more microphones 103, and one or more buttons and/or switches 104. Additionally, the display 102 may be configured as a touch sensitive display, such as a capacitive touch display to receive user input. The electronic device 100 may also include one or more haptic devices that may be utilized to provide tactile feedback to a user. For example, a motor may drive an eccentric weight to cause vibration. The vibration may be felt by the user.
Generally, the operation of the haptic device may serve as an alert to the user. For example, the haptic device may operate when a text, phone call, or email is received by the electronic device. Additionally, the haptic device may operate as an alarm. Further, the haptic device may operate during execution of a particular program or application to indicate a certain action or event has occurred. For example in a word game, the haptic device may operate to indicate a time limit has expired, or an incorrect or correct answer has been given. As such, the haptic device may be utilized in a variety of different contexts and for a variety of different purposes.
In some embodiments, a motor control 112 may be coupled between the motor 110 and the processor 106. In some embodiments, the motor controller 112 may control the actuation of the motor 110 based on signals from the processor 102. Specifically, the motor controller 112 may provide the drive voltage for the motor 110. Further, the motor controller 112 may store information related to the operation of the motor including, but not limited to actuation patterns and driving voltages to achieve desired speeds of operation.
Additionally, the electronic device 100 may include one or more sensors configured to sense the operation of the vibration motor 110 to determine an operating speed of the motor. Some example sensors include an accelerometer 114 and a microphone 116 that measures the frequency of the motor 110. In some embodiments, microphone 116 and microphone 103 may be the same microphone. In other embodiments, one may be internal and the other external to the device housing.
It should be appreciated that other sensors may also or alternatively be provided and serve this purpose. For example, an external microphone, an external accelerometer that is positioned on the device or plugs into the device, an external laser vibrometer, a hall effect sensor, and so forth. As such, sensors internal to and/or external to the device 100 may be used to measure the speed of the motor. The external sensor 118 may take the form of one of the aforementioned sensors or another suitable sensor.
The tuning of the motor speed may be performed at different stages of the motor's life.
The method 120 generally includes operating the motor at two or more different voltages (Block 122). One or more sensors detect the speed at which the motor operates for each drive voltage (Block 124). The speeds are recorded and a trend line is determined (Block 126). A drive voltage that correlates to a desired motor speed is extrapolated from the recorded speed and voltage data (Block 128). The motor is then driven at the voltage that is extrapolated from the data (Block 130) and it is determined if the desired speed is achieved (Block 132).
If the desired speed is achieved, the drive voltage that achieved the desired speed may be encoded and a code may be provided on the motor that indicates the drive voltage (Block 134). In some embodiments, if the speed of the motor is within a threshold distance of the desired speed, it may be deemed sufficient for the purposes of the motor. For example, in some embodiments, a deviation from the desired speed of +/−10 Hz may be sufficiently close to the desired speed that the drive voltage is deemed to have achieved the desired speed.
If, however, the desired speed is not achieved, the drive voltage may be adjusted either upwardly or downwardly (Block 136). The new drive voltage is then tested to see if the motor operates at the desired speed or if it is within an acceptable range of the desired speed (Block 132). In some embodiments, if the desired speed is achieved, the drive voltage that achieved the desired speed may be encoded and a code may be provided on the motor that indicates the drive voltage (Block 134). The code may be read by an electronic device manufacture to program the operation of the motor when the motor is installed in a device.
It should be appreciated that some motors may be defective and may not operate properly. A defective motor may be determined when the motor is unable to achieve the desired speed after a certain number of iterations of trying to achieve the desired speed. That is, if the motor is unable to reach and/or sustain the desired speed after the drive voltage has been adjust at least once to try to achieve the desired speed, and then it may be deemed defective and discarded. In some embodiments, the drive voltage may be adjusted three or more times before the motor is deemed defective. In other embodiments, the motor may be deemed defective if an operational curve for the motor is non-linear, as discussed in greater detail below.
In some embodiments, the adjustment of the drive voltage may be determined based, at least in part, upon a magnitude of deviation from the desired speed. That is, if the speed is 50 Hz deviated from the desired speed the drive voltage may be adjusted in an amount greater than that if the speed were only 20 Hz deviated from the desired speed. In some embodiments, a ratio based adjustment may be made. As such, the voltage may be adjusted based on the ratio of the achieved speed relative to the desired speed. For example, if the ratio of the achieved speed to desired speed is 0.8, the drive voltage may be increased by 20%. Further, in other embodiments, the drive voltage may be increased or decreased a set amount for each iteration of the method 120. For example, the voltage may be increased or decreased in 10 mV steps, or some other suitable step size.
As may be appreciated, the accelerometer (and/or other sensors) may measure the acceleration of the motor. The acceleration of the motor is related to the frequency of the motor as shown in Plot A on the left-side of
Additionally, as may be seen in Plot B of
Generally, accelerometers may measure the acceleration in three axes and one or more sets of measurements (e.g., from one or more axes) may be used to determine the frequency of rotation for the motor. In one example, the frequency of rotation for the motor is measured for three discrete voltages (e.g., low, medium and high voltage levels) 140, 142, 144. A linear fit function is applied to the three data points to form a line 146, as shown in
To find the frequency of rotation from the accelerometer data, a fast-Fourier transform (FFT) is performed on the accelerometer data.
In Plot D (e.g., the lower portion of
Referring again to
In other embodiments, a non-linear curve may be used to define the relationship between the data points. As such, the line or curve 146 representing the points 140, 142, 144 need not be linear in some embodiments.
The curve 146 generated by the data points 140, 142, 144 is used to determine the drive voltages that provide desired frequency and, hence, the acceleration output for haptic feedback to a user. In some embodiments, one or more drive voltages may be selected. For example, a strong drive voltage 154 and a weak drive voltage 156 (in
The speed/voltage curve is used to extrapolate or interpolate a drive voltage that achieves a desired frequency of rotation (Block 170). The motor is then driven at the determined drive voltage and the frequency is recorded (Block 172). It is then determined if the desired frequency was achieved (Block 174). If the desired frequency was achieved, then the drive voltage is recorded in the device memory as part of the system configuration dataset and called up for operation of the motor (Block 176). If, however, the desired frequency is not reached, then the drive voltage is adjusted (Block 178) and the motor is driven using the adjusted drive voltage (Block 172) and the process continues.
It should be appreciated that multiple drive frequencies may be determined and saved in the memory of the device following method 160. For example, the strong and weak drive voltages discussed above may be determined and saved in the device's memory.
The method 180 may include setting an initial drive voltage (Block 181) which may be set following the steps of method 160 or any other suitable method. In some embodiments, the initial drive voltage may be pre-selected and the same for all devices. An onboard accelerometer and/or microphone monitors the speed of the motor when it is actuated (Block 182). Generally, the accelerometer and/or microphone may provide data or recorded data after the motor has exceeded a speed-up period of approximately 80 milliseconds). A control loop adjusts the drive voltage of the motor to slowly change the speed of the motor to a desired speed over the course of multiple motor actuations. Specifically, it is determined if the motor is operating at the desired frequency (Block 183). If so, then the drive voltage is stored in memory (Block 184). If not, the drive voltage is adjusted (Block 186) and the motor is driven with the adjusted drive voltage when the motor is driven again (Block 182). The control loop may take any suitable form and in one embodiment may take the form of a proportional-integral-derivative (PID) control loop. Additionally, the adjustment of the drive voltage may occur over a period of days, depending upon the number of times during a day that the motor operates. It should be appreciated that when using an onboard accelerometer to measure the frequency of the vibrator motor, the accelerometer data may be processed as described above so as to filter out the frequency components that are present due to the normal motion of the device by the user. These components will typically be concentrated at lower frequencies below 50 Hz or so. Thus the normal use of the device does not interfere with the adaptive tuning of the vibrator motor.
It should be appreciated that one or more of the foregoing methods and techniques may be implemented for calibration or and/or quality control of linear vibration devices, such as linear haptic feedback devices. Generally, a linear vibration device include a mass 190 mounted on a spring 192, as shown in
Although the foregoing discussion has presented specific embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the embodiments. Accordingly, the specific embodiments described herein should be understood as examples and not limiting the scope thereof.