SensoresSensors

Os sensores permitem ao aplicativo identificar a relação entre um dispositivo e o mundo físico ao redor dele.Sensors let your app know the relationship between a device and the physical world around it. Os sensores podem informar ao aplicativo a direção, a orientação e o movimento do dispositivo.Sensors can tell your app the direction, orientation, and movement of the device. Esses sensores podem ajudar a melhorar a utilidade e a interatividade de jogos, aplicativos de realidade aumentada e aplicativos utilitários, fornecendo uma forma exclusiva de entrada – por exemplo, uso do movimento do dispositivo para organizar os caracteres na tela ou para simular que o usuário está em uma cabine e usando o dispositivo como o volante.These sensors can help make your game, augmented reality app, or utility app more useful and interactive by providing a unique form of input, such as using the motion of the device to arrange the characters on the screen or to simulate being in a cockpit and using the device as the steering wheel.

Como regra geral, decida desde o princípio se o seu aplicativo irá depender exclusivamente dos sensores ou se os sensores apenas oferecerão um mecanismo de controle adicional ao aplicativo.As a general rule, decide from the outset whether your app will depend exclusively on sensors or if sensors will just offer an additional control mechanism. Por exemplo, um jogo de corrida usando um dispositivo como um volante virtual pode, alternativamente, ser controlado pela GUI na tela. Desse modo, o aplicativo funciona independentemente de os sensores estarem disponíveis no sistema.For example, a driving game using a device as a virtual steering wheel could alternatively be controlled through an on-screen GUI – this way, the app works regardless of the sensors available on the system. Por outro lado, um jogo do tipo marble tilt maze pode ser codificado para funcionar somente em sistemas que tenham os sensores apropriados.On the other hand, a marble tilt maze could be coded to only work on systems that have the appropriate sensors. Você precisa decidir estrategicamente se irá depender dos sensores.You must make the strategic choice of whether to fully rely on sensors. Observe que um esquema de controle de mouse/toque lida com imersão para proporcionar um controle maior.Note that a mouse/touch control scheme trades immersion for greater control.

TópicoTopic DescriçãoDescription
Calibrar sensoresCalibrate sensors Sensores em um dispositivo baseado no magnetômetro (bússola, inclinômetro e sensor de orientação) podem precisar de calibragem devido a fatores ambientais.Sensors in a device based on the magnetometer – the compass, inclinometer and orientation sensor - can become in need of calibration due to environmental factors. A enumeração MagnetometerAccuracy pode ajudar a determinar um curso de ação quando seu dispositivo precisar de calibração.The MagnetometerAccuracy enumeration can help determine a course of action when your device is in need of calibration.
Orientação do sensorSensor orientation Os dados do sensor das classes OrientationSensor e são definidos por seus eixos de referência.Sensor data from the OrientationSensor classes is defined by their reference axes. Esses eixos são definidos pela orientação de paisagem do dispositivo e giram com o dispositivo conforme o usuário o vira.These axes are defined by the device's landscape orientation and rotate with the device as the user turns it.
Usar o acelerômetroUse the accelerometer Saiba como usar o acelerômetro para responder ao movimento do usuário.Learn how to use the accelerometer to respond to user movement.
Usar a bússolaUse the compass Saiba como usar a bússola para determinar a direção atual.Learn how to use the compass to determine the current heading.
Usar o girômetroUse the gyrometer Saiba como usar o girômetro para detectar mudanças no movimento do usuário.Learn how to use the gyrometer to detect changes in user movement.
Usar o inclinômetroUse the inclinometer Saiba como usar o inclinômetro para determinar a rotação sobre o eixo x, a rolagem e a rotação sobre o eixo y.Learn how to use the inclinometer to determine pitch, roll, and yaw.
Usar o sensor de luzUse the light sensor Aprenda a usar o sensor de luz ambiente para detectar alterações na iluminação.Learn how to use the ambient light sensor to detect changes in lighting.
Usar o sensor de orientaçãoUse the orientation sensor Saiba como usar os sensores de orientação para determinar a orientação do dispositivo.Learn how to use the orientation sensors to determine the device orientation.

