Sensores

Transcrição

Sensores
Utilizando os Sensores dos
Ultrabooks
Felipe Pedroso - Intel
Globalcode – Open4education
Convergência da
Computação móvel
Globalcode – Open4education
Uma nova experiência
para o PC
Globalcode – Open4education
Sensores
Acelerômetro
Aceleração da força G nos eixos x, y, z
Giroscópio
Velocidade angular (taxa que sua orientação muda) nos eixos x, y e z
Magnetômetro
Intensidade, direção e sentido de um campo magnético
GPS (Global Positioning System)
Localização e informação de tempo
NFC (Near Field Communication)
Comunicação
Sensor de luz ambiente
Nível de Luz no Ambiente
Globalcode – Open4education
Sensor Fusion
Globalcode – Open4education
API - Namespaces
Windows.Sensors.*  Sensores
Accelerometer
Gyrometer
Inclinometer
OrientationSensor
SimpleOrientationSensor
Compass
LightSensor
Windows.Devices.Geolocation  GPS
Geolocator
Windows.Networking.Proximity  NFC
ProximityDevice
Globalcode – Open4education
Sensores - Como usar?
Obter o objeto default do sensor utilizando o método GetDefault()
Para fazer apenas uma leitura chamar o método GetCurrentReading(), de
preferência
Para receber uma notificação contendo a leitura do sensor:
Setar a variável ReportInterval (não esquecer do MinimumReportInterval)
Registrar um método para receber o evento no ReadingChanged (delegate)
Tratar o evento dentro do método
Esse procedimento é válido para todos os sensores disponíveis no namespace
Windows.Sensors
Globalcode – Open4education
Sensores - Como usar?
Exemplo Acelerômetro:
acc = Accelerometer.GetDefault();
if (acc != null)
{
acc.ReportInterval = 50 <= acc.MinimumReportInterval ?
acc.MinimumReportInterval : 50;
//Register for reading changed events
_acc.ReadingChanged +=
(Accelerometer s, AccelerometerReadingChangedEventArgs
args) =>
{
//use args.Reading.AccelerationX/Y/Z
};
}
Globalcode – Open4education
GPS - Como usar?
Para obter a localização atual:
using Windows.Devices.Geolocation;
Geolocator _geo = new Geolocator();
async void getCurrentPosition() {
if(_geo!= null){
Geoposition pos = await _geo.GetGeopositionAsync();
}
}
Propriedades do Objeto Geoposition (pos):
Coordinate (Latitude, Longitude, etc)
CivicAddress (Endereço, Cidade, Estado, etc)
Globalcode – Open4education
GPS - Como usar?
Para disparar um evento toda vez que a posição mudar:
using Windows.Devices.Geolocation;
Geolocator _geo = new Geolocator();
void trackPosition() {
if(_geo!= null){
_geo.DesiredAccuracy = PositionAccuracy::High; //High ->
will get GPS positioning if available
_geo.ReportInterval = 1000; //milliseconds
_geo.PositionChanged += (sender, args) => {
Geoposition pos = args.Position;
};
}
}
Globalcode – Open4education
Consumo de Energia
Não configurar um ReportInterval muito baixo se sua aplicação não precisar
Evitar o uso dos sensores quando a aplicação não estiver ativa
Evitar pooling, usar apenas quando for necessário
Considerar o uso do Acelerômetro ou Giroscópio se a orientação completa não for
necessária
Hardware
Accelerometer
Gyrometer
Magnetometer
Sensors objects: At least one client connected
Accelerometer Gyroscope Inclinometer Compass Device Orientation
On
Off
On
On
On
Off
On
On
On
On
Off
Off
On
On
On
Globalcode – Open4education
Dúvidas?
Globalcode – Open4education
Muito obrigado!
Intel Developer Zone
http://software.intel.com/pt-br
Facebook Intel Software
https://www.facebook.com/intelswbrasil
Felipe Pedroso
Twitter
@felipeapedroso
Facebook http://www.facebook.com/felipe.a.pedroso
Globalcode – Open4education