Patent ID: 12259760

DETAILED DESCRIPTION

In the following description, certain specific details are set forth in order to provide a thorough understanding of various aspects of the disclosed subject matter. However, the disclosed subject matter may be practiced without these specific details. In some instances, well-known structures and methods of manufacturing electronic components, foldable devices, and sensors have not been described in detail to avoid obscuring the descriptions of other aspects of the present disclosure.

Unless the context requires otherwise, throughout the specification and claims that follow, the word “comprise” and variations thereof, such as “comprises” and “comprising,” are to be construed in an open, inclusive sense, that is, as “including, but not limited to.”

Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout the specification are not necessarily all referring to the same aspect. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more aspects of the present disclosure.

As discussed above, current lid angle detection solutions are high cost and have high power consumption. Further, for foldable mobile devices, current lid angle detection solutions are unable to determine a lid angle when the foldable mobile device is activated in an upright position (e.g., the hinge or folding portion of the foldable mobile device extends in a direction parallel to gravity) or in a non-steady state (e.g., while the foldable mobile device is being moved or shaken).

The present disclosure is directed to a device and method for lid angle detection. The lid angle detection disclosed herein provides an accurate, low cost lid angle detection solution, which also functions while a foldable electronic device is activated in an upright position or in a non-steady state.

FIG.1is a device10according to an embodiment disclosed herein. In this embodiment, the device10is a foldable mobile device, such as a portable smart device, tablet, and telephone. The device10may also be another type of device, such as a laptop. The device10includes a first lid component12, a second lid component14, and a hinge18.

Each of the first lid component12and the second lid component14includes a casing or housing that houses internal components (e.g., processors, sensors, capacitors, resistors, amplifiers, speakers, etc.) of the device10. As will be discussed in further detail below, a first sensor unit34and a second sensor unit36are housed within the first lid component12and the second lid component14, respectively.

The first lid component12and the second lid component14include a first user interface22and a second user interface24, respectively. In the embodiment shown inFIG.1and in the embodiments discussed below, the first user interface22and the second user interface24are displays. However, each of the first user interface22and the second user interface24may be a display (e.g., a monitor, touch screen, etc.), a user input device (e.g., buttons, a keyboard, etc.), and/or another type of user interface. In one embodiment, the first user interface22and the second user interface24are two portions of a single, flexible display.

The first lid component12and the second lid component14fold on to each other, similar to a book, about the hinge18. The first lid component12and the second lid component14rotate relative to a hinge axis26. The hinge18may any type of mechanism that allows the first lid component12and the second lid component14to rotate relative to the hinge axis26.

As will be discussed in further detail below, the device10performs lid angle detection to determine a lid angle28between the first lid component12and the second lid component14. The lid angle28is the angle between a first surface30of the first lid component12, more specifically the first user interface22, and a second surface32of the second lid component14, more specifically the second user interface24. The lid angle28is equal to zero degrees when the foldable electronic device is in a closed state (e.g., the first surface30faces the second surface32), and 180 degrees when the foldable electronic device is in a fully open state (e.g., the first surface30and the second surface32face in the same direction).

FIG.2is a block diagram of the device10according to an embodiment disclosed herein. The device10includes a first sensor unit34, a second sensor unit36, and an application processor38.

Each of the first sensor unit34and the second sensor unit36is a multi-sensor device that includes one or more types of sensors including, but not limited to, an accelerometer and a gyroscope, and a magnetometer. The accelerometer measures acceleration along one or more axes. The gyroscope measures angular velocity along one or more axes. The magnetometer measures magnetic fields along one or more axes.

Each of the first sensor unit34and the second sensor unit36also includes its own onboard memory and processor. The processor is configured to process data generated by the sensors, and execute simple programs, such as finite state machines and decision tree logic.

The first sensor unit34and the second sensor unit36are positioned in the first lid component12and the second lid component14, respectively. As will be discussed in further detail below, the first sensor unit34and the second sensor unit36determine orientations of the first lid component12and the second lid component14, respectively, for lid angle detection.

