PATENT DOCUMENT

Publication Number: US-10120446-B2
Application Number: US-95094010-A
Country: US
Kind Code: B2

Title: Haptic input device

Abstract:
One embodiment of a haptic input device may include a receiver configured to receive a signal from a touch-based user interface device. The signal may include a control signal or a look-up value. The haptic input device may also include a decoder coupled to the receiver and configured to decode the signal from the touch-based user interface device, at least one sensor configured to determine at least one characteristic of the haptic input device, a controller coupled to the one or more sensors and configured to transmit a control signal, a haptic actuator coupled to the controller, and a transmitter coupled to the at least one sensor.

Claims:
The invention claimed is: 
     
       1. A haptic input device held by a user, comprising:
 a housing defining a tapered input end to interact with a screen of a touch-based user interface device, the housing enclosing:
 a receiver within the tapered input end and configured to wirelessly receive a signal from the touch-based user interface device, the received signal corresponding to a touch input gesture provided to the screen by the user and detected by the touch-based user interface device; 
 a decoder to extract an input signal from the received signal; 
 a controller to generate a control signal based on the input signal; 
 a haptic actuator to provide a first haptic feedback response corresponding to the control signal; 
 a sensor to determine an orientation of the haptic input device relative to the touch-based user interface device; and 
 a transmitter to transmit the orientation to the touch-based user interface device; wherein 
 
 the haptic actuator is configured to provide a second haptic feedback based on the orientation. 
 
     
     
       2. The haptic input device of  claim 1 , wherein the sensor comprises an accelerometer. 
     
     
       3. The haptic input device of  claim 1 , wherein the sensor comprises a pressure sensor. 
     
     
       4. The haptic input device of  claim 1 , wherein the sensor comprises a gyroscope. 
     
     
       5. The haptic input device of  claim 1 , wherein the received signal comprises an analog signal to drive the haptic actuator. 
     
     
       6. The haptic input device of  claim 1 , wherein the received signal comprises a look-up value corresponding to a control signal configured to drive the haptic actuator. 
     
     
       7. The haptic input device of  claim 6 , wherein the look-up value comprises at least one binary value. 
     
     
       8. The haptic input device of  claim 6 , wherein the controller comprises a waveform memory storing one or more look-up values and one or more control signals, each corresponding to one of the one or more look-up values. 
     
     
       9. The haptic input device of  claim 1 , further comprising an engagement portion configured to engage an exterior surface of the screen. 
     
     
       10. A method for providing haptic feedback, comprising:
 detecting an input gesture by at least one input sensor of a touch-sensitive input device, the input gesture performed by a stylus in contact with a touch screen surface of the touch-sensitive input device; 
 deriving, by a processor within the touch-sensitive input device, an orientation characteristic of the stylus; 
 receiving, by the processor, a signal from the stylus comprising a acceleration characteristic of the stylus; 
 determining, by the processor, a haptic response based on the orientation characteristic, the acceleration characteristic, and the input gesture; and 
 transmitting a haptic output signal to the stylus, the haptic output signal comprising a look-up value corresponding to the haptic response, the output signal instructing the stylus to provide the haptic response. 
 
     
     
       11. The method of  claim 10 , wherein the look-up value comprises a series of binary values. 
     
     
       12. The method of  claim 10 , further comprising:
 receiving an external signal from an external user input device; and 
 determining the haptic response based at least partially on the external signal. 
 
     
     
       13. The method of  claim 12 , wherein the haptic response provides an output to a user signifying an interaction between a second haptic input device and the external user device. 
     
     
       14. The method of  claim 10 , wherein:
 the input gesture is a first input gesture; and 
 the method further comprises:
 detecting a second input gesture provided by an object in contact with the touch screen surface; and 
 determining the haptic response based at least partially on the second input gesture. 
 
 
     
     
       15. The method of  claim 10 , further comprising:
 determining a pressure exerted on the stylus by a user; and 
 using the pressure to modify the haptic response. 
 
     
     
       16. A haptic input device, comprising:
 a housing comprising an input end and a sensor end, the input end configured to contact a touch-sensitive surface of a user interface device; 
 a receiver within the input end and configured to receive a modulated signal from the user interface device, the modulated signal corresponding to a gesture input provided by the input end to the touch-sensitive surface; 
 a demodulator in communication with the receiver and configured to extract an input signal from the modulated signal; 
 a sensor within the sensor end and configured to provide sensor data based on an orientation characteristic of the haptic input device relative to the user interface surface; and 
 a controller in communication with the demodulator and the sensor and configured to generate a control signal based in part on the input signal and in part on the sensor data; 
 a haptic actuator coupled to the controller and configured to provide a haptic feedback response based on the control signal; and 
 a transmitter configured to transmit the sensor data to the user interface device such that an output of the user interface device is modified based on the sensor data; wherein the sensor end is opposite the input end.

