Computing devices with displays, such as smartphones, tablets, laptops, televisions, etc., often include an ambient light sensor component for detecting and sensing ambient light information. The ambient light sensor can be implemented with a photodetector for sensing the amount of ambient light present, and the information can be provided to a processor of the computing device. The processor can utilize the information to change one or more settings for controlling a display, including internal and external displays. For example, the processor can send appropriate signals to dim or brighten pixels of a liquid crystal display (LCD) screen based at least upon information from the ambient light sensor.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
Implementations of systems and methods for validating sensors using an external device are provided. One aspect includes a computing comprising: a first ambient light sensor system comprising an ambient light intensity sensor and an ambient color sensor; processing circuitry and memory storing instructions that, during execution by the processing circuitry, causes the processing circuitry to: detect the external device in vicinity of the computing device, wherein the external device comprises a second ambient light sensor system; determine an orientation of the first ambient light sensor system; receive information describing an orientation of the second ambient light sensor system and information describing sensor data of the second ambient light sensor system; determine a relative orientation based at least upon the orientation of the first ambient light sensor system and the information describing the orientation of the second ambient light sensor system; and perform correction of sensor data of the first ambient light sensor system based at least upon the relative orientation and the information describing the sensor data of the second ambient light sensor system.
Computing devices can include many different types of sensors for various applications. Oftentimes, the sensors are implemented to provide autonomous functions and controls for the computing device. For example, laptops, tablets, and smartphones often include an embedded ambient light sensor for detecting ambient illuminance and/or ambient color. Information from the ambient light sensor can be used to adjust the displays of such devices accordingly. Usage of computing devices in different environments may have different preferential display settings for the displays of said computing devices to provide a more comfortable user viewing experience. As such, the computing device can adjust the settings of the display to adapt to different environments using information from the ambient light sensor. Generally, bright environments, such as outdoor venues, result in high brightness display settings for comfortable viewing. Dim environments, such as low-light indoor environments, can result in low brightness display settings to accommodate the user's low-light adapted pupils and/or to conserve battery life of the computing device.
Usage of embedded sensors for performing autonomous control of computing devices presents several issues. Many different scenarios can result in unreliable sensor readings. For example, ambient light sensors embedded in mobile devices, such as laptops and smartphones, may have ambient light intensity readings that vary depending on the sensors' orientations with respect to the light source—e.g., an ambient light sensor facing towards a light bulb will generally have a higher illuminance/intensity measurement (LUX) than another ambient light sensor that is oriented away from the light bulb, given the same distance away from the light source. However, to the user, the viewing conditions for both devices should be similar. As such, readings from the ambient light sensors may incorrectly assume the user's viewing conditions. In some scenarios, design limitations, such as sensors placed under a device's bezel or under an organic light-emitting diode (OLED) panel, may result in less reliable sensor readings compared to more traditional sensor placements. Other issues resulting in unreliable readings include non-calibrated, degraded, damaged, and/or blocked sensors.
Another reliability issue with the use of embedded sensors includes the use of ambient temperature sensors for determining internal operating temperature thresholds. Design limitations for computing devices can include operational compliance with regulations that specify an internal operating temperature threshold given an ambient temperature reading. However, oftentimes, an ambient temperature sensor may produce unreliable readings due to interference from heat generated by the computing device. For example, computing devices operating at a high load can generate a considerable amount of heat, which can cause interference if the generated heat is in proximity to the ambient temperature sensor.
In view of the observations above, examples of systems and methods for sensor validation using one or more external devices are provided. Sensor validation for a computing device can be performed to compensate for and/or provide a complementary solution to unreliable sensor readings. Sensor validation can be implemented for the computing device using information from an external device, such as sensor data from an embedded sensor of the external device. Upon detecting that the external device is in the vicinity of the computing device, the sensor validation process can be implemented on the computing device to receive information from the detected external device and to use the received information to perform correction of sensor data from one or more embedded sensors of the computing device. Information received from the external device can be used in various ways. For example, in some cases, sensor data from embedded sensors of the computing device may be determined to be unreliable due to various reasons, examples of which are discussed in further detail in the sections below. The information describing sensor data from the external device can be used to augment or replace sensor readings of the computing device to provide more accurate sensor readings, including but not limited to ambient light intensity and color readings, to the computing device. Different scenarios and use cases can alter how information from the external device is utilized. In some implementations, a relative orientation between a sensor of the computing device and a corresponding sensor of the external device is used to determine how the information from the external device is utilized. Other factors in determining how the information can be utilized include relative distances between the two devices, differences among sensor readings, and stored historical data. For example, larger deviations in distances may indicate that a smaller weight should be applied to the sensor data of the external device in its use for performing correction of sensor data of the computing device. Such factors, including but not limited to relative distances and relative orientations, provide an improvement in the accuracy of sensor readings of embedded sensors of the computing device.
The computing device 102 further includes a proximity detection system 116 for detecting the presence of one or more external devices 118. The external device 118 can be any device with an ambient light sensor system 120 from which sensor data can be used for the sensor validation process by the computing device 102. For example, the external device 118 can be a laptop, a smartphone, tablet, or any other computing device. In the depicted example, the ambient light sensor system 120 of the external device 118 includes an ambient light intensity sensor 122 and an ambient color sensor 124. Any other sensors can also be implemented.
The proximity detection system 116 can be implemented in various ways. In some implementations, the computing device 102 detects that an external device 118 is in its vicinity by determining that the external device 118 is communicatively connected to the computing device 102. For example, the proximity detection system 116 can be implemented to determine when an external device 118 is connected to the computing device 102 through a wired or wireless connection. In a further example, the proximity detection system 116 can be implemented to detect a wireless communication protocol, including but not limited to BLUETOOTH®, ultra-wideband (UWB) protocol, and various radio-based communication technologies. Another detection process includes determining whether the external device 118 is connected to and using the same WI-FI® address as the computing device 102.
In some implementations, the computing device 102 detects that an external device 118 is in its vicinity by determining that the external device 112 is within a predetermined distance from the computing device 102. For example, the proximity detection system 116 can be implemented to determine the position and/or distance of the external device 118 from the computing device 102. Various methods for determining distance can be utilized. In some implementations, the relative distance between the external device 118 and the computing device 102 is determined based at least upon a wireless communication technology, such as but not limited to WI-FI®, BLUETOOTH®, UWB, and various radio-based communication technologies. Other methods include the use of data from components such as a microphone (audio data), camera (image data), and proximity sensors.
Upon detecting that the external device 118 is in the vicinity of the computing device 102, information describing sensor data from the ambient light sensor system 120 of the external device 118 can be used perform correction (e.g., replace or augment) of sensor data of the ambient light sensor system 110 of the computing device 102. Information describing sensor data of the ambient light sensor system 120 of the external device 118 can be received by the computing device 102 through various methods. In the depicted example, the external device 118 is communicatively coupled to the computing device 102, and the information can be sent directly (e.g., through a wired or wireless connection). In other implementations, one or more devices serve as an intermediary for the transmission of information between the computing device 102 and the external device 118.
In some implementations, information describing sensor data from the ambient light sensor system 120 of the external device 118 is utilized in the sensor validation process upon determining that the sensor data from the ambient light sensor system 110 of the computing device 102 is unreliable. The extent of the unreliability of the sensor readings of the ambient light sensor system 110 of the computing device 102 can determine how the information from the external device 118 is utilized (e.g., whether to replace or augment the sensor data of the ambient light sensor system 104 of the computing device 102).
Determining the unreliability of the sensor data of the ambient light sensor system 110 of the computing device 102 can be performed in various ways. In some implementations, sensor data of the ambient light sensor system 110 of the computing device 102 are determined to be unreliable due to design limitations of the computing device 102. For example, if the computing device 102 is designed with an OLED panel, the ambient light sensor system 110 may include sensors embedded underneath the OLED panel, which may result in less accurate sensor readings compared to other placements. In such cases, information from an external device 118 with more reliable sensor readings may be used as complementary data to perform correction of the sensor data of the ambient light sensor system 110 of the computing device 102.
In some implementations, unreliability of the sensor data of the ambient light sensor system 110 of the computing device 102 is determined based at least upon the orientation of the ambient light sensor system 110. Orientations indicating that sensors of the ambient light sensor system 110 are not sensing ambient light corresponding to the user's viewpoint can be used to indicate that the sensor readings are unreliable. For example, an orientation indicating that the ambient light sensor system 110 is directed downward or upward can mean that the sensors are undersaturated or oversaturated (depending on the location of the light source) compared to the user's viewpoint.
In the depicted example, the computing device 102 includes an orientation detection system 126 for determining the orientation of the ambient light sensor system 110 of the computing device 102. Similarly, the external device 118 includes an orientation detection system 128 for determining the orientation of the ambient light sensor system 116 of the external device 112. Orientation of an ambient light sensor system can be determined using various methods. For example, an orientation of an ambient light sensor system can be determined using a magnetometer, a gyroscope, an accelerometer, a barometer, etc.
In some implementations, unreliability of the sensor data of the ambient light sensor system 110 of the computing device 102 is determined upon verifying that sensors of the ambient light sensor system 110 are blocked. Various methods can be utilized to determine aperture blocking of the sensors. Generally, various types of different sensors are often co-located and implemented in computing devices as part of a sensor package. For example, ambient light sensors are often co-located with proximity sensors, cameras, and other types of sensors. As such, the use of such co-located sensors provides a convenient tool for determining aperture blocking of the ambient light sensor. A proximity sensor using infrared technology, for example, can be utilized to determine aperture blocking. Another example includes the use of image data from a camera to determine aperture blocking.
In some implementations, information from the external device 118 is used if sensor data from the external device 118 is determined to be reliable. Determining reliability of the sensor data from the external device 118 can be performed using various methods. One example method includes using information describing the orientation of the ambient light sensor system 120 of the external device 118 (e.g., if the ambient light sensor system 120 of the external device 112 is determined to be at an appropriate orientation indicative of an accurate ambient light reading). Another example method includes determining that the relative distance of the external device 118 to the computing device 102 is within a predetermined threshold. In some implementations, the relative distance is used to determine the amount of influence the information from the external device 118 has in the correction of the sensor data of the ambient light sensor system 110 of the computing device 102. For example, a weighted formula can be applied where information from an external device 118 that is closer to the computing device 102 is weighted higher than information from an external device 118 that is farther. These considerations allow for improved accuracy in the sensor data correction process.
The information describing sensor data of the ambient light sensor system 120 of the external device 118 can be used by the computing device 102 in various ways. For example, the information can be used to replace or augment the sensor data of the ambient light sensor system 110 of the computing device 102, which can be used to change display settings (e.g., brightness, color, saturation, etc.) of a display 130 of the computing device 102. In some implementations, the information is used to change display settings of an external display 132 communicatively connected to the computing device 102. The computing device 102 can store information from the external device 118, such as information describing the orientation and/or the sensor data of the ambient light sensor system 120. The stored information can be utilized in future sensor validation steps. For example, if the sensor data from the external device 118 is determined to be unreliable in a future sensor validation step (e.g., the ambient light sensor system 120 of the external device 118 is blocked or is in a different orientation indicative of unreliable sensor date), then the stored information can be used to provide more accurate sensor data.
How information from the external device 118 is utilized can depend on several factors. For example, if the ambient light sensor 110 of the computing device 102 is determined to be partially unreliable, the information from the external device 118 can be used to augment and/or validate the sensor readings of the ambient light sensor 110 of the computing device 102. If the ambient light sensor 110 of the computing device 102 is determined to be unreliable past a predetermined threshold, the information can be used to replace the sensor data of the computing device 102. Examples of such scenarios include when the computing device 102 is a laptop with a lid that is closed/partially closed such that the ambient light sensor system 110 is unable to reliably measure the ambient light. In some implementations, the orientation detection system 126 is utilized to determine the state of the laptop lid. Another example scenario includes when the ambient light sensor aperture is blocked.
As the computing device 202 and the external device 204 are mobile devices, the orientations of their ambient light sensor systems 206, 208 can vary across typical use cases. For example, the laptop lid of the computing device 202 can be in various positions, and the smartphone external device 204 can be placed in various positions (e.g., faced up on a table, on a phone stand, etc.). Different orientations and relative orientations between the two devices 202, 204 can result in different sensor validation processes and results.
Different reliability metrics can be applied to individual sensors of the ambient light sensor systems 206, 208. For example, different relative orientations may have a larger effect on reliability for ambient light intensity sensors compared to ambient color sensors.
The computing device 602 includes thermal control system 604 for controlling performance of the computing device 602. The thermal control system 604 includes an ambient temperature sensor 606 and an internal temperature sensor 608. For example, the thermal control system 604 can be configured to throttle performance of the computing device 602 based at least upon an internal temperature threshold. In some implementations, the internal temperature threshold is a function of the ambient temperature. As the computing device 602 can generate considerable amounts of internal heat, such as when the computing device 602 is under a high working load, the ambient temperature sensor 606 may provide unreliable ambient temperature readings due to interference from heat generated by the computing device 602.
The computing device 102 further includes a proximity detection system 610 for detecting the presence of one or more external devices 612. The proximity detection system 610 can be implemented in various ways, including those described above with respect to the proximity detection system 116 of
Upon detecting that the external device 612 is in the vicinity of the computing device 602, information describing sensor data from the ambient temperature sensor 614 of the external device 612 can be used perform correction (e.g., replace or augment) of sensor data of the ambient temperature sensor 606 of the computing device 602. Correction of the sensor data of the ambient temperature sensor 606 of the computing device 602 can cause the computing device 602 to adjust its internal temperature threshold to reflect the corrected ambient temperature reading. Information describing sensor data of the ambient temperature sensor 614 of the external device 612 can be received by the computing device 602 through various methods. In the depicted example, the external device 612 is communicatively coupled to the computing device 602, and the information can be sent directly (e.g., through a wired or wireless connection). In other implementations, one or more devices serve as an intermediary for the transmission of information between the computing device 602 and the external device 612.
The sensor validation process for correction sensor data of the ambient temperature sensor 606 of the computing device 602 can be performed in various ways. In some implementations, the sensor validation process is implemented to utilize information describing sensor data from the ambient temperature sensor 614 of the external device 612 to perform sensor validation upon determining that the sensor data of the ambient temperature sensor 606 of the computing device 602 is unreliable. Determining that the sensor data of the ambient temperature sensor 606 of the computing device 602 is unreliable can be performed in various ways. In some implementations, such sensor data is determined to be unreliable upon determining that an internal temperature of the computing device 602 is above a predetermined threshold using the internal temperature sensor 608.
In some implementations, the sensor validation process utilizes information describing sensor data from the ambient temperature sensor 614 of the external device 612 to perform sensor validation upon determining that said sensor data is reliable. Determining reliability of the ambient temperature sensor 614 of the external device 612 can be performed in various ways. For example, reliability of the ambient temperature sensor 614 of the external device 612 can be determined by verifying that the external device 612 is operating in a low power mode, low load performance, sleep mode, hibernating, etc. Such modes of operation indicate that the external device 612 is generating low heat and, thus, will not interfere with the ambient temperature reading of the external device 612.
In some implementations, reliability of sensor data from the ambient temperature sensor 614 of the external device 612 is determined based at least upon the relative distance between the computing device 602 and the external device 612. For example, the closer the two devices are together, the more likely that the ambient temperature for both devices will be similar. In some implementations, the relative distance between the computing device 602 and the external device 612 is determined and used in a weighted formula for determining the impact of the sensor data of the ambient temperature sensor 614 of the external device 612 on the sensor validation process.
Detecting that the external device is in vicinity of the computing device can be performed in various ways. In some implementations, detecting the external device in vicinity of the computing device includes determining that the external device is communicatively connected to the device. In some implementations, a relative distance between the external device and the computing device is determined. Methods for determining the relative distance between the two devices can include but are not limited to the use of audio data, camera data, and wireless communication technologies. The relative distance between the two devices can be used for various purposes. In some implementations, detecting that the external device is in vicinity of the computing device includes determining that the relative distance between the two devices is within a predetermined threshold.
The method 700 includes, at step 704, determining an orientation of the first ambient light sensor system. The orientation of the first ambient light sensor system can be determined using various methods. Example methods include the use of a magnetometer, a gyroscope, an accelerometer, a barometer, etc. Orientation of the first ambient light sensor system can be used to determine reliability of its sensor data. For example, an orientation indicating that the first ambient light sensor system is oriented differently than the display that the user is viewing can result in different sensor readings that are not associated to the user's viewpoint.
The method 700 includes, at step 706, receiving information describing an orientation of the second ambient light sensor system and information describing sensor data of the second ambient light sensor system. Information from the external device can be received by the computing device through various methods. In some implementations, the external device is communicatively coupled to the computing device, and the information can be sent directly (e.g., through a wired or wireless connection). In other implementations, one or more devices serve as an intermediary for the transmission of information between the computing device and the external device.
The method 700 includes, at step 708, determining a relative orientation based at least upon the orientation of the first ambient light sensor system and the information describing the orientation of the second ambient light sensor system. Different relative orientations may result in different sensor data corrections. For example, similar orientations between the two devices can indicate that both light intensity (LUX) and color can be used in the correction of the sensor data of the first ambient light sensor system. Larger relative orientations can indicate that light intensity readings from the external can be unreliable.
The method 700 optionally includes, at step 710, determining the aperture blocking state of the first ambient light sensor system. Various methods can be utilized to determine aperture blocking of the sensors. In some implementations, a proximity sensor using infrared technology can be utilized to determine aperture blocking. Another method includes the use of image data from a camera to determine aperture blocking.
The method 700 includes, at step 712, performing correction of sensor data of the first ambient light sensor system based at least upon the relative orientation and the information describing the sensor data of the second ambient light sensor system. In some implementations, performing correction of the sensor data of the first ambient light sensor system includes correction a color reading of the sensor data. In some implementations, performing correction of the sensor data of the first ambient light sensor system includes correction a light intensity reading of the sensor data. For example, the method 700 can include performing correction of the light intensity reading of the sensor data upon determining that the relative orientation satisfies a predetermined criterion, such as being below a predetermined threshold. This provides improved accuracy in the sensor data correction process. For example, a relative orientation that is too large may indicate that the external device is facing in a direction too different from the computing device such that its light intensity reading is weakly or non-correlated to the sensors of the computing device.
Performing correction of the sensor data of the first ambient light sensor system can be implemented in various ways. In some implementations, the correction of the sensor data includes the use of information from the external device as complementary information to enhance the accuracy of the sensor data. In some implementations, performing correction of the sensor data of the first ambient light sensor system is based at least upon the relative distance of the external device to the computing device. The correction can be used to provide instructions to adjust the display settings of a display in accordance with the corrected sensor data. The display can be an internal display of the computing device or an external display communicatively coupled to the computing device. In some implementations, the computing device stores the information describing the orientation of the second ambient light sensor system and the information describing the sensor data of the second ambient light sensor system. The stored information can be used to perform future corrections. For example, upon determining that the current sensor readings of the second ambient light sensor system are unreliable, the stored information can be used to perform the corrections to the sensor data of the first ambient light sensor system.
The method 800 optionally includes, at step 804, determining relative distance of the external device to the computing device. Determining the relative distance of the external device to the computing device can be performed in various ways. Example techniques include the use of audio data, camera data, and wireless communication technologies. The relative distance between the two devices can be utilized in various ways. For example, the relative distance can be used as a weighted factor to determine the reliability the ambient temperature reading of the second ambient temperature sensor system. In some implementations, a smaller relative distance indicates a higher reliability of the ambient temperature reading of the second ambient temperature sensor system as the devices are in close proximity and should be affected by ambient temperature similarly.
The method 800 includes, at step 806, receiving information describing an ambient temperature reading from the second ambient temperature sensor. Information from the external device can be received by the computing device through various methods, including those discussed above with respect to
The method 800 optionally includes, at step 808, determining that readings from the first ambient temperature sensor system are unreliable. Determining that the readings of the first ambient temperature sensor of the computing device 602 is unreliable can be performed in various ways. In some implementations, the readings are determined to be unreliable upon determining that an internal temperature of the computing device is above a predetermined threshold.
The method 800 includes, at step 810, adjusting an internal temperature threshold of a thermal control system of the computing device based at least upon the information describing the ambient temperature reading from the second ambient temperature sensor. Adjusting the internal temperature threshold of the thermal control system can be based at least upon various factors, such as the relative distance of the external device from the computing device. In some implementations, adjusting the internal temperature threshold of the thermal control system is based at least upon the information describing that the external device is in a low power usage state. The computing device can also include an internal ambient temperature sensor that can be used to adjust the internal temperature threshold of the thermal control system (e.g., based on differences between temperature readings of the internal ambient temperature sensor and the ambient temperature sensor of the external device).
In some embodiments, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.
Computing system 900 includes processing circuitry 902, volatile memory 904, and a non-volatile storage device 906. Computing system 900 may optionally include a display subsystem 908, input subsystem 910, communication subsystem 912, and/or other components not shown in
Processing circuitry typically includes one or more logic processors, which are physical devices configured to execute instructions. For example, the logic processors may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.
The logic processor may include one or more physical processors configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the processing circuitry 902 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the processing circuitry optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. For example, aspects of the computing system disclosed herein may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood. These different physical logic processors of the different machines will be understood to be collectively encompassed by processing circuitry 902.
Non-volatile storage device 906 includes one or more physical devices configured to hold instructions executable by the processing circuitry to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 906 may be transformed—e.g., to hold different data.
Non-volatile storage device 906 may include physical devices that are removable and/or built in. Non-volatile storage device 906 may include optical memory, semiconductor memory, and/or magnetic memory, or other mass storage device technology. Non-volatile storage device 906 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated that non-volatile storage device 906 is configured to hold instructions even when power is cut to the non-volatile storage device 906.
Volatile memory 904 may include physical devices that include random access memory. Volatile memory 904 is typically utilized by processing circuitry 902 to temporarily store information during processing of software instructions. It will be appreciated that volatile memory 904 typically does not continue to store instructions when power is cut to the volatile memory 904.
Aspects of processing circuitry 902, volatile memory 904, and non-volatile storage device 906 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.
The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 900 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function. Thus, a module, program, or engine may be instantiated via processing circuitry 902 executing instructions held by non-volatile storage device 906, using portions of volatile memory 904. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
When included, display subsystem 908 may be used to present a visual representation of data held by non-volatile storage device 906. The visual representation may take the form of a GUI. As the herein described methods and processes change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state of display subsystem 908 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 908 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with processing circuitry 902, volatile memory 904, and/or non-volatile storage device 906 in a shared enclosure, or such display devices may be peripheral display devices.
When included, input subsystem 910 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, camera, or microphone.
When included, communication subsystem 912 may be configured to communicatively couple various computing devices described herein with each other, and with other devices. Communication subsystem 912 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wired or wireless local- or wide-area network, broadband cellular network, etc. In some embodiments, the communication subsystem may allow computing system 900 to send and/or receive messages to and/or from other devices via a network such as the Internet.
The following paragraphs provide additional description of the subject matter of the present disclosure. One aspect provides a computing device comprising a first ambient light sensor system comprising an ambient light intensity sensor and an ambient color sensor; and processing circuitry and memory storing instructions that, during execution by the processing circuitry, causes the processing circuitry to detect the external device in vicinity of the computing device, wherein the external device comprises a second ambient light sensor system; determine an orientation of the first ambient light sensor system; receive information describing an orientation of the second ambient light sensor system and information describing sensor data of the second ambient light sensor system; determine a relative orientation based at least upon the orientation of the first ambient light sensor system and the information describing the orientation of the second ambient light sensor system; and perform correction of sensor data of the first ambient light sensor system based at least upon the relative orientation and the information describing the sensor data of the second ambient light sensor system. In this aspect, additionally or alternatively, the sensor data of the first ambient light sensor system comprises a light intensity reading and a color reading, and wherein performing correction of the sensor data of the first ambient light sensor comprises performing correction of the color reading; and upon determining that the relative orientation satisfies a predetermined criterion, performing correction of the light intensity reading. In this aspect, additionally or alternatively, detecting the external device comprises determining that the external device is communicatively connected to the device. In this aspect, additionally or alternatively, detecting the external device comprises determining a relative distance of the external device to the computing device. In this aspect, additionally or alternatively, the relative distance is determined using one or more of audio data, image data, or a wireless communication protocol. In this aspect, additionally or alternatively, performing correction of the sensor data of the first ambient light sensor system is further based at least upon the relative distance of the external device to the computing device. In this aspect, additionally or alternatively, the information describing the orientation of the second ambient light sensor system is determined using one or more of a magnetometer, a gyroscope, an accelerometer, or a barometer. In this aspect, additionally or alternatively, the computing device further comprises a display, wherein performing correction of the sensor data of the first ambient light sensor system comprises adjusting a display setting of the display. In this aspect, additionally or alternatively, the computing device is communicatively coupled to an external display, and wherein performing correction of the sensor data of the first ambient light sensor system comprises adjusting a display setting of the external display. In this aspect, additionally or alternatively, the instructions, during execution by the processing circuitry, further causes the processing circuitry to store the information describing the orientation of the second ambient light sensor system and the information describing the sensor data of the second ambient light sensor system; and perform future corrections using the stored information describing the orientation of the second ambient light sensor system and the stored information describing the sensor data of the second ambient light sensor system.
Another aspect includes a method, enacted on a computing device comprising a first ambient light sensor system, for validating sensors using an external device. The method comprises detecting the external device in vicinity of the computing device, wherein the external device comprises a second ambient light sensor system; determining an orientation of the first ambient light sensor system; receiving information describing an orientation of the second ambient light sensor system and information describing sensor data of the second ambient light sensor system; determining a relative orientation based at least upon the orientation of the first ambient light sensor system and the information describing the orientation of the second ambient light sensor system; and performing correction of sensor data of the first ambient light sensor system based at least upon the relative orientation and the information describing the sensor data of the second ambient light sensor system. In this aspect, additionally or alternatively, the sensor data of the first ambient light sensor system comprises a light intensity reading and a color reading, and wherein performing correction of the sensor data of the first ambient light sensor comprises: performing correction of the color reading; and upon determining that the relative orientation satisfies a predetermined criterion, performing correction of the light intensity reading. In this aspect, additionally or alternatively, detecting the external device comprises determining a relative distance of the external device to the computing device using one or more of audio data, image data, or a wireless communication protocol, and wherein performing correction of the sensor data of the first ambient light sensor system is further based at least upon the relative distance of the external device to the computing device. In this aspect, additionally or alternatively, the computing device is communicatively coupled to an external display, and wherein performing correction of the sensor data of the first ambient light sensor system comprises a display setting of the external display. In this aspect, additionally or alternatively, the method further comprises storing the information describing the orientation of the second ambient light sensor system and the information describing the sensor data of the second ambient light sensor system; and performing future corrections using the stored information describing the orientation of the second ambient light sensor system and the stored information describing the sensor data of the second ambient light sensor system.
Another aspect includes a computing device for validating sensors using an external device, the computing device comprising a thermal control system for controlling performance of the computing device based at least upon an internal temperature threshold; processing circuitry and memory storing instructions that, during execution by the processing circuitry, causes the processing circuitry to detect the external device in vicinity of the computing device, wherein the external device comprises an ambient temperature sensor; receive information describing an ambient temperature reading from the ambient temperature sensor of the external device; and adjust the internal temperature threshold of the thermal control system based at least upon the information describing the ambient temperature reading from the ambient temperature sensor of the external device. In this aspect, additionally or alternatively, the instructions, during execution by the processing circuitry, further causes the processing circuitry to detect a relative distance of the external device to the computing device, wherein adjusting the internal temperature threshold of the thermal control system is further based at least upon the detected relative distance of the external device from the computing device. In this aspect, additionally or alternatively, the relative distance is determined using one or more of audio data, image data, or a wireless communication protocol. In this aspect, additionally or alternatively, the instructions, during execution by the processing circuitry, further causes the processing circuitry to receive information describing that the external device is in a low power usage state, wherein adjusting the internal temperature threshold of the thermal control system is further based at least upon the information describing that the external device is in a low power usage state. In this aspect, additionally or alternatively, the computing device further comprises an internal ambient temperature sensor, and wherein adjusting the internal temperature threshold of the thermal control system is further based at least upon a temperature reading of the internal ambient temperature sensor.
It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
20160133227 | Yoon | May 2016 | A1 |
20170229059 | Bonnier | Aug 2017 | A1 |
20180040292 | Ghosh | Feb 2018 | A1 |
20180281673 | Garing | Oct 2018 | A1 |
20190164520 | Trim | May 2019 | A1 |
20230007211 | Suzuki | Jan 2023 | A1 |
Number | Date | Country |
---|---|---|
2011109188 | Jun 2011 | JP |
2015199806 | Dec 2015 | WO |