The first sensor unit34and the second sensor unit36are power-efficient, low-powered devices that remain on after the device10enters a sleep state. In one embodiment, each of the first sensor unit34and the second sensor unit36consumes between 5 and 120 microamps for processing. In the sleep state, the application processor38and other electronic components (e.g., speakers, sensors, processors) of the device10are set to a low-powered or off state.

The application processor38is a general purpose processing unit. The application processor38may be any type of processor, controller, or signal processor configured to process data. In one embodiment, the application processor38is the device's10own general purpose processor that, along with processing data for lid angle detection discussed below, is utilized to process data for the operating system, user applications, and other types of software of the device10. As will be discussed in further detail below, the application processor38processes the orientations determined by the first lid component12and the second lid component14to obtain an initial lid angle value of the device10, and performs lid angle detection to obtain current lid angle values.

The application processor38may be positioned within the first lid component12, along with the first sensor unit34; or the second lid component14, along with the second sensor unit36.

The application processor38is a high-powered processing unit that is set to a low-powered or off state when the device10enters the sleep state. In one embodiment, the application processor38consumes between 1 to few tenths of milliamps during processing. While in a low-powered or off state, the application processor38is unable to receive sensor measurements from the first sensor unit34and the second sensor unit36and, thus, unable to perform lid angle detection.

FIG.3is a flow diagram of a method40according to an embodiment disclosed herein. The method40performs lid angle detection for the device10.

In block42, the device10detects whether or not a screen off event has occurred. The screen off event may be detected by the first sensor unit34, the second sensor unit36, the application processor38, or another electronic component (e.g., processor, sensor, etc.) included in the device10.

In a screen off event, the first user interface22and/or the second user interface24of the device10are set to a low-powered or off state, and no images are displayed on the screens. In one embodiment, the screen off event occurs in response to a user initiating a power button of the device10, in response to the device10being in a closed state (e.g., the first surface30of the first lid component12faces the second surface32of the second lid component14inFIG.1), or in response to a determined amount of time of user inactivity. In a case where the device10detects the screen off event, the method40moves to block44.

In block44, the device10is set to a sleep state. As discussed above, in the sleep state, the application processor38and other electronic components (e.g., speakers, sensors, processors) of the device10are set to a low-powered or off state.

While in a low-powered or off state, the application processor38is unable to receive sensor measurements from the first sensor unit34and the second sensor unit36and, thus, is unable to perform lid angle detection. In contrast, the first sensor unit34and the second sensor unit36remain on and operational even when the device10enters the sleep state. The method40then moves to blocks46and48, which may be performed concurrently.

It is noted that the device10is in the sleep state during blocks46and48. Thus, the application processor38is in a low-powered or off state, while the first sensor unit34and the second sensor unit36remain on and operational. Block46and block48are performed by the first sensor unit34and the second sensor unit36, respectively.

In block46, the first sensor unit34, more specifically a processor of the first sensor unit34, determines an orientation or position of the first lid component12, more specifically the first surface30of the first lid component12. As discussed above with respect toFIG.1, the first sensor unit34is positioned in the first lid component12.

Similarly, in block48, the second sensor unit36, more specifically a processor of the second sensor unit36, determines an orientation or position of the second lid component14, more specifically the second surface32of the second lid component14. As discussed above with respect toFIG.1, the second sensor unit36is positioned in the second lid component14.

The first sensor unit34and the second sensor unit36determine the orientations of the first lid component12and the second lid component14, respectively, based on acceleration and angular velocity measurements along one or more axes. Further, the orientations are represented as quaternions.

In a case where the first sensor unit34includes a 3-axis accelerometer that measures accelerations along an X-axis, a Y-axis transverse to the X-axis, and Z-axis transverse to the X-axis and the Y-axis; and includes a 3-axis gyroscope that measures angular velocities along an X-axis, a Y-axis transverse to the X-axis, and Z-axis transverse to the X-axis, the quaternion q1of the first lid component12is equal to (x1, y1, z1), where x1, y1, z1represent the vector component of the quaternion representing the orientation of the first lid component12. Similarly, in a case where the second sensor unit36includes a 3-axis accelerometer and a 3-axis gyroscope, the quaternion q2of the second lid component14is equal to (x2, y2, z2), where x2, y2, z2represent the vector component of the quaternion representing the orientation of the second lid component14.

