Датчики внешнего освещения

В этом документе приведены рекомендации по проектированию и разработке устройств со встроенными датчиками внешнего освещения. Выбор подходящего устройства датчика внешнего освещения (ALS) имеет решающее значение.

Ниже приведен общий контрольный список для разработчиков, которые интегрируют оборудование датчиков в устройства. Остальная часть этого документа подробно описывает процесс и общие сведения.

  • Выберите подходящий источник подсветки.
  • Выберите подходящий датчик освещения.
  • Выберите оптимизированное расположение для датчика освещения в корпусе устройства.
  • Выполняйте калибровку для каждой модели с учетом всех факторов, таких как покрытия, световая труба, конфигурация датчика, размещение и т. д. Это должно быть выполнено с использованием профессиональных предварительно откалиброванных световых счетчиков.
  • Интегрируйте датчики на устройстве одним из поддерживаемых способов.
  • Используйте драйвер класса датчика HID для папки "Входящие". Подключите устройство через транспорт USB, SPI или I2C HID.
  • Протестируйте готовое устройство в качестве средства измерения освещения. Используйте различные типы тестового освещения (накаленное, флуоресцентное, светодиодное) с различной интенсивностью и сравните значения, сообщаемые через платформу датчика, с высококачественным индикатором освещения. Счетчик должен измерять световой инцидент на дисплее устройства.
  • Протестируйте устройства и сторонние драйверы с помощью требований к устройству Windows Hardware Lab Kit (HLK) и связанных тестов. Убедитесь, что он работает правильно и проходит все тестовые случаи.
  • Убедитесь, что изготовители оборудования, ODM и IHV участвуют в проверках механических конструкций для каждой основной редакции оборудования устройства.
  • Убедитесь, что реализация датчика оптимизирована механически, оптически и с точки зрения электротехники.
  • Проверьте датчики освещения и адаптивную яркость с помощью шагов, описанных в примерах тестирования адаптивной яркости.

Интеграция датчиков освещения с оборудованием устройства

Некоторые вещи могут значительно повлиять на то, что можно сделать с информацией, предоставляемой датчиками света. Эти рекомендации включают в себя следующее:

  • Тип датчика, цифровые датчики света являются предпочтительными
  • Точность, разрешение и поле зрения датчика
  • Динамический диапазон датчика
  • Отторжение инфракрасного (IR) и uvt (UV) (реакция глаз человека)
  • Поддерживаемая технология шины (только цифровая)
  • Частота цифровой выборки
  • Энергопотребление
  • Параметры упаковки и размещения

Следующие факторы требуют особого внимания:

  • Точность и разрешение. Чтобы обеспечить оптимальное взаимодействие с пользователем для адаптивной яркости и освещения пользовательского интерфейса в приложениях, в качестве входных данных требуются точные данные датчиков. Как правило, чем точнее датчик, тем лучше соответствующий пользовательский интерфейс. Хорошей целью для фактических откалиброванных значений датчика окружающего света (ALS) является постоянная точность в пределах 4 процентов от фактических условий освещения.
  • Динамический диапазон. Динамический диапазон датчика освещения — это соотношение между наибольшими и наименьшими значениями, которые может сообщить датчик, и определяет диапазон сред освещения, в которых датчик может быть эффективным. Датчик освещения с низким динамическим диапазоном ограничивает среды, в которых его можно использовать. Датчики внешнего света, установленные на устройствах, предназначенных для использования на открытом воздухе, таких как мобильный телефон, должны поддерживать условия наружного освещения. Солнечный свет может варьироваться от 0 до 10 000 люкс или более. Динамический диапазон ALS для устройств, предназначенных для использования в помещении, может быть меньше. Освещение в помещении обычно колеблется от 0 до 1000 люкс.
  • Гранулярность. Чтобы обеспечить наилучшее взаимодействие, ALS должна иметь гранулярность 1 люкс, когда внешний свет ниже 25 люкс, и гранулярность 4% от внешнего света, когда она выше 25 люкс. Это позволяет алгоритму адаптивной яркости выполнять плавные переходы яркости экрана.

