`a2) Patent Application Publication (0) Pub. No.: US 2008/0198139 Al
` Lacroix et al. (43) Pub. Date: Aug. 21, 2008
`
`
`
`US 20080198139A1
`
`(54) HAPTIC FEEDBACK SYSTEM WITH
`STORED EFFECTS
`
`(22)
`
`Filed:
`
`May 14, 2007
`
`(75)
`
`Inventors:
`
`Robert Andre Lacroix,
`Saint-Lambert (CA); Pedro
`Gregorio, Verdun (CA); Kollin M.
`Tierling, Milpitas, CA (US)
`
`Correspondence Address:
`WOMBLE CARLYLE SANDRIDGE & RICE,
`PLLC
`ATTN: PATENT DOCKETING 32ND FLOOR,
`P.O. BOX 7037
`ATLANTA, GA 30357-0037
`
`(73) Assignee:
`
`Immersion Corporation, San Jose,
`CA (US)
`
`(21) Appl. No.:
`
`11/748,219
`
`Related U.S. Application Data
`(60) Provisional application No. 60/890,690,filed on Feb.
`20, 2007.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3041
`(52) US. CD. ee cececssseeceserersesesenseesenssensentes 345/173
`(57)
`ABSTRACT
`
`includes a controller, a
`A haptic feedback system that
`memory coupled to the controller, an actuator drive circuit
`coupled to the controller, and an actuator coupled to the
`actuator drive circuit. The memory storesat least one haptic
`effect that is executed by the controller in order to create a
`haptic effect.
`
`Controller
`
`
`13
`
`11
`42 18
`
`oS
`
`
`Actuator Drive
`
`Circuit
`16
`
`
`Vibration
`Actuator
`
`APPLE 1010
`
`APPLE 1010
`
`1
`
`
`
`Patent Application Publication
`
`Aug. 21,2008 Sheet 1 of 6
`
`US 2008/0198139 Al
`
`13
`
`Memory
`20
`
`Controller
`12
`
`SS
` Actuator Drive
`
`Circuit
`16
`
`Actuator
`
`Fig. 1
`
`2
`
`
`
`Patent Application Publication
`
`Aug. 21, 2008 Sheet 2 of 6
`
`US 2008/0198139 Al
`
`100
`
`/
`
`32
`
`Application 2
`
`34
`
`36
`
`Host processor
`
`30
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`39
`
`Service. Provider
`Pi
`Antetace,
`
`
`
`
`
`
`1 PWM, x y kHz, 1
`
`1P WM,15-30 kHz, 1
`
`42
`
`a
`
`SMKPiezo
`Drive Circuit
`
`LRA Drive
`Circuit
`
`46
`
`48
`
`oN Piezotactile
`
`system
`
`52
`
`LRA tactile system
`
`3
`
`
`
`Patent Application Publication
`
`Aug. 21,2008 Sheet 3 of 6
`
`US 2008/0198139 Al
`
`
`
`Client Application
`
`
`Playback RequesfData:
`
`Index, Priority, Repeat Count,
`
` Playback’
`
`request
`Repeat Gap
`
`
`
`Playback
`
`
`request
`
`
`Playback
`result/
`
`
`handle
`
`request
`
`APT State Data:
`
`
`Current Effect Handle
`
`
`
`
`
`CurrentPriority
`
`
`
`request—
`GetStat
`Playback
`
`
`
`Index,
`ACK/NAK
`(ifNAK
`
`
`
`Rpt Cnt,
`
`| Rpt Gap
`
`
`DAI
`
`DSEConstructData
`
`Timer Object
`
`(Driver Access Interface) DAI State Data:
` Master Strength
`Current Timeticks
`
`
`
`Current Effect Index
`Current Repeat Count
`Repeat Gap
`Current DSE Datapointer
`Current PWM value
`Current PWM remainder
`value
`
`
`
`
`
`
`Actuator
`Control
`Data
`(every
`5ms)
`
`
`
`
`
`
`
`
` Current Mode (Hold/Ramp)
`(Service Provider Interface)
`
`SPI
`
` Actuator
`
`Drive
`
`4
`
`
`
`Patent Application Publication
`
`Aug. 21,2008 Sheet 4 of 6
`
`US 2008/0198139 Al
`
`DSEFile
`
`DSE 1.0 Header Block
`
`Effect Set Name Block (optional)
`
`Effect Storage Block
`
`Fig. 4
`
`5
`
`
`
`Patent Application Publication
`
`Aug. 21,2008 Sheet 5 of 6
`
`US 2008/0198139 Al
`
`Effect Storage Offset Sub-Block
`
` Effect Storage Block
`
`Effect Storage Data Sub-Block
`
`6
`
`
`
`Patent Application Publication
`
`Aug. 21,2008 Sheet 6 of 6
`
`US 2008/0198139 Al
`
`Idealized
`
`Voltage
`
`7
`
`
`
`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`HAPTIC FEEDBACK SYSTEM WITH
`STORED EFFECTS
`
`RELATED APPLICATIONS
`
`[0001] This application claims the benefit of U.S. Provi-
`sional Patent Application No. 60/890,690,filed Feb. 20, 2007.
`
`FIELD OF THE INVENTION
`
`[0002] One embodimentofthe present invention is directed
`to a handheld device with a touchscreen. Moreparticularly,
`one embodiment of the present invention is directed to a
`handheld device with a touchscreen that includes a haptic
`feedback system.
`
`BACKGROUND INFORMATION
`
`[0003] Electronic device manufacturers strive to produce a
`rich interface for users. Conventional devices use visual and
`auditory cues to provide feedbackto a user. In someinterface
`devices, kinesthetic feedback (such as active and resistive
`force feedback) and/or tactile feedback (such as vibration,
`texture, and heat) is also providedto the user, more generally
`knowncollectively as “haptic feedback.” Haptic feedback can
`provide cues that enhance and simplify the user interface.
`Specifically, vibration effects, or vibrotactile haptic effects,
`may be useful in providing cuesto users of electronic devices
`to alert the user to specific events, or provide realistic feed-
`back to create greater sensory immersion within a simulated
`or virtual environment.
`[0004] Haptic feedback has also been increasingly incor-
`porated in portable electronic devices, such as cellular tele-
`phones, personal digital assistants (PDAs), portable gaming
`devices, and a variety ofother portable electronic devices. For
`example, some portable gaming applications are capable of
`vibrating in a manner similar to control devices (e.g., joy-
`sticks, etc.) used with larger-scale gaming systemsthat are
`configured to provide haptic feedback. Additionally, devices
`such as cellular telephones and PDAsare capable of provid-
`ing variousalerts to users by way of vibrations. For example,
`acellular telephonecan alert a user to an incoming telephone
`call by vibrating. Similarly, a PDA can alert a user to a
`scheduled calendar item or provide a user with a reminder for
`a “to do”list ttem or calendar appointment.
`[0005]
`Increasingly, portable devices are moving away
`from physical buttonsin favor oftouchscreen only interfaces.
`This shift allows increased flexibility, reduced parts count,
`and reduced dependenceon failure-prone mechanical buttons
`and is in line with emerging trends in product design. When
`using the touchscreen input device, a mechanical confirma-
`tion on button press or other user interface action can be
`simulated with haptics.
`[0006]
`Some known devices modify or generate haptic
`effects in real-time or “on the fly”. Although this allows a
`wide variety of haptic effects to be generated, it may require
`a substantial amountof processing power and maynotfacili-
`tate rapid developmentof new devices because the wide vari-
`ety of possible haptic effects must be compatible with the
`hardware interface of the device.
`there is a need for an
`[0007] Based on the foregoing,
`improved system and methodfor generating haptic effects for
`a device.
`
`SUMMARYOF THE INVENTION
`
`[0008] One embodimentis a haptic feedback system that
`includes a controller, a memory coupled to the controller, an
`actuator drive circuit coupled to the controller, and an actua-
`
`tor coupled to the actuator drive circuit. The memory stores at
`least one haptic effect that is executed by the controller in
`order to create a haptic effect. The stored haptic effect, unlike
`real-time generated haptic effects, reduces the required pro-
`cessing power.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG.1 is a block diagram ofa cellular telephone in
`[0009]
`accordance with one embodiment.
`[0010]
`FIG. 2 isa block diagram of the system architecture
`of a haptic feedback system in accordance with one embodi-
`ment.
`
`FIG. 3 is a block diagram of the software architec-
`[0011]
`ture in accordance with one embodiment.
`
`FIG. 41s a block diagram ofthefile format used in
`[0012]
`one embodimentfor a digitized steam envelope construct.
`[0013]
`FIG. 5isa block diagram of an Effect Storage Block
`in accordance with one embodiment.
`
`DETAILED DESCRIPTION
`
`FIG. 1 isa block diagram ofa cellular telephone 10
`[0014]
`in accordance with one embodiment. Telephone 10 includes a
`screen 11 and keys 13. In one embodiment, keys 13 are
`mechanicaltype keys. In another embodiment, keys 13 can be
`implemented by a touchscreenor other type oftouch sensitive
`surface so that keys 13 are touchscreenkeys, or can be imple-
`mented using any method.Internal to telephone 10 is a haptic
`feedback system that generates vibrations on telephone 10. In
`one embodiment, the vibrations are generated on the entire
`telephone 10. In other embodiments, specific portions oftele-
`phone 10 can be haptically enabled by the haptic feedback
`system, including individual keys of keys 13, whether the
`keys are mechanically oriented, touchscreen, or some other
`type of implementation.
`[0015] The haptic feedback system includes a controller
`12. Coupled to controller 12 is a memory 20 andan actuator
`drive circuit 16, which is coupled to a vibration actuator 18.
`Although the embodimentof FIG.1 is a cellular telephone,
`embodiments of the present invention can be implemented
`with any type of handset or mobile/portable device, or any
`device that uses an actuator to generate vibrations. Further,
`the haptic feedback system may be implementedas a devel-
`opment board that allows manufacturers of haptically
`enabled handsets to perform rapid prototypes.
`[0016] Controller 12 may be any type of general purpose
`controller or processor, or could be a controller specifically
`designed to provide haptic effects, such as an application-
`specific integrated circuit (“ASIC”). Controller 12 may be the
`same controller/processor that operates the entire telephone
`10, or may be a separate controller. Controller 12 can decide
`whathaptic effects are to be played andthe order in which the
`effects are played based on high level parameters. In general,
`the high level parametersthat define a particular haptic effect
`include magnitude, frequency and duration.
`[0017] Controller 12 outputs the control signals to drive
`circuit 16 which includes electronic components and circuitry
`used to supply actuator 18 with the requiredelectrical current
`and voltage to cause the desired haptic effects. Actuator 18 is
`a haptic device that generates a vibration on telephone 10.
`Actuator 18 can include one or more force applying mecha-
`nisms which are capable of applying a vibrotactile force to a
`user of telephone 10 (e.g., via the housing of telephone 10).
`Actuator 18 may be, for example, an electromagnetic actua-
`
`tor, an Eccentric Rotating Mass (“ERM”’)in which an eccen-
`tric mass is moved by a motor, a Linear Resonant Actuator
`(“LRA”) in which a mass attached to a spring is driven back
`
`8
`
`
`
`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`
`
`cycle resolution, 50%=no output, with a fine granularity in
`the 20-30 kHz range (as the carrier frequency is a multiple of
`the LRA drive frequency in many designs). The circuit also
`requires a General Purpose Output (“GPO”) for AMP_EN-
`ABLEcontrol.
`
`and forth, or a “smart material”such as piezoelectric, electro-
`active polymers or shape memory alloys. Memory 20 can be
`any type of storage device, such as random access memory
`(“RAM”) or read-only memory (“ROM”). Memory 20 stores
`instructions executed by controller 12. Memory 20 mayalso
`be located internal to controller 12, or any combination of
`[0027] Alternately, an even simpler amp circuit could be
`internal and external memory.
`used, because a 5 or 8 kHz output rate from the driver would
`allow outputof sine or square waveformsat the LRA resonant
`[0018]
`FIG. 2 is a block diagram of the system architecture
`frequency. This eliminates the need to fine-tune the PWM
`of a haptic feedback system 100 in accordance with one
`frequency, as the resonant frequency woulditselfbe encoded.
`embodiment. System 100 includes two or more applications
`30 and 32 that call, via software commands, for a specific
`[0028]
`FIG. 3 is a block diagram of the software architec-
`ture in accordance with one embodiment. One embodiment of
`stored haptic effect to be played. Application program inter-
`face (““API’’) 34 interprets the software commands and out-
`the architecture includes the following:
`puts to two parallel paths, one for each type of actuator. In
`[0029]
`1. No custom effect playback for applications.
`other embodiments, one or more paths may be implemented.
`Only pre-definedeffects (“stored haptic effects’), stored
`In FIG.2, the left-side path is for a piezo actuator 50 while the
`in Digitized Streaming Envelope (“DSE”) constructs
`right-side path is for an LRA actuator 52.
`stored in the driver software can be played back.
`[0019] Coupled to each path is a digitized stream envelope
`[0030]
`2. No real-time generation. Effect playback is
`(“DSE”) construct 36 which includesstored haptic effects. In
`based on a pre-recorded control signal, not generated in
`one embodiment, four different haptic effects are stored, but
`real-time. The control signal is computed using an effect
`any numbermaybestored. Each path includesa driver 38 and
`design tool.
`40 and a service provider interface 39 and 41 that include
`[0031]
`3. Multiple application support. Multiple appli-
`information on the specific type of actuatorfor the path. This
`cations could register with the API simultaneously. Sup-
`allows the API to be hardware/actuator independent.
`porting multiple applications requires some form ofAPI
`[0020] Each path further includes, for each actuator, a drive
`client marshaling, where the API must determine whose
`signal 42 and 46 and an electrical drive circuit 44 and 48.
`request is most important. Two approachesare possible:
`Finally, actuators 50 and 52 generate the vibration or other
`[0032]
`a. Last caller wins. When multiple applications
`desired haptic effect.
`try to usethe vibration resource simultaneously, the last
`the piezo actuator driver
`[0021]
`In one embodiment,
`caller interrupts whatever was playing before andits
`expects a differential sine wave control signal. One embodi-
`effect plays.
`ment generates a sine wave in software at a 5 kHz rate and
`[0033]
`b. Priority scheme. The API could support a con-
`outputs that as a pulse width modulation (“PWM”) signal. A
`cept of high/medium/low priority on effect playback
`simpler control signal may be used to achieve the samefeel on
`launch. When launchinganeffect, the caller specifies the
`the device. However, in one embodiment, the piezo circuit
`priority to be used. Playback succeeds whenpriority is
`requires a PWMsignal with fixed frequency in the 20-50 kHz
`equal to or higher than the current effect’s playback
`range, whose duty cycle is expected to be updated every 200
`priority.
`Ls.
`[0034]
`4. Designed for portability. Like VibeTonz®,
`In one embodiment, there are at least 3 possible
`[0022]
`ANSIC only, no dynamic memory allocation.
`physical configurations for the LRAs:
`[0035]
`In one embodiment, the Driver Access Interface
`the
`[0023]
`1. Case mounting—In this configuration,
`(“DAT”) consists of lower-level functions that provide the
`LRAsare mounted rigidly to the interior of the device
`bulk of the API functionality. In one embodiment, the DAIis
`casing. The LRA is driven at its resonant frequency
`designed to be implemented as a functional interface, which
`(from 175 Hz to 185 Hz), and the entire device is actu-
`is easily wrappedinaserial protocol. The driver is a timed
`ated.
`loop that executes the following commands:
`[0036]
`1. Look at API/Driver shared memory.If play-
`back is scheduled, retrieve current DSE pointer from
`memory, along with any other required driver/effect
`state information.
`
`2. Screen mounting—matched frequency. The
`[0024]
`screen is floated on a suspension, mechanically isolated
`from the casing, andthe LRAsare rigidly mountedto the
`screen. The LRAsis typically driven at the LRA reso-
`nant frequency, and the suspension is tuned to reinforce
`that frequency.
`[0025]
`3. Screen mounting—bi-modal. The screen is
`floated on a suspension, mechanically isolated from the
`casing, and the LRAsare rigidly mountedto the screen.
`The LRA can be driven at the LRA resonant frequency in
`which case the suspension is tuned to transmit most of
`the vibration to the casing. The LRA can also be driven
`at the system’s natural frequency, with the suspension
`tuned to a higher frequency than the LRA’s own resonant
`frequency (typically approx. 500 Hz). In this configura-
`tion, the LRA can be used both as an event alerting
`system (Silent/Manner mode vibration alerter) or as a
`touchscreen feedback system (for button press tactile
`confirmation).
`[0026]
`In one embodiment, many variants of the known
`VibeTonz® LRA drive circuit from Immersion Corp. can be
`used. Generally, these drive circuits require one PWM at
`20-50 kHz fixed frequency, variable duty cycle, 8-bit duty
`
`2. Ifstate is “playing effect”, decode DSE,extract
`[0037]
`PWMvalueto be applied to PWM. Then write to PWM.
`Sleep until next sample.
`[0038]
`3. If state is “finished iteration check for repeat”,
`and ifeffect is to be repeated, decrementrepeat value, set
`up gap timing and sleep until gap time expires.
`[0039]
`In one embodiment, DSEconstruct 36 of FIG. 2 isa
`set of magnitudes, or strengths, over time, for a number of
`effects. The samples are stored in a lossless compact format.
`Files containing DSE informationusethe .dsefile extension.
`[0040]
`FIG. 41s a block diagram ofthefile format used in
`one embodimentfor the DSE construct. The DSE 1.0 Header
`Block contains file format version information, number of
`effects, location of the Effect Storage Block, location of the
`Effect Set Name Block, and file size. The Effect Storage
`Block containsall the effect definitions stored in the DSEfile.
`The Eftect Set Name Block, which is optional, contains the
`nameofthe effect set.
`
`9
`
`
`
`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`FIG. 5 is a block diagram of the Effect Storage
`[0041]
`Block, in accordance with one embodiment, which has two
`sub-blocks: an Effect Storage Offset Sub-Block and an Effect
`Storage Data Sub-Block.
`[0042] The Effect Storage Offset Sub-Block is an array of
`offsets, one offset for each effect. Each offset occupies two
`bytes with the least-significant byte at the lower memory
`address. The number of effects is stored in the DSEfile
`
`header. The offset, in bytes, specifies where in the Effect
`Storage Data Sub-Blocktheeffect’s definition begins relative
`to the start of the Effect Storage Data Sub-Block. Thesize of
`the Effect Storage Offset Sub-Block is 2*EFFECTCOUNT.
`The EFFECTCOUNTcomesfrom the DSEfile header. The
`Lffect Storage Data Sub-Block stores the effect definitions.
`[0043]
`In one embodiment, the DSE contains magnitude
`control information over time. An idealized voltage, from
`-127 to 127,
`is modulated over time to drive a vibration
`actuator. For AC control (e.g., LRAs), other parts of the
`system (driver software, electronics) are responsible for syn-
`thesizing the AC signal, andthe DSErepresents the maximum
`value attained, per cycle, by the AC control signal.
`[0044]
`FIG.6 illustrates a typical short control signal or
`stored haptic effect where the critical data to be encoded is
`clearly identified in accordance with one embodiment.
`Unlike known systems that generate haptic effects in real-
`time by generating haptic effects from a plurality ofhigh level
`parameters, the haptic effect in FIG. 6 is predefined with the
`low level haptic parameters such as voltage levels and time
`duration.
`
`Point 1 is the start of the haptic effect, which is
`[0045]
`always assumedtostart at time t=O ms. Assumethat idealized
`voltage level is 127. The time between point 1 and point 2 is
`
`for example,
`the kickstart pulse. Point 2, occurring at,
`time=20 ms, identifies the start of the sustain period, with
`voltage level 80 applied. This level is applied until point 3 at
`time=100 ms, for example, where a braking pulsestarts, with
`voltage at -127. At point 4, time t=120 ms, voltage dropsto 0.
`An additional zero point, point 5, is placed at t=150 ms to
`encode a certain amountof silence—useful when theeffectis
`designed to be repeated (the same effect can be obtained by
`specifying a gap value ina DAI/APIcall). Table 1 below is an
`example ofhowthecritical points and timings are encoded in
`one embodiment.
`
`TABLE1
`
`Byte #
`
`Meaning
`
`
`
`OmAAAMPWNOS
`
`Apply voltage level 127...
`For 20 ms.
`Apply voltage level 80...
`For 80 ms.
`Apply voltage level -127...
`For 20 ms.
`Apply voltage level 0...
`For 30 ms.
`Apply voltage level 0...
`For 0 ms - this means, “end ofdigitized streamed effect
`definition”.
`
`Inone embodimenta slightly more complex encod-
`[0046]
`ing that incorporates a slope encoding is shown in Tables 2
`and 3 below. Regardingtable 2, the following applies:
`[0047]
`1. Data is organized in voltage/timepairs.
`[0048]
`2. Timeisrelative, not absolute. “Apply X voltage
`for the next Y milliseconds”, and not “Apply voltage X start-
`ing at time=Y”.
`
`TABLE 2
`
`Generalized Voltage/Time Pair Encoding, “Set & Hold”Pair:
`
`Byte #
`
`Bits
`
`Data
`
`Meaning
`
`7
`Ramp/nHold 0 => Holdthis voltage level constant for this duration
`6...0 Voltage/2
`Voltage level to be applied, divided by 2. Use a single
`left shift commandandcast to a signed 8-bit integer to
`obtain the desired voltage level between -127 and 127.
`The driver should always add 1/-1 to the result unless
`the valueis 0.
`Time,in 5 ms increments. Forbest results, the driver
`code should run the control loop at 200 Hz. Maximum
`time that can be encoded = 255 x 5 ms = 1.275 sec. For
`longer durations, create a sequence of voltage/time
`pairs.
`
`7...0 Time, ms/5
`
`00
`
`TABLE3
`
`Generalized Voltage/Time Pair Encoding, “Set & Ramp”Pair:
`Bits
`
`Data
`
`Meaning
`
`7
`
`6...0 Voltage/2
`
`Ramp/nHold 1 => Start at the voltage level and ramp according to
`the enclosed parameters for the specified duration
`Voltage level to be applied at time 0, divided by 2. Use
`asingle left shift command and cast to a signed 8-bit
`integer to obtain the desired voltage level between -127
`and 127. The driver should always add 1/—1 to the
`result unless the valueis 0.
`Time,in 5 ms increments. Forbest results, the driver
`code should run the control loop at 200 Hz. Maximum
`time that can be encoded = 255 x 5 ms = 1.275 sec. For
`longer durations, create a sequence of voltage/time
`pairs.
`
`7...0 Time, ms/5
`
`10
`
`Byte #
`
`0 0
`
`10
`
`
`
`US 2008/0198139 Al
`
`Aug. 21, 2008
`
`TABLE3-continued
`
`Generalized Voltage/Time Pair Encoding, “Set & Ramp”Pair:
`
`Byte #
`
`Bits Data
`
`Meaning
`
`2
`
`3
`
`7...0 Slope
`
`7...0 SlopeFrac
`
`-128, or -127 to 127. Whole part of the slope value,
`representing whole PWMstepsto be taken every 5 ms.
`—128 represents a Slope of “negative 0”, versus
`“positive 0”, which is 0. More on slope below.
`0... 255. Fractional part of the slope value, expressed
`as a fraction of 256. More on slope below.
`
`11. A method of generating a haptic effect comprising:
`retrieving a stored haptic effect;
`generating drive signals based on the stored haptic effect;
`and
`applying the drive signals to an actuator.
`12. The method of claim 11, wherein the haptic effect
`comprisesa plurality of discrete magnitude points.
`13. The method of claim 12, wherein a magnitudeis held
`constant over a time period.
`14. The method of claim 12, wherein a magnitude is modu-
`lated over a time period as a function oftime.
`15. The method of claim 12, wherein the discrete magni-
`tude points comprise a start point, a sustain point, a brake
`point, and a zero point.
`16. The methodof claim 11, wherein the haptic effect is a
`pre-computed haptic effect.
`17. The method of claim 11, wherein the haptic effect is
`generated with an effect design tool.
`18. The method of claim 11, wherein the actuator is a
`Linear Resonant Actuator.
`19. The method of claim 11, wherein the actuatoris a piezo
`actuator.
`
`20. The method of claim 11, wherein the haptic effect is
`stored as a digitized streamed envelope construct.
`21. A computer readable medium having instructions
`stored thereon that, when executed by a processor, cause the
`processorto:
`retrieve a stored haptic effect;
`generate drive signals based on the stored haptic effect; and
`apply the drive signals to an actuator.
`22. The computer readable medium of claim 21, wherein
`the haptic effect comprises a plurality of discrete magnitude
`points.
`23. The computer readable medium ofclaim 22, wherein a
`magnitude is held constant over a time period.
`24. The computer readable medium of claim 22, wherein a
`magnitude is modulated over a time period as a function of
`time.
`25. The computer readable medium of claim 22, wherein
`the discrete magnitude points comprise a start point, a sustain
`point, a brake point, and a zero point.
`26. The computer readable medium of claim 21, wherein
`the haptic effect is a pre-computed haptic effect.
`27. The computer readable medium of claim 22, wherein
`the haptic effect is generated with an effect design tool.
`28. The computer readable medium of claim 22, wherein
`the actuator is a Linear Resonant Actuator.
`
`29. The computer readable medium of claim 22, wherein
`the actuatoris a piezo actuator.
`30. The computer readable medium of claim 22, wherein
`the haptic effect is stored as a digitized streamed envelope
`construct.
`
`[0049] Using Slope and Slopel'rac
`The driver can use these values in the following way:
`[0050]
`pwm=Voltage<<1; /*Initial PWM value*/
`[0051]
`pwm_rem=0; /*Initial PWM remainder*/
`In 5 msloop:
`
`If( (pwm__rem + SlopeFrac) <pwm__trem) /* this remainder is aboutto
`rollover */
`
`{S
`
`}p
`
`lope >= 0 ? pwm++ : pwm--;
`
`wm_rem += SlopeFrac;
`if( -128 != Slope) pwm += Slope;
`
`[0052] Effect Name Block, which is optional, has one sub-
`block: an Effect Name Data Sub-Block.
`
`Several embodiments are specifically illustrated
`[0053]
`and/or described herein. However,it will be appreciated that
`modifications and variations of are covered by the above
`teachings and within the purview of the appended claims
`without departing from the spirit and intended scope of the
`invention.
`Whatis claimedis:
`
`1. A haptic feedback system comprising:
`a controller;
`amemory coupled to said controller;
`an actuator drive circuit coupled to said controller; and
`an actuator coupled to said actuatordrive circuit;
`wherein said memory stores at least one haptic effect.
`2. The haptic feedback system of claim 1, wherein said
`haptic effect comprises a plurality of discrete magnitude
`points.
`3. The haptic feedback system of claim 2, wherein a mag-
`nitude is held constant over a time period.
`4. The haptic feedback system of claim 2, wherein a mag-
`nitude is modulated over a time period as a function of time.
`5. The haptic feedback system of claim 2, wherein said
`discrete magnitude points comprise a start point, a sustain
`point, a brake point, and a zero point.
`6. The haptic feedback system of claim 1, wherein said
`haptic effect is a pre-computedhaptic effect.
`7. The haptic feedback system of claim 6, wherein said
`haptic effect is generated with an effect design tool.
`8. The haptic feedback system of claim 1, wherein said
`actuator is a Linear Resonant Actuator.
`9. The haptic feedback system of claim 1, wherein said
`actuatoris a piezo actuator.
`10. The haptic feedback system of claim 1, wherein the
`haptic effect is stored as a digitized streamed envelope con-
`struct.
`
`11
`
`11
`
`