The first sensor unit34and the second sensor unit36determine the orientations of the first lid component12and the second lid component14, respectively, repeatedly to ensure that the orientations are current and accurate. In one embodiment, the first sensor unit34and the second sensor unit36determine the orientations of the first lid component12and the second lid component14, respectively, at determined intervals (e.g., every 5, 10, 15 milliseconds, etc.).

Once the first sensor unit34determines the orientation of the first lid component12in block46and the second sensor unit36determines the orientation of the second lid component14in block48at least once, the method40moves to block49.

In block49, the device10detects whether or not a screen on event has occurred. The screen on event may be detected by the first sensor unit34, the second sensor unit36, the application processor38, or another electronic component (e.g., processor, sensor, etc.) included in the device10.

In a screen on event, the first user interface22or the second user interface24of the device10are set to an on state and display images. In one embodiment, the screen on event occurs in response to a user initiating a power button of the device10, in response to the device10being in an open state (e.g., the first surface30of the first lid component12and the second surface32of the second lid component14face in the same direction inFIG.1), or in response to a determined amount of time of user activity. In a case where the device10detects the screen on event, the method40moves to block50.

In block50, the device10is set to an awake state. In contrast to the sleep state, in the awake state, the application processor38and other electronic components (e.g., speakers, sensors, processors) of the device10are set to an on state and are fully operational. For example, the application processor38is able to receive sensor measurements from the first sensor unit34and the second sensor unit36, and perform lid angle detection. The method40then moves to block52. It is noted that the device10remains in the awake state during blocks52to64.

In block52, the application processor38retrieves the latest, most current orientations of the first lid component12and the second lid component14determined by the first sensor unit34and the second sensor unit36, respectively, in blocks46and48. In one embodiment, the orientations determined by the first sensor unit34and the second sensor unit36are saved in their respective internal memories, and the application processor38retrieves the orientations directly from the first sensor unit34and the second sensor unit36. In another embodiment, the orientations determined by the first sensor unit34and the second sensor unit36are saved to a shared memory, which is shared between the first sensor unit34, the second sensor unit36, and the application processor38; and the application processor38retrieves the orientations from the shared memory. The method40then moves to block54.

In block54, in order for the application processor to process orientation data generated by the first sensor unit34and the second sensor unit36, the application processor38converts the format of the orientations of the first lid component12and the second lid component14to a format used by the application processor38. For example, in one embodiment, the orientations determined by the first sensor unit34and the second sensor unit36are in a half precision floating point format, and the application processor38converts the orientations to a single precision floating point format.

In a case where the quaternion q1is represented using the vector component due to memory limitations, the quaternion q1of the first lid component12is converted to a quaternion q1equal to (x1′, y1′, z1′, w1′), using equations (1) to (4) below:
x1′=x1(1)
y1′=y1(2)
z1′=z1(3)
w1′=√{square root over (1−(x1′2+y1′2+z1′2))}  (4)
Similarly, the quaternion q2of the second lid component14is converted to a quaternion q2′ equal to (x2′, y2′, z2′, w2′), using equations (5) to (8) below:
x2′=x2(5)
y2′=y2(6)
z2′=z2(7)
w2′=√{square root over (1−(x2′2+y2′+z2′2))}  (8)

The method40then moves to block56. It is noted that block54may be removed from the method40in a case where the first sensor unit34, the second sensor unit36, and the application processor38utilize the same data formats. In this case, the method40moves from block52to block56.

In block56, the application processor38determines a distance d between the orientation of the first lid component12and the orientation of the second lid component14. The distance d represents an angular distance between the first lid component12and the second lid component14. The distance d is calculated using equation (9) below:
d=cos−1(2(q1′·q2′)2−1)  (9)
where the dot operator denotes the dot or inner product. The method then moves to block58.