Envio em lote de sensorSensor batching

Alguns sensores oferecem suporte ao conceito de envio em lote.Some sensors support the concept of batching. Isso varia dependendo do sensor individual disponível.This will vary depending on the individual sensor available. Quando um sensor implementa o envio em lote, ele coleta vários pontos de dados durante um intervalo de tempo especificado e transfere todos esses dados de uma só vez.When a sensor implements batching, it collects several points of data over a specified time interval and then transfers all of that data at one time. Isso é diferente do comportamento normal em que um sensor relata suas conclusões assim que executa uma leitura.This is different from normal behavior where a sensor reports its findings as soon as it performs a reading. Considere o diagrama a seguir, que mostra como os dados são coletados e entregues, primeiro com entrega normal e depois com entrega em lote.Consider the following diagram which shows how data is collected and then delivered, first with normal delivery and then with batched delivery.

Coleta em lote de sensor

A principal vantagem do envio em lote de sensor é o prolongamento da vida útil da bateria.The primary advantage for sensor batching is prolonging battery life. Quando os dados não são enviados imediatamente, isso economiza energia do processador e acaba com a necessidade de processar os dados imediatamente.When the data is not sent immediately, that saves on processor power and prevents the data from needing to be immediately processed. Partes do sistema podem ficar em suspensão até que sejam necessárias, o que gera uma economia significativa de energia.Parts of the system can sleep until they are needed, which generates a significant power savings.

Você pode influenciar a frequência com que o sensor envia lotes ajustando a latência.You can influence how often the sensor sends batches by adjusting the latency. Por exemplo, o sensor Accelerometer tem a propriedade ReportLatency.For example, the Accelerometer sensor has the ReportLatency property. Quando essa propriedade é definida para um aplicativo, o sensor envia dados após o período de tempo especificado.When this property is set for an application, the sensor will send data after the specified amount of time. Você pode controlar a quantidade de dados que é acumulada durante uma determinada latência definindo a propriedade ReportInterval.You can control how much data is accumulated over a given latency by setting the ReportInterval property.

Há algumas limitações que devem ser consideradas em relação à definição da latência.There are a couple of caveats to keep in mind with respect to setting the latency. A primeira limitação é que cada sensor tem um MaxBatchSize ao qual ele pode oferecer suporte com base no próprio sensor.The first caveat is that each sensor has a MaxBatchSize that it can support based on the sensor itself. Este é o número de eventos que o sensor pode armazenar em cache antes que ele seja forçado a enviá-los.This is the number of events that the sensor can cache before it is forced to send them. Multiplique MaxBatchSize por ReportInterval para determinar o valor máximo de ReportLatency.If you multiply MaxBatchSize by ReportInterval, that determines the maximum ReportLatency value. Se você especificar um valor maior que esse, a latência máxima será usada para que você não perca dados.If you specify a higher value than this, the maximum latency will be used so that you do not lose data. Além disso, vários aplicativos podem, cada um, definir uma latência desejada.In addition, multiple applications can each set a desired latency. Para atender às necessidades de todos os aplicativos, o período mais curto de latência será usado.In order to meet the needs of all applications, the shortest latency period will be used. Devido a esses fatos, a latência definida em seu aplicativo pode não corresponder à latência observada.Because of these facts, the latency you set in your application may not match the observed latency.

Se um sensor estiver usando relatório em lote, chamar GetCurrentReading limpará o lote atual de dados e iniciará um novo período de latência.If a sensor is using batch reporting, calling GetCurrentReading will clear the current batch of data and start a new latency period.

AcelerômetroAccelerometer

