Acceleration Based Pedometer

Slides:



Advertisements
Similar presentations
Chapter 10 Input/Output Organization. Connections between a CPU and an I/O device Types of bus (Figure 10.1) –Address bus –Data bus –Control bus.
Advertisements

Slide Ruler. ? X 5" On today’s menu...  What happened with Gravity  Noise  The tool today  Fundamental Limitations  Magical Christmas Land  (Where.
By: Russ Butler ECE4220 Spring 2012 Dr. DeSouza May 2, 2012.
Generated Waypoint Efficiency: The efficiency considered here is defined as follows: As can be seen from the graph, for the obstruction radius values (200,
MotoHawk Training Model-Based Design of Embedded Systems.
-Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.
Timers in Hardware ECE152. Overview Why are timers important – Watchdog – Task switching – Accurate time of day Can use polling or interrupts.
Understand the football simulation source code. Understand the football simulation source code. Learn all the technical specifications of the system components.
Photolithography Machine Control System Ben Conrad and Mark Edwards Projects in Computer Engineering II December 9, 2003.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
Students: Nir Engelberg Ezequiel Hadid Supervisor: Mony Orbach In association with: September 28, Winter 2005.
Power Consumption Awareness by using a Pedometer Denis Kosovich Lior Kuchinski Asaf Bar Power Consumption Awareness by using.
Findings in Reliable Bulk Data Transfer Experiments GGB project Sukun Kim, David Culler, James Demmel, Gregory Fenves, Steve Glaser, Shamim Pakzad NEST.
Students: Asulin Ofir Heller Itai Supervisor: Mony Orbach In association with: June 16, summer 2006.
Coordinate Based Tracking System
ECE 4220 Real Time Embedded Systems Final Project Presentation Spring 2014 University of Missouri Columbia By: Michael Brauch Temperature Data Logger.
MCITP Guide to Microsoft Windows Server 2008 Server Administration (Exam #70-646) Chapter 14 Server and Network Monitoring.
Final (Part A) Presentation 31/10/04 Virtual Traffic Signal Presented by: Ron Herman Ofir Shentzer Instructor: Mr. Mony Orbach Technion – Israel Institute.
Wireless Data Acquisition for SAE Car Project by: J.P. Haberkorn & Jon Trainor Advised by: Mr. Steven Gutschlag.
ASPPRATECH.
Timers and Interrupts Shivendu Bhushan Sonu Agarwal.
Connecting LANs, Backbone Networks, and Virtual LANs
Senior Project – Computer Engineering Integrated Workout Shoe Peter Katlic Advisor – Prof. Cotter Development: Consisting of an 8051 microcontroller.
TextWand Programmable LED Display Carlos Vila-Virella and Andy Campanella.
SudokuEHG Michelle Brown Matt Haggenmiller Thomas Troch CE Design Projects Design Review December 12, 2007.
Indoor Localization Carick Wienke Advisor: Dr. Nicholas Kirsch University of New Hampshire ECE 791H Using a Modern Smartphone.
8254 Programmable Interval Timer
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Project Objectives Today’s GPS technology allow calculating and producing accurate positioning and tracking of the movement path in open environments.
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
CHAPTER 2: COMPUTER-SYSTEM STRUCTURES Computer system operation Computer system operation I/O structure I/O structure Storage structure Storage structure.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
Embedded Stroke Evaluation System Amanda Sweeney, 4ECE Supervisor: Dr. Martin Glavin.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Gauge Operation and Software by Scott A. Ager. Computer Recommendations 750 MHz Pentium III 64 Meg SRAM 40 Gig Hard Drive 1024 x 768 graphics CD Writer.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
The Functions of Operating Systems Interrupts. Learning Objectives Explain how interrupts are used to obtain processor time. Explain how processing of.
Autonomous Helicopter James LydenEE 496Harris Okazaki.
Time Management.  Time management is concerned with OS facilities and services which measure real time, and is essential to the operation of timesharing.
LHC Collimation Project Integration into the control system Michel Jonker External Review of the LHC Collimation Project 1 July 2004.
Slide 1 Project 1 Task 2 T&N3311 PJ1 Information & Communications Technology HD in Telecommunications and Networking Task 2 Briefing The Design of a Computer.
The Software Development Process
Weather-Sensing Fabulous Weather-Sensing Data-logger! Introducing the… 100% designed and manufactured at the Vigyan Ashram FabLab!
Chapter 7 Problem Solving with Loops
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Digital Control CSE 421.
Safety Track Driver/Dispatch User Guide The Garmin PND Interface.
Iteration. Iteration: Review  If you wanted to display all the numbers from 1 to 1000, you wouldn’t want to do this, would you? Start display 1 display.
RFID Access Control System Lucius Knight. General System Design  Microcontroller  PSoC CY8C29466  24MHz Bus Frequency  Memory Available  32kB FLASH.
Acceleration Sensing Dec 10, 2004 Zhong-Yi Jin William Chang.
System Software Design Dan Sweet May 6 th, 2008 Western Washington University Bicycle Power Meter.
ECE 456 Computer Architecture Lecture #9 – Input/Output Instructor: Dr. Honggang Wang Fall 2013.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Chalk Robot ECE 445 Spring 2013 Group 12 Neil Christanto, Enyu Luo, Leonard Lim TA: Mustafa Mukadam Monday, April 29 th.
Digital Control CSE 421.
Distributed Computing
DIGITAL CALCULATOR USING 8051
Chapter 6: CPU Scheduling
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
An Introduction to VEX IQ Programming with Modkit
MARIE: An Introduction to a Simple Computer
CSCI1600: Embedded and Real Time Software
Operating Systems.
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
Requirements Definition
CSCI1600: Embedded and Real Time Software
COMP755 Advanced Operating Systems
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Acceleration Based Pedometer CSE 237B Project by Vladimir Ermakov

Agenda High Level Problem description Hardware Used/Resources Available Design Implementation Conclusion

Problem Description Accelerometers today do not measure distance accurately. They measure the number of steps traveled, and multiply it by some constant step length. This approach is not good for complex exercise sets, and hiking trips where step length varies.

Goal of The Project Come up with a pedometer that does a better distance approximation.

Two Approaches Use instantaneous acceleration of the foot to get instantaneous velocity and calculate exact distance traveled. Use the acceleration of the foot to figure out the mode/style of walking and provide different step lengths for different modes.

Why Approach 1 Failed The accelerometer I had available is too coarse. Error gets multiplied by t(10ms) added up 100 times a second and multiplied by t again. This makes the error multiplied 10000 times for each second With a regular pedometer the error is only a couple of centimeters a step.

Can We Do Better? Yes, use modes approximation approach. Have different modes (My implementation has 2 modes) to measure different step lengths. Mode1 can be Walking Mode2 can be Running Use foot acceleration to decide which mode to use.

What is the Hardware Available MMA3201D Accelerometer (+-40g) Two Micro-controllers: Atiny26L performs A2D on the accelerometer AT89C5131(32 KB programmable flash) user interface and algorithms. Connected through a serial interface(UART) ES13BA0FR LCD display

Design Two parts: Sensor Processing Unit Gets mounted on shoe Atiny26L performs A2D conversion on Accelerometer output Sends it to the processing unit upon request Processing Unit User interface: LCD, Keypad Step counting/distance calculation algorithms Sends requests to the Sensor via UART

More Details Pressing GO turns on the processing unit. After displaying the Splash Screen the system enters MAIN state. From here one can enter the menu by pressing SELECT or start counting steps by pressing GO. The menu exposes multiple parameters that control the sensitivity of the pedometer.

Parameters Step Length – distance traveled in a step Threshold – minimum acceleration to register as a step Step Time – minimum number of measurements to be above threshold before a step is registered Recoil – duration of a step. A new step will not be registered during this time.

Illustration of Parameters

States of the System Stopped Counting Paused Auto-configure

What is Auto-configure Asks the user to walk 10 steps and uses that as a sample of the mode of walking. Finds average maximum acceleration of the ten steps, and uses that as a guide when deciding what mode of walking one is in.

Implementation No OS, just compiler supported interrupt handling main() with a while(1) loop. Scheduling is of tasks is performed using timers. No preemption except for interrupt handling.

Timing An interrupt handler timer0_irq() gets called every 10 milli-seconds. Its job is to decrement counters and to read in the current state of the keyboard register. Several important counters: power_off_timer sensor_timer

Serial Communication The protocol is simple, byte based. First byte is a start of packet indicator. Its followed by 6 bytes of data – X, Y, Z Actually each data parameter is only 10 bits, so 6 bits are wasted per parameter. Not a bottle neck.

pkt_processSensor() Responsible for data processing. Sensor data has to be centered and normalized Filter out the noise using the threshold specified by the user (High noise to data ratio) Check step counter After step gets registered set the recoil timer.

The Menu Menu is implemented as a key driven state machine Special cases are the Auto-configure, and Counting states where a special key(KEY_NONE) had to be generated in order to fit the model.

Real Time Issues LCD updating is done synchronously and is very slow. First I tried updating the screen every half a second – problems over/under counting steps. (Diagram on next slide) Solution – to only update the display when a step occurs.

Timing Problems

Testing Testing was performed by running/walking around the house and block Did very well counting steps. Problems with determining modes, actually it barely works.

Reasons for Error Acceleration does not differ that much between walking and running, so a more accurate accelerometer is needed to perform the job. Possibly the approach with taking the maximum acceleration can be replaced with taking the average acceleration instead.

Conclusion Instantaneous acceleration approach is not a feasible option. Modes of walking approach has good potential, and could be made more reliable if more time and hardware resources were available

The End Questions?