throbber

`
`
`
`
`
`
`
`US 6,847,351 B2
`(10) Patent N0.:
`(12) United States Patent
`
`
`
`
`
`
`
`Noguera
`Jan. 25, 2005
`(45) Date of Patent:
`
`
`U5006847351B2
`
`
`
`
`
`
`
`
`
`(54) TILT-BASED POINTING FOR HAND-HELD
`DEVICES
`
`
`
`
`(75)
`
`
`
`
`( * ) Notice:
`
`
`
`
`
`
`
`
`Inventor: Gritsko Perez Noguera, San Marcos,
`
`
`CA (US)
`.
`.
`.
`.
`
`
`
`
`
`(73) ASSlgnee‘ S‘emens Enformatlonfmd
`
`
`
`C9mmumcat1°n MOblle’ LLC> 5a“
`
`
`D1680, CA(US)
`
`
`
`
`
`
`
`Subject to any disclaimer, the term of this
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`
`U.S.C. 154(b) by 179 days.
`
`
`
`
`
`
`
`
`
`(21) Appl. No.: 09/929,224
`
`
`
`
`Filed:
`Aug. 13, 2001
`(22)
`
`
`
`Prior Publication Data
`
`(65)
`
`
`
`
`
`
`
`
`US 2003/0038778 A1 Feb' 27’ 2003
`
`
`
`
`
`
`(51)
`Int. Cl.7 .................................................. G09G 5/00
`
`
`
`
`
`
`
`
`(52) US. Cl.
`..... 345/158; 345/169; 345/864;
`
`
`345/857; 345/157
`
`
`
`
`
`(58) Field of Search ................................. 345/156—169,
`
`
`
`
`
`
`345/901, 856—862, 864; 341/20, 22; 463/37—38;
`
`348/734
`
`(56)
`
`
`
`
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`
`
`5,506,605 A *
`4/1996 Paley ......................... 345/163
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`........ 345/123
`2/1997 Motosyuku et a1.
`5,602,566 A
`6/1997 Eng et a1.
`................... 345/158
`5,638,092 A *
`
`
`
`
`
`12/1997 Hall et al. ........... 345/158
`5,703,623 A
`
`
`
`
`
`
`
`
`
`
`
`
`7/2000 Horton 6t a1~
`------ 345/158
`670949188 A *
`~
`
`
`
`
`
`
`
`3/2001 Lands
`.................. 345/169
`6,201,554 B1
`4/2001 Bunsen ..........
`6,211,860 B1 *
`345/157
`
`
`
`
`
`
`
`4/2001 Simonson ......
`6,219,028 B1 *
`345/862
`
`
`
`
`
`
`
`
`
`
`
`
`6,466,198 B1 * 10/2002 Feinstein .......
`345/158
`
`
`
`
`
`
`6,567,068 B2 *
`5/2003 Rekimoto ......
`345/156
`
`
`
`
`
`
`
`
`6,577,296 B2 *
`6/2003 Flack ............
`345/158
`2002/0093483 A1 *
`7/2002 Kaplan ....................... 345/158
`
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Primary Examiner—Lun-Yi Lao
`
`ABSTRACT
`(57)
`.
`.
`.
`.
`
`
`
`
`
`
`Systems and methods of pomtmg 1n hand-held dev1ces are
`
`
`
`
`
`
`
`described.
`In accordance With this scheme, a user may
`
`
`
`
`
`
`control the position Where a pointer is displayed on a display
`
`
`
`
`
`
`screen simply by changing the orientation of the hand-held
`
`
`
`
`
`
`device relative to a currently preferred device orientation,
`
`
`
`
`
`Which is tracked automatically. In addition, unintentional
`
`
`
`
`
`
`device orientation changes, such as periodic device orien-
`
`
`
`
`
`
`
`tation changes that might be caused by carrying the hand-
`
`
`
`
`
`
`
`
`held deVice While walking or driVing, are filtered out
`
`
`
`
`
`
`
`dynamically. In this way,
`the pointer may be positioned
`
`
`
`
`
`
`
`
`accurately and reliably at any one of a plurality of pointer
`
`
`
`
`
`
`screen locations based upon changes in device orientation
`
`
`
`
`
`
`
`under a Wide variety of different usage conditions.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`26 Claims, 4 Drawing Sheets
`
`
`
`
`
`
`
`10\
`
`
`
`
`
`
`
`
`Page 1 ofll
`
`SAMSUNG EXHIBIT 1006
`
`Page 1 of 11
`
`SAMSUNG EXHIBIT 1006
`
`

`

`
`US. Patent
`
`
`
`
`
`Jan. 25, 2005
`
`
`
`
`
`Sheet 1 0f4
`
`
`
`US 6,847,351 B2
`
`
`
`
`
`
`FIG. ZB
`
`Page 2 ofll
`
`Page 2 of 11
`
`

`