O sensor Accelerometer mede os valores da força G nos eixos X, Y e Z do dispositivo e é excelente para aplicativos simples baseados em movimento.The Accelerometer sensor measures G-force values along the X, Y, and Z axes of the device and is great for simple motion-based applications. Observe que os valores de força G incluem aceleração devido à gravidade.Note that G-force values include acceleration due to gravity. Se o dispositivo tiver SimpleOrientation de FaceUp em uma tabela, o acelerômetro lerá -1 G no eixo Z.If the device has the SimpleOrientation of FaceUp on a table, then the accelerometer would read -1 G on the Z axis. Portanto, os acelerômetros não necessariamente medem apenas a aceleração coordenada – a taxa de alteração de velocidade.Thus, accelerometers do not necessarily measure just coordinate acceleration – the rate of change of velocity. Ao usar um acelerômetro, lembre-se de diferenciar o vetor gravitacional da gravidade e o vetor de aceleração linear do movimento.When using an accelerometer, make sure to differentiate between the gravitational vector from gravity and the linear acceleration vector from motion. Observe que o vetor gravitacional deve normalizar em 1 para um dispositivo imóvel.Note that the gravitational vector should normalize to 1 for a stationary device.

O diagrama a seguir ilustra:The following diagrams illustrate:

  • V1 = Vetor 1 = Força devido a gravidadeV1 = Vector 1 = Force due to gravity
  • V2 = Vetor 2 = Eixo -Z do chassi do dispositivo (pontos da parte traseira da tela)V2 = Vector 2 = -Z axis of device chassis (points out of back of screen)
  • Θi = Ângulo de inclinação = ângulo entre o eixo –Z axis do chassi do dispositivo e o vetor de gravidadeΘi = Tilt angle (inclination) = angle between –Z axis of device chassis and gravity vector

AcelerômetroMedição do acelerômetro

Os aplicativos que possivelmente usem um acelerômetro incluem um jogo em que uma bola de gude rola na tela, na direção em que o dispositivo é inclinado (vetor gravitacional).Apps that might use the accelerometer sensor include a game where a marble on the screen rolls in the direction you tilt the device (gravitational vector). Esse tipo de funcionalidade espelha bastante bem a funcionalidade do Inclinometer e também pode ser usada com esse sensor, por meio de uma combinação de rotação sobre o eixo x e rolagem.This type of functionality closely mirrors that of the Inclinometer and could also be done with that sensor by using a combination of pitch and roll. O uso do vetor de gravidade do acelerômetro simplifica um pouco isso ao fornecer um vetor manipulado matemática e facilmente para a inclinação do dispositivo.Using the accelerometer’s gravity vector simplifies this somewhat by providing an easily mathematically manipulated vector for device tilt. Outro exemplo é um aplicativo que faz um som de estalo de chicote quando o usuário sacode o dispositivo no ar (vetor de aceleração linear).Another example would be an app that makes a whip’s cracking sound when the user flicks the device through the air (linear acceleration vector).

Para obter um exemplo de implementação, consulte o exemplo de acelerômetro.For an example implementation, see the accelerometer sample.

Sensor de atividadeActivity sensor

O sensor Activity determina o status atual do dispositivo conectado ao sensor.The Activity sensor determines the current status of the device attached to the sensor. Esse sensor é usado com frequência em aplicativos de exercícios físicos para controlar quando o usuário que está com o dispositivo está correndo ou caminhando.This sensor is frequently used in fitness applications to keep track of when a user carrying a device is running or walking. Consulte ActivityType para obter uma lista de possíveis atividades que podem ser detectadas por essa API de sensor.See ActivityType for a list of possible activities that can be detected by this sensor API.

Para obter um exemplo de implementação, consulte o exemplo de sensor de atividade.For an example implementation, see the activity sensor sample.

AltímetroAltimeter