Description:
BACKGROUND 
     I. Technical Field 
     Embodiments described herein relate generally to input devices, and more particularly, to an input device capable of providing haptic and visual feedback to a user. 
     II. Background Discussion 
     Existing touch-based user interface devices typically have a touch panel and a visual display component. The touch panel may include a touch sensitive surface that, in response to detecting a touch event, generates a signal that can be processed and utilized by other components of an electronic device. The touch sensitive surface may be separate from the display component, such as in the case of a trackpad, or may be integrated into or positioned in front a display screen, such as in the case of a display touch screen. 
     Display touch screens may show textual and/or graphical display elements representing selectable virtual buttons or icons, and the touch sensitive surface may allow a user to navigate the content displayed on the display screen. Typically, a user may move one or more objects, such as a finger, a stylus, across the touch sensitive surface in a pattern that the device translates into an input command. As an example, some electronic devices allow the user to select a virtual button by tapping a portion of the touch sensitive surface corresponding to the virtual button. Some electronic devices may even detect more than one simultaneous touch events in different locations on the touch screen. 
     Generally, input devices do not provide haptic feedback to a user in response to interactions with the input device. The user can typically only feel the rigid surface of the touch screen, making it difficult to find icons, hyperlinks, text boxes, or other user-selectable input elements on the display. An input device capable of generating haptic feedback may help a user navigate content displayed on the display screen, and may further serve to enhance the content of various applications by creating a more appealing and realistic user interface. “Haptic feedback” may be any tactile feedback. Examples include forces, vibrations, and/or motions that may be sensed by the user. 
     SUMMARY 
     Embodiments described herein generally relate to haptic input devices that can receive an input from a user and provide haptic feedback based on the input from the user. In some embodiments, the haptic input device may be configured to interface with a touch-based user interface device, such as a touch screen. The touch-based user interface device may further include one or more input sensors, such as force sensors or position sensors, that are configured to sense one or more characteristics of a haptic input device as it engages the touch screen. For example, the one or more characteristics may include a position of the device relative to the touch screen, a pressure being applied on the touch screen surface by the haptic input device, an angle of the input device relative to the touch screen, and the like. The touch-based user interface device may determine a haptic response based on the one or more characteristics and transmit the haptic response to the haptic input device. The haptic input device may include a haptic actuator that generates haptic feedback based on the received haptic response. The haptic response may take the form of a control signal that drives a haptic actuator or a look-up value that corresponds to a control signal stored in a look-up table. In some embodiments, the haptic input device may also include additional sensors configured to sense one or more characteristics of the haptic input device, such as the orientation of the haptic input device, the acceleration of the device relative to the touch screen surface, and so on. 
     One embodiment may take the form of a haptic input device that includes: a receiver configured to receive a first signal from a touch-based user interface device; a decoder coupled to the receiver and configured to extract an input signal from the first signal; a controller coupled to the decoder and configured to receive the input signal from the decoder, further configured to generate a control signal based on the input signal; a haptic actuator coupled to the controller and configured to actuate in response to the input signal; at least one sensor configured to determine at least one characteristic of the haptic input device; a transmitter coupled to the at least one sensor. 
     Another embodiment may take the form of a touch-based user interface device. The touch-based user interface device may include: at least one transmitter configured to transmit at least one first signal to a haptic input device; at least one receiver configured to receive at least one second signal from the haptic input device; at least one input sensor configured to sense an input resulting from an object engaging a touch screen surface; at least one storage device storing one or more executable instructions; and at least one processor coupled to the at least one receiver, the at least one transmitter, the at least one input sensor, and the at least one storage device. The at least one processor may be configured to access the at least one storage device in order to execute the one or more executable instructions. 
     Another embodiment may take the form of a method for providing haptic feedback. The method may include receiving an input gesture from one or more input sensors, deriving a characteristic of an object engaging a touch screen surface, determining a haptic response based on the characteristic of the object engaging the touch screen, and transmitting a signal to a haptic input device. The signal may comprise a control signal or a look-up value. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates one embodiment of a system incorporating a haptic input device. 
         FIG. 2  is a block diagram of one embodiment of a touch-based user input device that can be used in conjunction with the system illustrated in  FIG. 1 . 
         FIG. 3  is a block diagram of one embodiment of a haptic input device that can be used in conjunction with the system illustrated in  FIG. 1 . 
         FIG. 4  is a block diagram of the transmitter and one or more input sensors of the touch-based user interface device shown in  FIG. 1 , as well as the receiver, decoder, controller, optional sensors, and haptic actuator of the haptic input device shown in  FIG. 3 . 
         FIG. 5  is a block diagram of one embodiment of a controller that may be used in conjunction with the haptic input device shown in  FIG. 1 . 
         FIG. 6  is a block diagram of another embodiment of a controller that may be used in conjunction with the haptic input device shown in  FIG. 1 . 
         FIG. 7  illustrates a schematic diagram of the operation of the system illustrated in  FIG. 1 , according to one embodiment. 
         FIG. 8  is a flowchart illustrating one embodiment of a method for providing haptic feedback. 
         FIG. 9  is a flowchart illustrating another embodiment of a method for providing haptic feedback. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments described herein generally relate to haptic input devices that can receive an input from a user and provide haptic feedback based on the input from the user. In some embodiments, the haptic input device may be configured to interface with a touch-based user interface device, such as a touch screen. The touch-based user interface device may further include one or more input sensors, such as force sensors or position sensors, that are configured to sense one or more characteristics of a haptic input device as it engages the touch screen. For example, the one or more characteristics may include a position of the device relative to the touch screen, a pressure being applied on the touch screen surface by the haptic input device, an angle of the input device relative to the touch screen, and the like. The touch-based user interface device may determine a haptic response based on the one or more characteristics and transmit the haptic response to the haptic input device. The haptic input device may include a haptic actuator that generates haptic feedback based on the received haptic response. The haptic response may take the form of a control signal that drives a haptic actuator or a look-up value that corresponds to a control signal stored in a look-up table. In some embodiments, the haptic input device may also include additional sensors configured to sense one or more characteristics of the haptic input device, such as the orientation of the haptic input device, the acceleration of the device relative to the touch screen surface, and so on. 
       FIG. 1  illustrates one embodiment of a system  100  incorporating a haptic input device  101 . As shown in  FIG. 1 , the system  100  may include the haptic input device  101  and a touch-based user interface device  103  that serves as a user input output (I/O) device. The touch-based user interface device  103  may include a touch screen surface  105  and one or more transmitters  107  configured to transmit signals to a receiver of the haptic input device  101 . The transmitters  107  may be wired or wireless transmitters, or a combination of both wired and wireless transmitters. 
     In one embodiment, the haptic input device  101  may be a stylus that is configured to resemble a writing utensil. For example, the stylus may include a tapered or pointed tip that is configured to contact the touch screen surface  105 . In some embodiments, the tip may be capacitive in order to permit registration of the contact on the touch screen surface  105 . In other embodiments, the haptic input device  101  may have other configurations. For example, the haptic input device  101  may have a blunt, as opposed to a pointed, tip, or may take the form of a ball. 
     The haptic input device  101  may be configured to provide haptic feedback to a user. This haptic feedback may be any type of tactile feedback that takes advantage of a user&#39;s sense of touch and/or sight, for example, by creating forces, vibrations, and/or motions that may be perceived by the user. As alluded to above, the haptic input device  101  may be configured to provide haptic feedback based on input gestures from the user. Haptic feedback may be used to enhance the user&#39;s interaction with the touch-based user interface device  103  by providing mechanical stimulation to the user when the user is engaging the device  103 . For example, haptic feedback may confirm the user&#39;s selection of a particular item, such as a virtual icon or a button, or may be provided when the user&#39;s input device is positioned over a selectable item. The haptic input device  101  may also provide a haptic output when the device is over, near or passes the boundary of a window or application shown on a display, or when the device is over, near or passes a graphic item having a particular texture. It should be appreciated that haptic feedback may be provided when a cursor controlled by the haptic input device meets these or other conditions set forth in this document. Indeed, certain embodiments may employ a haptic input device to move a cursor on a display that is not touch-sensitive. Accordingly, the description, functionality and operations set forth herein generally apply to a haptic input device operating a cursor on a display screen lacking capacitive, pressure-sensing or other touch-sensing capabilities, as well. 
     The touch-based user interface device  103  can function as, for example, a media device, a communications device, a digital camera, a video camera, a storage device, or any other electronic device. Some examples of touch-based user interface devices  103  incorporating touch screen surfaces  105  include Apple Inc.&#39;s iPhone.TM., iPod Nano.TM., iPod Touch.TM., and iPad.TM. devices. Other examples may include tablet personal computers, laptops, and so on. The touch screen surface  105  may include one or more input sensors that allow a user to interact with the touch-based user interface device  103  by sensing various touch-based input gestures, such as swiping, tapping, scrolling, and so on, applied across the touch screen surface  105 . The input sensors may include one or more capacitive sensors, optical sensors, acoustic sensors, force sensors, and so on. 
     In some embodiments, the touch-based input gestures may be applied through moving an object other than a finger, such as the input device  101 , or moving multiple objects simultaneously (e.g., multi-touch inputs). As will be described further below, the input sensors may obtain information regarding the sensed gestures. The input sensors may detect changes in pressure and/or capacitance from an object impacting the touch screen; such changes may be the basis for interpreting gestural input. The touch-based user interface  103  may further include one or more transmitters  107  configured to transmit the information regarding the sensed gestures to a processing device provided in the touch-based user interface device  103 , which may translate the received information into a particular input command. As an example, the input sensors may derive position information, such as distance traveled and/or direction of motion, regarding a sensed gesture, and the processing device may execute certain functionality based on the received distance and/or direction information. For example, the device may interpret sensed motion as a request to move a cursor on the screen. As another example, the input sensors may be configured to sense a particular gesture or pattern of gestures and, in response, execute a particular command. For example, a tap or an application of pressure onto the touch screen surface  105  may be associated with a selection, while sliding the object along the touch screen surface  105  in a particular manner may be associated with scrolling, enlarging, shrinking, and so on. In some embodiments, a combination of gestures by a finger or other object and the haptic input device may be interpreted together to provide a particular haptic feedback to a user through the haptic input device. The processing device may be any known processing device, including, but not limited to, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a microcontroller, a graphics processing unit (GPU), and so on. 
     In some embodiments, the haptic input device  101  may provide haptic and/or visual feedback based on the position of the haptic input device  101  with respect to the touch screen surface  105 . Position information may be sensed by the user interface device  103  and provided to the haptic device, for example across a communications link. In other embodiments, the haptic input device may determine its location relative to the touch screen surface. As one example of position-based feedback, the haptic input device  101  may provide haptic, audible and/or visual feedback when the device passes over a selectable button or icon being displayed by the touch screen surface  105 . For example, in one embodiment, the processing device of the touch-based user interface device  103  may run a graphics editing program that allows the user to create an image by moving the haptic input device  101  across the touch screen surface  105  to manipulate a cursor to draw or otherwise interact with graphical elements. In this embodiment, the haptic input element  101  may be configured to provide haptic/visual/audible feedback when the user selects the drawing cursor using the input device  101 , as the user moves the input device  101  across the touch screen surface  105 , or as the user interacts with, nears, passes or is over a user-selectable element. The graphics editing program may be similar to various commercial off-the-shelf programs, such as, Autodesk, Inc.&#39;s SketchBook™ KikiPixel&#39;s Inspire Pro, Microsoft Corporation&#39;s MS Paint™, and so on. 
     In other embodiments, the haptic input device  101  may be configured to provide haptic, audible and/or visual feedback based the amount of pressure applied by the haptic input device  101  to the touch screen surface  105 . In such embodiments, the haptic input device  101  and/or the touch screen surface  105  may include one or more pressure sensors configured to sense pressure being applied by the device  101  to the surface. In one embodiment, the haptic input device  103  may provide haptic, audible and/or visual feedback when pressure applied to the user input device by the haptic input device exceeds a predetermined threshold. In other embodiments, the haptic input device  101  may be configured to provide haptic, audible and/or visual feedback if the input device  101  and/or touch-based user input device  103  detects any pressure being applied onto the surface  105 , regardless of the amount of pressure being applied. With respect to one embodiment in which the touch-based user interface device  103  is running a graphics editing program, the haptic input element  101  may allow the user to “draw” an image only if the touch-based user input device  103  and/or the haptic input device  101  determine that the user is applying sufficient pressure onto the touch screen surface  105  via the haptic input device  101 . It should be appreciated that the user input device may thus determine both a location of the haptic input device on the touch screen (through capacitive sensing, for example) and a force exerted on the screen by the haptic input device (through pressure sensing, for example). 
     In further embodiments, the haptic input device  101  may be configured to provide haptic and/or visual feedback based on a combination of the position of the haptic input device  101  with respect to the touch screen surface  105 , and the amount of pressure applied by the haptic input device  101  onto the touch screen surface. In such embodiments, the touch-based user input device  103  may allow the user to select buttons or icons only if the touch-based user input device  103  and/or the haptic input device  101  determine that the haptic input device  101  is positioned over a selectable button or icon, and that the user is applying pressure onto the touch screen surface  105  via the haptic input device  101 . Similarly, with respect to embodiments in which the touch-based user interface device  103  is running a graphics editing program, the haptic input element  101  may allow the user to “draw” an image only if the touch-based user input device  103  and/or the haptic input device  101  determine that the haptic input device  101  is positioned over a “paintable” portion of the touch screen surface, and that the user is applying pressure onto the touch screen surface  105 . 
     Certain embodiments may also provide haptic feedback that varies with a distance to a user interface element, such as a selectable icon and the like. As the haptic input device  101  approaches the user interface element, the haptic device may provide enhanced or increased feedback. For example, a frequency and/or intensity of haptic feedback may increase as the haptic input device  101  comes closer to the user interface element. Likewise, as the haptic input device (or its tip/selection portion) moves further away, the frequency and/or intensity of the feedback may diminish. In this manner, the haptic feedback may indicate if a user is approaching or receding from certain elements or portions of a display screen. 
       FIG. 2  illustrates one embodiment of a touch-based user input device  103  that can be used in conjunction with the system  100  illustrated in  FIG. 1 . As shown in  FIG. 2 , the touch-based user input device  103  may include a processing device  160 . The processing device  160  may be any known processing device, including, but not limited to, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a microcontroller, a graphics processing unit (GPU), software or firmware configured to execute instructions in memory to perform various processing functions, and so on and so forth. 
     The processing device  160  may be communicatively coupled to a storage device  162 . In one embodiment, the storage device  162  may be a memory device, such as non-volatile or volatile memory, a hard disk drive, a flash memory drive, and so on and so forth. The storage device  162  may store software or firmware for running the touch-based user interface device  103 . For example, in one embodiment, the storage device  162  may store operating system software that includes a set of instructions that are executable on the processing device  160  to enable the setup, operation and control of the touch-based user interface device  103 . The operating system software may also provide a menu-based operating system that can be navigated by the user through a graphical user interface displayed or presented to the user on the touch screen  105 . 
     The processing device  160  may also be communicatively coupled to one or more input sensors  164 . As alluded to above, the input sensors  164  may be configured to sense various touch-based input gestures, such as swiping, tapping, scrolling, and so on, applied across the touch screen surface  105 . The input sensors  164  may be any type of sensor, including capacitive sensors, resistive sensors, acoustic sensors, infrared sensors, and so on. The touch-based input gestures may be applied by an object, such as the input device  101 , a finger, and so on, and may obtain gesture information regarding the sensed gestures. For example, as discussed above, the input sensors may derive position information, such as distance and/or direction information, regarding a sensed gesture. As another example, the input sensors may be force sensors configured to measure the amount of pressure being applied to the touch screen surface  105 . 
     The touch-based user interface  103  may further include a transmitter  107  that is communicatively coupled to the processing device  160 . The transmitter  107  may be configured to transmit signals to the haptic input device  101  over a wired or a wireless connection. In one embodiment, the signals transmitted by the transmitter  107  may be radio-frequency (RF) or infrared (IR) signals. However, in other embodiments, the command signals may be other types of electromagnetic signals. For example, the command signals may be microwaves signals, radio signals, and so on and so forth. In one embodiment, the transmitted signals may be generated in response to the gesture information received from the input sensors  164 . As will be further described below, the transmitted signals may be encoded with a control signal for driving a haptic actuator or a look-up value that corresponds to a control signal in a look-up table stored in a storage device of the haptic input device  101 . 
     In some embodiments, the touch-based user interface  103  may also include an optional receiver  166  communicatively coupled to the processing device  160 . The receiver  166  may be configured to receive signals from the haptic input device  101  over a wireless receiver or a wired connection. In one embodiment, the received signals may include information obtained by one or more input sensors of the haptic input device  101 . As will be further discussed below, the information may include acceleration information, orientation information, pressure information, tilt information and so on. 
       FIG. 3  illustrates one embodiment of a haptic input device  101  that can be used in conjunction with the system  100  illustrated in  FIG. 1 . As shown in  FIG. 3 , in one embodiment, the haptic input device  101  may be a stylus. The haptic input device  101  may include one or more engagement portions or tips  111  configured to contact (and to register contact on) the touch screen surface  105 , a receiver  119 , a decoder  112 , a controller  113 , one or more haptic actuators  114 , one or more optional sensors  116  configured to sense various characteristics of the user&#39;s manipulation of the haptic input device  101 , and an optional transmitter  118 . Some examples of sensors  116  that may be used in conjunction with various embodiments of the haptic input device  101  are described below. As shown in  FIG. 3 , the haptic input device  101  may also include a power source  115  configured to supply power to the controller  113  and/or the haptic actuator  114 . The power source  115  may be a battery or some other type of power supply, such as a power adapter, an electromechanical system such as a generator or an alternator, a solar power cell, and so on and so forth. 
     In one embodiment, the tip  111  may be formed from a conductive material, such as metal, or from a non-metallic conductive material, such as graphite, various salts, plasmas, and so on. In other embodiments, the tip  111  may be formed from a nonconductive material. The tip  111  may include a portion configured to contact the touch screen surface  105 . This portion may be pointed, as shown in  FIG. 3 , or may be blunt. In another embodiment, the tip may be configured as a ball that is configured to roll along the touch screen surface  105  so that different portions of the tip  111  may contact the touch screen surface  105 . 
     The tip  111  may be communicatively coupled to a receiver  119 . The receiver  119  may be any type of wireless or wired receiver that is configured to receive signals from the one or more transmitters  107  of the touch-based user interface device  103 . As alluded to above, the signals may include a haptic response based on the touch-based input gestures received by the input sensors of the touch screen surface  105 . In one embodiment, the receiver  119  may be configured to receive wireless signals that are wirelessly transmitted by the one or more transmitters  107 . The wireless signals may be transmitted using any type of wireless transmission medium, including, but not limited to, Wi-Fi, Bluetooth, IR, RF, and so on and so forth. In other embodiments, the stylus  101  may be coupled to the touch-based user interface device  103  via a wired connection, and the receiver  119  may receive the signals from the transmitters  107  over the wired connection. 
     As shown in  FIG. 3 , the receiver  119  may be communicatively coupled to a decoder  112  that is configured to decode the signals received from the touch-based user interface device  103 . In one embodiment, the touch-based user interface device  103  may modulate the signal to include a control signal for driving the haptic actuator  114  or a look-up value corresponding to a control signal for driving the haptic actuator  114 , and the decoder  112  may include or take the form of a demodulator that is configured to demodulate the signal to derive the control signal and/or look-up value. If the signal is modulated with a control signal, then the decoder  112  may demodulate the signal to obtain the control signal, and transmit the control signal to a controller communicatively coupled to the decoder. In contrast, if the signal is encoded with a look-up value, the decoder  112  may process the signal to obtain the look-up value, and access a waveform memory to obtain the control signal corresponding to the look-up value. This process will be further explained below with respect to  FIG. 5 . 
     The controller  113  may receive the control signal from the decoder  112  and transmit the control signal to drive the one or more haptic actuators  114 . The controller  113  may be hardware, such as a chip or an extension card configured to interface with the actuator  114 , or may be software or firmware configured to manage the operation of the actuator  114 . 
     The haptic actuator  114  may be configured to generate various types of haptic feedback based on the commands received from the controller  113 . Some examples of haptic actuators  114  that may be used in conjunction with embodiments of the haptic input device  101  include electromagnetic actuators, solenoid actuators, piezoelectric actuators, electroactive polymers, vibration motors contactless actuators configured to provide electrovibratory, electrostatic and/or electrocutaneous output, and so on and so forth. For example, in one embodiment, the haptic actuator  114  may be a weight that can move axially along the shaft of the input device  101  in response to a control signal to generate a click, two clicks, vibration, and so on. In some embodiments, the haptic input device  101  may include multiple actuators  114  that are each configured to emit a different type of feedback or feedback to a different portion of the haptic input device. Other embodiments may only include a single haptic actuator  114  configured to provide a single type of feedback, or a single haptic actuator  114  configured to provide multiple types of feedback. 
     The haptic actuator  114  may further be configured to generate different types of haptic feedback based on touch-based input gesture information received by the touch-based user interface device  103 . For example, the haptic actuator  114  may be configured to vibrate to represent an alarm, or may simulate a single or a double click to confirm the selection of a button or an icon. In another embodiment, the actuator  114  may be configured to simulate resistances or motions of the input device  101  on the touch screen surface  105 . For example, the actuators  114  may be configured to simulate the feeling of moving a pen or a paintbrush across a piece of paper or a canvas. This may be accomplished by a single actuator  114  that is configured to generate different types of forces to create different types of feedback, or by multiple actuators  114  that are each communicatively coupled to the controller  113 . For example, the frequency, intensity and/or duration of a haptic output waveform may be shaped to provide a particular feel to the user. A high frequency, continuous output may emulate the sensation of moving a pen across a smooth surface while a lower frequency signal may emulate the feel of moving a pen across a rougher surface. The output signal may be discontinuous to emulate the feel of a rough or bumpy surface. 
     In some embodiments, the haptic actuator  114  may further generate haptic feedback that can be felt by the nerves of a user&#39;s fingers without physically moving the body of the haptic input device  101 . For example, the haptic actuators  114  may emit electrostatic signals that penetrate the housing of the input device  101  to stimulate the user&#39;s fingers. The electrostatic signals may stimulate various nerves in the user&#39;s fingertips, thereby allowing the user to feel a tactile sensation when holding the haptic input device  101 . 
     In one embodiment, the controller  113  may further be communicatively coupled to one or more optional local sensors  116 . The optional sensors  116  may be configured to sense various parameters based on the user&#39;s manipulation of the haptic input device  103 . For example, in one embodiment, the sensors  116  may be configured to sense motion of the haptic input device  103 . Continuing the example, one sensor  116  may be an accelerometer configured to detect the magnitude and/or direction of acceleration of the tip  111  of the haptic input device  103 . In addition to or instead of the use of an accelerometer, the sensor  116  may be a gyroscope (or other suitable sensor) configured to measure the angle of the haptic input device  103 . The sensors  116  may be communicatively coupled to the controller  113 , and may transmit information to the controller  113  regarding the sensed characteristics, which may include acceleration and/or orientation information. The controller  113  may be configured to transmit corresponding control commands to the haptic actuator  114  based on the information received from the sensors  116 . 
     The haptic device&#39;s angular measurement may be coupled with a measurement of the angle of the touch screen surface  105 . The angle of the touch screen surface may be derived, for example, from a gyroscope, multi-axis accelerometer or other suitable sensor within the user interface device  103 . The two angular measurements may be used together to determine a relative angle of the haptic input device with respect to the touch screen surface or user interface device. Given each angle, either the haptic device or the user interface device (or a computing device associated with either) may relatively easily and quickly determine the relative angle. “Computing devices” may include a laptop computer, desktop computer, server, tablet computer, smart phone, personal digital assistant, and so on. 
     The optional sensors  116  may include one or more force or pressure sensors. The force sensors may be configured to sense various forces being applied on the haptic input device  101  by the user. As alluded to above, in one embodiment, the force sensors may be configured to detect the amount of pressure being applied on the touch screen  105  by the tip  111  of the haptic input device  101 . In another embodiment, the force sensors may be configured to detect the amount of pressure being applied to the haptic input device  101 , for example, by a user gripping the device. The sensors  116  may transmit the pressure information to the controller  113 , which may transmit corresponding control commands to the haptic actuator  114  based on the received pressure information. Accordingly, in one embodiment, the haptic feedback may be varied according to whether pressure is being applied to the haptic input device  101  and/or the amount of pressure applied to the haptic input device  101 . Similarly, the entire surface of the haptic input device may sense pressure and/or capacitive changes resulting from a user gripping the instrument. In such embodiments, the pressure/capacitive sensing may be used to selectively apply haptic feedback only to those portions of the device being gripped. This may be accomplished, for example, by incorporating multiple haptic actuators into the haptic input device such that each actuator provides haptic feedback for a specific portion of the device. 
     In some embodiments, the haptic input device  101  may further include an optional transmitter  118  that is communicatively coupled to the one or more sensors  116 . The transmitter  118  may be configured to receive information regarding the sensed parameters and transmit the information to the touch-based user input device  103  through either a wired or a wireless connection. Accordingly, the touch-based user input device  103  may adjust an output of the touch screen  105  based on the information obtained by the one or more sensors  116 . In one embodiment, acceleration information from an accelerometer in the haptic input device  101  may be used to change the output of a graphics creation or editing program. For example, if the acceleration information indicates that the user is moving the haptic input device  101  at a high rate of acceleration, the line created by the graphics editing program may lighten and/or thin out from its starting point to its terminus. In contrast, if the acceleration information indicates that the user is moving the haptic input device  101  at a low rate of acceleration, the line created by the graphics editing program may become darker and/or thinner. 
     As another example, the output shown on the touch screen can be modified according to the orientation and/or angular information of the haptic device. This information may be captured by a gyroscope in the haptic input device  101 , or other suitable sensor. Likewise, the output may depend not only on the absolute angle of the haptic device, but the relative angle of the haptic device to the touch screen and/or user input device  103 . As mentioned above, this relative angle may be determined from the absolute angle of the haptic device and the absolute angle of the user input device. As one example of how an output may be adjusted, the width of the line created by the graphics editing program may adjusted according to the tilt of the haptic input device  101  relative to the touch screen  105  to simulate writing with a calligraphy pen or painting with a paint brush. Additionally, the angle and/or thickness of the line may be adjusted according to the tilt of the haptic input device  101  relative to the touch screen  105 , with a higher tilt corresponding to the creation of a more slanted, thicker or angled line, for example. (Alternative embodiments may vary the effect of the haptic input device&#39;s tilt angle on an output generated by the user input device.) Thus, a single haptic device may be used to create a line of varying thickness or depth of color in a single stroke, or another output that varies physically or temporally in response to changes in pressure, capacitance, angle and the like during a continuous input. 
     The haptic device  101  may have one or more orientation sensors, such as a multi-axis accelerometer, that may determine the axial orientation of the haptic device. Thus, the orientation sensor may detect when the haptic device  101  rotates. This rotational information may also be used to vary an input from the haptic device or an output shown on a display in response to the haptic device&#39;s input. Rotating the haptic device may, for example, be substituted for certain conventional input gestures such as clicking or tapping. Likewise, an output may be varied as the haptic device is rotated. A line may be made thicker or thinner in a graphics program, for example. As another example, rotating the haptic device in one direction may increase an audio volume from an associated device, while rotating the haptic device in another direction may decrease the audio volume. 
     As another example, the line created by the graphics editing program can be modified according to the pressure information captured by a force sensor in the haptic input device  101 . For example, the width and/or darkness of the line created by the graphics editing program may be adjusted according to the amount of pressure being applied onto the haptic input device either by a user&#39;s grip or by forcing a tip of the input device onto the touch screen or other surface. In one embodiment, more pressure may correspond to a darker and/or a thicker line, while less pressure may correspond to a lighter and/or thinner line. Likewise, changes in grip pressure may be used to signal different inputs to the touch screen  105 /user input device  103 . 
     It should be appreciated that the haptic feedback provided by the haptic input device  101  may vary with the output of the display device, as described above. Returning to the example of adjusting a line thickness, as the line appears thicker on the screen, a haptic output from the haptic device  101  may likewise increase in frequency, intensity, duration and the like. This haptic feedback may be more readily perceived by the user than the change in line thickness, for example if the haptic input device is moving relatively slowly across the touch screen or other display device and so obscuring recent portions of the graphical line. Thus, the user may perceive the haptic feedback and use it to adjust the input or output generating the feedback (in this case, the line thickness). Accordingly, the haptic feedback may be part of a closed loop with the user input and may provide data to the user that is useful in modifying his input, such as grip strength, pressure on a touch screen and the like. 
     In another embodiment, the haptic input device  101  may further include an optional audio transmitter, such as a speaker, that is communicatively coupled to the controller  113 . The controller  113  may transmit control commands to the speaker based on information received from the sensors  116  and/or the one or more transmitters  107  on the touch-based user input device  103 . The output of the speaker may vary based on the activity being simulated, as well as the user&#39;s manipulation of the haptic input device  101 . For example, in one embodiment, the speaker may simulate the sound of moving a pen or a paintbrush across a piece of paper or a canvas, with the speaker emitting different sounds for emulating a pen or a paintbrush. In another embodiment, the volume of the speaker may be adjusted based on the amount of pressure being applied to the touch screen surface  105 . For example, the volume may be gradually increased as the input device  101  applies more pressure to the touch screen surface  105 . In other embodiments, the volume and/or sound may be adjusted according to the position of the input device  101  relative to the touch screen surface  105 . 
     It should be appreciated that some embodiments may employ only a haptic input device  101  and no user input device and/or touch screen. For example, the haptic input device  101  may be used with a sheet of paper, flat surface and the like to provide input to an appropriately-configured computing device. In such embodiments, a visual output on a display associated with the computing device, or an audible output from a speaker associated with the computing device, may be varied in the foregoing manners and/or according to the foregoing description. 
       FIG. 4  is a block diagram showing the transmitter  107  and one or more input sensors  108  of the touch-based user interface device  103  of  FIG. 2 , as well as the receiver  119 , decoder  112 , controller  113 , optional sensors  116 , and haptic actuator  114  of the haptic input device  101  shown in  FIG. 3 . As shown in  FIG. 4 , in one embodiment, the transmitter  107  of the touch-based user interface device  103  may be configured to transmit a signal to the receiver  119  of the haptic input device  101 . As discussed above, the signal may carry a control signal for driving the haptic actuator  114  or a look-up value corresponding to a control signal. The transmitted signal may be based on information obtained from various input sensors  108  integrated into the touch screen surface  105  of the touch-based user interface device  103 , such as the position of the haptic input device  101  on the touch screen surface  105 , the amount of pressure being applied by the input device  101  onto the touch screen surface  105 , and so on. 
     The receiver  119  of the haptic input device  101  may transmit the signal received from the transmitter  107  to the decoder  112 , which may be configured to decode the signal to obtain either the control signal or the look-up value, and to transmit the control signal or the look-up value to the controller  113 . If the decoder  112  transmits a control signal to the controller  113 , the controller  113  may transmit the control signal through a driver to the haptic actuator  114 , which may generate haptic feedback consistent with the control signal. In contrast, if the decoder  112  transmits a look-up value to the controller  113 , the controller  113  may process the look-up value to obtain a control signal corresponding to the look-up value, and transmit the control signal to the haptic actuator  114 . 
     Alternatively, the controller  113  may receive a signal from one or more optional sensors  116 . As discussed above, the one or more optional sensors  116  may be provided in the haptic input device  101 , and may sense various parameters of the haptic input device  101 . The parameters may include the orientation of the input device  101 , the pressure being applied to the input device  101  by the user&#39;s fingers, the pressure being applied by the tip of the input device  101  onto the touch screen surface  105 , the acceleration of the input device  101  across the touch screen surface  105 , and so on and so forth. Upon receiving the signal from the sensors  116 , the controller  113  may generate a control signal from the signal and transmit the waveform to the haptic actuator  114 , which may generate haptic feedback consistent with the waveform. 
       FIG. 5  illustrates one embodiment of a controller  113  that may be used in conjunction with the haptic input device  101  shown in  FIG. 1 . The controller  113  may include a waveform memory  120 , a local control device  122 , and a local driver device  124  communicatively coupled to the local control device  122  and the waveform member  120 . The waveform memory  120  may be configured to store one or more preprogrammed waveforms, which may produce different haptic feedback responses when processed by a haptic actuator  114 . 
     As alluded to above, the decoder  112  may transmit a look-up value to the controller  112 . The look-up value may correspond to one or more control signals stored in the waveform memory  120 . In one embodiment, the look-up value may be a series of binary 1&#39;s and 0&#39;s that can be transmitted over a low data rate transmission link. The look-up value may correspond to an entry in a look-up table storing a corresponding control signal for driving the haptic actuator or a set of corresponding control signals for driving the haptic actuator. Upon receiving the look-up value, the local control device  122  may access the waveform memory  120  to determine whether any of the control signals stored in the waveform memory  120  correspond to the received look-up value. If the local control device  122  determines that the received look-up value corresponds to at least one of the waveforms stored in the waveform memory  120 , the control device  122  may access the waveform memory  120  and transmit the corresponding control signal or control signals to the driver device  124 . The local control device  122  may further transmit a control command to the driver device  124  to transmit the control signal or control signals from the waveform memory  120  to the haptic actuator  114 . In another embodiment, the optional sensors  116  of the haptic input device  101  may transmit the look-up value to the local control device  122 . 
       FIG. 6  illustrates another embodiment of a controller  133  that may be used in conjunction with the haptic input device  101  shown in  FIGS. 3 and 4 . The controller  133  may include a local control device  142  and a local driver device  144  communicatively coupled to one another. In this embodiment, the touch-based user interface device  103  may transmit a carrier signal modulated with a command signal for driving the haptic actuator  114  (shown in  FIG. 3 ). Further, the decoder  113  may demodulate the control signal from the carrier signal. The control signal may then be transmitted to the local driver  144 , which in turn, may transmit the control signal to the haptic actuator  114  upon receiving a corresponding control command from the local control device  142 . 
     Some embodiments may include a controller that is configured to receive both control signals and look-up values. In such embodiments, the controller may further be configured to update the control signals stored in the look-up table and/or the stored look-up values based on signals received from the touch-based user interface device  103 . For example, to change or update the haptic feedback associated with a particular look-up value, the controller may receive a look-up value and an updated control signal associated with the look-up value from the touch-based user interface device  103  and replace the control signal stored in the database with the updated control signal. 
       FIG. 7  is a schematic diagram one possible operation of the system  100  illustrated in  FIG. 1 . As shown in  FIG. 7 , the touch-based user interface device  103  may run an operating system  152  supporting one or more software or firmware applications. In one embodiment, the operating system may include a graphical user interface allowing a user to select and run such applications or otherwise interact with the device  103 . For example, an active application may be a game, a graphics editing program, a word processing program, and so on. As alluded to above with respect to  FIG. 2 , the operating system  152  may be stored in the storage device  162  of the touch-based user interface device  103 , and accessed and implemented by the processor  160 . 
     The touch-based user interface device  103  may include a touch driver  150  to determine a position and/or pressure exerted by the haptic input device  101  on the touch screen  105 . As alluded to above, the position and/or pressure information may be obtained through one or more input sensors  164  of the touch-based user interface device  103 . The touch driver  150  may be software stored on the storage device  162  of the touch-based user interface device  103  or may be implemented as a hardware component of the touch-based user interface device  103 . 
     The operating system  152  may then transmit the position and/or pressure information to a haptic driver  156 , which may process the position and/or pressure information to determine an appropriate haptic response. For example, in one embodiment, the haptic driver  156  may access a local storage device storing a relational database containing one or more position and/or pressure parameters and one or more corresponding control signals or look-up values. The haptic driver  156  may be software stored in the storage device  162  of the touch-based user interface device  103  or may be a separate hardware component. Upon matching the position and/or pressure information with the appropriate control signal or look-up value, the haptic driver  156  may transmit the control signal or look-up value to the haptic input device  101  via a transmitter  107  of the touch-based user interface device  103 . 
       FIG. 8  is a flowchart illustrating one embodiment of a method  800  for providing haptic feedback. For example, the illustrated method  800  may be performed by the processing device  160  of the touch-based user interface device  103  shown in  FIGS. 1 and 2 . The method  800  may begin by receiving input gestures from one or more input sensors. As discussed above, the input gestures may include swiping, tapping, scrolling, and so on, applied across the touch screen surface  105 . The input sensors may include position and/or pressure sensors. The input gestures may be applied by a haptic input device  101 . In the operation of block  804 , position and/or pressure information may be derived from the input gestures received from the one or more input sensors. The position information may be in x-y coordinate form, while the pressure information may be measured as the force per unit area in a direction perpendicular to the touch screen surface  105 . 
     In the operation of block  806 , the processing device may determine whether or not to generate a haptic response based on the position and/or pressure information. In one embodiment, this may involve determining whether the haptic input device  101  is positioned over a selectable item, which can be a button, an icon, a cursor, and so on, displayed on the touch screen surface  105 . In another embodiment, the processing device may determine whether the haptic input device  101  is applying a sufficient amount of pressure to the touch screen surface  105 . In a further embodiment, the processing device may determine both whether the haptic input device  101  is positioned over a selectable button or icon, as well as whether the device  101  is applying a sufficient amount of pressure to the touch screen surface  105 . If, in the operation of block  806 , the processing device determines that a haptic response is appropriate, then, in the operation of block  810 , the processing device may determine the appropriate haptic response associated with the input gestures. This may be accomplished by referencing a relational database, such as a look-up table, storing one or more input gestures and one or more haptic responses associated with the one or more input gestures. The haptic responses may be in the form of control signals for driving the haptic actuator in the haptic input device  101  or look-up values corresponding to one or more control signals for driving the haptic actuator. In the operation of block  812 , the processing device may transmit the one or more control signals (or look-up values) to the haptic input device  101 . The method  800  may then proceed back to the operation of block  802 , in which the processing device may receive another input gesture. 
     If, in the operation of block  806 , the processing device determines that a haptic response is not appropriate, then, in the operation of block  808 , the processing device may not determine a haptic response associated with the received input gesture. In such situations, no haptic response may be emitted from the haptic input device. For example, in one embodiment, the processing device may determine that a haptic response it not appropriate if the pressure applied by the haptic input device  101  onto the touch screen surface  105  is insufficient. In another embodiment, the processing device may determine that a haptic response is not appropriate if the haptic input device  101  is not located in a position that enables selection of an item being displayed on the touch screen. The method  800  may then proceed back to the operation of block  802 , in which the processing device may receive another input gesture. 
       FIG. 9  is a flowchart illustrating another embodiment of a method  900  for providing haptic feedback. For example, the illustrated method  900  may be performed by the controller  113  of the haptic input device  101  shown in  FIGS. 1 and 3 . The method  900  may begin by receiving a control signal or a look-up value, as indicated in block  902 . The control signal or the look-up value may be received from the transmitter  107  of the touch-based user interface device or from one or more input sensors  116  of the haptic input device  101 . As discussed above, a control signal may be used to drive the haptic actuator in the haptic input device  101 , while a look-up value may correspond to one or more control signals stored in a database. In the operation of block  904 , the controller  113  may determine whether a control signal or a look-up value is received. The operation of block  904  is optional. If, in the operation of block  904 , the controller  113  determines that a look-up value is received, then, in the operation of block  906 , the haptic input device  101  may access the waveform memory, which may include a relational database storing one or more look-up values and one or more corresponding control signals associated with the look-up values. In the operation of block  908 , the controller  113  may determine whether there is a match between at least one of the one or more look-up values and at least one of the control signals. If, in the operation of block  908 , the controller  113  determines that there is a match, then, in the operation of block  910 , the controller  113  may transmit the control signal matching the look-up value to the haptic actuator. If, in the operation of block  908 , the controller  113  determines that there is no match, then, in the operation of block  914 , the controller  113  may not transmit a control signal to the haptic actuator. The method may then return to the operation of block  902 , in which the controller  113  may receive a control signal or a look-up value. 
     If, in the operation of block  904 , the controller  113  determines that a control signal is received, then, in the operation of block  912 , the controller  113  may transmit the control signal to the haptic actuator. The method may then return to the operation of block  902 , in which the controller  113  may receive a control signal or a look-up value. 
     The order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein. For example, it is contemplated that executing or performing a particular element before, contemporaneously with, or after another element are all possible sequences of execution. 
     Although the haptic device  101  is generally described above as operating in conjunction with a touch screen, it should be appreciated that certain embodiments of the haptic device may be configured to operate with any surface or even while held in the air (e.g., without the tip touching anything). For example, location sensors (accelerometers, gyroscopes, and the like) may be used to determine a position and motion of the haptic device. A pressure sensor in the tip may initiate input to an associated computing device when the haptic device is pressed against a surface. Alternatively, one or more pressure sensors may be located along the barrel of the haptic device and measure pressure exerted thereon by a user&#39;s grip. Input may be provided from the haptic device to the computing device when the pressure on the barrel exceeds a certain threshold. Still other embodiments may omit pressure sensors entirely and function to provide input only when the haptic device is in an on state. Essentially, the haptic device may be configured to provide any functionality described herein without requiring a touch screen to accept that input. 
     In addition, it should be appreciated that the haptic input device  101  may generate haptic feedback based on the touch screen sensing a touch by an object other than the haptic input device. For example, if a finger touches the touch screen, the haptic device may output haptic feedback to indicate the touch. Further, the gesture or other input provided by the object may vary the nature of the haptic feedback. Continuing the example, a finger moving up and down on a touch screen to scroll a webpage or other document may provide a sustained “swoosh” of haptic feedback from the haptic input device. The same finger tapping the touch screen may cause the haptic input device to output a single thump. 
     Certain embodiments may support the operation and detection of multiple haptic input devices with a single user input device. For example, a single touch screen may detect impacts from multiple haptic input devices. Further, in such embodiments an input from a haptic input device may produce a haptic output in a different haptic input device. That is, a first haptic device interacting with the touch screen (or the like) may cause a second haptic input device to output haptic feedback. This may be useful in various multi-person endeavors, such as collaborative editing, game playing and the like. 
     Still another embodiment may permit communication between multiple haptic input devices and/or multiple user input devices. For example, four people may each have their own haptic input device and touch screen/user input device. Each user action with his or her user input device may cause one or more of the other persons&#39; haptic input devices to produce a haptic output. Such embodiments may also be useful in multi-person activities such as gaming. 
     The foregoing discussion provides example embodiments, methods and operations of a haptic device. Accordingly, they should be understood as examples only and not as limitations. The proper scope of protection is defined by the following claims.

Metadata:
Filing Date: 20101119
Publication Date: 20181106
Grant Date: 20181106
Priority Date: 20101119
Inventors: PANCE, ALEKSANDAR
LEUNG, OMAR SZE
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F3/016", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/0488", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/041", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F2203/04105", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/04812", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/03545", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/03545", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F2203/04105", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/041", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04812", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0488", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/016", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F2203/04105", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/04812", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/016", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/03545", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0488", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 45023884