`
`US. Patent
`
`
`
`
`
`Jan. 25, 2005
`
`
`
`
`Sheet 2 of4
`
`
`
`US 6,847,351 B2
`
`
`
`
`
`Compute Current Absolute Device Orientation
`
`
`
`
`
`Map Current Absolute Device Orientation to Current
`Absolute Pointer Screen Location
`
`
`
`
`
`
`
`
`
`
`
`Update Average Absolute Pointer Screen Location
`
`
`
`
`
`
`
`
`Update Tracking Delay Period
`
`
`
`
`
`
`
`
`
`52
`
`
`
`3
`
`
`
`32
`
`3
`
`
`
`3'
`
`
`
`5'
`
`
`
`
`
`
`
`
`
`
`
`
`
`Tracking
`
`
`
`Delay Period
`
`Expired?
`
`
`
`
`
`
`
`
`Compute Current Pointer Screen Location at
`
`
`
`
`
`Average Absolute Pointer Screen Location
`
`
`
`
`
`
`
`
`Incremented One Unit Towards Screen Center
`
`
`
`
`
`
`
`
`Display Pointer at Current Pointer Screen Location
`
`
`
`
`
`
`FIG. 3
`
`Page 3 ofll
`
`Page 3 of 11
`
`

`

`
`US. Patent
`
`
`
`
`
`Jan. 25, 2005
`
`
`
`
`Sheet 3 0f 4
`
`
`
`US 6,847,351 B2
`
`
`
`
`
`Compute Current Device Tilt Direction
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Set Delay
`
`
`
`Increment to +1
`
`Yes
`
`
`
`. Change .
`
`
`
`In Devrce TIIt
`.
`.
`
`Direction?
`
`
`
`No
`
`
`
`Set Delay
`
`
`
`Increment to -1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Current Tracking
`
`
`
`
`
`
`Previous Tracking
`Current Tracking
`
`
`
`
`Yes Delay = Previous
`
`
`
`
`
`
`Delay + Delay Increment >
`Delay =
`
`
`
`Tracking Delay +
`
`
`
`
`Sampling Period?
`Sampling Period
`
`
`
`Delay Increment
`
`
`
`
`
`FIG. 4
`
`Page 4 ofll
`
`Page 4 of 11
`
`

`

`
`US. Patent
`
`
`
`
`
`Jan. 25, 2005
`
`
`
`
`Sheet 4 0f4
`
`
`
`US 6,847,351 B2
`
`
`
`1"\
`
`Receiver
`
`
`
`
`
`
`
`Frequency
`
` - O
`Synthesizerl Controller
`
`
`70
`
`
`FIG. 5
`
`Page 5 ofll
`
`Page 5 of 11
`
`

