U.S. patent application number 12/645457 was filed with the patent office on 2010-04-22 for methods and apparatuses for operating a portable device based on an accelerometer.
Invention is credited to Ray L. Chang, David R. Falkenburg, Louis G. Gerbarg, Aaron Leiba, Paul J. Wehrenberg, Richard C. Williams.
Application Number | 20100097318 12/645457 |
Document ID | / |
Family ID | 34960992 |
Filed Date | 2010-04-22 |
United States Patent
Application |
20100097318 |
Kind Code |
A1 |
Wehrenberg; Paul J. ; et
al. |
April 22, 2010 |
METHODS AND APPARATUSES FOR OPERATING A PORTABLE DEVICE BASED ON AN
ACCELEROMETER
Abstract
Methods and apparatuses for operating a portable device based on
an accelerometer are described. According to one embodiment of the
invention, an accelerometer attached to a portable device detects a
movement of the portable device. In response, a machine executable
code is executed within the portable device to perform one or more
predetermined user configurable operations. Other methods and
apparatuses are also described.
Inventors: |
Wehrenberg; Paul J.; (Palo
Alto, CA) ; Leiba; Aaron; (Palo Alto, CA) ;
Williams; Richard C.; (Saratoga, CA) ; Falkenburg;
David R.; (San Jose, CA) ; Gerbarg; Louis G.;
(Cupertino, CA) ; Chang; Ray L.; (San Jose,
CA) |
Correspondence
Address: |
APPLE INC./BSTZ;BLAKELY SOKOLOFF TAYLOR & ZAFMAN LLP
1279 OAKMEAD PARKWAY
SUNNYVALE
CA
94085-4040
US
|
Family ID: |
34960992 |
Appl. No.: |
12/645457 |
Filed: |
December 22, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10986730 |
Nov 12, 2004 |
|
|
|
12645457 |
|
|
|
|
10890856 |
Jul 13, 2004 |
7307228 |
|
|
10986730 |
|
|
|
|
10348465 |
Jan 21, 2003 |
6768066 |
|
|
10890856 |
|
|
|
|
09678541 |
Oct 2, 2000 |
6520013 |
|
|
10348465 |
|
|
|
|
10791495 |
Mar 1, 2004 |
7218226 |
|
|
09678541 |
|
|
|
|
Current U.S.
Class: |
345/158 ;
700/94 |
Current CPC
Class: |
G06F 3/162 20130101;
G06F 1/1684 20130101; G06F 1/1616 20130101; G06F 2200/1614
20130101; G06F 1/1694 20130101; G06F 1/1605 20130101; G06F 1/1698
20130101; G06F 2200/1636 20130101; G06F 2200/1637 20130101; G06F
3/0485 20130101; G06F 3/167 20130101; G06F 3/016 20130101; G06F
1/1626 20130101; G06F 3/04845 20130101; G06F 3/165 20130101; G06F
3/0346 20130101 |
Class at
Publication: |
345/158 ;
700/94 |
International
Class: |
G06F 3/033 20060101
G06F003/033; G06F 17/00 20060101 G06F017/00 |
Claims
1. A machine readable storage medium storing executable
instructions which when executed cause a data processing system to
perform a method comprising: displaying on a display of a portable
device a sequence of images transitioning towards a direction from
a first scene to a second scene from a viewpoint of a user;
detecting movement of the portable device using an accelerometer
attached to the portable device; and executing machine-executable
code to perform one or more actions in response to the detection of
the movement of the portable device, including detecting whether
the movement of the portable device is in accordance with a
direction associated with the direction of the transition from the
viewpoint of the user, and performing a first operation if the
movement is not detected in accordance with a direction associated
with the direction of the transition.
2. The method of claim 1, further comprising: determining a
direction of the movement based on movement data provided by the
accelerometer; and comparing the determined direction of the
movement with a predetermined direction to determine whether the
determined direction relatively matches the predetermined direction
in order to execute the machine-executable code.
3. The method of claim 2, further comprising determining an
orientation of the portable device after the movement based on
movement data collected by the accelerometer, wherein the one or
more predetermined user configurable actions are performed based on
the determined orientation.
4. The method of claim 3, wherein the one or more predetermined
user configurable actions include displaying an image on a display
of the portable device according to an orientation that is
relatively identical to an orientation of the image prior to the
movement.
5. A method, comprising: displaying a first portion of a document
page on a display of the portable device; detecting movement of the
portable device using an accelerometer attached to the portable
device; and displaying a second portion of the document page
different than the first portion on the display of the portable
device in response to the detection.
6. The method of claim 5, further comprising determining a
direction of the movement based on movement data provided by the
accelerometer, wherein the second portion of the document page is
displayed if the determined direction relatively matches a
predetermined direction.
7. The method of claim 6, wherein the second portion is displayed
transitioned from the first portion as if the portable device is
moving while the document page is steady.
8. The method of claim 6, wherein the transition from the first
portion to the second portion is performed in accordance with the
determined direction of the movement from a viewpoint of a
user.
9. The method of claim 5, wherein the document page cannot entirely
be displayed on one page within the display of the portable
device.
10. The method of claim 5, wherein the document page is one of a
map, a newspaper, and a video game scene.
11. A method, comprising: displaying on a display of a portable
device a sequence of images transitioning towards a direction from
a first scene to a second scene from a viewpoint of a user;
detecting a movement of the portable device using an accelerometer
attached to the portable device; and performing a predetermined
operation if the detected movement is not in accordance with a
direction associated with the direction of the transition from the
viewpoint of the user.
12. The method of claim 11, wherein the predetermined operation
includes one of causing a vibration of the portable device,
generating an audio alert, and a combination of a vibration and an
audio alert.
13. The method of claim 11, further comprising: determining an
acceleration of the movement of the portable device based on the
movement data provided by the accelerometer; and adjusting
displaying the sequence of images with an acceleration relatively
related to the acceleration of the movement.
14. The method of claim 11, wherein the sequence of images
represents a moving scene of a video game and wherein the portable
device represents a moving object facing the moving scene from a
viewpoint of a user holding the portable device.
15. A method, comprising: detecting a movement of a portable device
using an accelerometer attached to the portable device; determining
an orientation of the portable device after the movement based on
movement data provided by the accelerometer; and activating at
least one interface of the portable device that is best suitable
for given the determined orientation.
16. The method of claim 15, further comprising optionally
deactivating at least one interface of the portable device that is
less suitable for the given determined orientation.
17. The method of claim 16, further comprising: determining whether
the portable device is held by a user after the movement based on
the movement data provided by the accelerometer; and predicting
locations of the hands of the user for holding the portable device,
wherein the at least one interface is activated or deactivated
based the predicted locations of the hands.
18. The method of claim 17, further comprising: activating at least
one interface that is not within the predicted locations; and
deactivating at least one interface that is within the predicted
locations.
19. The method of claim 16, wherein the at least one interface
includes one or more wireless transceiver.
20. The method of claim 19, further comprising: activating at least
one wireless transceiver that communicates with relative strong
signals; and deactivating at least one wireless transceiver that
communicates with relative weak signals.
21. The method of claim 16, wherein the at least one interface
includes one or more speakers.
22. The method of claim 21, further comprising driving at least one
speaker to have a best sound effect given the determined
orientation of the portable device after the movement.
23. The method of claim 16, wherein the at least one interface
includes one or more cameras.
24. The method of claim 16, wherein the at least one interface
includes one or more microphones.
25. The method of claim 16, wherein the at least one interface
includes one or more video output interfaces.
26. A method, comprising: determining whether movement of a
portable device is a repetitive movement using an accelerometer;
determining a repetitive rate of the movement based on movement
data provided by the accelerometer; and playing a multimedia
content via the portable device based on the determined repetitive
rate of the movement.
27. The method of claim 26, further comprising adjusting a rhythm
of the multimedia content to relatively match the determined
repetitive rate of the movement.
28. The method of claim 26, further comprising selecting and
playing a multimedia content that has a tempo relatively matched
with the determined repetitive rate of the movement.
29. The method of claim 26, wherein the portable device is a
digital audio player.
Description
RELATED APPLICATIONS
[0001] This application is a divisional of co-pending U.S. patent
application Ser. No. 10/986,730, filed on Nov. 12, 2004, which is a
continuation-in-part (CIP) of U.S. patent application Ser. No.
10/890,856, filed on Jul. 13, 2004, now U.S. Pat. No. 7,307,228,
which is a continuation of U.S. patent application Ser. No.
10/348,465, filed on Jan. 21, 2003, now U.S. Pat. No. 6,768,066,
which is a divisional application of U.S. patent application Ser.
No. 09/678,541, filed on Oct. 2, 2000, now U.S. Pat. No.
6,520,013.
[0002] This application is also a continuation-in-part (CIP) of
co-pending U.S. patent application Ser. No. 10/791,495, filed Mar.
1, 2004. The above-identified U.S. patent applications are hereby
incorporated by reference.
FIELD OF THE INVENTION
[0003] The present invention relates generally to a portable
device. More particularly, this invention relates to operating a
portable device using an accelerometer of the portable device.
BACKGROUND OF THE INVENTION
[0004] Accelerometers are devices widely used for applications as
diverse as vibration monitoring, appliance control, joysticks,
industrial process control, space launches, satellite control, and
many others. For example, an accelerometer has been used in a
vehicle as sensor to detect a variety of operating conditions while
the vehicle is moving.
[0005] As computers have been getting more popular, an
accelerometer has been used in a computer to sense a sudden move,
such as a free fall, of a computer. A typical application of an
accelerometer in a computer is to protect a read/write head of a
hard drive. However, there has been a lack of applications that an
accelerometer is used in conjunction with software executable
within a computer.
SUMMARY OF THE INVENTION
[0006] Methods and apparatuses for operating a portable device
based on an accelerometer are described. According to one
embodiment of the invention, an accelerometer attached to a
portable device detects a movement of the portable device. In
response, a machine executable code is executed to perform a
predetermined user configurable operation.
[0007] According to one embodiment of the invention, an
accelerometer of a portable device may constantly or periodically
monitor the movement of the portable device. As a result, an
orientation of the portable device prior to the movement and after
the movement may be determined based on the movement data provided
by the accelerometer attached to the portable device.
[0008] According to another embodiment of the invention, an
accelerometer may be used to detect a movement of a portable device
as a way to trigger whether a page of document or image may be
displayed.
[0009] According to another embodiment of the invention, an
accelerometer may be used in a navigation application. For example,
a portable device having an accelerometer attached therein may be
used as a navigation tool to navigate a relatively large object or
document that normally cannot be displayed entirely at once within
a display of the portable device.
[0010] According to another embodiment of the invention, an
accelerometer may be used in a gaming application, where the
accelerometer may be used to detect a scene change during a video
game running within a portable device.
[0011] According to another embodiment of the invention, an
accelerometer may be used to detect a movement of a portable device
and an orientation of the portable device may be determined based
on the movement data provided by the accelerometer. Thereafter, one
or more interfaces of the portable device may be activated or
deactivated based on the determined orientation after the
movement.
[0012] According to another embodiment of the invention, an
accelerometer may be used to detect and determine activities of a
user (e.g., joggling) with a portable device having the
accelerometer attached therein.
[0013] According to another embodiment of the invention, an
accelerometer may be used to determine whether a portable device is
moving (e.g., carried by a user) and the portable device should be
put in a proper operating state (e.g., a sleep or hibernated
mode).
[0014] According to another embodiment of the invention, an
accelerometer may be used to detect whether a portable device is
moved according to certain directions, in order to determine
whether a password is entered correctly.
[0015] According to another embodiment of the invention, an
accelerometer may be used to detect and record a sequence of
movements of a portable device, where the recorded movement data
may be used to recreate the moving history subsequently (e.g., off
line).
[0016] Other features of the present invention will be apparent
from the accompanying drawings and from the detailed description
which follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The present invention is illustrated by way of example and
not limitation in the figures of the accompanying drawings in which
like references indicate similar elements.
[0018] FIG. 1 is a block diagram illustrating an exemplary
architecture of a portable device according to one embodiment of
the invention.
[0019] FIG. 2 is a flow diagram illustrating an exemplary process
for operating a portable device in response to an event generated
by an accelerometer, according to one embodiment of the
invention.
[0020] FIGS. 3A and 3B are diagrams illustrating an exemplary
application that an accelerometer may be utilized according to one
embodiment of the invention.
[0021] FIG. 4 is a flow diagram illustrating an exemplary processor
for reorienting a displayed document based on an accelerometer,
according to one embodiment of the invention.
[0022] FIGS. 5A and 5B are diagrams illustrating exemplary
movements of a portable device that may be used to trigger
displaying a page of document, according to certain embodiments of
the invention.
[0023] FIG. 6 is a flow diagram illustrating an exemplary process
for presenting a document based on an accelerometer according to
one embodiment of the invention.
[0024] FIGS. 7A and 7B are diagrams illustrating an exemplary
navigation application based on an accelerometer according to one
embodiment of the invention.
[0025] FIG. 8 is a flow diagram illustrating an exemplary process
for navigating an image based on an accelerometer, according to one
embodiment of the invention.
[0026] FIGS. 9A and 9B are diagrams illustrating an exemplary
gaming application based on an accelerometer, according to one
embodiment of the invention.
[0027] FIGS. 10A and 10B are diagrams illustrating an exemplary
gaming application based on an accelerometer, according to another
embodiment of the invention.
[0028] FIG. 11 is a flow diagram illustrating an exemplary process
for a gaming application based on an accelerometer, according to
one embodiment of the invention.
[0029] FIGS. 12A and 12B are diagrams illustrating an exemplary
mechanism for activating/deactivating interfaces of a portable
device based on an accelerometer, according to one embodiment of
the invention.
[0030] FIG. 13 is a flow diagram illustrating an exemplary process
for operating interfaces of a portable device based on an
accelerometer, according to one embodiment of the invention.
[0031] FIGS. 14A and 14B are diagrams illustrating an exemplary
mechanism for activating/deactivating multimedia interfaces of a
portable device using an accelerometer, according to one embodiment
of the invention.
[0032] FIG. 15 is a flow diagram illustrating an exemplary process
for reconfiguring multimedia interfaces based on an accelerometer,
according to one embodiment of the invention.
[0033] FIG. 16 is a flow diagram illustrating an exemplary process
for playing multimedia contents based on an accelerometer,
according to one embodiment of the invention.
[0034] FIG. 17 is a flow diagram illustrating an exemplary process
for power management of a portable device according to one
embodiment of the invention.
[0035] FIG. 18 is a flow diagram illustrating an exemplary process
for processing password according to one embodiment of the
invention.
[0036] FIG. 19 is flow diagram illustrating an exemplary process
for recreating a trail of movements using an accelerometer,
according to one embodiment of the invention.
[0037] FIG. 20 is a block diagram illustrating an exemplary
portable device having an accelerometer according to one embodiment
of the invention.
[0038] FIG. 21 is a block diagram of a digital processing system
which may be used with one embodiment of the invention.
[0039] FIG. 22 is a flow diagram illustrating an exemplary process
for motion compensation using an accelerometer according to one
embodiment of the invention.
[0040] FIG. 23 is flow diagram illustrating an exemplary process
for detecting an impulse using an accelerometer, according to one
embodiment of the invention.
[0041] FIG. 24 is flow diagram illustrating an exemplary process
for operating a component of a portable device using an
accelerometer, according to one embodiment of the invention.
DETAILED DESCRIPTION
[0042] Methods and apparatuses for operating a portable device
based on an accelerometer are described. According to certain
embodiments, an accelerometer has been used within a portable
device, such as, for example, a laptop computer, a tablet PC, a
personal digital assistant (PDA), a cellular phone, and a digital
multimedia player, etc. Once the accelerometer detects a movement
of the portable device, a moving direction, also referred to as a
moving vector or an acceleration vector, is determined based on the
movement data provided by the accelerometer. The moving direction
and/or the movement data may be provided to a software component
(e.g., application software) executed within the portable device.
In response to the detection of the movement of the portable
device, the corresponding software component performs one or more
predetermined user configurable actions, such as, for example,
advancing a page of document, etc., based on the moving direction
and/or movement data provided by the accelerometer.
[0043] In the following description, numerous details are net forth
to provide a more thorough explanation of the present invention. It
will be apparent, however, to one skilled in the art, that the
present invention may be practiced without these specific details.
In other instances, well-known structures and devices are shown in
block diagram form, rather than in detail, in order to avoid
obscuring the present invention.
[0044] Some portions of the detailed descriptions which follow are
presented in terms of algorithms and symbolic representations of
operations on data bits within a computer memory. These algorithmic
descriptions and representations are the means used by those
skilled in the data processing arts to most effectively convey the
substance of their work to others skilled in the art. An algorithm
is here, and generally, conceived to be a self-consistent sequence
of steps leading to a desired result. The steps are those requiring
physical manipulations of physical quantities. Usually, though not
necessarily, these quantities take the form of electrical or
magnetic signals capable of being stored, transferred, combined,
compared, and otherwise manipulated. It has proven convenient at
times, principally for reasons of common usage, to refer to these
signals as bits, values, elements, symbols, characters, terms,
numbers, or the like.
[0045] It should be borne in mind, however, that all of these and
similar terms are to be associated with the appropriate physical
quantities and are merely convenient labels applied to these
quantities. Unless specifically stated otherwise as apparent from
the following discussion, it is appreciated that throughout the
description, discussions utilizing terms such as "processing" or
"computing" or "calculating" or "determining" or "displaying" or
the like, refer to the action and processes of a computer system,
or similar electronic computing device, that manipulates and
transforms data represented as physical (electronic) quantities
within the computer system's registers and memories into other data
similarly represented as physical quantities within the computer
system memories or registers or other such information storage,
transmission or display devices.
[0046] The present invention also relates to apparatus for
performing the operations herein. This apparatus may be specially
constructed for the required purposes, or it may comprise a general
purpose computer selectively activated or reconfigured by a
computer program stored in the computer. Such a computer program
may be stored in a computer readable storage medium, such as, but
is not limited to, any type of disk including floppy disks, optical
disks, CD-ROMs, and magnetic-optical disks, read-only memories
(ROMs), random access memories (RAMs), erasable programmable ROMs
(EPROMs), electrically erasable programmable ROMs (EEPROMs),
magnetic or optical cards, or any type of media suitable for
storing electronic instructions, and each coupled to a computer
system bus.
[0047] The algorithms and displays presented herein are not
inherently related to any particular computer or other apparatus.
Various general purpose systems may be used with programs in
accordance with the teachings herein, or it may prove convenient to
construct more specialized apparatus to perform the required method
steps. The required structure for a variety of these systems will
appear from the description below. In addition, the present
invention is not described with reference to any particular
programming language. It will be appreciated that a variety of
programming languages may be used to implement the teachings of the
invention as described herein.
[0048] A machine-readable medium includes any mechanism for storing
or transmitting information in a form readable by a machine (e.g.,
a computer). For example, a machine-readable medium includes read
only memory ("ROM"); random access memory ("RAM"); magnetic disk
storage media; optical storage media; flash memory devices;
electrical, optical, acoustical or other form of propagated signals
(e.g., carrier waves, infrared signals, digital signals, etc.);
etc.
Overview
[0049] FIG. 1 is a block diagram illustrating an exemplary
architecture of a portable device according to one embodiment of
the invention. In one embodiment, the exemplary system 100
includes, but is not limited to, a processor, a memory coupled to
the processor, the memory having instructions stored therein, and
an accelerometer coupled to the processor and the memory to detect
movement of the portable device, where the processor executes
instructions from the memory to perform one or more predetermined
user configurable actions in response to the detection of the
movement of the portable device. In an alternative embodiment, the
exemplary system 100 further includes a controller coupled to the
accelerometer to determine a direction of the movement based on
movement data provided by the accelerometer and to compare the
determined direction of the movement with a predetermined direction
to determine whether the determined direction relatively matches
the predetermined direction in order to execute the
instructions.
[0050] Referring to FIG. 1, according to one embodiment, exemplary
system 100 includes one or more accelerometers 101, one or more
controllers 102 coupled to the accelerometers 101, a motion related
firmware 103, motion software component 104, and one or more
application software 105-107. The accelerometer 101 may be attached
to the portable device, such as, for example, a motherboard of the
portable device. Alternatively, the accelerometer 101 may be
integrated with another component of the portable device. For
example, the accelerometer 101 may be integrated with a chipset of
the portable device.
[0051] According to one embodiment, the accelerometer 101 is able
to detect a movement including an acceleration and/or
de-acceleration of the portable device. The accelerometer 101 may
generate movement data for multiple dimensions, which may be used
to determine a moving direction of the portable device. For
example, the accelerometer 101 may generate X, Y, and Z axis
acceleration information when the accelerometer 101 detects that
the portable device is moved. In one embodiment, the accelerometer
101 may be implemented as those described in U.S. Pat. No.
6,520,013, which is assigned to a common assignee of the present
application. Alternatively, the accelerometer 101 may be
implemented using a variety of accelerometers commercially
available. For example, the accelerometer 101 may be a KGF01
accelerometer from Kionix or an ADXL311 accelerometer from Analog
Devices.
[0052] In addition, the exemplary system 100 includes one or more
controllers 102 coupled to the accelerometer(s) 101. The controller
102 may be used to calculate a moving direction, also referred to
as moving vector, of the portable device. The moving vector may be
determined according to one or more predetermined formulas based on
the movement data (e.g., X, Y, and Z axis moving information)
provided by the accelerometer 101. Certain embodiments of
calculations of a moving vector will be described in details
further below.
[0053] According to one embodiment, the controller 102 is
responsible for monitoring one or more outputs of the accelerometer
101 and communicating with other components, such as, for example,
a chipset (e.g., a memory controller or a north bridge) and/or a
microprocessor (e.g., a CPU), of the portable device. The
controller 102 may be implemented using a variety of
microcontrollers commercially available. For example, controller
102 may be a PIC 16F818 microcontroller from Microchip. Controller
102 may be integrated with the accelerometer 101. Alternatively,
controller 102 may be integrated with other components, such as,
for example, a chipset or a microprocessor, of the portable
device.
[0054] In one embodiment, the controller 102 may communicate with
other components via a bus, such as, for example, an I2C (inter-IC)
bus, and an interrupt line.
[0055] In response to the movement data, the controller 102
generates an interrupt, for example, a hardware interrupt, a
software interrupt, or a combination of both, via an interrupt line
to other components, such as, firmware 103, to notify them of such
a movement. In addition, the controller 102 may further calculate a
moving vector based on the movement data provided by the
accelerometer 101. Further detailed information concerning the
communications between the controller 102 and other components of
the portable device will be described further below.
[0056] Referring back to FIG. 1, motion firmware 103 includes one
or more pieces of machine executable code, which may be embedded
within one or more hardware components, such as, for example,
controller 102 or a chipset (e.g., a part of BIOS, also referred to
as basic input/output system), of the portable device. In one
embodiment, motion firmware 103 may be stored in a read-only memory
(ROM) (e.g., a flash memory) of controller 102. However, the
machine executable code of motion firmware 103 may be upgraded by
uploading a newer version into the memory, for example, using a
flash utility. The firmware 103 may be responsible for detecting
any events that are generated in response to the movement
detection. According to one embodiment, the firmware 103 provides a
primary communications mechanism between controller 102 and other
components, such as, for example, an operating system (OS), of the
portable device.
[0057] Motion software 104 may be responsible for communicating
between the motion firmware 103 and the rest of software
components, such as application software components 105-107, as
well as the operating system. In one embodiment, the motion
software 104 may be implemented as a part of an operating system,
such as, for example, a kernel component or a device driver, etc.
The operating system may be implemented using a variety of
operating systems commercially available. For example, the
operating system may be a Mac OS from Apple Computer.
Alternatively, the operating system may be a Windows operating
system from Microsoft. Other operating systems, such as, for
example, a Unix, a Linux, an embedded operating system (e.g., a
Palm OS), or a real-time operating system, may also be
implemented.
[0058] According to one embodiment, in response to the motion
detection event, which may be notified by the motion firmware 103,
the motion software component 104 may communicate the event to one
or more application software 105-107. In response to the detection,
the application software 105-107 may perform certain operations.
The applications 105-107 may be a variety of different
applications, such as, for example, a browser, a word processor, a
slide presentation, etc. Certain embodiments of the operations
performed by the applications 105-107 will be described in details
further below.
[0059] FIG. 2 is a flow diagram illustrating an exemplary process
for operating a portable device in response to an event generated
by an accelerometer, according to one embodiment of the invention.
Exemplary process 200 may be performed by a processing logic that
may comprise hardware (circuitry, dedicated logic, etc.), software
(such as is run on a dedicated machine), or a combination of both.
In one embodiment, exemplary process 200 includes, but is not
limited to, detecting movement of a portable device using an
accelerometer attached to the portable device, and executing
machine-executable code to perform one or more predetermined user
configurable actions in response to the detection of the movement
of the portable device.
[0060] Referring to FIG. 2, at block 201, a movement of a portable
device, such as, for example, a laptop computer or a tablet PC, is
detected using an accelerometer (e.g., accelerometer 101 of FIG. 1)
attached to the portable device. In one embodiment, in response to
the detection, the accelerometer may generate movement data for
multiple dimensions (e.g., X, Y, and Z axes). In response to the
detection, at block 202, a direction of the movement is determined
based on the movement data provided by the accelerometer. In one
embodiment, the direction of the movement is determined by a
controller (e.g., controller 102 of FIG. 1). In response to the
determined direction, at block 203, one or more machine executable
code (e.g., application software) may be executed to perform one or
more predetermined user configurable actions, such as, for example,
advancing a Web page, etc. Other operations may also be
performed.
Determining Orientation Based on an Accelerometer
[0061] According to one embodiment of the invention, an
accelerometer of a portable device may constantly or periodically
monitor the movement of the portable device. As a result, an
orientation of the portable device prior to the movement and after
the movement may be determined based on the movement data provided
by the accelerometer attached to the portable device.
[0062] FIGS. 3A and 3B are diagrams illustrating an exemplary
application that an accelerometer may be utilized according to one
embodiment of the invention. In this embodiment, and throughout the
application, a tablet device is used as an example of a portable
device. But it is not so limited. It will be appreciated that other
portable devices, such as, a laptop computer, a personal digital
assistant (PDA), a personal communicator (e.g., a blackberry from
Research In Motion), a cellular phone, or a multimedia player
(e.g., an MP3 player), etc., may also be utilized.
[0063] Retelling to FIGS. 3A and 3B, initially according to one
embodiment, the portable device is in an orientation 301 having a
page of document 303 displayed within a display of the portable
device. In the orientation 301, the document page 303 is displayed
properly from a viewpoint of a user facing the display given the
orientation 301, which may be detected and determined by an
accelerometer and a controller associated with it, periodically or
constantly.
[0064] When the portable device is moved, for example, according to
a moving direction 304, which ends up with an orientation 302, the
accelerometer (accelerometer 10) of FIG. 1) may detect such a
movement. In response to the detection, the controller (e.g.,
controller 102 of FIG. 1) may determine a moving direction based on
the movement data provided by the accelerometer and notify the
appropriate components of the portable device, such as, firmware
103, motion software 104, and/or applications 105-107 of FIG. 1.
Such a notification may be performed via an interrupt or by pulling
one or more registers of the controller and/or accelerometer. In
addition, the controller may further determine an orientation of
the portable device after the movement.
[0065] In response to the notification, according to one
embodiment, the orientation of the document page 303 may be
adjusted in accordance with the determined orientation after the
movement, as shown in FIG. 3B. In one embodiment, the orientation
of the displayed document page may be adjusted after the movement
to be relatively identical to the orientation prior to the
movement. As a result, even though the orientation of the portable
device has changed, the orientation of the displayed document page
remains relatively the same, particularly, in a viewpoint of a user
facing the display of the portable device.
[0066] In this embodiment, the adjustment of the orientation of the
document page 303 may be performed by a display driver (e.g., a
video driver) that transmits the displayed data (e.g., the document
page) to a display of the portable device. Alternatively, the
adjustment of the orientation may be performed by the original
application software (e.g., applications 105-107 of FIG. 1) that
provides the document page 303 (e.g., a browser that provides a Web
page or a word processor that provides a page of a document). Note
that the moving direction 304 shown in FIGS. 3A and 3B is for
illustration purposes only. Other moving directions, such as those
or a combination of those shown in FIG. 5A, may also be
implemented. Further, as shown in FIGS. 3A and 3B, the portable
device is rotated left in 90 degrees for the illustration purposes
only. The portable device may be rotated, moved in parallel, or a
combination of both or multiple dimensions and in any moving step
sizes.
[0067] FIG. 4 is a flow diagram illustrating an exemplary processor
for reorienting a displayed document based on an accelerometer,
according to one embodiment of the invention. Exemplary process 400
may be performed by a processing logic that may comprise hardware
(circuitry, dedicated logic, etc.), software (such as is run on a
dedicated machine), or a combination of both. In one embodiment,
exemplary process 400 includes, but is not limited to, detecting
movement of a portable device using an accelerometer attached to
the portable device, determining an orientation of the portable
device after the movement based on movement data provided by the
accelerometer, and displaying an image on a display of the portable
device according to an orientation that is relatively identical to
an orientation of the image prior to the movement.
[0068] Referring to FIG. 4, at block 401, a movement of a portable
device from a first orientation is detected using an accelerometer
attached to the portable device. In response, at block 402, a
moving direction is determined based on movement data, such as X,
Y, and Z axis information, provided by the accelerometer. In one
embodiment, the determination may be performed by a controller
coupled to the accelerometer (e.g., controller 102 of FIG. 1). The
moving direction may be determined according to one or more
predetermined formulas. At block 403, after the movement, a second
orientation of the portable device may be determined based on the
movement data provided by the accelerometer. At block 404, an
orientation of a displayed document page may be adjusted based on
the determined second orientation. In one embodiment, the
orientation of the displayed document page may be adjusted such
that the adjusted orientation of the document page is relatively
identical to the orientation prior to the movement, particularly,
from a viewpoint of a user. Other operations may also be
performed.
Displaying Different Pages of a Document Based on an
Accelerometer
[0069] According to another embodiment of the invention, an
accelerometer may be used to detect a movement of a portable device
as a way to trigger whether a page of document or image may be
displayed. For example, when a portable device is moved (e.g., a
sudden move) towards a predetermined direction, the accelerometer
may detect such a movement and application software may display a
particular page in response to the detection of the movement.
[0070] FIG. 5A is a diagram illustrating exemplary movements of a
portable device that may be used to trigger displaying a page of
document, according to one embodiment of the invention. For
example, referring to FIG. 5A, a first page of document is
displayed on a display 507 of the portable device 500. When the
portable device 500 is moved in certain directions, an
accelerometer (e.g., accelerometer 101 of FIG. 1) attached to the
portable device 500 may detect such a movement. In response to the
detection, the accelerometer may notify, via the associated
controller, firmware, and/or OS, other components such as
application software, particularly the one providing the first page
of document being displayed.
[0071] In a particular embodiment, the accelerometer may notify a
controller (e.g., controller 102 of FIG. 1) including providing the
movement data (e.g., X, Y, and Z axes). The controller and/or the
firmware may calculate the moving vector of the movement based on
the movement data provided by the accelerometer. Thereafter, the
controller may signal other components, such as motion software
component (e.g., motion software 104) and/or the operating system.
The motion software and/or the operating system may compare the
moving vector with a predetermined direction to determine whether
the moving vector relatively matches the predetermined direction,
for example, based on a predetermined threshold.
[0072] In one embodiment, the predetermined direction and the
threshold (e.g., sensitivity) associated with the predetermined
direction may be user configurable via a user interface. Such a
sensitivity may be configured based on different profiles
associated with the portable device at a given time and place. For
example, the sensitivity of the portable device may be different
when it is at a home/office versus on a moving platform (e.g., a
car, a train, a ship or an airplane, etc.) In a further embodiment,
the portable device may include a mechanism to intelligently filter
out some "noisy" movement background.
[0073] If the moving vector relatively matches the predetermined
direction, the associated application software may be notified. In
response, the associated application software may perform certain
operations, including displaying a second page different than the
first page on the display.
[0074] In one embodiment, the second page of the document may be a
next page or a previous page of the document. The document may be a
word document produced by a word processor, such as, a word
processor from Microsoft Office. Alternatively, the document may be
a Web page presented by a browser, such as, Internet Explorer from
Microsoft or a Netscape communicator from Netscape Communications.
Further, the document may be a slide presentation, for example,
presented by PowerPoint of Microsoft or by Keynote of Apple
Computer.
[0075] Referring to FIG. 5A, the moving directions may include a
moving direction that is parallel with a surface of the portable
device (e.g., a display surface 507 of the portable device) as
shown as directions 501 and 502. Alternatively, the moving
directions may include a rotation of the portable device with
respect to an axis parallel with an edge (e.g., edges 505 and 506)
of the portable device, as shown as directions 503 and 504.
Furthermore, the moving directions of the portable device may be a
combination of the above directions. For example, the movement may
be multiple dimension spin with respect to a corner of the portable
device 500. Other types of the movements may be utilized.
[0076] FIG. 5B is a diagram illustrating an exemplary movement of a
portable device that may be used to trigger displaying a page of
document, according to an alternative embodiment of the invention.
In this embodiment, the portable device 551 may be placed on a
supporting surface 552. In addition, the application software
running within the portable device 551 may be configured as in a
"default" mode. When a sudden force is applied to the supporting
surface 552, the sudden force causes an oscillation of the
supporting surface 552. The sudden force may be provided by a user
tabbing the supporting surface.
[0077] In response to the oscillation of the supporting surface
552, an accelerometer attached to the portable device 551 may
detect such an oscillation. In response to the detection, the
accelerometer may notify, via the firmware and/or the controller,
etc., the associated application software. In response, the
application software may display a next page, a previous page, or a
specific page of the document, which may be user configurable via a
user interface. It is particularly useful when the portable device
is placed on a desk and hooked up with a presentation projector. A
user who is doing the presentation may simply tab on the desk to
advance a next page of presentation without having to press a key
of a keyboard (e.g., the "Enter" key or the space bar) or a mouse
of the portable device.
[0078] FIG. 6 is a flow diagram illustrating an exemplary process
for presenting a document based on an accelerometer according to
one embodiment of the invention. Exemplary process 600 may be
performed by a processing logic that may comprise hardware
(circuitry, dedicated logic, etc.), software (such as is run on a
dedicated machine), or a combination of both. In one embodiment,
exemplary process 600 includes, but is not limited to, displaying a
first page of a document on a display of a portable device,
detecting movement of the portable device using an accelerometer
attached to the portable device, and displaying a second page of
the document different than the first page in response to the
detection of the movement.
[0079] Referring to FIG. 6, at block 601, a movement of a portable
device is detected using an accelerometer attached to the portable
device. In response to the detection, at block 602, a moving
direction of the movement is determined based on the movement data
provided by the accelerometer, for example, X, Y, Z, axis
information. In one embodiment, the moving direction may be
determined by the associated controller and/or the associated
firmware. At block 603, it is determined whether the moving
direction relatively matches a predetermined direction. If so, at
block 604, associated application software being executed within
the portable device having a first page of a document displayed is
notified. In response, at block 605, the application software
displays a second page of the document different than the first
page. Other operations may also be performed.
Navigation Applications Based on an Accelerometer
[0080] According to another embodiment of the invention, an
accelerometer may be used in a navigation application. For example,
a portable device having an accelerometer attached therein may be
used as a navigation tool to navigate a relatively large object or
document that normally cannot be displayed entirely at once within
a display of the portable device.
[0081] FIGS. 7A and 7B are diagrams illustrating an exemplary
navigation application based on an accelerometer according to one
embodiment of the invention. In this embodiment, a portion of a map
is displayed initially as shown in FIG. 7A. The map normally cannot
be displayed entirely as a whole within a display of the portable
device 700 with a certain detail level. For example, when a user
"zoom in" on a map, only a portion of the map can be displayed
within the display. As the user navigates throughout a first
portion of the map, the user may wish to gradually navigate into a
second portion of the map from the first portion.
[0082] According to one embodiment, a user holding the portable
device 700 may move the portable device 700 towards a direction
that the user wishes to navigate, for example, in accordance with
direction 703 (e.g., northeast direction as an example). In
response to the movement, an accelerometer attached to the portable
device 700 may detect such a movement. The accelerometer may
provide movement data (e.g., X, Y, and Z, axis information) to a
controller and/or firmware of the portable device. The associated
controller and/or firmware may calculate a moving direction and/or
moving distance based on the movement data provided by the
accelerometer, using one or more predetermined formulas.
Thereafter, the controller and/or firmware may communicate the
moving direction to the associated application software that is
currently providing the map.
[0083] In response, the application software may determine the
second portion of the map based on the moving direction, moving
distance, and/or moving acceleration data provided by the
controller and/or firmware. The application software then displays
the second portion accordingly. As a result, the user does not have
to press and/or click a button in order to navigate other portions
of the map. Note that the moving direction 703 is shown for the
illustration purposes only. Any other directions may be
applied.
[0084] In one embodiment, the second portion of the map may be
displayed via a transition from the first portion. That is,
multiple intermediate portions between the first and second
portions may be sequentially displayed to form a transition from
the first portion to the second portion. As a result, the second
portion "comes into" the display of the portable device gradually.
According to one embodiment, the transition from the first portion
to the second portion is displayed as if the user moves the
portable device on a relatively large map, while the map remains
steady. In this embodiment, the transition is displayed as if the
user holds the portable device as a magnifier to navigate a large
map, a large newspaper, or a Web page, etc.
[0085] According to a further embodiment, certain movements may be
used to "zoom in" or "zoom out" on the displayed page. For example,
while a movement parallel to a surface (e.g., a display surface) of
the portable device may be used to navigate different portions of
the displayed page, a rotation of the portable device may be used
to zoom in or zoom out on the displayed page, which may change the
resolution of the displayed page. For example, a user may tilt up
the portable device as a way to zoom out and may tilt down the
portable device as a way to zoom in. Other moving directions, such
as those or a combination of those shown in FIG. 5A, may also be
utilized.
[0086] According to another embodiment, the techniques described
above may be used in a virtual reality environment. In one
embodiment, it allows a user to use the accelerometer equipped
portable display device as a portable and controllable window into
a virtual reality image database. For example, a user holding the
tablet can turn around and see the view looking backwards from a
position in a two or three dimensional image or object database as
if the user walks into a virtual reality game space. According to
another embodiment, a user may perform an inspection of an image
panorama where the view in different directions is provided by
multiple cameras pointing outward in different directions from a
single location.
[0087] FIG. 8 is a flow diagram illustrating an exemplary process
for navigating an image based on an accelerometer, according to one
embodiment of the invention. Exemplary process 800 may be performed
by a processing logic that may comprise hardware (circuitry,
dedicated logic, etc.), software (such as is run on a dedicated
machine), or a combination of both. In one embodiment, exemplary
process 800 includes, but is not limited to, displaying a first
portion of a document page on a display of the portable device
prior to the movement, and displaying a second portion of the
document page different than the first portion on the display of
the portable device if the determined direction of the movement
relatively matches the predetermined direction.
[0088] Referring to FIG. 8, at block 801, a first portion of an
image (e.g., a portion of a map as shown in FIG. 7A) is displayed
on a display of a portable device. The image may be a part of a
panorama image, a virtual reality image database, a three
dimensional image database, or an environment formed by multiple
camera inputs, etc. At block 802, a movement of the portable device
is detected using an accelerometer attached to the portable device.
In response to the detection, at block 803, a moving direction is
calculated based on the movement data (e.g., X, Y, and Z axis
information) provided by the accelerometer. In one embodiment, in
response to the detection, the accelerometer signals the associated
controller and/or firmware with the movement data. The controller
and/or firmware may calculate the moving direction based on the
movement data. Alternatively, the calculation of the moving
direction may be performed by other components of the portable
device, such as, for example, the motion software component 104 of
FIG. 1 and/or the operating system of the portable device. At block
804, a second portion of the image is displayed based on the
determined moving direction. In one embodiment, multiple
intermediate portions of the image may be displayed that forms a
transition from the first portion to the second portion. The second
portion is displayed as if the portable device is moving while the
displayed image remains steady. Other operations may also be
performed.
Gaming Applications Based on an Accelerometer
[0089] According to another embodiment of the invention, an
accelerometer may be used in a gaming application, where the
accelerometer may be used to detect a scene change during a video
game running within a portable device.
[0090] FIGS. 9A and 9B are diagrams illustrating an exemplary
gaming application based on an accelerometer, according to one
embodiment of the invention. In this embodiment, as an example, a
user is holding a portable device 900 as a steering wheel as if the
user is driving a vehicle facing a first scene 901. As the user
moves (e.g., turning) the portable device towards to a direction,
such as, for example, direction 903, the displayed scene may be
changed to a second scene 902 as shown in FIG. 9B.
[0091] According to one embodiment, when the user holding the
portable device 900 move according to the direction 903, the
accelerometer attached to the portable device detects such a
movement. The accelerometer may provide movement data (e.g., X, Y,
and Z axis information) to a controller and/or firmware of the
portable device. The associated controller and/or firmware may
calculate a moving direction based on the movement data provided by
the accelerometer, using one or more predetermined formulas.
Thereafter, the controller and/or firmware may communicate the
moving direction and/or moving distance or acceleration to the
associated gaming application software that is currently providing
the game.
[0092] In response, the gaming application software may determine
the second scene of the game based on the moving direction, moving
distance, and/or moving acceleration provided by the controller
and/or firmware. The gaming application software then displays the
second scene accordingly. As a result, the user does not have to
press and/or click a button in order to change a scene of the game.
Note that the moving direction 903 is shown for the illustration
purposes only. Any other directions may be applied.
[0093] In one embodiment, the second scene of the game may be
displayed via a transition from the first scene. That is, multiple
intermediate scenes between the first and second scenes may be
sequentially displayed to form a transition from the first scene to
the second scene. As a result, the second scene "comes into" the
display of the portable device gradually.
[0094] According to a further embodiment, certain movements may be
detected as a way to accelerate and/or de-accelerate the driving
vehicle. For example, the displayed scene may be changed to show an
acceleration of the vehicle when the portable device is tilted up
(e.g., similar to stepping on the gas). Similarly, the displayed
scene may be changed to show a de-acceleration of the vehicle when
the portable device is tilted down (e.g., similar to stepping on
the brake).
[0095] In addition, an accelerometer may be used to detect whether
a movement of the portable device exceeds certain thresholds. If
so, one or more predetermined user configurable actions may be
performed. For example, during a driving game, when a user drives
the vehicle off the road, a warning message may be communicated to
the user for such an indication.
[0096] FIGS. 10A and 10B are diagrams illustrating an exemplary
gaming application based on an accelerometer, according to another
embodiment of the invention. In this embodiment, a user is holding
a portable device having an accelerometer built-in therein as a
steering wheel of a vehicle. As shown in FIG. 10A, when a scene
includes a road curved to left, the user is required to turn the
steering wheel to left accordingly in order to stay on the road. An
accelerometer attached to the portable device may be used to detect
whether the portable device (e.g., the steering wheel) has been
turned accordingly and whether the turning angle or distance is
appropriate.
[0097] If it is detected that the turning of the portable device is
not turned or not turned enough, the associated gaming application
software may perform certain predetermined actions. For example,
the gaming application may generate an alarm to the user, such as,
for example, a vibration of the portable device or an audio alert,
etc. In addition, an off-road scene may be displayed. If it is
detected that the user does not respond to the changing of the road
condition for a period of time, a crashed scene may be displayed
accordingly.
[0098] According to certain embodiments, other moving directions
may be used to "look up" and "look down" from a viewpoint of a user
holding the portable device. For example, in a flying game, a user
could hold a portable device as if the user is driving a flying
object (e.g., an airplane), where an accelerometer may be used to
detect the movement of the portable device in order to determine
where the flying object is heading. For example, the flying object
is going up when the portable device is tilted up and the flying
object is going down when the portable device is tilted down. Other
directions, such as, for example, those or a combination of those
shown in FIG. 5A, may be utilized to enable the flying object to
fly any directions.
[0099] Similarly, in a shooting game according to one embodiment,
in addition to those movements described above, which may be used
to look up, look down, and/or look around, a vertical movement of
the portable device parallel to the display surface of the portable
device may be used to detect whether a user is in a standup
shooting position or in a hiding position. For example, when the
portable device is moved down, a protection barrier may be
displayed blocking the opponents to indicate that a user holding
the portable device as a shooting weapon is hiding behind the
protection barrier. When the portable device is moved up, the
protection barrier may be removed exposing the opponents to
indicate that the user is in a shooting position without
protection. Other gaming configurations may exist.
[0100] FIG. 11 is a flow diagram illustrating an exemplary process
for a gaming application based on an accelerometer, according to
one embodiment of the invention. Exemplary process 1100 may be
performed by a processing logic that may comprise hardware
(circuitry, dedicated logic, etc.), software (such as is run on a
dedicated machine), or a combination of both. In one embodiment,
exemplary process 1100 includes, but is not limited to, displaying
a sequence of images transitioning towards a direction from a first
scene to a second scene from a viewpoint of a user, detecting
whether the movement of the portable device is in accordance with a
direction associated with the direction of the transition from the
viewpoint of the user, and performing a predetermined operation if
the movement is not detected in accordance with a direction
associated with the direction of the transition.
[0101] Referring to FIG. 11, at block 1101, a sequence of images
transitioning from a first scene to a second scene (e.g., a driving
game) is displayed on a display of a portable device. At block
1102, a movement of the portable device is detected using an
accelerometer attached to the portable device. At block 1103, a
moving direction of the portable device is determined based on
movement data provided by the accelerometer. In one embodiment, the
moving direction is determined by a controller and/or firmware
coupled to the accelerometer, similar to the configuration shown in
FIG. 1. In response to the determined moving direction, at block
1104, one or more predetermined operations, such as, for example,
causing vibration of the portable device, generating an audio
alert, or a combination of both, may be performed. Other operations
may also be performed.
Activating/Deactivating Devices Based on an Accelerometer
[0102] According to another embodiment of the invention, an
accelerometer may be used to detect a movement of a portable device
and an orientation of the portable device may be determined based
on the movement data provided by the accelerometer. Thereafter, one
or more interfaces of the portable device may be activated or
deactivated based on the determined orientation after the
movement.
[0103] FIGS. 12A and 12B are diagrams illustrating an exemplary
mechanism for activating/deactivating interfaces of a portable
device based on an accelerometer, according to one embodiment of
the invention. In this embodiment, as shown in configuration 1201
of FIG. 12A, multiple interfaces 1204-1207 are disposed on multiple
locations of the portable device. As an example, interfaces
1204-1207 are described herein as wireless interfaces, such as, for
example, antennas or wireless transceivers. It will be appreciated
that other interfaces may also be applied.
[0104] Referring to FIG. 12A, initially for a given orientation
1201, document 1203 is displayed. According to one embodiment, when
a user holds up the portable device in orientation 1201, an
accelerometer attached to the portable device may detect such a
movement and orientation 1201 is determined by the associated
controller and/or firmware coupled to the accelerometer similar to
those shown in FIG. 1. In view of the determined orientation, it
may be determined that wireless interfaces 1204 and 1205 are in the
best positions to transmit and/or receive wireless signals given
the orientation 1201 (e.g., receiving and/or transmitting strongest
signals), while the wireless interfaces 1206-1207 are in relatively
weak positions. As a result, wireless interfaces 1204-1205 may be
activated and wireless interfaces 1206-1207 may be optionally
de-activated.
[0105] When the portable device is moved, for example, rotated
according to the direction 1208 for 90 degrees, the portable device
may end up with different orientation 1202 as shown in FIG. 12B. An
accelerometer attached to the portable device may detect such a
movement and communicate the movement data to other components of
the portable device as described above. In addition to maintaining
an orientation of a document page being displayed relatively
identical to the one prior to the movement as described above with
respect to FIGS. 3A and 3B, the wireless interfaces 1204-1207 may
be reevaluated whether the existing configuration is still the best
configuration for the orientation after the movement.
[0106] In this embodiment, it is assumed that the wireless
interfaces of the top and bottom positions of the portable device
are considered at the best positions. After the movement (e.g.,
turn left with 90 degrees), the original wireless interfaces
1204-1205 that were in the best positions may not be in the best
positions any more. Rather, the wireless interfaces 1206-1207 that
were not in the best positions now may be in the best positions. As
a result, in response to the detection of the movement and the
determination of the orientation after the movement, wireless
interfaces 1206 and 1207 may be activated as shown in bold, since
they are in the best positions. Similarly, the wireless interfaces
1204-1205 may be deactivated since they are no longer in the best
positions.
[0107] Furthermore, in addition to detect whether the portable
device is moved, it is also determined whether the portable device
is picked up or held by a user based on the movement data provided
by the accelerometer. In one embodiment, such a determination may
be performed by a controller and/or firmware coupled to the
accelerometer similar to the configuration shown in FIG. 1. If it
is determined that the portable device is held by a user, it may be
further determined or predicted the location of the user's hands
1208-1209 holding the portable device.
[0108] For example, in the orientation 1201 as shown in FIG. 12A,
after predicting the locations of the user's hands, one or more
wireless interfaces, such as wireless interfaces 1207 and 1208,
that may be covered by the hands 1208-1209 may be deactivated.
Similarly, in the orientation 1202 after the movement as shown in
FIG. 12B, wireless interfaces 1204 and 1205 may be deactivated
since it is predicted that they are covered by the user's
hands.
[0109] FIG. 13 is a flow diagram illustrating an exemplary process
for operating interfaces of a portable device based on an
accelerometer, according to one embodiment of the invention.
Exemplary process 1300 may be performed by a processing logic that
may comprise hardware (circuitry, dedicated logic, etc.), software
(such as is run on a dedicated machine), or a combination of both.
In one embodiment, exemplary process 1300 includes, but is not
limited to, detecting a movement of a portable device using an
accelerometer attached to the portable device, determining an
orientation of the portable device after the movement based on
movement data provided by the accelerometer, and activating at
least one interface of the portable device that is best suitable
for given the determined orientation.
[0110] Referring to FIG. 13, at block 1301, a movement of a
portable device is detected using an accelerometer attached to the
portable device, where the portable device includes multiple
interfaces (e.g., wireless interfaces) disposed on multiple
locations. At block 1302, an orientation of the portable device
after the movement is determined based on movement data provided by
the accelerometer. At block 1303, optionally, it is determined
whether the portable device is picked up or held by a user based on
the movement data provided by the accelerometer. If so, it is
predicted the location of the user's hands holding the portable
device. At block 1304, one or more interfaces may be activated or
deactivated based on the determined orientation. Optionally, some
of the interfaces that are covered by the predicted user's hands
may be deactivated while activating those that are not covered.
Other operations may also be performed.
[0111] According to one embodiment, the above described techniques
may also be applied to multimedia interfaces of the portable
device. FIGS. 14A and 14B are diagrams illustrating an exemplary
mechanism for activating/deactivating multimedia interfaces of a
portable device using an accelerometer, according to one embodiment
of the invention. In this embodiment, as an example, one or more
speakers are used as multimedia interfaces of the portable devices.
Referring to FIG. 14A, a portable device includes multiple speakers
1405-1408 disposed on different locations of the portable device
and a document page 1403 is optionally displayed on a display of
the portable device. In the orientation 1401 prior to a movement,
an audio driver may be configured to generate proper 3D surround
sound considering speakers 1405-1406 on the left and speakers
1407-1408 on the right. When the portable device is moved, for
example, according to the moving direction 1404 for 90 degrees, a
second orientation 1402 is detected and determined by an
accelerometer and its associated controller and/or firmware as
shown in FIG. 14B.
[0112] In response to the detection, in addition to maintaining an
orientation of a document page 1403 being displayed relatively
identical to the one prior to the movement as described above with
respect to FIGS. 3A and 3B, the positions of the speakers 1405-1408
may be reevaluated whether the existing configuration is still the
best configuration for the orientation after the movement. In this
example, originally left speakers 1405 and 1406 are at the bottom
while originally right speakers 1407 and 1408 are on the top as
shown in FIG. 14B. Thus, the existing audio conditions have changed
and the sound effects are not longer in the best state. As a
result, the audio driver may be reconfigured to produce an audio
quality relatively equivalent to the one prior to the movement of
the portable device. For example, speakers 1405 and 1407 may be
used as speakers on the left while speakers 1406 and 1408 may be
used as speakers on the right, in order to produce proper sound
effects. Other configurations may also exist.
[0113] FIG. 15 is a flow diagram illustrating an exemplary process
for reconfiguring multimedia interfaces based on an accelerometer,
according to one embodiment of the invention. Exemplary process
1500 may be performed by a processing logic that may comprise
hardware (circuitry, dedicated logic, etc.), software (such as is
run on a dedicated machine), or a combination of both. Referring to
FIG. 15, at block 1501, a movement of a portable device is detected
using an accelerometer attached to the portable device, where the
portable device includes multiple multimedia interfaces or devices
disposed on different locations. At block 1502, an orientation of
the portable device after the movement is determined based on the
movement data provided by the accelerometer. At block 1503, one or
more multimedia interfaces may be optionally activated or
deactivated based on the determined orientation. At block 1504, one
or more multimedia devices are driven to produce best results given
the determined orientation after the movement. Other operations may
also be performed.
[0114] Although wireless interfaces and audio interfaces are used
as an example herein, it is not so limited. Other types of
interfaces, such as, for example, a video interface, a microphone,
and a camera, may also be applied.
[0115] According to certain embodiments of the invention, some
devices may only be properly used when the machine is in a certain
orientation or a different orientation than it is normally used.
Media insertion, for example, may require the device to be placed
on its side or upside down to provide access. Ejecting media may
require the device to be placed on its side or upside down to
prevent the media from being blocked or falling to the floor.
[0116] For example, according to one embodiment, a user may
initiate an ejection of a media from a media device or component
(e.g., a CD from a CD ROM device) by pressing a button or other
controls. The device prepares to eject the media or to unmount a
disk, etc. Meanwhile, a control module or application software
controlling the device may detect that the portable device is not
in a position suitable for ejecting the media using an
accelerometer attached to the device. As a result, the device may
wait for the unit to be positioned in a proper position or
orientation by periodically or constantly reading acceleration data
from the accelerometer. The application software associated with
the device may further notify a user of the device (e.g., pop up a
message or an audio alarm, etc.) that the device needs to be
certain positions in order to complete the user's request. Once the
device is in a proper orientation, the requested operations may be
performed (e.g., ejecting the media).
[0117] Similarly, according to another embodiment, an accelerometer
can be used to abort an operation if the user doesn't reorient the
unit. If the device is not repositioned into a proper or
predetermined position within a time period, the device can cancel
the requested operations or provide the user with further
instructions. According to a further embodiment, an accelerometer
may be used to detect the orientation or in order to enable and/or
disable input devices mounted on the sides or bottom of the device.
For example, there could be an eject button on the bottom of the
device that is disabled when the device is upright. This way, the
button is not activated by the user placing the device on a desk or
in their lap.
[0118] FIG. 24 is a flow diagram illustrating an exemplary process
for activating or deactivating a device according to another
embodiment of the invention. Exemplary process may be performed by
a processing logic that may comprise hardware (circuitry, dedicated
logic, etc.), software (such as is run on a dedicated machine), or
a combination of both. Referring to FIG. 24, at block 2401, a
request for transitioning a component of a portable device from a
first operating state into a second operating state is received
(e.g., ejecting a portable storage device). At block 2402, it is
determined whether the portable device is positioned according to a
predetermined orientation suitable for the second operating state,
using an accelerometer attached to the portable device.
[0119] At block 2403, if it is determined that the portable device
is positioned according to the predetermined orientation or
position based on the acceleration information provided by the
accelerometer, the component of the portable device is then
transitioned from the first operating state into the second
operating state (e.g., opening a tray of a CD ROM). However, if the
portable device is not in the predetermined position or
orientation, at block 2404, the requested transition is rejected or
suspended, leaving the component of the portable device remained in
the first operating state or other states (e.g., a tri-state, etc.)
Meanwhile, the position or orientation of the portable device is
periodically or constantly monitored using the accelerometer, where
the requested operations may be resumed once the position or
orientation of the portable device is detected to be in a proper
position or orientation. The requested operations may be aborted if
the portable device is not in a proper position or orientation for
a predetermined period of time. Optionally, at block 2405, a
notification may be generated to notify the user of the portable
device to put the portable device in certain positions in order to
complete the requested operations. Other operations may also be
performed.
Other Applications Based on an Accelerometer
[0120] According to another embodiment of the invention, an
accelerometer may be used to detect and determine activities of a
user with a portable device having the accelerometer attached
therein. According to one embodiment, for example, an accelerometer
attached to a portable device, which may be held by a user, may
detect that the user is joggling while holding the portable device.
In this example, the portable device may be digital multimedia
player (e.g., an MP3 player). The accelerometer attached to the
portable device may detect that the movements of the portable
device caused by the user's activities may be repetitive.
[0121] In response to the detection, a repetitive rate of the
movements of the portable device may be determined, for example, by
a controller and/or firmware coupled to the accelerometer, similar
to the configuration shown in FIG. 1. Once the repetitive rate of
the movement is determined, an application software (e.g., a
Windows media player from Microsoft or a real player from Real
Networks) may adjust a rhythm of multimedia contents currently
being played by the portable device may be adjusted to relatively
match the determined repetitive rate of the movements. As a result,
for example, the tempo of a music currently played by an MP3 player
may be adjusted to relatively match the joggling rate of the user
holding the MP3 player.
[0122] Furthermore, according to a further embodiment, an
application software may further select and play a multimedia
content that is best suitable for the determined user's activities
(e.g., joggling rate). In one embodiment, a user may configure a
multimedia player via a user interface that under certain
circumstances, certain types of multimedia contents may be selected
and played. As a result, when the accelerometer and its associated
controller and/or firmware detects that a user is performing
certain types of activities, an associated type of multimedia
contents may be selected and played accordingly.
[0123] FIG. 16 is a flow diagram illustrating an exemplary process
for playing multimedia contents based on an accelerometer,
according to one embodiment of the invention. Exemplary process
1600 may be performed by a processing logic that may comprise
hardware (circuitry, dedicated logic, etc.), software (such as is
run on a dedicated machine), or a combination of both. Referring to
FIG. 16, at block 1601, a movement of a portable device is detected
using an accelerometer attached to the portable device, where the
movement of the portable device is repeated for every certain
period of time. At block 1602, the repetitive rate of the movements
of the portable device is determined based on the movement data
provided by the accelerometer. At block 1603, a digital multimedia
content having a rhythm relatively matched with the determined
repetitive rate is optionally selected and played. At block 1604, a
rhythm of the multimedia content currently played is adjusted to
relatively match the determined repetitive rate of the movements.
Other operations may also be performed.
[0124] According to another embodiment of the invention, an
accelerometer may be used to determine whether a portable device is
moving (e.g., carried by a user) and the portable device should be
put in a proper operating state. According to one embodiment, when
a portable device is in an inactive state and the portable device
is moving, which is detected via an accelerometer attached to the
portable device, the portable device may be put in a relatively low
power mode, such as, for example, a sleep mode. For example, a
laptop computer having its lid closed may be considered being in an
inactive state. Since the lid of the laptop computer is closed, the
user may not actively operate the laptop computer. Alternatively, a
laptop computer is considered in the inactive state when its
desktop is locked. Other situations may also be considered as
inactive states, which may be user configurable. As a result, the
laptop computer may be put into a low power mode. In addition, if
the laptop is determined as moving (via the accelerometer), it may
be unsafe to write any data to a permanent storage device (e.g., a
hard drive). Thus, a read/write head of the permanent storage
device may be parked to a safe place without writing the data to
the permanent storage device.
[0125] According to one embodiment, if the portable device is
determined being in an inactive state and the portable device is
not moving based on the data provided by an accelerometer attached
to the portable device, the portable device may be put into a
hibernated mode, where the content of the system memory may be
swapped into a permanent storage device (e.g., a hard drive). Since
the portable device is not moving, it is relatively safe to write
data to the permanent storage device.
[0126] FIG. 17 is a flow diagram illustrating an exemplary process
for power management of a portable device according to one
embodiment of the invention. Exemplary process 1700 may be
performed by a processing logic that may comprise hardware
(circuitry, dedicated logic, etc.), software (such as is run on a
dedicated machine), or a combination of both. Referring to FIG. 17,
at block 1701, a portable device is determined whether the portable
device is in an inactive state. For example, when the lid of the
portable device is closed or its desktop is locked, the portable
device is considered being in an inactive state. At block 1702, the
portable device is detected whether the portable device is moving
(e.g., whether the portable device is carried by a user) using an
accelerometer attached to the portable device. At block 1703, the
portable device is put into a relatively low power mode without
swapping the content of the system memory into a permanent storage
device, if the portable device is moving. Otherwise, at block 1704,
the portable device is put into a hibernated mode by swapping the
content of the system memory into the permanent storage device, if
the portable device is moving. Other operations may also be
performed.
[0127] According to another embodiment of the invention, an
accelerometer may be used to detect whether a portable device is
moved according to certain directions, in order to determine
whether a password is entered correctly. In one embodiment, when a
user of a portable device is prompted to enter a password, the user
has to move the portable device to one or more directions as a part
of entering the password. An accelerometer attached to the portable
device may detect such movement(s) and a moving direction may be
determined, for example, by the associated controller and/or the
firmware. If the moving direction relatively matches a
predetermined direction, it is considered that the password has
been "entered" correctly.
[0128] According to an alternatively embodiment, a user may be
required to enter a first portion of the password on a portable
device. Then the user is required to move the portable device
according to certain directions. Thereafter, the user is required
to enter a second portion of the password (e.g., the rest of the
password). Thus, a combination of the password entered and certain
movements of portable device constitutes a complete password. Other
configurations may exist.
[0129] FIG. 18 is a flow diagram illustrating an exemplary process
for processing password according to one embodiment of the
invention. Exemplary process 1800 may be performed by a processing
logic that may comprise hardware (circuitry, dedicated logic,
etc.), software (such as is run on a dedicated machine), or a
combination of both. Referring to FIG. 18, at block 1801, a user is
requested to enter a password on a portable device. At block 1802,
it is detected whether the portable device is moved using an
accelerometer attached to the portable device. At block 1803, a
moving direction is determined based on the movement data provided
by the accelerometer. At block 1804, it is determined whether the
portable device has been moved according to a predetermined
direction. At block 1805, an indication is issued indicating
whether the password is "entered" correctly based on whether the
moving direction relatively matches the predetermined direction.
Other operations may also be performed.
[0130] According to another embodiment of the invention, an
accelerometer may be used to detect and record a sequence of
movements of a portable device, where the recorded movement data
may be used to recreate the moving history subsequently (e.g., off
line). In one embodiment, when a portable device is moved for a
period of time, an accelerometer attached to the portable device
detects and records such movements. The movement data recorded by
the accelerometer may be stored in a storage device (e.g., a hard
drive) of the portable device during the movements. Alternatively,
the movement data may be transmitted to a remote facility over a
network (e.g., a wireless network) during the movements.
Subsequently, after the movements, a trail representing the
movements over the period of time may be recreated using the
movement data provided by the accelerometer.
[0131] This is typically useful when a user wishes to replot a
trail of a roller coaster ride afterwards. For example, a user may
carry the portable device having an accelerometer attached therein
and go onto a roller coaster ride. During the ride, the
accelerometer may detect and store the movement data into a storage
device, or alternatively, transmit the movement data to a remote
facility over a network. After the ride, the movement data may be
used to recreate a plot of the roller coaster ride. The roller
coaster ride is used as an example only, the techniques described
above may be applied to other situations. For example, a user who
carrying an accelerometer, either attached to a portable device or
attached to a vehicle, may drive a vehicle to different locations
to perform a survey, in order to create a map for those locations.
The map may be subsequently created using the movement data
collected by the accelerometer during the drive.
[0132] FIG. 19 is flow diagram illustrating an exemplary process
for recreating a trail of movements using an accelerometer,
according to one embodiment of the invention. Exemplary process
1900 may be performed by a processing logic that may comprise
hardware (circuitry, dedicated logic, etc.), software (such as is
run on a dedicated machine), or a combination of both. Referring to
FIG. 19, at block 1901, a sequence of movements of a portable
device is detected using an accelerometer attached to the portable
device. In the above example, a vehicle may be considered as a
portable device herein. At block 1902, a moving direction of each
of the sequential movements and the time between each movement are
determined. At block 1903, the information may be stored in a
storage device of the portable device. Alternatively, the
information may be dynamically transmitted to a remote facility
over a network (e.g., a wireless network). Subsequently, at block
1904, a trail representing the movement history may be recreated
using the stored movement data. Other operations may also be
performed.
Motion Compensation using an Accelerometer
[0133] According to another embodiment of the invention, an
accelerometer may be used to detect a movement of a portable device
and motion compensation may be applied in response to the
detection. For example, an accelerometer attached to a portable
device may detect that a user using the portable device (e.g.,
reading an electronic document displayed on a display of the
portable device) may be riding on a bouncing vehicle. In response
to the detection, motion compensation may be performed for the
displayed document such that the electronic document may remain
relatively the same position with respect to eyes of the user.
[0134] In one embodiment, position of the display platform as a
function of time in the plane of the display may be calculated by
appropriately integrating the signals received from the
accelerometer. The image is then translated vertically and
horizontally on the display as a function of time to keep the image
position substantially fixed in space independent of the motion of
the display in the plane of the display. Such movements (e.g.,
sudden movement such as bounce) may be represented via relatively
high frequency component of the moving data provided by the
accelerometer. Low frequency components of the display motion, such
as those caused by the forward velocity of the vehicle may not be
compensated in order to prevent the image from drifting off the
screen when the vehicle goes up and down hills or around curves.
Similarly, such techniques may also be applied to electronic games
played by a portable device while riding on a bouncing
platform.
[0135] FIG. 22 is a flow diagram illustrating an exemplary process
for motion compensation using an accelerometer, according to one
embodiment of the invention. Exemplary process may be performed by
a processing logic that may comprise hardware (circuitry, dedicated
logic, etc.), software (such as is run on a dedicated machine), or
a combination of both. In one embodiment, the exemplary process
includes, but is not limited to, detecting a movement of a portable
device using an accelerometer attached to the portable device,
determining a moving direction of the portable device based on
movement data provided by the accelerometer, and adjusting a
position of a displayed object on a display of the portable device
to compensate the movement of the portable device, such that the
adjusted displayed object remain relatively identical position with
respect to a user of the portable device.
[0136] Referring to FIG. 22, at block 2201, a movement of a
portable device is detected using an accelerometer attached to the
portable device. In one embodiment, the movement is detected as a
function of time from a location as a part of moving data provided
by the accelerometer. The moving data may include relatively high
frequency components representing sudden movements and relatively
low frequency component representing slow movements. At block 2202,
the relatively high frequency components of the moving data are
extracted in a plane of the display (e.g., the components of the
motion which degrade human visual acuity for reading of a displayed
document or inspecting a still image, etc.) At block 2203, the
position of the displayed document or image may be shifted based on
the extracted high frequency components to compensate for the high
frequency motion (e.g., sudden moves) of the portable device. As a
result, the displayed document or image may be maintained
relatively stable in space with respect to the user. Other
operations may also be performed.
Impulse Detection and Applications using an Accelerometer
[0137] According to another embodiment of the invention, an
accelerometer may be used to detect impulses given by a user of a
portable device. In one embodiment, the techniques allow the user
to give impulses, in a physical sense of giving a controlled
momentum transfer, as inputs to a portable or fixed device for use
by an application program. For example, these impulses can appear
to initiate or deflect motion of objects on the display in
proportion to the magnitude and direction of the impulse. This will
enable games (e.g., billiards and other ball games) and
educational/engineering explorations (e.g., response of a structure
to a tap).
[0138] For example, a user may "toss" a cursor across a display of
a portable device by tapping on the side of the portable device.
The accelerometer attached to the portable device may detect such a
force that causes a movement of the portable device. A direction
and magnitude of the force may be determined based on the movement
data provided by the accelerometer. When this function is enabled
for an application, a tap on the side of the device will cause the
cursor to move in a fashion analogous to tapping a small object and
causing it to slide some distance across a surface. Similarly, such
a technique may be utilized in a variety other applications, such
as, for example, video games (e.g., golf, bowling, tennis,
etc.)
[0139] FIG. 23 is a flow diagram illustrating an exemplary process
for impulse detection according to one embodiment of the invention.
Exemplary process may be performed by a processing logic that may
comprise hardware (circuitry, dedicated logic, etc.), software
(such as is run on a dedicated machine), or a combination of both.
In one embodiment, exemplary process includes, but is not limited
to, detecting a movement of a portable device using an
accelerometer attached to the portable device, in response to a
force applied to the portable device, calculating a magnitude and a
direction of the force based on acceleration information provided
by the accelerometer, and moving a displayed object from a first
location to a second location on a display of the portable device,
wherein the direction and distance between the first and second
locations are determined based on the calculated magnitude and
direction of the force.
[0140] Referring to FIG. 23, at block 2301, an accelerometer
attached to a portable device detects three-axis acceleration as a
function of time in response to a tap on the portable device (e.g.,
a user taps an edge of the portable device with a hand). At block
2302, a value is calculated proportional to a magnitude of the
impulse delivered to the device by performing the time integration
of the components of the three-axis acceleration. In one
embodiment, the value may be determined based on the integration of
the absolute value of the resultant acceleration vector, for
example, determined by vector addition of the three components of
the acceleration (e.g., X, Y, and Z, axis acceleration
information).
[0141] At block 2303, a direction of the impulse delivered to the
portable device as a result of tapping the portable device is
determined. In one embodiment, the direction is calculated by a
microcontroller and/or firmware coupled to the accelerometer based
on the moving data provided by the accelerometer. In response to
the determined impulse direction and magnitude, the application
software causes a displayed object to move in a distance with a
direction relatively associated with the determined direction and
magnitude of the impulse. A displayed object may be a cursor.
Alternatively, the displayed object may be a ball as in billiards
or pinball, a bowling ball in a bowling game, a racquet or paddle
as in tennis, a structure to observe deformation, and/or kinetic
motion, etc. The above techniques may also be applied to other
similar types of applications apparent to those with ordinary skill
in the art.
Exemplary Portable Device Having an Accelerometer
[0142] FIG. 20 is a block diagram illustrating an exemplary
portable device having an accelerometer according to one embodiment
of the invention. For example, exemplary system 2000 may represent
at least a portion (e.g., a subsystem) of the exemplary system 100
shown in FIG. 1 or exemplary system 2100 of FIG. 21. Referring to
FIG. 20, exemplary system 2000 includes one or more accelerometers
2001, one or more microcontrollers 2002, a host chipset 2003 that
may be coupled to a video adapter 2004 and an audio device 2005,
and one or more peripheral devices 2006.
[0143] In one embodiment, the accelerometer 2001 is a 3-axis
accelerometer, which may provide acceleration data on X, Y, and Z
axes. The accelerometer is an electromechanical micro machine
encapsulated in a chip package. It presents three analog outputs
(e.g., X, Y, and Z axes) whose values are directly proportional to
the acceleration being measured along corresponding axes in
3-space. In one embodiment, the accelerometer 2001 may be a KGF01
accelerometer from Kionix or an ADXL311 accelerometer from Analog
Devices.
[0144] The microcontroller 2002 is responsible for monitoring the
analog outputs of the accelerometer 2001 and communicating with the
host via the chipset 2003. In one embodiment, the microcontroller
2002 is coupled to the host chipset 2003 via an I2C bus 2007 and an
interrupt line 2008. Alternatively, the microcontroller 2002 may be
integrated with the host chipset 2003. In one embodiment, the
microcontroller 2002 may be a PCI 16F818 microcontroller from
Microchip.
[0145] According to one embodiment, when the accelerometer 2001
detects that the portable device is moving, the microcontroller
2002 receives the 3-axis acceleration information from the
accelerometer 2001 and notifies the host via the interrupt line
2008. In response, the movement data may be read out from the
microcontroller 2002 via the I2C bus 2007. In one embodiment, the
microcontroller 2002 may determine a moving direction based on the
3-axis acceleration information received from the accelerometer
2001. Alternatively, the host chipset may perform such operations.
In one embodiment, the magnitude of the resultant acceleration
vector of all three axes may be determined according to the
following formula:
Mag (Acceleration.sub.resultant)=Sqrt
(X.sub.accel.sup.2Y.sub.accel.sup.2+Z.sub.accel.sup.2)
[0146] In response to the determined magnitude of the acceleration
vector, one or more software components (e.g., application
software, firmware, and operating system, etc.) executed within the
exemplary system 2000 may perform certain operations, for example,
those described above throughout the present application. For
example, an orientation of a displayed image may be adjusted via
the video adapter and the sound effects may be adjusted via audio
device 2005, etc. Furthermore, one or more peripheral devices 2006,
such as, for example, hard drives, may be configured accordingly.
Other configurations may exist.
Exemplary Data Processing System
[0147] FIG. 21 is a block diagram of a digital processing system
which may be used with one embodiment of the invention. For
example, the system 2100 shown in FIG. 21 may be used as the
exemplary systems shown in FIGS. 1 and 20.
[0148] Note, that while FIG. 21 illustrates various components of a
computer system, it is not intended to represent any particular
architecture or manner of interconnecting the components, as such
details are not germane to the present invention. It will also be
appreciated that network computers, handheld computers, cell
phones, multimedia players, and other data processing systems which
have fewer components or perhaps more components may also be used
with the present invention. The computer system of FIG. 21 may, for
example, be an Apple Macintosh computer or an IBM compatible
PC.
[0149] As shown in FIG. 21, the computer system 2100, which is a
form of a data processing system, includes a bus 2102 which is
coupled to a microprocessor 2103 and a ROM 2107, a volatile RAM
2105, and a non-volatile memory 2106. The microprocessor 2103,
which may be, for example, a PowerPC G4 or PowerPC G5
microprocessor from Motorola, Inc. or IBM, is coupled to cache
memory 2104 as shown in the example of FIG. 21. The bus 2102
interconnects these various components together and also
interconnects these components 2103, 2107, 2105, and 2106 to a
display controller and display device 2108, as well as to
input/output (I/O) devices 2110, which may be mice, keyboards,
modems, network interfaces, printers, and other devices which are
well-known in the art. Typically, the input/output devices 2110 are
coupled to the system through input/output controllers 2109. The
volatile RAM 2105 is typically implemented as dynamic RAM (DRAM)
which requires power continuously in order to refresh or maintain
the data in the memory. The non-volatile memory 2106 is typically a
magnetic hard drive, a magnetic optical drive, an optical drive, or
a DVD RAM or other type of memory system which maintains data even
after power is removed from the system. Typically, the non-volatile
memory will also be a random access memory, although this is not
required. While FIG. 21 shows that the non-volatile memory is a
local device coupled directly to the rest of the components in the
data processing system, it will be appreciated that the present
invention may utilize a non-volatile memory which is remote from
the system, such as a network storage device which is coupled to
the data processing system through a network interface such as a
modem or Ethernet interface. The bus 2102 may include one or more
buses connected to each other through various bridges, controllers,
and/or adapters, as is well-known in the art. In one embodiment,
the I/O controller 2109 includes a USB (Universal Serial Bus)
adapter for controlling USB peripherals. Alternatively, I/O
controller 2109 may include an IEEE-1394 adapter, also known as
FireWire adapter, for controlling FireWire devices. Other
components may be included.
[0150] Thus, methods and apparatuses for operating a portable
device using an accelerometer have been described. In the foregoing
specification, the invention has been described with reference to
specific exemplary embodiments thereof. It will be evident that
various modifications may be made thereto without departing from
the broader spirit and scope of the invention as set forth in the
following claims. The specification and drawings are, accordingly,
to be regarded in an illustrative sense rather than a restrictive
sense.
* * * * *