O sensor Altimeter retorna um valor que indica a altitude do sensor.The Altimeter sensor returns a value that indicates the altitude of the sensor. Isso permite que você mantenha o controle de uma alteração na altitude em termos de metros acima do nível do mar.This enables you to keep track of a change in altitude in terms of meters from sea level. Um exemplo de um aplicativo que pode usar isso seria um aplicativo de corrida que controla as mudanças de elevação durante uma corrida para calcular as calorias queimadas.One example of an app that might use this would be a running app that keeps track of the elevation changes during a run to calculate the calories burned. Nesse caso, os dados desse sensor podem ser combinados com o sensor Activity para fornecer informações de controle mais precisas.In this case, this sensor data could be combined with the Activity sensor to provide more accurate tracking information.

Para obter um exemplo de implementação, consulte o exemplo de altímetro.For an example implementation, see the altimeter sample.

BarômetroBarometer

O sensor Barometer permite que um aplicativo obtenha leituras barométricas.The Barometer sensor enables an application to get barometric readings. Um aplicativo de previsão do tempo pode usar essas informações para fornecer a pressão atmosférica atual.A weather application could use this information to provide the current atmospheric pressure. Isso pode ser usado para fornecer informações mais detalhadas e prever possíveis mudanças na previsão do tempo.This could be used to provide more detailed information and predict potential weather changes.

Para obter um exemplo de implementação, consulte o exemplo de barômetro.For an example implementation, see the barometer sample.

BússolaCompass

O sensor Compass retorna uma direção 2D em relação ao Norte magnético, baseado no plano horizontal da terra.The Compass sensor returns a 2D heading with respect to magnetic north based on the horizontal plane of the earth. O sensor da bússola não deve ser usado para determinar a orientação específica do dispositivo ou para fazer representações no espaço 3D.The compass sensor should not be used in determining specific device orientation or for representing anything in 3D space. Os recursos geográficos podem causar declinação na direção, então alguns sistemas dão suporte para ambos HeadingMagneticNorth e HeadingTrueNorth .Geographical features can cause natural declination in the heading, so some systems support both HeadingMagneticNorth and HeadingTrueNorth. Pense em qual é a preferencial para o seu aplicativo, mas lembre-se de que nem todos os sistemas irão reportar o valor de Norte verdadeiro.Think about which one your app prefers, but remember that not all systems will report a true north value. Os sensores do girômetro e o magnetômetro (um dispositivo que mede a amplitude da força magnética) combina seus dados para produzir a direção da bússola, que tem um efeito líquido de estabilização dos dados (a força do campo magnético é muito instável, devido aos componentes do sistema elétrico).The gyrometer and magnetometer (a device measuring magnetic strength magnitude) sensors combine their data to produce the compass heading, which has the net effect of stabilizing the data (magnetic field strength is very unstable due to electrical system components).

As leituras da bússola com relação ao Polo Norte magnético

Os aplicativos que devem exibir uma bússola ou navegar em um mapa geralmente usam um sensor de bússola.Apps that want to display a compass rose or navigate a map would typically use the compass sensor.

Para obter um exemplo de implementação, consulte o exemplo da bússola.For an example implementation, see the compass sample.

GirômetroGyrometer

O sensor Gyrometer mede as velocidades angulares ao longo dos eixos X, Y e Z.The Gyrometer sensor measures angular velocities along the X, Y, and Z axes. Eles são muito úteis em aplicativos baseados em movimento simples que não levam em consideração a orientação do dispositivo, e sim a rotação do dispositivo em diferentes velocidades.These are very useful in simple motion-based apps that do not concern themselves with device orientation but care about the device rotating at different speeds. Os girômetros podem ser afetados por ruídos nos dados ou por uma tendência constante ao longo de um ou mais eixos.Gyrometers can suffer from noise in the data or a constant bias along one or more of the axes. Você deve consultar o acelerômetro para verificar se o dispositivo está se movimentando e assim determinar se o girômetro é afetado por uma tendência; então, faça a devida compensação no aplicativo.You should query the accelerometer to verify whether the device is moving in order to determine if the gyrometer suffers from a bias, and then compensate accordingly in your app.