Ниже приведены распространенные условия освещения, на которые следует ссылаться.

Состояние освещения Иллюминация (люкс)
Тон черный 1
Очень темно 10
Темные помещения 50
Тусклый в помещении 100
Обычный в помещении 300
Яркий в помещении 700
Тусклый на открытом воздухе (пасмурно) 1000
Солнечный свет на открытом воздухе 15 000
Прямой солнечный свет 100 000

Типы датчиков внешнего освещения

Датчики внешнего освещения бывают двух основных типов:

  • Аналоговые датчики освещения подключаются к встроенному контроллеру с помощью аналогово-цифрового преобразователя и требуют встроенного ПО, которое может точно интерпретировать данные датчика света и компенсировать различные условия и явления, влияющие на показания. Некоторые примеры этих явлений включают отторжение инфракрасного света (IR) и компенсацию частоты света. Например, люминесцентные огни различаются по интенсивности в зависимости от частоты питания переменного тока, подаваемой в светильник. Аналоговые датчики, как правило, очень недорого.
  • Цифровые датчики освещения стоят дороже аналоговых датчиков, но имеют преимущества. Цифровые датчики освещения могут автоматически компенсировать различные условия и явления. Цифровые датчики также очень компактны. Некоторые цифровые датчики освещения могут обеспечить грубые дискретные измерения люкса. Необходимо тщательно учитывать степень детализации показаний в условиях низкой освещенности. Грубые, сдержанные измерения в условиях низкой освещенности могут привести к резкому снижению яркости для пользователя.

Независимо от того, какой тип датчика освещения выбран, должны приниматься точные показания и предоставляться системе.

Количество датчиков освещения

Чем больше датчиков внешнего света доступно для измерения условий освещения, тем лучше оценка фактической освещенности. Однако каждый датчик освещения увеличивает затраты и использует пространство на устройстве.

Важно, чтобы производители стремились к решению, которое предоставляет системе наиболее точные возможности датчика окружающего света. Недорогие решения могут полагаться на один датчик, но высокопроизводительное оборудование может полагаться на массив датчиков для обеспечения наилучшего измерения. Если изготовитель оборудования решает реализовать несколько датчиков внешнего освещения (для решения таких проблем, как руки или тени, заслоняющие ALS), изготовитель оборудования должен предоставить windows один логический (консолидированный) ALS и сообщить о наиболее точных данных.

Если системе доступны несколько датчиков, один датчик, используемый для автоматической яркости, должен предоставлять свойство DEVPKEY_SensorData_LightLevel_AutoBrightnessPreferred . Аналогичным образом изготовители оборудования могут решить использовать несколько датчиков внешнего освещения и предоставить результат в виде виртуального датчика освещения, также известного как чистый программный датчик. Если физические и виртуальные датчики освещения предоставляются через интерфейс драйвера устройства датчика, слитый датчик должен предоставлять свойство DEVPKEY_SensorData_LightLevel_AutoBrightnessPreferred .

Размещение датчика освещения

Правильное размещение датчиков освещения — еще один важный аспект хорошего проектирования системы. Цель ALS заключается в измерении яркости среды, воспринимаемой пользователем. Лучшим теоретическим расположением датчика было бы между глазами пользователя. Реальное оптимальное размещение датчиков освещения обычно находится в той же плоскости, что и дисплей, перед пользователем. Датчики, размещенные на дисплее, имеют преимущество обнаружения некоторых бликов, которые могут возникнуть на экране.

Избегайте размещения датчика света в областях компьютера, которые могут быть скрыты от источников света тенями или руками пользователя, пальцами или рукой во время обычного использования. На рисунке ниже показан пример сценария пользователя, в котором прямой источник света находится позади пользователя. Тень отбрасывается на нижнюю половину экрана и основание компьютера. Этот сценарий предполагает оптимальное размещение датчика освещения в верхней части экрана и лицом к пользователю.

Схема, показывающая оптимальное размещение датчика освещения в верхней половине экрана, чтобы избежать тени пользователя.

Убедитесь, что различные конфигурации устройства (например, положение клавиатуры в режиме планшета и ноутбука) не блокируют диафрагму и не пересекаются с полем зрения датчика.

Наконец, убедитесь, что поле зрения датчика не пересекается с каким-либо шумным источником света (вспышка камеры, подсветка клавиатуры и т. д.), так как это может способствовать дополнительному шуму или плохим показаниям. При рассмотрении поля зрения, пересекающегося с шумными источниками света, обязательно учитывайте все различные конфигурации, которые могут быть доступны устройству.

Работа с недопустимыми данными датчика освещения

При определенных условиях поле зрения датчика окружающего освещения может быть затруднено объектом или пользователем, что делает невозможным для датчика получить точные показания. Например, такое состояние может произойти, когда рука пользователя закрывает диафрагму датчика внешнего освещения. Существует много других случаев.

Датчик внешнего освещения может указать на эту ситуацию в операционной системе, отправив новый образец датчика с полем данных PKEY_SensorData_IsValid значение FALSE. Правильная конструкция оборудования должна свести к минимуму время и сценарии, в которых для этого значения должно быть задано значение FALSE, так как такой сценарий не позволяет системе правильно контролировать яркость. В идеальной системе датчики внешнего освещения всегда смогут измерять внешний свет, и это значение будет иметь значение TRUE.

Фильтры, линзы, корпуса и калибровка датчика освещения

При проектировании устройства, включающего ALS, необходимо тщательно рассмотреть всю систему механических, оптических и электрических компонентов, связанных с ALS. На следующей схеме показаны ключевые механические компоненты, которые необходимо учитывать и понимать при интеграции и калибровке оборудования датчика окружающего освещения с Windows.

Схема, иллюстрирующая компоненты датчика внешнего освещения.

На этой схеме мы видим следующее:

  • Стекло — внешняя поверхность экрана
  • Чернилное покрытие — черная граница вокруг экрана
  • Световая экранирование — предотвращает свет кровоточить
  • Световая труба — собирает и направляет свет на датчик.
  • Датчик освещения
  • Motherboard (Системная плата)

Примечание

Легкие трубы, как правило, не требуются, и во многих случаях может снизить производительность ALS. Обратитесь к производителю датчика освещения для получения рекомендаций относительно этих видов оптических компонентов.

Эта схема ссылается на два уровня освещения:

  1. $LUX_{1}$: уровень освещения инцидента для окружения устройства на поверхности дисплея. Этот уровень измеряется и сообщается датчиком внешнего освещения через платформу датчика.

  2. $LUX_{2}$: уровень освещенности инцидента на поверхности ALS. Это неправильный уровень освещения для отчета через платформу датчика, так как он не учитывает коэффициент затухания оптики.

Коэффициент затухания соответствует тому, сколько света блокируется различными компонентами между внешней поверхностью устройства (обычно стеклом) и поверхностью датчика ALS. Затухание можно вычислить следующим образом: A = (1 - transmittance)

Важно!

Датчик внешнего света сообщает об интенсивности окружающего света, которую он чувствует. Из-за передачи оптики, необработанные показания ALS сообщают о затухших значениях люкс и не должны использоваться без коррекции. Передачиваемость — это характеристики оптики, которые снижают интенсивность окружающего света, а также отклоняют инфракрасный (IR) свет. Если оптика окрашена чернилами для видимого вида, необходимо использовать коэффициент затухания, чтобы компенсировать соответствующее снижение интенсивности окружающего света.

$LUX_{2}$ всегда должен быть ниже $LUX_{1}$

Разница между этими двумя значениями люкс называется коэффициентом затухания. Коэффициент затухания учитывает общий процент пропускания света между верхней поверхностью стекла ($LUX_{1}$) и голой поверхностью датчика внешнего освещения ($LUX_{2}$). Это наиболее резко, когда используется окрашенная стеклянная поверхность. Изготовитель оборудования, с поддержкой датчика IHV, должен измерить коэффициент затухания и исправить его в оборудовании, прежде чем предоставлять значение люкс операционной системе.

Примечание

Коэффициент передачи — это соотношение уровня освещения на поверхности ALS на уровень окружающего освещения, окружающего устройство.

В приведенном ниже примере предположим, что общий процент пропускания света между верхней поверхностью стекла и голой поверхностью датчика внешнего освещения составляет 5 %. Для поддержки требуемого диапазона люкс выбранный датчик освещения должен поддерживать следующий диапазон на датчике без оси:

  • $Minimum = 1 люкс × 0,05 = 0,05 люкс$
  • $Maximum = 100 000 люкс × 0,05 = 5000 люкс$

В встроенном ПО или драйвере в зависимости от того, реализуется ли аппаратное или программное решение ALS, для учета коэффициента затухания используется следующее преобразование:

$Output LUX = LUX_{1} = LUX_{2} / (всего % _{light _transmittance})$

Для датчика голого внешнего освещения, считывающего 100 люкс, результатом является выходной люкс:

$Output ЛЮКС = 100 / 0,05 = 2000 ЛЮКС$

Вся система также должна быть откалибрована с помощью соответствующего оборудования для измерения освещения. В этом примере показаны только общие рекомендации по выбору деталей и начальной калибровке до формальной калибровки. Настоятельно рекомендуется использовать калибровку по единицам для оптимального и наиболее согласованного взаимодействия с пользователем. Датчики часто имеют диапазоны точности +/- 20 % от единицы к единицам, которые можно учитывать с помощью калибровки для каждой единицы.

Кроме того, поле зрения является важным фактором, который следует учитывать при размещении и проектировании датчика внешнего освещения. Чем меньше поле зрения, тем хуже производительность датчика. Как правило, поле обзора 55 градусов (110 градусов) является справедливой целью. Чем шире поле зрения, тем менее склонны датчик к выбору одного точечного источника света или области тени, которая может не точно отражать истинную световую среду.

Подключение датчика с помощью HID и SPB

На следующих схемах показано, как интегрировать ALS с помощью протокола HID и с драйвером IHV для SPB.

Совет

Протокол HID — это рекомендуемый путь для интеграции ALS с использованием драйверов HID для папки "Входящие" в Windows.

Оборудование, драйвер и программный стек датчика HID показан ниже:

Схема, иллюстрирующая оборудование, драйвер и программный стек датчика HID.

Окна сверху вниз: приложение датчика, API датчика, расширение класса датчика, драйвер HID в пользовательском режиме, драйвер HID-I2C, контроллер I2C, интерфейс HID во встроенном ПО и оборудование ALS

Оборудование, драйвер и стек программного обеспечения датчика SPB показаны ниже:

Схема, иллюстрирующая стек SPB датчика.

Поля сверху вниз: Приложение датчика, API датчика, расширение класса датчика, драйвер датчика пользовательского режима UMDF, интерфейс SPB, драйвер контроллера I2C и датчик ALS

Дополнительные сведения об интеграции оборудования датчика с помощью протокола HID, включая HID и I2C, см. в разделе Драйвер класса SENSOR HID.

Дополнительные сведения об интеграции датчиков через шины SPB см. в исходном коде примера драйвера датчика на сайте GitHub.

Калибровка датчика внешнего освещения

Настоятельно рекомендуется выполнять калибровку ALS в интегрированной системе с помощью профессиональных предварительно откалиброванных датчиков в среде контролируемого освещения. Эти предварительно откалиброванные датчики, часто называемые светометрами, доступны для покупки у поставщиков электронного оборудования и интернет-магазинов.

Другие методы калибровки

Дополнительные сведения о других средствах мониторинга и калибровки ALS см. в статье Microsoft Ambient Light Tool .

Проверка датчика освещения

В качестве первого шага всегда следует выполнять тесты комплекта аппаратной лаборатории датчиков (т. е. входных данных), чтобы проверить датчик внешнего освещения. Убедитесь, что все минимальные требования к оборудованию и тесты программы совместимости оборудования Windows пройдены.