`

`
`1
`TILT-BASED POINTING FOR HAND-HELD
`
`
`
`DEVICES
`
`
`
`
`
`
`
`US 6,847,351 B2
`
`
`
`
`
`
`2
`
`
`
`
`
`of a mode-dependent parameter may be proportional to the
`
`
`
`relative change in tilt.
`
`
`
`
`
`
`
`
`In a similar approach, US. Pat. No. 5,602,566 describes
`
`
`
`
`
`
`
`a hand-held device in which content that is displayed on a
`
`
`
`
`
`
`
`
`display screen may be scrolled through by changing the tilt
`of the hand-held device relative to a reference tilt direction
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`and relative tilt angle that are established upon activation of
`
`
`
`
`
`
`
`
`
`a scroll start switch. The scroll direction corresponds to the
`
`
`
`
`
`
`
`
`direction of relative tilt, and the scrolling speed may vary in
`
`
`
`
`
`
`accordance with the relative tilt angle.
`SUMMARY
`
`COPYRIGHTABLE MATERIAL
`
`
`
`
`
`
`
`
`
`
`
`A portion of the disclosure of this patent document
`
`
`
`
`
`
`contains material which is subject to copyright protection.
`
`
`
`
`
`
`
`
`
`The copyright owner has no objection to the facsimile
`
`
`
`
`
`
`
`reproduction by anyone of the patent document or the patent
`
`
`
`
`
`
`
`disclosure, as it appears in the Patent and Trademark Office
`
`
`
`
`
`
`
`
`
`patent file or records, but otherwise reserves all copyright
`
`
`rights whatsoever.
`
`BACKGROUND
`
`
`
`
`
`
`
`
`
`
`
`
`This invention relates to systems and methods for hand-
`
`
`
`
`
`
`
`held device pointing based upon changes in relative device
`orientation.
`
`
`
`
`
`
`
`
`
`A wide variety of different hand-held devices, such as
`
`
`
`
`
`
`cellular telephones, cordless telephones, pagers, personal
`
`
`
`
`
`
`
`
`digital assistants (PDAs), solid state digital audio players,
`
`
`
`
`
`
`
`
`
`CD players, MCD players, cameras and game pads, have
`
`
`
`
`
`
`been developed to enable users to communicate, process
`
`
`
`
`
`
`
`
`information and playback digital content without being tied
`
`
`
`
`
`
`
`to a particular physical location. Hand-held devices typically
`
`
`
`
`
`
`
`
`
`include one or more input controls and a display screen that
`
`
`
`
`
`
`
`is configured to display a graphical user interface, including
`
`
`
`
`
`
`
`text and graphics. A pointer is a rectangle, a blinking
`
`
`
`
`
`
`
`
`underline, an arrow or other symbol that allows a user to
`
`
`
`
`
`
`
`select commands or options presented by the graphical user
`
`
`
`
`
`
`
`
`
`interface by positioning the pointer over the desired selec-
`
`
`
`
`
`
`
`tion and entering a selection command.
`In general,
`the
`
`
`
`
`
`
`selection command may be entered by tapping on a touch
`
`
`
`
`
`
`sensitive display screen or by depressing a designated input
`button.
`
`
`
`
`
`
`
`
`Many different schemes for scrolling a pointer across a
`
`
`
`
`
`
`
`
`display screen have been proposed. In some approaches, one
`
`
`
`
`
`
`
`
`
`or more input controls (e.g., up and down keypad buttons, a
`
`
`
`
`
`
`
`jog dial or a joystick) may be manually activated to move a
`
`
`
`
`
`
`
`
`pointer across a display screen. In hand-held devices that
`
`
`
`
`
`
`
`include touch sensitive display screens, a pointer may be
`
`
`
`
`
`
`
`
`
`moved across the display screen simply by tapping the
`
`
`
`
`
`
`
`
`
`screen location where the pointer is to be displayed. In
`
`
`
`
`
`
`
`general, manual input based pointer scrolling approaches
`input involve the use of two hands or require awkward hand
`
`
`
`
`
`
`
`
`
`
`
`
`
`positions to control pointer movement.
`Several non-manual input based schemes have been pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`posed for controlling various operations of a hand-held
`device. For example, US. Pat. No. 6,201,554 discloses a
`
`
`
`
`
`
`
`
`hand-held device that includes a tilt sensor that is configured
`
`
`
`
`
`
`
`
`to sense changes in device tilt relative to a reference tilt that
`
`
`
`
`
`
`
`
`
`is established when a mode selection switch is activated.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Depending upon the selected mode of operation (i.e.,
`
`
`
`
`
`
`
`
`paging, volume control, brightness control, and zoom), one
`
`
`
`
`
`
`
`or more device parameters may be modified in response to
`
`
`
`
`
`
`
`
`
`
`signals provided by the sensor that are indicative of tilt
`
`
`
`
`
`
`
`
`
`direction changes relative to the reference tilt. In a paging
`
`
`
`
`
`
`
`mode of operation, windows that are displayed on a display
`
`
`
`
`
`
`
`
`screen may be paged through one at a time in response to tilt
`
`
`
`
`
`
`
`direction changes. Similarly,
`in a brightness or volume
`
`
`
`
`
`
`
`control mode of operation, the brightness level or volume
`
`
`
`
`
`
`
`level may be modified in response to tilt direction changes.
`
`
`
`
`
`
`
`Finally, in a zoom control mode of operation, the magnifi-
`
`
`
`
`
`
`
`cation at which content is displayed on the display screen
`
`
`
`
`
`
`
`
`
`may be control by changing the tilt of the hand-held device
`relative to the reference tilt. In accordance with the approach
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`described in the ’554 patent, the level or rate of adjustment
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`
`30
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`Page 6 ofll
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The present invention features a hand-held device pointer
`
`
`
`
`
`
`
`positioning scheme (systems and methods) that allows a user
`
`
`
`
`
`
`to control where a pointer is displayed on a display screen
`
`
`
`
`
`
`simply by changing the orientation of the hand-held device,
`
`
`
`
`
`while automatically adjusting to different preferred orienta-
`tions of the hand-held device. In addition,
`the invention
`
`
`
`
`
`
`
`
`
`
`
`
`
`dynamically filters out unintentional device orientation
`
`
`
`
`
`
`changes, such as periodic device orientation changes that
`
`
`
`
`
`
`
`might be caused by carrying the hand-held device while, for
`
`
`
`
`
`
`
`example, walking or driving. In this way,
`the invention
`
`
`
`
`
`
`provides a practical scheme for accurately and reliably
`
`
`
`
`
`
`pointing in hand-held devices based upon changes in device
`
`
`
`
`
`
`
`orientation under a wide variety of different usage condi-
`tions.
`
`
`
`
`
`
`
`
`
`In one aspect, the invention features a hand-held device
`
`
`
`
`
`
`
`that includes a display screen, an orientation sensor, and a
`
`
`
`
`
`
`
`controller. The display screen is operable to display a pointer
`
`
`
`
`
`
`
`
`
`
`at any one of a plurality of pointer screen locations. The
`
`
`
`
`
`
`
`orientation sensor is operable to provide an indication of
`orientation of the hand-held device. The controller is con-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`figured to compute a pointer screen location where a pointer
`
`
`
`
`
`
`
`
`is to be displayed on the display screen based upon multiple
`device orientation indications provided by the orientation
`
`
`
`
`
`
`sensor over time.
`
`
`
`Embodiments of the invention may include one or more
`
`
`
`
`
`
`
`
`
`
`of the following features.
`the controller is configured to
`In some embodiments,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`compute the pointer screen location based upon an average
`
`
`
`
`
`
`
`
`
`of display screen locations that are derived from the multiple
`device orientation indications provided by the orientation
`
`
`
`
`
`
`
`
`
`
`
`
`
`sensor. The controller may be configured to compute the
`
`
`
`
`
`
`
`
`pointer screen location based upon mappings from device
`orientation indications provided by the orientation sensor to
`
`
`
`
`
`
`
`
`display screen locations.
`
`
`
`
`
`
`
`
`The controller preferably is configured to update the
`
`
`
`
`
`
`
`computed pointer screen location once every sampling
`
`
`
`
`
`period. In some embodiments, the controller is configured to
`
`
`
`
`
`
`
`
`
`cause the location where the pointer is displayed on the
`
`
`
`
`
`
`
`
`
`display screen to be updated once every tracking delay
`
`
`
`
`
`
`
`
`
`period. The tracking delay period preferably is at least as
`
`
`
`
`
`
`
`
`long as the sampling period. In some embodiments,
`the
`
`
`
`
`
`
`controller is configured to increment the computed pointer
`screen location one unit toward a center display screen
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`location before causing the pointer to be displayed on the
`
`
`
`
`
`
`
`display screen. The controller may be configured to compute
`
`
`
`
`
`
`
`
`
`a tracking delay period based upon changes in device tilt
`
`
`
`
`
`
`
`
`direction from one sampling period to another. For example,
`
`
`
`
`
`
`
`the controller may be configured to increase the computed
`
`
`
`
`
`
`
`tracking delay period in response to a determination that the
`
`
`
`
`
`
`
`
`device tilt direction is changed from one sampling period to
`
`
`
`
`
`
`
`another. The controller also may be configured to decrease
`
`
`
`
`
`
`
`the computed tracking delay period in response to a deter-
`mination that the device tilt direction is unchanged from one
`
`
`
`
`
`
`
`
`
`
`
`
`sampling period to another.
`
`Page 6 of 11
`
`

`