In block58, the application processor38remaps the distance d to an estimated lid angle lidoof the device10. Due to the estimated lid angle lidobeing determined based on the most current orientations of the first lid component12and the second lid component14retrieved in block52, the estimated lid angle lidois an estimated lid angle of the device10at the time of the screen on event in block49. As discussed above with respect toFIG.1, the lid angle is the angle between the first surface30of the first lid component12, more specifically the first user interface22, and the second surface32of the second lid component14, more specifically the second user interface24.

The distance d is remapped to the estimated lid angle lidosuch that a minimum of the estimated lid angle lidois zero degrees, which occurs when the device10is in a closed state (e.g., the first surface30faces the second surface32); and a maximum of the estimated lid angle lidois 180 degrees, which occurs when the device10is in a fully open state (e.g., the first surface30and the second surface32face in the same direction). The estimated lid angle lidois calculated using equation (10) below:
lido=360−(d+180)  (10)
The method then moves to block60.

In block60, the application processor38sets the estimated lid angle lidoas an initial lid angle of the device10, which is the lid angle between the first surface30of the first lid component12and the second surface32of the second lid component14at the time of the screen on event in block49and the awake state in block50. The method40then moves to block62.

Using the estimated lid angle lido, which was previously determined, as the initial lid angle of the device10is particularly useful in situations where lid angle detection is currently unreliable or inaccurate. For example, many lid angle detection solutions are often inaccurate when the device10is activated in an upright position or is in a non-steady state.

In one embodiment, the estimated lid angle lidois set as the initial lid angle in a case where the device10is activated in an upright position or is in a non-steady state. In the upright position, referring toFIG.1, the hinge axis26of the device10is parallel to gravity. In the non-steady state, the device10is undergoing movement by, for example, being shaken or moved by a user.

If the device10is not in the upright position (e.g., the hinge axis26is not parallel to gravity) or not in the non-steady state (e.g., the device10is in a steady state), block60is not performed and the method40moves from block58to block62. In another embodiment, if the device10is not in the upright position or not in the non-steady state, blocks52,54,56,58are not performed and the method40moves from block50to block62.

The application processor38determines the device10is in the upright position based on acceleration measurements, gyroscope measurements, or a combination thereof that are generated by one or more of the first sensor unit34and the second sensor unit36. For example, the application processor38determines the device10is in the upright position in response to the acceleration measurements and/or the gyroscope measurements indicating that the hinge axis26of the device10is parallel to gravity.

The application processor38determines the device10is in the non-steady state based on acceleration measurements, gyroscope measurements, or a combination thereof that are generated by one or more of the first sensor unit34and the second sensor unit36. For example, the application processor38determines the device10is in the non-steady state in response to one or more of acceleration, a variance of acceleration, a mean of acceleration, a difference between a current acceleration and the mean of acceleration, angular velocity, a variance of angular velocity, a mean of angular velocity, or a difference between a current angular velocity and the mean of angular velocity, along one or more axes, being greater than a respective threshold value.

In block62, the application processor38determines a current lid angle of the device10. In one embodiment, the application processor38determines the current lid angle based on the initial lid angle determined in block60. For example, the application processor38determines the current lid angle based on a detected change in lid angle starting from the initial lid angle.

As the device10is in the awake state and not limited to utilizing just the first sensor unit34and the second sensor unit36, the device10may determine the current lid angle with any number of different techniques of calculating lid angle, which utilize, for example, two accelerometers; two accelerometers and two gyroscopes; two accelerometers and two magnetometers; or two accelerometers, two gyroscopes, and two magnetometers. In addition, any of these configurations can be combined with a hall sensor and a magnet. The usage of two gyroscopes could also be implemented together with a hall sensor and a magnet (or an equivalent “switch” sensor to detect when the device is closed).