Girômetro com rotação sobre o eixo x, rolagem e rotação sobre o eixo y

Um exemplo de aplicativo que poderia usar o sensor girômetro é um jogo que gira uma roleta com base em uma rápida sacudida rotacional do dispositivo.An example of an app that could use the gyrometer sensor is a game that spins a roulette wheel based on a quick rotational jerk of the device.

Para obter um exemplo de implementação, consulte o exemplo de girômetro.For an example implementation, see the gyrometer sample.

InclinômetroInclinometer

O sensor Inclinometer especifica que os valores de rotação sobre o eixo y, rolagem e rotação sobre o eixo x de um dispositivo e funciona melhor com aplicativos que levam em consideração como o dispositivo está situado no espaço.The Inclinometer sensor specifies the yaw, pitch, and roll values of a device and work best with apps that care about how the device is situated in space. A rotação sobre o eixo x e a rolagem são derivadas ao se tomar o vetor de gravidade do acelerômetro e ao integrar os dados do girômetro.Pitch and roll are derived by taking the accelerometer’s gravity vector and by integrating the data from the gyrometer. A rotação sobre o eixo y é estabelecida a partir dos dados do magnetômetro e do girômetro (semelhante à direção da bússola).Yaw is established from magnetometer and gyrometer (similar to compass heading) data. Os inclinômetros oferecem dados de orientação avançados de uma maneira fácil e compreensível.Inclinometers offer advanced orientation data in an easily digestible and understandable way. Usar inclinômetros quando precisar da orientação do dispositivo, mas não precisar manipular os dados do sensor.Use inclinometers when you need device orientation but do not need to manipulate the sensor data.

Inclinômetro com rotação sobre o eixo x, rolagem e rotação sobre o eixo y

Os aplicativos que alteram sua exibição para corresponder à orientação do dispositivo podem usar o sensor do inclinômetro.Apps that change their view to match the orientation of the device can use the inclinometer sensor. Além disso, um aplicativo que exibe um avião que corresponde à rotação sobre o eixo y, rotação sobre o eixo x e rolagem do dispositivo devem usar também as leituras do inclinômetro.Also, an app that displays an airplane that matches the yaw, pitch, and roll of the device would also use the inclinometer readings.

Para obter um exemplo de implementação, consulte o exemplo inclinômetro https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Inclinometer .For an example implementation, see the inclinometer sample https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Inclinometer.

Sensor de luzLight sensor

O sensor Light é capaz de determinar a luz ambiente ao redor do sensor.The Light sensor is capable of determining the ambient light surrounding the sensor. Isso permite que um aplicativo determine quando a configuração de iluminação ao redor de um dispositivo foi alterada.This enables an app to determine when the light setting surrounding a device has changed. Por exemplo, um usuário com um dispositivo slate pode sair de um ambiente fechado para o ar livre em um dia ensolarado.For example, a user with a slate device might walk from indoors to outdoors on a sunny day. Um aplicativo inteligente pode usar esse valor para aumentar o contraste entre o plano de fundo e a fonte renderizada.A smart application could use this value to increase the contrast between the background and the font being rendered. Isso tornaria o conteúdo ainda legível na configuração mais brilhante para o ar livre.That would make the content still readable in the brighter, outdoor setting.

Para obter um exemplo de implementação, consulte o exemplo de sensor de luz.For an example implementation, see the light sensor sample.

Sensor de orientaçãoOrientation sensor