`
`
`US 6,847,351 B2
`
`
`3
`
`
`
`
`
`
`
`In some embodiments, the controller is operable to com-
`
`
`
`
`
`
`
`pute an average position of the hand-held device based upon
`
`
`
`
`
`
`
`multiple device orientation indications provided by the
`orientation sensor over time.
`In accordance with these
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`embodiments, the controller may be operable to compute a
`
`
`
`
`
`
`
`
`
`relative center position of the display screen based upon the
`
`
`
`
`
`
`
`computed average hand-held device position. In addition,
`
`
`
`
`
`
`
`the controller may be operable to compute the pointer screen
`
`
`
`
`
`
`
`
`location with respect to the computed relative center posi-
`
`
`
`
`tion of the display screen.
`
`
`
`
`
`
`The invention also features a method of pointing in a
`hand-held device. In accordance with this inventive method,
`
`
`
`
`
`
`
`an indication of orientation of the hand-held device is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`provided, and a pointer screen location where a pointer is to
`
`
`
`
`
`
`
`
`be displayed on the display screen is computed based upon
`
`
`
`
`
`
`
`multiple device orientation indications provided by the
`orientation sensor over time.
`
`
`
`
`
`
`
`
`
`
`
`Other features and advantages of the invention will
`
`
`
`
`
`
`become apparent from the following description, including
`
`
`
`
`
`the drawings and the claims.
`DESCRIPTION OF DRAWINGS
`
`
`10
`
`15
`
`
`
`
`20
`
`
`
`
`4
`
`
`
`
`
`
`
`
`As explained in detail below, a user may control the
`
`
`
`
`
`
`position where pointer 14 is displayed on display screen 12
`
`
`
`
`
`
`simply by changing the orientation of hand-held device 10
`
`
`
`
`
`
`relative to a currently preferred device orientation, which is
`
`
`
`
`
`
`
`tracked automatically by hand-held device 10. In addition,
`
`
`
`
`
`
`
`hand-held device 10 dynamically filters out unintentional
`
`
`
`
`
`
`
`device orientation changes, such as periodic device orien-
`
`
`
`
`
`
`
`
`tation changes that might be caused by carrying the hand-
`
`
`
`
`
`
`
`
`
`held device while for example walking or driving. In this
`
`
`
`
`
`
`
`way, pointer 14 may be positioned accurately and reliably at
`
`
`
`
`
`
`
`
`any one of a plurality of pointer screen locations based upon
`
`
`
`
`
`
`
`changes in device orientation under a wide variety of
`
`
`
`different usage conditions.
`
`
`
`
`
`
`Referring to FIGS. 1, 2A and 2B, the current preferred
`device orientation may be assumed to be the device orien-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tation shown in FIG. 1, with an x-axis tilt angle of 6x) 0 and
`
`
`
`
`
`
`
`
`
`
`
`a y-axis tilt angle of 6y) 0 relative to the vertical (2) axis.
`
`
`
`
`
`
`
`
`
`Pointer 14 may be moved controllably from the top left
`
`
`
`
`
`
`
`quadrant of displays screen 12 to the lower left quadrant of
`
`
`
`
`
`
`
`
`
`display screen 12 simply by tilting hand-held device 10
`
`
`
`
`
`
`
`
`
`forward along the y-axis to a y-axis tilt angle of 6y) 1, which
`
`
`
`
`
`
`
`
`is greater than 6y) 0 (FIG. 2A). Similarly, pointer 14 may be
`
`
`
`
`
`
`
`
`moved controllably from the lower left quadrant of display
`
`
`
`
`
`
`
`
`screen 12 to the lower right quadrant of display screen 12
`
`
`
`
`
`
`
`
`simply by tilting hand-held device 10 to the left along the
`
`
`
`
`
`
`
`
`
`x-axis to an x-axis tilt angle of 6x) 1, which is greater than
`
`
`
`
`
`
`
`
`6x) 0 (FIG. 2B). Pointer 14 may be moved to other pointer
`
`
`
`
`
`
`
`screen locations by tilting hand-held device in other direc-
`
`
`
`
`
`
`
`
`
`
`tions relative to the vertical (2) axis. By design, pointer 14
`
`
`
`
`
`
`
`also automatically tends to gravitate towards the center of
`display screen 12. Thus, if hand-held device 10 remains
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`stationary for an extended period, pointer 14 gradually
`moves to the center of display screen 12.
`
`
`
`
`
`
`In some embodiments, a user may be allowed to modify
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the ways in which the movement of pointer 14 across display
`
`
`
`
`
`
`
`
`screen 12 responds to changes in the orientation of hand-
`
`
`
`
`
`
`
`
`held device 10. For example, a user may be allowed to
`
`
`
`
`
`
`specify the movement direction of pointer 14 in response to
`the various tilt directions of hand-held device 10.
`In
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`addition, a user may be allowed to specify the speed at which
`
`
`
`
`
`
`
`the movement of pointer 14 tracks changes in the orientation
`of hand-held device 10.
`
`
`
`
`
`
`
`
`
`
`
`the position
`in one embodiment,
`Referring to FIG. 3,
`
`
`
`
`
`
`where pointer 14 is displayed on display screen 12 may be
`controlled as follows. The current absolute orientation of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`hand-held device 10 is computed based upon an orientation
`
`
`
`
`
`
`
`indication provided by the orientation sensor (step 30). The
`absolute orientation of hand-held device 10 preferably is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`computed along two axes (e.g., the x- and y-axes) relative to
`
`
`
`
`
`
`
`
`the vertical (2) axis; however, in some embodiments, the
`
`
`
`
`
`
`
`absolute device orientation may be computed along only a
`
`
`
`
`
`
`
`
`
`single axis (e.g., the y-axis). The absolute orientation of
`
`
`
`
`
`
`hand-held device 10 may be computed in a conventional
`
`
`
`
`
`
`way. The orientation indications provided by the orientation
`
`
`
`
`
`
`
`
`sensor preferably are sampled at a fixed sampling rate (e.g.,
`
`
`
`
`100 samples per second).
`
`
`
`
`
`
`The computed absolute device orientation is mapped to a
`
`
`
`
`
`
`
`
`current absolute pointer screen location (step 32). The
`
`
`
`
`
`
`device orientation-to-screen mapping may be any one-to-
`one mapping of device orientation to screen location. For
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`example, in one embodiment, the mapping of Table 1 may
`be used:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 1 is a diagrammatic perspective view of a hand-held
`
`
`
`
`
`
`device having a display screen on which a pointer is dis-
`
`played.
`
`
`
`
`
`FIG. 2A is a diagrammatic perspective view of the hand-
`
`
`
`
`
`
`
`held device of FIG. 1 tilted in a forward (y) direction with
`
`
`
`
`respect to a vertical (2) axis.
`
`
`
`
`
`FIG. 2B is a diagrammatic perspective view of the hand-
`
`
`
`
`
`
`
`held device of FIG. 1 tilted in a leftward (X) direction with
`
`
`
`
`respect to a vertical (2) axis.
`
`
`
`
`
`FIG. 3 is a flow diagram of a method of controlling the
`
`
`
`
`position of the pointer on the display screen of the hand-held
`device of FIG. 1.
`
`
`
`
`
`
`
`
`FIG. 4 is a flow diagram of a method of updating a
`
`
`
`
`
`
`
`
`
`tracking delay period based upon changes in the tilt direction
`
`
`
`
`
`
`
`
`
`of the hand-held device of FIG. 1 from one sampling period
`to another.
`
`
`FIG. 5 is a schematic diagram of the hand-held device of
`
`
`
`
`
`
`
`
`
`
`FIG. 1 implemented as a cellular telephone.
`DETAILED DESCRIPTION
`
`
`
`
`
`
`
`
`
`In the following description, like reference numbers are
`
`
`
`
`
`
`
`used to identify like elements. Furthermore, the drawings are
`
`
`
`
`
`intended to illustrate major features of exemplary embodi-
`
`
`
`
`
`
`ments in a diagrammatic manner. The drawings are not
`intended to depict every feature of actual embodiments nor
`
`
`
`
`
`
`relative dimensions of the depicted elements, and are not
`
`
`
`
`
`
`
`drawn to scale.
`
`
`in one embodiment, a hand-held
`Referring to FIG. 1,
`
`
`
`
`
`
`
`
`
`
`
`
`device 10 includes a display screen 12 that is configured to
`
`
`
`
`
`
`
`
`display a graphical user interface, which may present one or
`
`
`
`
`
`
`
`
`more user commands or options for controlling the operation
`
`
`
`
`
`
`
`
`of hand-held device 10. Apointer 14 may be positioned over
`
`
`
`
`
`
`
`
`the options that are presented by the graphical user interface
`
`
`
`
`
`
`
`
`
`at any one of a plurality of pointer screen locations. A
`
`
`
`
`
`
`selection button 16 may be depressed to activate a command
`60
`
`
`
`
`
`
`
`
`
`or option selected by pointer 14. Hand-held device 10 also
`
`
`
`
`
`
`
`includes an orientation (or tilt) sensor (e.g., a gravitational
`
`
`
`
`
`
`accelerometer) that is operable to provide an indication of
`the orientation of hand-held device 10, and a controller that
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is configured to compute pointer screen locations where
`
`
`
`
`
`
`pointer 14 is to be displayed based upon device orientation
`
`
`
`
`
`
`
`indications provided by the orientation sensor over time (see
`
`
`FIG. 5).
`
`
`
`
`25
`
`
`
`
`
`
`
`
`
`
`30
`
`35
`
`40
`
`45
`
`50
`
`
`
`
`
`
`
`
`55
`
`65
`
`Page 7 ofll
`
`Page 7 of 11
`
`

`