For example, the application processor38may recursively determine the current lid angle between the first lid component12and the second lid component14as a function of measurement signals generated by a first accelerometer of the first sensor unit34, a second accelerometer of the second sensor unit36, a first gyroscope of the first sensor unit34, and a second gyroscope of the second sensor unit36. In this example, the current lid angle is determined as a function of a weight indicative of a reliability of the measurement signals as being indicative of the lid angle between the first lid component12and the second lid component14. In some cases, the application processor38may also generate a first intermediate calculation indicative of the lid angle between the first lid component12and the second lid component14as a function of measurement signals generated by the first and second accelerometers; generate a second intermediate calculation indicative of the lid angle as a function of measurement signals generated by the first and second gyroscopes; and determine the current lid angle as a weighted sum of the first intermediate calculation and the second intermediate calculation.

As another example, a first magnetometer of the first sensor unit34and a second magnetometer of the second sensor unit36may generate first signals that are indicative of measurements of a magnetic field external to the device10and are indicative of a relative orientation of the first lid component12with respect to the second lid component14. The application processor38may then acquire the first signals; generate, as a function of the first signals, a calibration parameter indicative of a condition of calibration of the first and second magnetometers; generate, as a function of the first signals, a reliability value indicative of a condition of reliability of the first signals; calculate an intermediate value of the current lid angle based on the first signals; and calculate the current lid angle based on the calibration parameter, the reliability value, and the intermediate value. In order to improve accuracy, the calibration parameter, the reliability value, and the intermediate value may also be used in conjunction with the current lid angle determined with accelerometer and gyroscopes discussed above.

Once the current lid angle is determined, a function of the device10may be controlled based on the current lid angle. For example, power states of the device, and user interfaces displayed on the first user interface22and the second user interface24may be adjusted based on the current lid angle.

The method40then moves to block64. However, it is noted that execution of block62is repeated (e.g., every 5, 10, 15 milliseconds, etc.) while block64is performed to ensure the orientations of the first lid component12and the second lid component14remain accurate. Further, at this time, block42is performed concurrently with block62in order to detect whether or not another screen off event has occurred. The repeated execution of block62halts upon detection of a screen off event.

In block64, the application processor38resets the orientation processing logic of the first sensor unit34and the second sensor unit36(e.g., the processing logic used in blocks46and48). Resetting the orientation processing logic improves accuracy as measurements errors often accumulate over time, causing a drift in the yaw estimations of the orientations of the first lid component12and the second lid component14.

The reset of the orientation processing logic of the first sensor unit34and the second sensor unit36is performed upon determining the device10is in a known state.

In a first embodiment, the resetting of the orientation processing logic is performed when the device10is in a steady state and a fully open state. Being in the steady state reduces error caused by linear acceleration when the first sensor unit34and the second sensor unit36are initialized. Further, the fully open state intrinsically forces the first sensor unit34and the second sensor unit36to start with the same yaw.

In the steady state, the device10is not being moved or shaken. The application processor38determines the device10is in the steady state based on acceleration measurements, gyroscope measurements, or a combination thereof that are generated by one or more of the first sensor unit34and the second sensor unit36. For example, the application processor38determines the device10is in the steady state in response to one or more of acceleration, a variance of acceleration, a mean of acceleration, a difference between a current acceleration and the mean of acceleration, angular velocity, a variance of angular velocity, a mean of angular velocity, or a difference between a current angular velocity and the mean of angular velocity, along one or more axes being less than a respective threshold value.

In the fully open state, referring toFIG.1, the first surface30and the second surface32face in the same direction. The application processor38determines the device10is in the fully open state based on the current lid angle determined in block62. For example, the application processor38determines the device10is in the fully open state in response to the current lid angle being within a threshold angle (e.g., 1, 2, or 3 degrees, etc.) of 180 degrees.

In response to determining the device10is in the steady state and the fully open state, the application processor38transmits a reset signal to the first sensor unit34and the second sensor unit36. Upon receiving the reset signal, the orientation processing logic of the first sensor unit34and the second sensor unit36is reset.