A orientação do dispositivo é expressa através das matrizes de quaternião e rotação.Device orientation is expressed through both quaternion and a rotation matrix. O OrientationSensor oferece um alto grau de precisão na determinação de como o dispositivo está situado no espaço com relação à direção absoluta.The OrientationSensor offers a high degree of precision in determining how the device is situated in space with respect to absolute heading. Os dados de OrientationSensor são derivados do acelerômetro, girômetro e magnetômetro.The OrientationSensor data is derived from the accelerometer, gyrometer, and magnetometer. Assim, ambos os sensores de bússola e inclinômetro podem ser derivados dos valores de quaternião.As such, both the inclinometer and compass sensors can be derived from the quaternion values. As matrizes de quaternião e rotação se prestam muito bem à manipulação matemática avançada e são frequentemente usados na programação gráfica.Quaternions and rotation matrices lend themselves well to advanced mathematical manipulation and are often used in graphical programming. Aplicativos que usam manipulação complexa devem se beneficiar do sensor de orientação, pois muitas transformações são extraídas das matrizes de quaternião e rotação.Apps using complex manipulation should favor the orientation sensor as many transforms are based off of quaternions and rotation matrices.

Dados do sensor de orientação

O sensor de orientação é geralmente usado nos aplicativos de realidade aumentada que criam uma sobreposição no ambiente ao redor, com base na direção apontada pela parte traseira do dispositivo.The orientation sensor is often used in advanced augmented reality apps that paint an overlay on your surroundings based on the direction the back of the device is pointing.

Para obter um exemplo de implementação, consulte o exemplo de sensor de orientação.For an example implementation, see the orientation sensor sample.

PodômetroPedometer

O sensor Pedometer controla o número de passos dados pelo usuário que está usando o dispositivo conectado.The Pedometer sensor keeps track of the number of steps taken by the user carrying the connected device. O sensor está configurado para controlar o número de passos por determinado período.The sensor is configured to keep track of the number of steps over a given time period. Vários aplicativos de exercícios físicos gostam de controlar o número de passos dados para ajudar o usuário a definir e alcançar vários objetivos.Several fitness applications like to keep track of the number of steps taken in order to help the user set and reach various goals. Essas informações podem ser coletadas e armazenadas para mostrar o progresso ao longo do tempo.This information can then be collected and stored to show progress over time.

Para obter um exemplo de implementação, consulte o exemplo de podômetro.For an example implemenation, see the pedometer sample.

Sensor de proximidadeProximity sensor

O sensor Proximity pode ser usado para indicar se objetos são detectados ou não pelo sensor.The Proximity sensor can be used to indicate whether or not objects are detected by the sensor. Além de determinar se um objeto está dentro ou não do alcance do dispositivo, o sensor de proximidade também pode determinar a distância em relação ao objeto detectado.In addition to determining whether or not an object is within range of the device, the proximity sensor also can determine the distance to the detected object. Um exemplo de onde isso pode ser usado com um aplicativo que quer surgir de um estado de suspensão quando um usuário entra em um intervalo especificado.One example where this could be used is with an application that wants to emerge from a sleep state when a user comes within a specified range. O dispositivo pode ficar em um estado de suspensão de baixa energia até que o sensor de proximidade detecte um objeto e, em seguida, pode entrar em um estado mais ativo.The device could be in a low-powered sleep state until the proximity sensor detects an object, and then could enter a more active state.

Para obter um exemplo de implementação, consulte o exemplo de sensor de proximidade.For an example implementation, see the proximity sensor sample.

Orientação simplesSimple orientation

O SimpleOrientationSensor detecta a orientação quadrante atual do dispositivo especificado ou seu enquadramento de frente ou enquadramento para baixo.The SimpleOrientationSensor detects the current quadrant orientation of the specified device or it’s face-up or face-down. Ele tem seis estados possíveis SimpleOrientation (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp e FaceDown).It has six possible SimpleOrientation states (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp, FaceDown).

Um aplicativo de leitura que altera sua exibição com base no dispositivo sendo segurado em paralelo ou perpendicular ao chão usará os valores de SimpleOrientationSensor para determinar como o dispositivo está sendo segurado.A reader app that changes its display based on the device being held parallel or perpendicular to the ground would use the values from the SimpleOrientationSensor to determine how the device is being held.

Para obter um exemplo de implementação, consulte o exemplo de sensor de orientação simples.For an example implementation, see the simple orientation sensor sample.