Чтобы проверить правильность работы датчика внешнего освещения, выполните следующие действия.

  • Убедитесь, что displayEnhancementService запущен.
  • Включите автоматическую яркость и установите для ползунка значение 50 %.
  • Проверьте, меняется ли яркость дисплея при изменении освещения.
  • Используйте светлый тусклый, чтобы медленно увеличить и вниз экологический свет и обеспечить, чтобы значения люкс плавно наращиваются вверх и вниз. Грубые и дискретные изменения освещения приводят к неоптимальной яркости экрана, и этого следует избегать.
  • Используйте профессиональный счетчик люкс, чтобы обеспечить точность показаний ALS. Проверьте как минимум следующие моменты: 0, 10, 100, 500 и 1000 люкс.
  • В системах, которые настраивали только кривую ALR, проверьте поведение пользователей, чтобы убедиться, что данные ALR соответствуют ожиданиям пользователей.

Минимальные требования к оборудованию и программа совместимости оборудования Windows

Минимальные требования к оборудованию и требования к программе совместимости оборудования Windows являются основными для создания совместимых с Windows датчиков. Хотя программы являются необязательными, рекомендуется, чтобы звуковые продукты соответствовали обоим наборам требований, чтобы обеспечить базовое качество звука.

Дополнительные сведения см. в статье Программа совместимости оборудования Windows.

В следующих разделах рассматриваются рекомендации по датчикам. Чтобы обеспечить высокое качество работы, все устройства должны быть протестированы на соответствие этим требованиям к производительности.

Область Тип руководства Какие устройства следует тестировать
Device.Input.Sensor.AmbientLightSensor Предоставляет рекомендации на уровне компонентов для оптимальной работы с ОС узла с точки зрения программных интерфейсов, протоколов связи и форматов данных. Все встроенные датчики внешнего освещения должны быть протестированы на соответствие этим требованиям к производительности.
System.Client.Sensor.AmbientLightSensor Предоставляет рекомендации на уровне системы для оптимальной работы с ОС узла с точки зрения программных интерфейсов, протоколов связи и форматов данных. Все встроенные датчики внешнего освещения должны быть протестированы на соответствие этим требованиям к производительности.

Кривая внешнего отклика

Если датчик внешнего освещения сообщает кривую отклика окружающего света, она должна быть следующей:

Поле данных Тип данных Определение
PKEY_LightSensor_ResponseCurve VT_VECTOR VT_UI4

Кривая отклика датчика должна иметь по крайней мере две точки, а градиент должен быть положительным или плоским. Дополнительные сведения см. в разделе Кривая ответа.

Цвет с поддержкой

Датчики внешнего освещения не требуются для обнаружения цвета. Если датчик внешнего освещения поддерживает цвет, необходимо сообщить о свойствах, пороговых значениях и полях данных, связанных с цветом. Датчик освещения, поддерживающий цвет, должен сообщать следующее свойство перечисления:

Поле данных Тип данных Определение
DEVPKEY_LightSensor_ColorCapable VT_BOOL. Указывает, поддерживает ли этот датчик света цвет.

Датчик освещения с поддержкой цвета должен сообщать об одном из следующих сочетаний полей данных:

  • Lux, kelvins, chromaticity x, chromaticity y
  • Lux, chromaticity x, chromaticity y

Дополнительные сведения см. в полях данных датчика света.

Для полей цветовых данных, которые сообщает датчик света, также должны поддерживаться пороговые значения. Образец должен быть передан при достижении хотя бы одного порогового значения. Дополнительные сведения см. в разделе Пороговые значения датчика света.

Свойства поля данных

Датчики внешнего освещения должны сообщать о требуемых свойствах поля данных. Дополнительные сведения см. в полях данных датчика света.

Типы данных

Датчики внешнего освещения необходимы для передачи данных о освещении. Дополнительные сведения см. в разделе Поля данных датчика света.

Минимальный интервал отчета

Датчики внешнего света, не поддерживающие цвет, в Windows должны поддерживать интервал отчета не более 250 миллисекундах. Датчики внешнего освещения с поддержкой цвета в Windows должны поддерживать интервал отчета в 1000 миллисекундах или меньше.