In a second embodiment, the resetting of the orientation processing logic is performed when the device10is in (1) a steady state and (2) either in a fully open state or a closed state. As discussed above, being in the steady state reduces error caused by linear acceleration when the first sensor unit34and the second sensor unit36are initialized.

As discussed above, in the fully open state, referring toFIG.1, the first surface30and the second surface32face in the same direction. In contrast, in the closed state the first surface30and the second surface32face each other. The application processor38determines the device10is in the closed state based on the current lid angle determined in block62. For example, the application processor38determines the device10is in the closed state in response to the current lid angle being within a threshold angle (e.g., 1, 2, or 3 degrees, etc.) of 0 degrees.

In response to determining the device10is in (1) the steady state and (2) either in the fully open state or the closed state, the application processor38transmits a reset signal to the first sensor unit34and the second sensor unit36. Upon receiving the reset signal, the orientation processing logic of the first sensor unit34and the second sensor unit36is reset.

In the second embodiment, the configuration of either the first sensor unit34orientation processing logic and/or the second sensor unit36orientation processing logic is changed based on whether the resetting is in response to the device10being in the fully open state or the closed state. More specifically, the coordinate system (e.g., east-north-up (ENU) coordinate system) of one of the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic is set to be aligned with the coordinate system of the other of the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic based on whether the resetting is caused by the device10being in the fully open state or the closed state.

In a case where the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic both utilize the same coordinate system, the coordinate systems of both the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic are set to respective default coordinate systems in response to the resetting being caused by the device10being in the fully open state. Conversely, in the case where the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic both utilize the same coordinate system, the coordinate system of one of the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic is aligned with the coordinate system of the other of the first sensor unit34orientation processing logic and the second sensor unit36orientation processing logic in response to the resetting being caused by the device10being in the closed state. For example, in the next execution of the method40, the coordinates system of the first sensor unit34orientation processing logic is changed to be aligned to the coordinate system of the second sensor unit36orientation processing logic by applying a transformation matrix to the coordinates system of the first sensor unit34orientation processing logic.

In addition, in the second embodiment and in the next execution of the method40, the remapping in block58is customized based on whether the resetting is in response to the device10being in the fully open state or the closed state.

In a case where the resetting is caused by the device10being in the fully open state, the estimated lid angle lidois calculated using equation (10) as discussed above. Conversely, in a case where the resetting is caused by the device10being in the closed state, the estimated lid angle lidois calculated using equation (11) below:
lido=d(11)

In one embodiment, in order to avoid excessive resets of the first sensor unit34and the second sensor unit36, the application processor38transmits the reset signal in a case where a threshold amount of time has passed since the previous reset signal transmission. For example, in response to determining the device10is in the steady state and the fully open or closed state, the application processor38transmits the reset signal to the first sensor unit34and the second sensor unit36in a case where a threshold amount of time (e.g., 30 seconds, 1 minute, etc.) has passed since the previous reset signal transmission. Conversely, in response to determining the device10is in the steady state and the fully open or closed state, the application processor38skips transmission of (i.e., does not transmit) the reset signal to the first sensor unit34and the second sensor unit36in a case where the threshold amount of time has not passed since the previous reset signal transmission.

Upon completion of block64, the method40is repeated. Stated differently, the method40returns to block42.

The various embodiments disclosed herein provide a device and method for lid angle detection. While the device is in the sleep state, first and second sensor units measure acceleration and angular velocity, and calculate orientations of the respective lid components based on the acceleration and angular velocity measurements. Upon the device exiting the sleep state, the application processor estimates the lid angle using the calculated orientations, sets the estimated lid angle as an initial lid angle, and updates the initial lid angle using one or more of acceleration, magnetometer, or gyroscope measurements. As a result, the initial lid angle is accurate even in cases where the device is in an upright position or a non-steady state upon exiting the sleep state. Further, utilizing the first and second sensor units to estimate the respective lid orientations while the device is in the sleep state lowers the overall system current consumption, since the device does not have to be kept in an active state.

The various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the embodiments in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure.