Sensores de luz ambiente
Este documento fornece recomendações para o design e o desenvolvimento de dispositivos com sensores de luz ambiente integrados. Selecionar um dispositivo de ALS (sensor de luz ambiente) adequado é fundamental.
A lista de verificação de alto nível a seguir é para desenvolvedores que integram o hardware do sensor em dispositivos. O restante deste documento descreve o processo e as informações em segundo plano em detalhes.
- Selecione uma fonte de luz de fundo adequada.
- Selecione um sensor de luz adequado.
- Selecione o posicionamento otimizado para o sensor de luz no compartimento do dispositivo.
- Execute a calibragem por modelo levando em conta todos os fatores, como revestimentos, tubo de luz, configuração do sensor, posicionamento e assim por diante. Isso deve ser executado usando medidores de luz profissionais pré-calibrados.
- Integre os sensores ao dispositivo de uma das maneiras com suporte.
- Aproveite o driver de classe do sensor HID da caixa de entrada. Conecte o dispositivo pelo transporte USB, SPI ou I2C HID.
- Teste o dispositivo completo como um instrumento de medição de luz. Use vários tipos de iluminação de teste (incandescente, fluorescente, LED) em várias intensidades e compare os valores relatados por meio da plataforma do sensor com um medidor de luz de alta qualidade. O medidor deve medir o incidente de luz na exibição do dispositivo.
- Teste o dispositivo e os drivers de terceiros com os requisitos de dispositivo do HLK (Hardware Lab Kit) do Windows e os testes relacionados. Verifique se ele é executado corretamente e passa em todos os casos de teste.
- Verifique se os OEMs, os ODMs e os IHVs participam de revisões mecânicas de design para cada revisão principal do hardware do dispositivo.
- Verifique se a implementação do sensor é otimizada mecanicamente, de forma óptica e de uma perspectiva de engenharia elétrica.
- Teste sensores de luz e brilho adaptável usando as etapas mencionadas em Casos de teste de brilho adaptável.
Integrando sensores de luz ao hardware do dispositivo
Várias coisas podem afetar muito o que pode ser feito com as informações que os sensores de luz fornecem. Essas considerações incluem o seguinte:
- O tipo de sensor, sensores de luz digital são preferenciais
- A precisão, a resolução e o campo de exibição do sensor
- O intervalo dinâmico do sensor
- Rejeição de infravermelho (IR) e uv (UV) (resposta ocular humana)
- A tecnologia de barramento com suporte (somente digital)
- A taxa de amostragem digital
- Consumo de energia
- Opções de empacotamento e posicionamento
Os seguintes fatores garantem uma consideração especial:
- Precisão e resolução: para fornecer uma experiência ideal do usuário para brilho adaptável e interface do usuário com reconhecimento de luz em aplicativos, dados precisos do sensor são necessários como entrada. Em geral, quanto mais preciso o sensor, melhor será a experiência do usuário correspondente. Uma boa meta para valores calibrados reais de ALS (sensor de luz ambiente) é uma precisão consistente de dentro de 4% das condições reais de iluminação.
- Intervalo dinâmico: o intervalo dinâmico de um sensor de luz é a proporção entre os maiores e menores valores que o sensor pode relatar e define o intervalo de ambientes de iluminação nos quais o sensor pode ser eficaz. Um sensor de luz de intervalo dinâmico baixo limita os ambientes nos quais ele pode ser usado. Os sensores de luz ambiente montados em dispositivos projetados para serem usados ao ar livre, como um telefone celular, devem dar suporte a condições de iluminação ao ar livre. A luz solar pode variar de 0 a 10.000 lux, ou mais. O intervalo dinâmico de ALS para dispositivos projetados para serem usados dentro de casa pode ser menor. A luz interna normalmente varia de 0 a 1000 lux.
- Granularidade: para garantir a melhor experiência, a ALS deve ter uma granularidade de 1 lux quando a luz ambiente estiver abaixo de 25 lux e uma granularidade de 4% da luz ambiente quando estiver acima de 25 lux. Isso permite que o algoritmo de brilho adaptável execute transições de brilho de tela suave.
Veja a seguir as condições comuns de iluminação a serem referenciadas:
Condição de iluminação | Illuminance (lux) |
---|---|
Escuro | 1 |
Muito escuro | 10 |
Interior escuro | 50 |
Esmaecido dentro de casa | 100 |
Interiores normais | 300 |
Interiores brilhantes | 700 |
Esmaecer ao ar livre (overcast) | 1,000 |
Luz solar ao ar livre | 15,000 |
Luz solar direta | 100.000 |
Tipos de sensores de luz ambiente
Os sensores de luz ambiente vêm em dois tipos fundamentais:
- Os sensores de luz analógicos são conectados a um controlador inserido com um conversor A/D (analógico-digital) e exigem firmware que possa interpretar com precisão os dados do sensor de luz e compensar várias condições e fenômenos que afetam as leituras. Alguns exemplos desses fenômenos incluem rejeição de luz de infravermelho (IR) e compensação de frequência leve. Por exemplo, as luzes fluorescentes variam em intensidade com a frequência da energia AC fornecida à luminária. Sensores analógicos normalmente são muito baratos.
- Sensores de luz digital são mais caros do que sensores analógicos, mas têm vantagens. Sensores de luz digital podem compensar automaticamente várias condições e fenômenos. Os sensores digitais também são extremamente compactos. Alguns sensores de luz digital podem fornecer medidas discretas de lux grosseiras. A granularidade das leituras em condições de pouca luz deve ser cuidadosamente levada em conta. Medidas grosseiras e discretas em condições de pouca luz podem resultar em uma experiência de brilho chocante para o usuário.
Independentemente do tipo de sensor de luz selecionado, leituras precisas devem ser feitas e expostas ao sistema.
Número de sensores de luz
Quanto mais sensores de luz ambiente estiverem disponíveis para medir uma condição de iluminação, melhor será a estimativa da illuminância real. No entanto, cada sensor de luz adiciona custo e usa espaço no dispositivo.
É importante que os fabricantes se esforcem por uma solução que forneça ao sistema a capacidade de detecção de luz ambiente mais precisa. Soluções baratas podem depender de um único sensor, mas o hardware high-end pode contar com uma matriz de sensores para fornecer a melhor medida possível. Se um OEM optar por implementar vários sensores de luz ambiente (para resolver problemas como mãos ou sombras ocultando a ALS), o OEM deverá expor um ALS lógico (consolidado) ao Windows e relatar os dados mais precisos.
Se vários sensores forem expostos ao sistema, o único sensor usado para brilho automático deverá expor a propriedade DEVPKEY_SensorData_LightLevel_AutoBrightnessPreferred . Da mesma forma, os OEMs podem decidir fundir vários sensores de luz ambiente e expor o resultado como um sensor de luz virtual, também conhecido como sensor de software puro. Se os sensores de luz física e virtual forem expostos por meio da interface do driver do dispositivo do sensor, o sensor fundido deverá expor a propriedade DEVPKEY_SensorData_LightLevel_AutoBrightnessPreferred .
Posicionamento do sensor de luz
O posicionamento correto dos sensores de luz é outro aspecto crítico do bom design do sistema. O objetivo da ALS é medir o brilho do ambiente, conforme percebido pelo usuário. O melhor local do sensor teórico seria entre os olhos do usuário. O posicionamento ideal do mundo real dos sensores de luz geralmente está no mesmo plano que o visor, voltado para o usuário. Os sensores colocados na tela têm a vantagem de detectar algum brilho que pode ocorrer na tela.
Evite colocar o sensor de luz em áreas do computador que provavelmente serão obscurecidas de fontes de luz por sombras ou mãos, dedos ou braço do usuário durante o uso normal. A figura abaixo ilustra um cenário de usuário de exemplo no qual uma fonte de luz direta está atrás do usuário. Uma sombra é convertida sobre a metade inferior da tela e a base do computador. Esse cenário sugere o posicionamento ideal do sensor de luz próximo à parte superior da tela e voltado para o usuário.
Verifique se as diferentes configurações que um dispositivo pode usar (posição do teclado no modo tablet versus modo laptop, por exemplo) não bloqueiam a abertura e não cruzam o campo de exibição do sensor.
Por fim, verifique se o campo de visão do sensor não cruza nenhuma fonte ruidosa de luz (flash da câmera, luz de fundo do teclado etc.), pois elas podem contribuir para ruídos adicionais ou leituras incorretas. Considere todas as diferentes configurações que um dispositivo pode usar ao considerar o campo de exibição que se cruza com fontes de luz barulhentas.
Lidar com dados inválidos do sensor de luz
Em determinadas condições, o campo de exibição do sensor de luz ambiente pode ser obstruído por um objeto ou pelo usuário, impossibilitando que o sensor faça uma leitura precisa. Por exemplo, essa condição pode acontecer quando a mão do usuário cobre a abertura do sensor de luz ambiente. Existem muitos outros casos.
O sensor de luz ambiente pode indicar essa situação para o sistema operacional enviando um novo exemplo de sensor com seu campo de dados PKEY_SensorData_IsValid definido como FALSE. O design de hardware adequado deve minimizar o tempo e os cenários que exigem que esse valor seja definido como FALSE, pois esse cenário impede que o sistema controle corretamente o brilho. Em um sistema ideal, os sensores de luz ambiente sempre seriam capazes de medir a luz ambiente e esse valor seria definido como TRUE.
Filtros de sensor de luz, lentes, compartimentos e calibragem
Ao projetar um dispositivo que inclua uma ALS, todo o sistema de componentes mecânicos, ópticos e elétricos relacionados à ALS precisa ser cuidadosamente considerado. O diagrama a seguir ilustra os principais componentes mecânicos que devem ser considerados e compreendidos ao integrar e calibrar o hardware do sensor de luz ambiente com o Windows.
Neste diagrama, vemos o seguinte:
- Vidro – superfície externa da tela
- Revestimento de tinta - borda preta ao redor da tela
- Blindagem de luz – evita sangramento de luz
- Tubo de luz – coleta e direciona a luz para o sensor
- Sensor de luz ambiente
- Placa-mãe
Observação
Os tubos de luz geralmente não são necessários e, em muitos casos, podem degradar o desempenho da ALS. Consulte o fabricante do sensor de luz para obter diretrizes sobre esses tipos de componentes ópticos.
Este diagrama faz referência a dois níveis de luz:
$LUX_{1}$: o nível de luz do incidente para os arredores do dispositivo na superfície do display. Esse nível é medido e relatado pelo sensor de luz ambiente por meio da plataforma do sensor.
$LUX_{2}$: o nível de luz do incidente na superfície da ALS. Esse não é o nível de luz correto a ser relatado por meio da plataforma do sensor, pois não leva em conta o fator de atenuação da óptica.
O fator atenuação corresponde à quantidade de luz bloqueada pelos vários componentes entre a superfície externa do dispositivo (normalmente vidro) e a superfície sensorial da ALS. A atenuação pode ser calculada da seguinte maneira: A = (1 - transmittance)
Importante
O sensor de luz ambiente relata a intensidade de luz ambiente que ele sente. Devido à transmissibilidade da óptica, as leituras de ALS brutas relatam valores lux atenuados e não devem ser usadas sem correção. A transmissibilidade são as características da ótica que reduzem a intensidade da luz ambiente e também rejeitam a luz infravermelha (IR). Se a ótica for pintada com tinta para aparência visível, um fator de atenuação deverá ser usado para compensar a redução correspondente na intensidade da luz ambiente.
$LUX_{2}$ deve ser sempre menor que $LUX_{1}$
A diferença entre esses dois valores lux é chamada de fator de atenuação. O fator atenuação é responsável pelo percentual total de transmissão de luz entre a superfície superior do vidro ($LUX_{1}$) e a superfície nua do sensor de luz ambiente ($LUX_{2}$). Isso é mais drástico quando uma superfície de vidro pintada é usada. O OEM, com o suporte do IHV do sensor, deve medir o fator de atenuação e corrigir para ele no hardware antes de expor o valor lux ao sistema operacional.
Observação
A transmissão é a proporção do nível de luz na superfície da ALS dividida pelo nível de luz ambiente ao redor do dispositivo.
No exemplo abaixo, suponha que a porcentagem total de transmissão de luz entre a superfície superior do vidro e a superfície nua do sensor de luz ambiente seja de 5%. Para dar suporte ao intervalo de lux necessário, o sensor de luz selecionado precisa dar suporte ao seguinte intervalo no sensor nu:
- $Minimum = 1 lux × 0,05 = 0,05 lux$
- $Maximum = 100.000 lux × 0,05 = 5000 lux$
No firmware ou no driver, dependendo se uma solução de ALS de hardware ou software está sendo implementada, a seguinte conversão é usada para considerar o fator de atenuação:
$Output LUX = LUX_{1} = LUX_{2} / (total % _{light _transmittance})$
Para uma leitura de sensor de luz ambiente nu de 100 lux, o seguinte é o lux de saída resultante:
$Output LUX = 100 / 0,05 = 2000 LUX$
Todo o sistema também deve ser calibrado com equipamentos de medição de luz adequados. Este exemplo demonstra apenas as considerações gerais sobre a seleção de parte e a calibragem inicial antes da calibragem formal. A calibragem de fábrica por unidade é altamente incentivada para a melhor e mais consistente experiência do usuário. Os sensores geralmente têm intervalos de precisão de +/- 20% de unidade em unidade, que podem ser contabilizados por meio da calibragem de fábrica por unidade.
Além disso, o campo de exibição é um fator importante a ser considerado no posicionamento e no design do sensor de luz ambiente. Quanto menor o campo de exibição, pior será o desempenho do sensor. Como regra geral, um campo de exibição de meio ângulo de 55 graus (total de 110 graus) é um destino justo. Quanto maior o campo de exibição, menos propenso o sensor será a captação de uma única fonte de luz de ponto ou uma área de sombra que pode não refletir com precisão o verdadeiro ambiente de luz.
Conectividade do sensor com HID e SPB
Os diagramas a seguir ilustram como integrar o ALS usando o protocolo HID e com um driver específico de IHV para SPB.
Dica
O protocolo HID é o caminho recomendado para integrar a ALS, fazendo uso dos drivers HID da caixa de entrada no Windows.
O hardware do sensor HID, o driver e a pilha de software são ilustrados abaixo:
Caixas de cima para baixo: Aplicativo sensor, API do sensor, extensão de classe de sensor, driver HID no modo de usuário, driver HID-I2C, controlador I2C, interface HID no firmware e hardware ALS
O hardware do sensor SPB, o driver e a pilha de software são ilustrados abaixo:
Caixas de cima para baixo: Aplicativo sensor, API do Sensor, Extensão de Classe de Sensor, Driver de Sensor do modo de usuário UMDF, Interface SPB, Driver do Controlador I2C e Sensor ALS
Para obter mais informações sobre como integrar o hardware do sensor por meio do protocolo HID, incluindo HID e I2C, consulte Driver de classe HID do sensor.
Para obter mais informações sobre como integrar sensores por meio de barramentos SPB, consulte o código-fonte do driver de exemplo de combinação do sensor no GitHub.
Calibragem do sensor de luz ambiente
Calibragem profissional (recomendado)
A calibragem da ALS no sistema integrado usando sensores profissionais e pré-calibrados em um ambiente de iluminação controlada é altamente recomendada. Esses sensores pré-calibrados, muitas vezes chamados de medidores de luz, estão disponíveis para compra de fornecedores de equipamentos eletrônicos e varejistas online.
Outras técnicas de calibragem
Detalhes sobre outras ferramentas de monitoramento e calibragem de ALS estão disponíveis por meio do artigo Ferramenta de Luz ambiente da Microsoft .
Validação do sensor de luz
Como primeira etapa, você sempre deve executar os testes do Kit de Laboratório de Hardware de Sensores (ou seja, Entrada) para validar o sensor de luz ambiente. Verifique se todos os requisitos mínimos de hardware e os testes do Programa de Compatibilidade de Hardware do Windows são aprovados.
Para validar o funcionamento adequado do sensor de luz ambiente:
- Verifique se o DisplayEnhancementService foi iniciado.
- Habilite o brilho automático e defina o controle deslizante como 50%.
- Valide se o brilho da exibição muda quando a iluminação é alterada.
- Use um escurecimento leve para aumentar e reduzir lentamente a luz ambiental e garantir que os valores lux estejam aumentando e reduzindo suavemente . Alterações de luz grosseiras e discretas resultam em resposta de brilho de tela sub-ideal e devem ser evitadas.
- Use um medidor lux profissional para garantir que as leituras de ALS sejam precisas. No mínimo, verifique os seguintes pontos: 0, 10, 100, 500 e 1000 lux.
- Em sistemas que personalizam apenas a curva ALR, teste o comportamento com os usuários para validar os dados ALR que atendem às expectativas do usuário.
Requisitos mínimos de hardware e o Programa de Compatibilidade de Hardware do Windows
Requisitos mínimos de hardware e requisitos do Programa de Compatibilidade de Hardware do Windows são fundamentais para criar experiências de sensor compatíveis com o Windows. Embora os programas sejam opcionais, recomendamos que os produtos de áudio atendam aos dois conjuntos de requisitos para garantir a qualidade básica do áudio.
Para obter mais detalhes, consulte o Programa de Compatibilidade de Hardware do Windows.
As seções a seguir abrangem recomendações para sensores. Para garantir experiências de alta qualidade, todos os dispositivos devem ser testados em relação a esses requisitos de desempenho.
Área | Tipo de orientação | Quais dispositivos devem ser testados |
---|---|---|
Device.Input.Sensor.AmbientLightSensor | Fornece diretrizes de nível de componente para funcionar de forma ideal com o sistema operacional host em termos de interfaces de software, protocolos de comunicação e formatos de dados. | Todos os sensores de luz ambiente integrados devem ser testados em relação a esses requisitos de desempenho. |
System.Client.Sensor.AmbientLightSensor | Fornece diretrizes no nível do sistema para funcionar de forma ideal com o sistema operacional host em termos de interfaces de software, protocolos de comunicação e formatos de dados. | Todos os sensores de luz ambiente integrados devem ser testados em relação a esses requisitos de desempenho. |
Curva de resposta ambiente
Se um sensor de luz ambiente relatar uma curva de resposta de luz ambiente, ele deverá seguir:
Campo de Dados | Tipo de Dados | Definição |
---|---|---|
PKEY_LightSensor_ResponseCurve | VT_VECTOR | VT_UI4 |
A curva de resposta do sensor deve ter pelo menos dois pontos e o gradiente deve ser positivo ou plano. Para obter mais informações, consulte a curva de resposta.
Com capacidade para cores
Sensores de luz ambiente não são necessários para detectar cor. Se um sensor de luz ambiente der suporte à cor, as propriedades, os limites e os campos de dados relacionados à cor deverão ser relatados. Um sensor de luz com capacidade para cores deve relatar a seguinte propriedade de enumeração:
Campo de Dados | Tipo de Dados | Definição |
---|---|---|
DEVPKEY_LightSensor_ColorCapable | VT_BOOL | Especifica se esse sensor de luz é compatível com cores. |
Um sensor de luz capaz de cores deve relatar uma das seguintes combinações de campos de dados:
- Lux, kelvins, chromaticity x, chromaticity y
- Lux, chromaticity x, chromaticity y
Para obter mais informações, consulte os campos de dados do sensor de luz.
Para os campos de dados de cor que o sensor de luz relata, também é necessário ter suporte para limites. Um exemplo deve ser relatado quando pelo menos um limite é atingido. Para obter mais informações, consulte os limites do sensor de luz.
Propriedades do campo de dados
Os sensores de luz ambiente devem relatar as propriedades necessárias do campo de dados. Para obter mais informações, consulte campos de dados do sensor de luz.
Tipos de dados
Sensores de luz ambiente são necessários para relatar dados leves. Para obter mais informações, consulte campos de dados do sensor de luz.
Intervalo mínimo de relatório
Sensores de luz ambiente sem cor no Windows são necessários para dar suporte a um intervalo de relatório de 250 milissegundos ou menos. Sensores de luz ambiente compatíveis com cores no Windows são necessários para dar suporte a um intervalo de relatório de 1000 milissegundos ou menos.
Limites
Sensores de luz são necessários para dar suporte a limites no lux. Se houver suporte para limites absolutos, o percentual e o limite lux absoluto deverão ser atendidos para que um exemplo de dados seja relatado.
Suponha que o limite absoluto seja 1 lux e o limite percentual seja 25%:
Último exemplo | Próximo exemplo | Result |
---|---|---|
4 lux | 3 lux | A próxima amostra será relatada, pois a alteração é maior ou igual a 1 lux da última amostra relatada e é maior ou igual a 25% da última amostra relatada. |
1 lux | 0,5 lux | A próxima amostra não seria relatada, pois a alteração é menor que 1 lux do último exemplo relatado. |
100 lux | 90 lux | A próxima amostra não seria relatada, pois a alteração é inferior a 25% da última amostra relatada. |
Para obter mais informações, confira Limites do sensor de luz
Brilho automático preferido
Se um sensor de luz ambiente for destinado a ser usado com o recurso de brilho automático, a seguinte propriedade de enumeração deverá ser relatada:
Tipo de Dados | Definição | |
---|---|---|
DEVPKEY_LightSensor_AutoBrightnessPreferred | VT_BOOL | Especifica se esse sensor de luz deve ser o sensor de luz preferencial usado para o serviço de brilho automático do Windows. |
Deve haver apenas um sensor de luz ambiente relatando essa propriedade em um sistema.
Calibragem de cores
Sensores de luz ambiente não são necessários para dar suporte à cor. Se um sensor de luz ambiente der suporte à cor, será necessário calibrar corretamente.
Enquanto uma fonte de luz é direcionada diretamente para o sensor:
- O lux ambiente detectado está dentro de 10% ou 1 lux da luz de entrada real
- A cromática detectada x e y estão dentro de 0,025 da luz de entrada real
Propriedades de enumeração
Um sensor de luz ambiente deve relatar DEVPKEY_Sensor_ConnectionType mesmo que essa não seja uma propriedade de enumeração necessária para alguns outros sensores
É válido
Sensores de luz ambiente não são necessários para relatar quando amostras de sensor de luz são válidas ou não. Se um sensor de luz ambiente der suporte a isso, o seguinte campo de dados deverá ser relatado:
Campo de Dados | Tipo de Dados | Definição |
---|---|---|
PKEY_SensorData_IsValid | VT_BOOL | Indica se o exemplo de dados atual é válido. |
Se o valor PKEY_SensorData_IsValid for alterado, um exemplo deverá ser relatado independentemente de se os limites tiverem sido atingidos.
Suponha que o limite de lux seja 1 lux:
Último exemplo | Próximo exemplo | Result |
---|---|---|
100 lux | 100 lux, mas o sensor agora está bloqueado (a PKEY_SensorData_IsValid da amostra anterior era verdadeira) | O exemplo atual seria relatado com 100 lux e PKEY_SensorData_IsValid definido como false. |
100 lux e foi bloqueado (a PKEY_SensorData_IsValid da amostra anterior era falsa) | 100000 lux e o sensor ainda está bloqueado (PKEY_SensorData_IsValid é falso) | Nenhum exemplo é relatado. |
0 lux e sensor foram bloqueados (o PKEY_SensorData_IsValid da amostra anterior era falso) | 0 lux, mas o sensor agora está desbloqueado (PKEY_SensorData_IsValid é verdadeiro) | O exemplo atual seria relatado como 0 lux, mas com PKEY_SensorData_IsValid definido como true. |
Calibragem leve
O serviço de brilho automático no Windows precisa de sensores de luz para relatar uma medida precisa do nível de luz no ambiente. Quando a fonte de luz é direcionada diretamente a um sensor de luz que não dá suporte à cor, o nível de luz relatado é necessário estar dentro de 4%, ou pelo menos 1 lux do nível de luz de entrada real
Intervalo de luz
O serviço de brilho automático no Windows precisa ser capaz de detectar um intervalo razoável de níveis de luz de 1 a 10.000 lux. Se o intervalo for menor do que isso, o brilho automático ajustado poderá não ser capaz de corresponder ao brilho real do ambiente.