Home > Assignments
CSE 590P - Ubiquitous Computing (PMP) - Spring 2015



A0 - Introductions:

Introduce yourself on the message board and include the following information: current work position/company, any research interests (and/or areas of specialization), what you want to get out of this class, your experience with software and hardware, the kinds of classes you have taken so far in PMP, and anything else you would like to share.


A1 - Introduction to Mobile Android Development: Step Counter

Develop an android app that counts steps. Design an interface that shows the number of steps as a user walks with the tablet in their hand. You will be using the raw data from the accelerometer and/or gyroscope to complete this task. The data will require some very simple signal processing before you can count the number of steps. Just focus on the basics in this assignment. We will do more advanced signal processing in subsequent assignments. You can use peak detection, zero crossing, or your own technique for counting. You can assume the user only holds the tablet in a fixed posture in their hands. You are welcome to assume a different placement or posture of the tablet or phone, but please be sure to document how the device needs to be held somewhere on the interface. Optional - If want a challenge, attempt to detect steps in any orientation and posture. Please have your application installed and ready to show in class on the due date and also submit your source code to the assignment submission site.


A2 - Sampling and Processing Sensor Data: Optical Heart Rate Monitor

Develop an optical heart rate monitoring app using the built in camera on your android tablet. There is a technique called photoplethysmography (PPG), which consists of detecting changes in blood volume during a cardiac cycle. By illuminating the skin and measuring the observed optical changes, it is possible to extract heart rate. In this assignment, you can assume the person will be holding their finger steady on the phone's camera to simplify the signal processing. Normally, you can just use the LED near the camera as the illumination source, but our lablets don't have an LED. You'll need to use a light source for a second device, such as your phone. At a minimum you will need to low pass filter the data you will be extracting from the camera prior to using peak detection to extract heart rate. For the app, we ask you to both plot the heart rate signal on the interface and show the extracted heart rate in real time. Please have your application installed and ready to show in class on the due date and also submit your source code to the assignment submission site.


A3 - Software Defined Radio: Decoding RF Signals

You will be given a low-cost SDR module for the quarter, which you will us for this assignment. Your task will be to use GNU Radio and the SDR hardware to decode some RF signals. Obviously, you will be limited to RF signals that operate within the frequency limits of the current SDR hardware. We are providing everyone with 315 MHz garage door remotes as one option for something to decode. These remotes have 4 buttons and your task will be to decode each of the four buttons when pressed. You will use GNU Radio to stream the filtered signal to a file sink, where you will use the programming language of your choice to decode the signal (python, C, C++, java, etc). We suggest you first decode the signal using post processing and then attempt to decode it in real time. For this assignment, it is sufficient to decode a button press in semi real time - a few second delay is totally fine. Either on a graphical user interface or in the command line, it should show which button is being pressed (button 1, 2, 3 or 4). We ask you submit the following materials for this assignment - the GRC file (if modified from the example), the decoding source code, and a demo video showing buttons being pressed and it being reflected on the screen. We suggest you start with the garage door remote, but if you are confident with this assignment we will allow you the flexibility to decode something else that is of interest to you. This could be a wireless mouse, some proprietary hub, etc. If you decide not to use the remote, please send us an email first. Assignments should be submitted here assignment submission site.


A4 - 3D Printing:

You will create a 3D model for a case (and print it out) that will house the sensor and microcontroller for A5. In A5, you'll build a bluetooth-enabled wearable heart rate monitor using the parts we provide you. To get the best heart rate signal, you will need a way to securely attach the sensor and microcontroller on your finger. Your task will be to design some sort of housing that will hold the sensor, the microcontroller, and the batteries as well as attach to your finger. You will turn in your actual print out when you submit A5, but we ask you submit your 3D model (in STL format) as indicate on the schedule. This gives you some time to tweak the design (if needed) after you start working on A5 and prior to actually printing the part. Assignments should be submitted here assignment submission site.


A5 - Microcontrollers and Sensors:

You will build a wireless wearable heart rate monitor using the micro-controller, Bluetooth, and PPG modules we provided in class. The aim of this project is learn how to write basic micro-controller code, interface with an analog sensor, and stream data to a mobile device using Bluetooth.  Using the sample code provided in class and from your experience from the previous assignments, you will sample raw data from the PPG sensor and do some pre-processing (basic filtering) on the micro-controller itself and send this pre-proposed  data in real-time to the android device using Bluetooth. On the android, you will write an app that collects this data, further processes the data (peak counting or frequency tracking) to determine the heart rate. Your android app should also graph the heart rate in real time. You are welcome to architect the system how you like, but we ask that you do some processing on the micro-controller. It is tempting to stream all the raw data from the PPG sensor to the android device and process everything there. Sometimes this makes sense, but many times with power constrained devices you want to reduce the amount of wireless transmission to conserve power. Your wearable monitor should be able to operate while someone is walking around, so your 3D printed case will be critical in holding your sensor and hardware firmly in place on you finger. You will submit your arduino sketch file for your micro-controller, the android source, your final case design (STL file), and a video of your system working. Assignments should be submitted here assignment submission site.




powered by cmsimple.dk - template by