`Angle of X/Y—Axis
`
`
`Relative to Z—Axis
`
`
`00
`90°
`180°
`
`
`
`
`
`TABLE 1
`
`Screen Position Along Screen Position Along
`
`
`
`
`
`X-Axis
`Y—Axis
`
`
`Far Right
`
`Center
`
`Far Left
`
`
`
`Top
`
`Center
`
`Bottom
`
`
`
`
`
`
`
`
`
`
`
`
`Next, an average of absolute screen pointer locations is
`
`
`
`
`
`
`
`
`updated based upon the computed absolute pointer screen
`
`
`
`
`
`
`
`
`location (step 34). In one embodiment, the average absolute
`
`
`
`
`
`
`
`
`
`screen pointer location is computed from the 100 most
`
`
`
`
`
`
`
`recent samples of absolute screen pointer locations in accor-
`
`
`
`
`
`
`
`
`dance with the following exemplary C++ pseudocode rou-
`tine.
`
`© 2001 Siemens Information and Communication Mobile,
`
`
`
`
`
`
`
`
`
`LLC, All rights reserved.
`
`
`
`10
`
`15
`
`
`
`
`
`US 6,847,351 B2
`
`
`
`
`6
`
`
`
`
`
`
`
`
`direction from one sampling period to another. This allows
`
`
`
`
`
`
`unintentional device orientation changes, such as periodic
`
`
`
`
`
`
`
`device orientation changes that might be caused by carrying
`
`
`
`
`
`
`
`the hand-held device while walking or driving, to be filtered
`
`
`
`
`
`
`
`
`out dynamically. The current device tilt direction is com-
`
`
`
`
`
`
`
`
`puted in a conventional way (step 38). If current tilt direction
`
`
`
`
`
`
`
`
`
`is different from the tilt direction computed in the previous
`
`
`
`
`
`
`
`
`
`sampling period (step 40), a delay increment is set to +1
`
`
`
`
`
`
`
`
`
`(step 42). Otherwise, the delay increment is set to —1 (step
`
`
`
`
`
`
`
`
`44). If the sum of the tracking delay period computed in the
`
`
`
`
`
`
`
`
`previous sampling period and the delay increment is greater
`
`
`
`
`
`
`
`
`
`
`than the sampling period (step 46), the current tracking delay
`
`
`
`
`
`
`
`
`period is set to the sum of the previous tracking delay period
`
`
`
`
`
`
`
`
`
`and the delay increment (step 48). Otherwise, the current
`
`
`
`
`
`
`
`
`
`tracking delay period is set to the sampling period (step 50).
`
`
`
`
`
`
`
`
`
`In this way, the tracking delay period is always at least as
`
`# define AchMax 100
`
`
`
`
`// average sample count for X and Y coordinates
`# define AchMax 100
`
`
`
`
`
`
`
`
`
`unsigned char Ach[AchMax];
`
`
`
`unsigned char Ach[AchMax];
`
`
`
`//--Interrupt handler for position averaging, occurs every Ta milliseconds
`
`
`
`
`
`
`
`//(SamplingPeriod = Ta)
`
`
`void PositionAverage(void)
`
`
`
`/shift sample arrays
`
`
`
`unsigned char i;
`
`
`unsigned int AngTotal = 0;
`
`
`
`unsigned int AvgYTotal = 0;
`
`
`
`for ( i = AchMax — 1; i > —1;i——)
`
`
`
`Ach[i+1]=Ach[i];
`
`
`
`for ( i = AchMax — 1; i > —1;i——)
`
`
`
`Ach[i+1]=Ach[i];
`
`
`
`
`// push new sample into array
`
`
`
`
`
`
`Ach [ 0 ] = AbsCurrentPositionX;
`
`
`Ach [ 0 ] = AbsCurrentPositionY;
`
`
`// accumulate
`
`
`for ( i = 0; i < AchMax — 1; i++)
`
`
`AngTotal += Ach [ i ];
`
`
`
`for ( i = 0; i < AchMax — 1; i++)
`
`
`AvgYTotal += Ach [ i ];
`
`
`
`// average
`
`
`AngTotal = round(AngTotal/AchMax);
`
`
`AvgYTotal = round(AvgYTotal/AchMax);
`
`
`// update cursor position
`
`
`
`
`AbsCurrentPositionX = AngTotal;
`
`
`AbsCurrentPositionY = AvgYTotal;
`
`
`}
`
`
`
`
`
`
`
`{/
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A pointer tracking delay period also is updated based so long as the sampling period. In one embodiment, the track-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ing delay period may be computed in accordance with the
`upon the computed absolute pointer screen location (step
`
`
`
`
`
`following exemplary C++ pseudocode routine.
`
`36).
`© Siemens Information and Communication Mobile, LLC,
`As shown in FIG. 4, in one embodiment, the tracking
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`delay period may be responsive to changes in device tilt
`All rights reserved.
`
`
`
`
`
`
`void CalculateTrackingDelayFactor(void)
`
`
`
`{
`// determine if the cursor change relative to the previous position is negative or
`
`
`
`
`
`
`
`
`
`
`//positive,
`
`// 0 if no change, —1 if negative change and 1 if positive change
`
`
`
`
`
`
`
`
`XCurrentSign = AbsPrevPositionX — AbsCurrentPositionX;
`
`
`
`if (XCurrentSign)
`
`
`{
`XCurrentSign = XCurrentSign/abs(XCurrentSign);
`
`XDelayFactor = — (XPrevSign * XCurrentSign);
`
`
`
`// store data for next interrupt
`
`
`
`
`
`
`
`
`
`Page 8 ofll
`
`Page 8 of 11
`
`

`

`
`
`US 6,847,351 B2
`
`
`
`7
`
`
`
`-continued
`
`
`
`
`
`
`
`XPrevSign = XCurrentSign;
`
`
`AbsPrevPositionX = AbsCurrentPositionX;
`
`
`}
`YCurrentSign = AbsPrevPositionY — AbsCurrentPositionY;
`
`
`if (YCurrentSign)
`
`
`
`CurrentSign = YCurrentSign/abs(YCurrentSign);
`
`YDelayFactor = — (YPrevSign * YCurrentSign);
`
`
`
`// store data for next interrupt
`
`
`
`
`
`
`YPrevSign = YCurrentSign;
`
`
`AbsPrevPositionY = AbsCurrentPositionY;
`
`
`}
`//if there is a change in direction, DelayFactor becomes 1, otherwise —1
`
`
`
`
`
`
`
`DelayFactor = DelayXFactor I DelayYFactor;
`
`
`
`// make sure the tracking delay is never smaller than the sampling period
`
`
`
`
`
`
`
`
`
`
`
`TrackingDelay = (TrackingDelay + DelayFactor > SamplingPeriod)?
`
`
`
`
`
`TrackingDelay + DelayFactor : SamplingPeriod;
`
`
`
`
`}
`
`{Y
`
`
`
`
`
`
`
`
`
`
`
`Referring back to FIG. 3, if the tracking delay period has
`
`
`
`
`
`
`
`not expired (step 52), an orientation indication provided by
`
`
`
`
`
`
`
`
`the orientation sensor is sampled and the current absolute
`
`
`
`
`
`
`
`orientation of hand-held device 10 is computed (step 30).
`
`
`
`
`
`
`
`Otherwise, the current pointer screen location is computed at
`
`
`
`
`
`
`
`the average absolute pointer screen location incremented
`
`
`
`
`
`
`
`
`
`
`one unit (e.g., one pixel) towards the center of display screen
`
`
`
`
`
`
`
`
`
`12 (step 54). In one embodiment, the current pointer screen
`
`
`
`
`
`
`
`location may be computed in accordance with the following
`
`
`
`
`exemplary C++ pseudocode routine.
`© Siemens Information and Communication Mobile, LLC,
`
`
`
`
`
`
`
`
`
`All rights reserved.
`
`
`
`20
`
`25
`
`
`
`30
`
`
`
`
`
`
`
`
`synthesizer 66. Frequency synthesizer 66 controls the oper-
`
`
`
`
`
`
`
`
`
`ating frequencies of receiver 60 and transmitter 68, and
`
`
`
`
`
`
`generates electronic radio frequency signals in response to
`
`
`
`
`
`
`control signals received from controller 64.
`
`
`
`
`
`
`
`In general, hand-held device 10 may be implemented as
`
`
`
`
`
`
`
`
`any one of a wide variety of different portable electronic
`
`
`
`
`
`
`devices, including a cellular telephone, a cordless telephone,
`
`
`
`
`
`
`
`
`a pager, a personal digital assistant (PDA), a solid state
`
`
`
`
`
`
`
`digital audio player, a CD or MCD player, a camera, and a
`
`
`
`
`
`
`
`
`
`game pad. Hand-held device 10 also may include various
`
`
`
`
`
`implementation-dependent user controls, including a play
`button, a stop button, a fast forward/next selection button, a
`
`
`
`
`
`
`
`
`
`
`#define ScreenWidth 25 6
`
`
`
`#define ScreenHeight 256 // assume the display is 256 pixels wide by 256 pixels high
`
`
`
`
`
`
`
`
`
`
`
`
`128
`#define CenterX
`
`
`#define CenterY
`
`128 //the center X and Y position are half of the display
`
`
`
`
`
`
`
`
`
`
`//dimensions
`
`//-- Interrupt handler for cursor center positioning, occurs every Td milliseconds
`
`
`
`
`
`
`
`
`
`//(TrackingDelay = Td)
`
`
`void PositionCenter(void)
`
`
`{
`// determine if the cursor position relative to the center is negative or positive
`
`
`
`
`
`
`
`
`
`
`IncXFactor = CenterX — AbsCurrentPositionX;
`
`
`
`IncYFactor = CenterY — AbsCurrentPositionY;
`
`
`
`// determine if the step increment for X and Y towards the center is +1 or —1
`
`
`
`
`
`
`
`
`
`
`IncXFactor = IncXFactor/abs(IncXFactor);
`
`
`IncYFactor = IncYFactor/abs(IncYFactor);
`
`
`// move the cursor one step every interrupt
`
`
`
`
`
`
`
`CurrentPositionX += IncXFactor;
`
`
`CurrentPositionY += IncYFactor;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Pointer 14 is displayed at the computed current screen
`
`
`
`
`
`
`
`
`
`pointer location (step 56), and the process is repeated (step
`
`30).
`Referring to FIG. 5, in one embodiment, hand-held device
`
`
`
`
`
`
`
`
`
`
`
`
`
`10 may be implemented as a cellular telephone that includes
`an antenna 58, a receiver 60, a speaker 62, a controller 64,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a frequency synthesizer 66, a transmitter 68, a microphone
`
`
`
`
`
`
`
`
`70, a keypad 72, a display 12, a memory 74, and a battery
`
`
`
`
`
`
`
`
`
`power supply 76. Hand-held device 10 also includes a tilt
`
`
`
`
`
`
`
`sensor 78 (e.g., an ADXL202 two-axis acceleration sensor
`available from Analog Devices, Inc. of Norwood, Mass.,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`USA.) that is operable to provide indications of the current
`
`
`
`
`
`
`
`
`orientation of hand-held device 10 along two orthogonal
`
`
`
`
`
`
`
`axes relative to a vertical axis. Controller 64 choreographs
`
`
`
`
`
`
`
`
`the operation of receiver 60, transmitter 68, and frequency
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`
`
`
`
`
`
`rewind/previous selection button, and a volume control dial.
`
`
`
`
`
`
`
`
`
`In addition, hand-held device 10 may have an output port for
`
`
`
`
`
`
`
`connecting to an input jack of an audio output device (e.g.,
`
`
`
`
`
`
`
`headphones), and a cable port for connecting to a computer
`or other hardware system. In some embodiments, hand-held
`
`
`
`
`
`
`
`device 10 may include a wireless communication port, for
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`example, an IrDA (Infrared Data Association) port, through
`
`
`
`
`
`
`
`
`which hand-held device 10 may wirelessly exchange data
`
`
`
`
`
`
`
`with other similarly configured devices,
`including other
`hand-held devices. Some embodiments may include an RF
`
`
`
`
`
`
`antenna instead of, or in addition to, a wireless communi-
`
`
`
`
`
`
`
`
`
`
`cation port.
`The systems and methods described herein are not limited
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to any particular hardware or software configuration, but
`
`
`
`
`
`
`rather they may be implemented in any computing or
`
`Page 9 ofll
`
`Page 9 of 11
`
`

`

`
`
`US 6,847,351 B2
`
`9
`
`
`
`
`
`
`processing environment, including in digital e

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket