The present invention relates generally to an electronic device. More particularly, this invention relates to operating an electronic device using an accelerometer of the electronic device for capturing photographic images with a camera integrated into the display screen of the electronic device.
Many personal computers, cell phones, personal digital assistants, and other electronic devices include built-in video cameras. These cameras enable users to take pictures, capture video, and participate in videoconferences.
One problem with traditional built-in cameras stems from the way that the cameras are mounted to (or within) the electronic device. Because the cameras are attached to a mounting point that is adjacent to the user's video display, the user cannot simultaneously look into the camera and view his or her display. Hence, it is difficult for the user to maintain eye contact during a videoconference with another person, because looking at the other person in the display means looking away from the camera. Users find themselves constantly looking back and forth between the display screen and the camera, which can be distracting and make the conversation seem awkward and unnatural. For the same reason, when attempting to take a self-portrait, a user cannot see what the photo will actually look like because glancing at the display means looking away from the camera. When looking at their display, users see an image of themselves looking away at an angle instead of looking directly into the camera. Thus, users that want a head-on portrait must look away from the display and into the camera, shooting blindly without any visual feedback from the display to guide them.
Some image-capturing mechanisms attempt to solve this problem by integrating the image-capturing mechanism directly into the display screen of the electronic device, for example in U.S. Patent Application 2009/0009628.
While an integrated display camera is a much needed improvement over existing image-capturing mechanisms, also needed is the ability to monitor the orientation of an electronic device to ensure that the integrated display camera captures a user facing the display from the best possible viewpoint and is able to maintain this view when the orientation of the electronic device changes.
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.
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.
Methods and apparatuses for operating an electronic device based on an accelerometer are described. According to one embodiment of the invention, an accelerometer attached to an electronic device detects a movement of the electronic device. In response, a machine executable code is executed to perform a predetermined user configurable operation.
According to one embodiment of the invention, an accelerometer of an electronic device may constantly or periodically monitor the movement of the electronic device. As a result, an orientation of the electronic device prior to the movement and after the movement may be determined based on the movement data provided by the accelerometer attached to the electronic device.
According to another embodiment of the invention, an accelerometer may be used to detect a movement of an electronic device and an orientation of the electronic device may be determined based on the movement data provided by the accelerometer. Thereafter, the frame of view of one or more one or more image capturing image-capturing mechanisms integrated into the display screen of the electronic device may be based on the determined orientation after the movement.
Various embodiments of the present invention are described herein by way of example in conjunction with the following figures, wherein:
In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.
In general, terms used herein should be read to have their ordinary and common meanings as understood by one of ordinary skill in the art in view of the descriptions provided herein.
Referring to
According to one embodiment, the accelerometer 101 is able to detect a movement including an acceleration and/or de-acceleration of the electronic device. The accelerometer 101 may generate movement data for multiple dimensions, which may be used to determine a moving direction of the electronic device. For example, the accelerometer 101 may generate X, Y, and Z axis acceleration and movement information when the accelerometer 101 detects that the electronic device is moved. In one embodiment, the accelerometer 101 may be implemented as those described in U.S. Pat. No. 6,520,013. 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.
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 electronic 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.
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 electronic 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 electronic device.
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. 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 electronic device will be described further below.
Referring back to
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.
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, image-capture software, etc. Certain embodiments of the operations performed by the applications 105-107 will be described in details further below.
Referring to
According to one embodiment of the invention, an accelerometer of an electronic device may constantly or periodically monitor the movement of the electronic device. As a result, an orientation of the electronic device prior to the movement and after the movement may be determined based on the movement data provided by the accelerometer attached to the electronic device.
Referring to
In a particular embodiment, the accelerometer may notify a controller (e.g., controller 102 of
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 electronic device at a given time and place. For example, the sensitivity of the electronic 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 electronic device may include a mechanism to intelligently filter out some “noisy” movement background.
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 shifting the frame of view of one or more integrated display cameras based on the determined orientation of the electronic device. In one embodiment, the frame of view of one or more integrated display cameras can be shifted, either by shifting the frame of view 310 within the field of view 311 of one or more integrated display cameras (as illustrated in
Referring to
According to another embodiment, the techniques described above may be used in an augmented reality environment. In one embodiment, it allows a user to use the accelerometer equipped electronic device as a digital mirror to view themselves the same way they would in an optical mirror. For example, a user holding the electronic device 300 can tilt the electronic device 300 side to side, up or down to view themselves from different angles (as illustrated in
In one embodiment, the accelerometer 1001 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 1001 may be a KGF01 accelerometer from Kionix or an ADXL311 accelerometer from Analog Devices.
The microcontroller 1002 is responsible for monitoring the analog outputs of the accelerometer 1001 and communicating with the host via the chipset 1003. In one embodiment, the microcontroller 1002 is coupled to the host chipset 1003 via an I2C bus 1007 and an interrupt line 1008. Alternatively, the microcontroller 1002 may be integrated with the host chipset 1003. In one embodiment, the microcontroller 1002 may be a PCI 16F818 microcontroller from Microchip.
According to one embodiment, when the accelerometer 1001 detects that the electronic device is moving, the microcontroller 1002 receives the 3-axis acceleration information from the accelerometer 1001 and notifies the host via the interrupt line 1008. In response, the movement data may be read out from the microcontroller 1002 via the I2C bus 1007. In one embodiment, the microcontroller 1002 may determine a moving direction based on the 3-axis acceleration information received from the accelerometer 1001. 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(Accelerationresultant)=Sqrt(Xaccel2+Yaccel2+Zaccel2)
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 1000 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 1004 and the sound effects may be adjusted via audio device 1005, etc. Furthermore, one or more peripheral devices 1006, such as, for example, integrated display cameras, may be configured accordingly. Other configurations may exist.
Note, that while
As shown in
Thus, methods and apparatuses for operating an electronic 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.
This application claims priority from the U.S. Provisional Patent Application Ser. No. 61/350,481 filed Jun. 2, 2010, the disclosure of which is attached in Appendix A hereto and incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61350481 | Jun 2010 | US |