-
Notifications
You must be signed in to change notification settings - Fork 2
Hardware
The purpose of this wiki page is to discuss and explain the hardware used in the V-Tracker project.
This is a living document that may be modified from time to time. Please refer to the Wiki History for detailed revision information.
Current version:
Version | Date | Modified by | Details |
---|---|---|---|
v3.0.0 | XX-XX-2012 | Hadi Michael | Rev. A for final submission. |
V-Tracker uses web-technologies to access the mobile device's motion sensors. Using iOS and the Apple iPhone 4(S) as an example, this section will explain the basics behind these various sensors.
A piezoelectric accelerometer can be visualised as a mass suspended using springs. Variations in the physical properties of the springs are detected as the sensor moves. In mobile devices, accelerometers pick up the device's movements. These movement events are known in iOS as Motion Events.
iPhone 4S has a three degrees of freedom (3 dof) STMicro 8134 33DH 00D35 three-axis accelerometer.
Figure 3. iPhone 4S - touchscreen controller (red), gyroscope (orange), accelerometer (yellow), and audio codec chip (teal) [2].
The sensor provides acceleration readings on the x,y,z axes, as displayed in Figure 4. below.
Figure 4. Accelerometer axes on iPhone [3].
Selecting an interval that minimises the number of calls to the sensor will improve the device's battery life. It is therefore recommended that you set an update interval appropriate for your usecase. Table 1, below, is extracted directly from the iOS Developer Library topic: Event Handling Guide for iOS.
Event frequency (Hz) | Usage |
---|---|
10–20 | Suitable for use in determining the vector representing the current orientation of the device. |
30–60 | Suitable for games and other applications that use the accelerometers for real-time user input. |
70–100 | Suitable for applications that need to detect high-frequency motion. For example, you might use this interval to detect the user hitting the device or shaking it very quickly. |
You will need to isolate the gravity component from the accelerometer data if you are using the sensor to detect a device's orientation. The iOS Dev Center recommends a basic low-pass filter, to reduce the effects of sudden jolts, shakes, or movements [3].
// Use a basic low-pass filter to keep only the gravity component of each axis.
accelX = (acceleration.x * kFilteringFactor) + (accelX * (1.0 - kFilteringFactor));
accelY = (acceleration.y * kFilteringFactor) + (accelY * (1.0 - kFilteringFactor));
accelZ = (acceleration.z * kFilteringFactor) + (accelZ * (1.0 - kFilteringFactor));
// Use accelX, accelY, accelZ to do stuff…
On the other hand, if you are using the accelerometer to detect sudden movements, it is recommended that you use a high-pass filter to reduce the effects of gravity [3].
// Subtract the low-pass value from the current value to get a simplified high-pass filter
accelX = acceleration.x - ( (acceleration.x * kFilteringFactor) + (accelX * (1.0 - kFilteringFactor)) );
accelY = acceleration.y - ( (acceleration.y * kFilteringFactor) + (accelY * (1.0 - kFilteringFactor)) );
accelZ = acceleration.z - ( (acceleration.z * kFilteringFactor) + (accelZ * (1.0 - kFilteringFactor)) );
Gyroscopes in mobile devices sense angular velocity, or "the rate at which a device rotates around each of its spacial axes" [3]. Unlike the accelerometer and compass, a gyroscope measures its own rotation. Gyroscopes use the Coriolis effect, which can be observed when monitoring a moving mass from a rotating frame of reference.
The rotation axes for the gyroscope on the iPhone 4S are the same as those for the accelerometer [3]. Using the right hand rule, we can assert the positive orientation of rotation - this is shown in Figures 5 and 6.
Figure 5. right hand rule [3].
Figure 6. gyroscope axes of rotation on iPhone [3].
iPhone 4S has an STMicro AGD8 2135 LUSDI gyroscope on board, shown on the circuit board in Figure 3. above. The following images show the sensor's silicon composition and are taken from Chipworks (the sensor's manufacturer):
Figure 7. the STMicro AGD8 2135 LUSDI gyroscope [4].
Figure 8. the STMicro AGD8 2135 LUSDI gyroscope [4].
Figure 9. the STMicro AGD8 2135 LUSDI gyroscope [4].
Figure 10. the STMicro AGD8 2135 LUSDI gyroscope [4].
Figure 11. the STMicro AGD8 2135 LUSDI gyroscope [4].
Figure 12. the STMicro AGD8 2135 LUSDI gyroscope [4].
V-Tracker also uses web-technologies to access the mobile device's localisation sensors. Again, using iOS and the Apple iPhone 4(S) as an example, this section will explain the basics behind these various sensors.
In mobile devices, the compass is used to assert 'True North' and/or 'Magnetic North'. These sensors commonly suffer from environmental interference and may require regular calibration. iPhone 4 has an AKM8975 magnetic sensor that promises improved performance [5]. The compass is a 3-axis sensor that can provide heading data regardless of the device's orientation in space. It is shown on the circuit board in figure 13 below.
Figure 13. Samsung K9PFG08 flash memory, Cirrus Logic 338S0589 audio codec (Apple branded), AKM8975 Mag Sensor, Texas Instruments 343S0499 Touch Screen Controller, 36MY1EE NOR and mobile DDR [5].
//COMING SOON
[1] Daniel Bedford, "iOS Hardware as a Sensor Platform: DMM Case Study," in Sensors Applications Symposium (SAS), 2011 IEEE, 2011, pp. 308 - 311.
[2] ifixit, "iPhone 4S teardown," on ifixit.com, 2011 [Online]. http://www.ifixit.com/Teardown/iPhone-4S-Teardown/6610/1
[3] Apple Inc. "iOS Developer Library," on developer.apple.com, 2011 [Online]. http://developer.apple.com
[4] Chipworks, 2011 [Online]. http://www.chipworks.com
[5] ifixit, "iPhone 4 teardown," on ifixit.com, 2010 [Online]. [http://www.ifixit.com/Teardown/iPhone-4-Teardown/3130/3)