cs378 mobile computing n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CS378 - Mobile Computing PowerPoint Presentation
Download Presentation
CS378 - Mobile Computing

Loading in 2 Seconds...

play fullscreen
1 / 38

CS378 - Mobile Computing - PowerPoint PPT Presentation


  • 121 Views
  • Uploaded on

CS378 - Mobile Computing. Sensing and Sensors. Sensors. "I should have paid more attention in Physics 41" Most devices have built in sensors to measure and monitor motion orientation (aka position) environmental conditions sensors deliver raw data to applications. Sensor Framework.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS378 - Mobile Computing' - hachi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs378 mobile computing

CS378 - Mobile Computing

Sensing and Sensors

sensors
Sensors
  • "I should have paid more attention in Physics 41"
  • Most devices have built in sensors to measure and monitor
    • motion
    • orientation (aka position)
    • environmental conditions
  • sensors deliver raw data to applications
sensor framework
Sensor Framework
  • Determine which sensors are available on a device.
  • Determine an individual sensor's capabilities, such as its maximum range, manufacturer, power requirements, and resolution.
  • Acquire raw sensor data and define the minimum rate at which you acquire sensor data.
  • Register and unregister sensor event listeners that monitor sensor changes.

http://developer.android.com/guide/topics/sensors/sensors_overview.html

sensor framework1
Sensor Framework
  • SensorManager
    • conduit between your classes and Sensors
  • Sensors
    • abstract representations of Sensors on device
  • SensorEventListener
    • register with SensorManage to listen for events from a Sensor
  • SensorEvent
    • data sent to listener
using sensors basics
Using Sensors - Basics
  • Obtain the SensorManager object
  • create a SensorEventListener for SensorEvents
    • logic that responds to sensor event
    • varying amounts of data from sensor depending on type of sensor
  • Register the sensor listener with a Sensor via the SensorManager
  • Unregister when done
    • a good thingto do in the onPause method
using sensors1
Using Sensors
  • registerListener(SensorEventListener, Sensor, int rate)
  • rate is just a hint
  • SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME, or SENSOR_DELAY_FASTEST, or time in microseconds (millionths of a second)
sensoreventlistener
SensorEventListener
  • Interface with two methods:
    • void onAccuracyChanged (Sensor sensor, int accuracy)
    • void onSensorChanged (SensorEvent event)
      • Sensor values have changed
      • this is the key method to override
    • don't hold onto the event
      • part of pool and the values may be altered soon
simple sensor example
Simple Sensor Example
  • App that shows linear acceleration
  • options to display current
  • … or maximum, disregarding direction
  • Linear Layout
  • TextViews for x, y, and z
  • Buttons to switch between max or current and to reset max
sensor coordinate system
Sensor Coordinate System
  • For most motion sensors:
  • +x to the right
  • +y up
  • +z out of front face
  • relative to device
accelerometer includes gravity
Accelerometer - Includes Gravity
  • Sensor.TYPE_ACCELEROMETER
  • Device flat on table
  • g ~= 9.81 m/s2
sensor coordinate system1
Sensor Coordinate System
  • App that displays max acceleration along each axis
  • Hold phone straight up and down and move to ground
sensor coordinate system2
Sensor Coordinate System
  • Repeat but hold … then sidewaysphone flat
getting sensor data
Getting Sensor Data
  • registerListener
    • sensorEventListener
    • Sensor -> obtain via SensorManager
    • rate of updates, a hint only, or microseconds (not much effect)
  • returns true if successful
display max
Display Max

Recall, max range of linear acceleration on dev phone is 19.613 + gravity = 29.423

- a baseball pitcher throwing a fastball reaches 350 m/s2 or more (various "physics of baseball" articles)

display current
Display Current
  • Lots of jitter
  • Attempt to zero out???
types of sensors1
Types of Sensors
  • Three main classes of sensors:
  • motion (acceleration and rotational forces)
    • accelerometers, gravity sensors, gyroscopes, and rotational vector sensors
  • environmental (ambient air temperature and pressure, illumination, and humidity)
    • barometers, photometers, and thermometers.
  • position (physical position of a device)
    • orientation sensors and magnetometers
types of sensors2
Types of Sensors
  • Hardware sensors
    • built into the device
  • Software sensors
    • takes data from a hardware sensors and manipulates it
    • from our perspective acts like a hardware sensor
    • aka synthetic or virtual sensors
types of sensors dev phone older
Types of Sensors - Dev Phone - Older
  • accelerometer, linear acceleration, magnetic field, orientation, light, proximity, gyroscope, gravity
types of sensors3
Types of Sensors
  • TYPE_ACCELEROMETER
    • hardware
    • acceleration force in m/s2
    • x, y, z axis
    • includes gravity
types of sensors4
Types of Sensors
  • TYPE_AMBIENT_TEMPERATURE
    • hardware
    • "room" temperature in degrees Celsius
    • no such sensor on dev phones
  • TYPE_GRAVITY
    • software or hardware
    • just gravity
    • if phone at rest same as TYPE_ACCELEROMETER
types of sensors5
Types of Sensors
  • TYPE_GYROSCOPE
    • hardware
    • measure device's rate of rotation in radians / second around 3 axis
  • TYPE_LIGHT
    • hardware
    • light level in lx,
    • lux is SI measure illuminance in luminous flux per unit area
types of sensors6
Types of Sensors
  • TYPE_LINEAR_ACCELERATION
    • software or hardware
    • measure acceleration force applied to device in three axes excluding the force of gravity
  • TYPE_MAGNETC_FIELD
    • hardware
    • ambient geomagnetic field in all three axes
    • uT micro Teslas
types of sensors7
Types of Sensors
  • TYPE_ORIENTATION [deprecated]
    • software
    • measure of degrees of rotation a device makes around all three axes
  • TYPE_PRESSURE
    • hardware
    • ambient air pressure in hPa or mbar
    • force per unit area
    • 1 Pascal = 1 Newton per square meter
    • hectoPascals (100 Pascals)
    • milli bar - 1 mbar = 1hecto Pascal
types of sensors8
Types of Sensors
  • TYPE_PROXIMITY
    • hardware
    • proximity of an object in cm relative to the view screen of a device
    • most just binary (see range, resolution)
    • typically used to determine if handset is being held to person's ear during a call
  • TYPE_RELATIVE_HUMIDITY
    • ambient humidity in percent ( 0 to 100)
types of sensors9
Types of Sensors
  • TYPE_ROTATION_VECTOR (ABSOLUTE)
    • hardware or software
    • orientation of device, three elements of the device's rotation vector
  • TYPE_TEMPERATURE
    • hardware
    • temperature of the device in degrees Celsius
sensor capabilities
Sensor Capabilities
  • Various methods in Sensor class to get capabilities of Sensor
  • minDelay (in microseconds)
  • power consumption in mA (microAmps)
  • maxRange
  • resolution
linear acceleration
Linear Acceleration
  • At rest of table
  • Recall
  • units are m/s2
zeroing out
Zeroing out
  • Take average of first multiple (several hundred) events and average
    • shorter time = more error
  • Potential error
    • should be 0 at rest
  • Results:
rate of events
Rate of Events
  • 1000 events
  • SensorManager.SENSOR_DELAY_UI
    • times in seconds: 21, 21, 21
    • 21 seconds / 1000 events
  • SensorManager.SENSOR_DELAY_FASTEST
    • times in seconds: 21, 21, 21
  • Recall delay of 20,000 micro seconds
  • 2x104 x 1x103 = 2x107 = 20 seconds