HW 3 - Gesture Recognition

From Interactive Device Design Fall13
Jump to: navigation, search


  • You will work in pairs.
  • You will learn how to connect and read several simple continuous sensors.
  • You will write gesture recognition code that can distinguish between several events extracted from continuous sensor readings.
  • You'll put it all together in a game.
  • Due date: Monday 9/30 before class.


Your pair will receive the following loaner sensors - you will have to return them at the end of the assignment:

  • Adafruit ADXL335 accelerometer
  • Interlink Force Sensitive Resistor

You can also get the following additional loaner sensors if your design makes a good case for them:

  • Flex sensor
  • Potentiometers or encoders
  • Photo cell (light sensor)

Optional / Recommended

As shown in class, it is often useful to visualize the sensor data first - if you can see the events you are interested in, it'll be much easier to write code to recognize them. You can get started with sending sensor data from Arduino to Processing by looking at the following Arduino example: Examples - Communication - Graph. Beyond graphing the values themselves, it will be useful to visualize whether your incoming sensor data matches a particular event or not.

If you want inspiration what your tool could look like, here's an earlier research project from Bjoern's grad school days: http://www.youtube.com/watch?v=FlvRrptT1kk Obviously, we don't expect you to produce something as complex. The very end of that video also has some game control examples.

Requirements for the game

  • Game Control: The game should have:
    • At least one dimension of continuous control.

Example: Breakout - the continuous dimension is the X-control of the shuttle; the discrete event is firing guns to break blocks (if you've collected the special "firing" power).

    • At least one dimensions of discrete control (e.g., up, left, down, right, or fire) that you extract from continuous input. Example: Pacman.
  • You don't have to invent a new game - take an arcade classic. You are allowed to start from open source code and extend it; or even control a closed-source game. For example, look at OpenProcessing Games.
  • The main requirement is that in the end the game is playable and is enjoyable to play with your controller.
  • You're allowed to use simple switches for auxiliary functions, but the point of the assignment is to deal with analog sensor data.

Requirements for Physical construction

  • Learn how to make connecting cables, e.g., with ribbon cable - don't just stick all your components onto a breadboard wave the breadboard through the air.
  • Think about designing some handheld shape that has the accelerometer / other sensors embedded.

Turn in instructions

Create a Wiki Page for this assignment

Begin by creating a new wiki page for this assignment. Go to your user page for one user in your group. Log into the wiki, then look for your name on the top line of the page - clicking on the name will take you to your user page.

Edit your user page to add a link to a new wiki page for this assignment. The wiki syntax should look like this:

[[Homework3-FirstNameLastNam1eFirstNameLastName2|Homework 3]]

Replace FirstName and LastName1 with your own name, First and LastName2 with your teammate's. Look at my user page for an example. Then click on the link and enter the information about your assignment. You should upload the files described below and describe any extra functionality you implemented and want us to review.

(Your teammate should also add the link to their page).

Write up your project on this wiki

On the Homework3-FirstNameLastName1FirstNameLastName2 page you just created, write 1-3 paragraphs about your implementation, as before.

  • Include images (How to include images).
  • Reflection: what you learned from this assignment (also let us know if this was too easy or too hard)
  • Record a short video of you tagging in to the game and playing a level. Narrate the video. (How to include video)

One you are finished editing the page, add a link to it at the bottom of the page with your full name as the link text. The wiki syntax will look like this: *[[Homework3-FirstNameLastName1FirstNameLastName2|FirstName LastName1 and FirstName LastName2]]. Hit the edit button for the last section to see how I created the link for my name.

Links to Finished Assignments

Add your submission below this line.