Пороговые значения

Датчики освещения необходимы для поддержки пороговых значений на люкс. Если поддерживаются абсолютные пороговые значения, для передачи выборки данных должны быть выполнены как процентные, так и абсолютные пороговые значения.

Предположим, что абсолютный порог равен 1 люксу, а пороговое значение процента — 25 %:

Последний пример Следующий пример Результат
4 люкса 3 люкса Следующая выборка будет получена, так как изменение больше или равно 1 люкс от последней сообщаемой выборки и больше или равно 25 % от последней сообщаемой выборки.
1 люкс 0,5 люкс Следующая выборка не будет получена, так как изменение меньше 1 люкса от последней сообщаемой выборки.
100 люкс 90 люкс Следующая выборка не будет передана, так как изменение составляет менее 25 % от последней переданной выборки.

Дополнительные сведения см. в разделе Пороговые значения датчика света.

Автоматическая яркость предпочтительна

Если датчик внешнего освещения предназначен для использования с функцией автоматической яркости, необходимо сообщить следующее свойство перечисления:

Тип данных Определение
DEVPKEY_LightSensor_AutoBrightnessPreferred VT_BOOL. Указывает, должен ли этот датчик освещения быть предпочтительным датчиком освещения, используемым для службы автоматической яркости Windows.

В системе должен быть только один датчик внешнего света, сообщающий об этом свойстве.

Калибровка цвета

Датчики внешнего освещения не требуются для поддержки цвета. Если датчик внешнего освещения поддерживает цвет, его необходимо правильно откалибровать.

В то время как источник света направлен непосредственно на датчик:

  • Обнаруженная окружающая люкс находится в пределах 10 % или 1 люкса от фактического входящего света
  • Обнаруженная цветность x и y находится в пределах 0,025 от фактического входящего света.

Свойства перечисления

Датчик внешнего освещения должен сообщать о DEVPKEY_Sensor_ConnectionType даже если это не обязательное свойство перечисления для некоторых других датчиков

Является допустимым

Датчики окружающего освещения не обязаны сообщать о допустимости образцов датчика освещения. Если датчик внешнего освещения поддерживает эту функцию, необходимо сообщить следующее поле данных:

Поле данных Тип данных Определение
PKEY_SensorData_IsValid VT_BOOL. Указывает, допустима ли текущая выборка данных.

Если значение PKEY_SensorData_IsValid изменяется, выборка должна быть передана независимо от того, были ли выполнены пороговые значения.

Предположим, что порог люкс равен 1 люксу:

Последний пример Следующий пример Результат
100 люкс 100 люкс, но датчик теперь заблокирован (в предыдущем примере PKEY_SensorData_IsValid было верно) В текущей выборке будет указано значение 100 люкс, а PKEY_SensorData_IsValid значение false.
100 люкс и был заблокирован (в предыдущем примере PKEY_SensorData_IsValid было false) 100000 люкс и датчик по-прежнему заблокирован (PKEY_SensorData_IsValid false) Выборка не сообщается.
0 люкс и датчик был заблокирован (в предыдущем примере PKEY_SensorData_IsValid было false) 0 люкс, но датчик теперь разблокирован (PKEY_SensorData_IsValid верно) Текущая выборка будет считаться 0 lux, но с PKEY_SensorData_IsValid значение true.

Калибровка освещения

Службе автоматической яркости в Windows требуется, чтобы датчики освещения сообщали о точном измерении уровня освещения в среде. Если источник света направлен непосредственно на датчик света, который не поддерживает цвет, сообщаемая степень освещения должна быть в пределах 4 %, или по крайней мере 1 люкс от фактического уровня входящего света

Диапазон освещения

Служба автоматической яркости в Windows должна иметь возможность обнаруживать разумный диапазон уровней освещения от 1 до 10 000 люкс. Если диапазон меньше этого, то скорректированная автоматическая яркость может не соответствовать фактической яркости среды.

См. также раздел