MP1 Input & Interaction

Posted: Monday, January 26
Due: Thursday, February 12 (you will be demonstrating your project in class)
Wiki-Writeups Due: Sunday, February 15th

This is the first of four mini-project assignments. These are to be completed in pairs of two. I will not be assigning pairs; this is up to you. You may choose to complete this assignment individually; however, you will be graded as if you completed it in a team of two.

I also suggest you get started on this immediately in case you need to order parts from places like Sparkfun.com, adafruit.com, Seeed Studio, RobotShop, Digikey, Mouser, etc. If you would like to order parts, I suggest posting to Piazza first to see if others also want to order to save on shipping. If you find an expensive part online that you think could be of general interest to the HCIL Hackerspace community, make a case for it on Piazza and I will consider purchasing it with my research funds.

What To Do

In this assignment, your goal is to make an input device for a computer along with a novel interface to demonstrate the input. This could mean a new type of mouse, text entry system, or a specialized device (think Rock Band guitar or drums).

Don't just think about the sensing system you want to use to encode physical action into virtual bits that control a computer--think also about the form, fluidity, and mapping of this interaction. How intuitive does it feel? Why does it feel intuitive, or not? Think also about creating a physical form--out of clay, cardboard, foam, 3D-printed material--to improve the look and/or feel of your new input device.

This assignment is based, in part, on Homework 2 "Text Entry Device" from Bjoern Hartman and Paul Wright's UC-Berkeley Interactive Device Design course. You'll note that our assignment is more lenient in that you need not just create a new type of text entry device but, instead, a new type of input device in general (which could be a text entry system but may also be a new type of mouse or a specialized device). Like our class, Bjoern and Paul have their students submit videos of their assignments. Here are some examples from his class: (i) chorded keyboards (link1, link2, link3, link4); (ii) directional input with soft keyboards (link1, link2,link3); and (iii) multi-tap keyboards (link1, link2, link3, link4). Remember, all of these are text entry systems because that was their assignment; our assignment is different. I am including these links to highlight the breadth of creative solutions in class and the use of wikis/videos for deliverables.

Here are some example input devices from the interwebs that I find particularly inspirational:
For additional inspiration, see some of the top performing projects from prior versions of this class (note: this assignment changes a bit each semester):
  1. Arduino. Theremin. Gangam Style (Fall 2012).
  2. The Arduino Controller (Steering Wheel & Foot Pedal Driving Game) (Fall 2012)
  3. Pressure Sensing Seat-Pad Interface for Pac-Man (Fall 2012)
  4. KeyDisembark (Fall 2012)
  5. Joytunes (Spring 2014)
  6. Touchy-Feely Box (Spring 2014)
  7. Cuff (Spring 2014)
  8. Fuzzy Adventure: A Tangible Music Mixer (Spring 2014)

Tools/Library Usage

You can use whatever developer tools, IDEs, debuggers, libraries, and/or code snippets you find to support turning your ideas into a reality. Of course, you must keep track and cite the use of any code or libraries you use in your project. You must also include citations towards projects that inspired your own. Do not be shy to include as many links as you can that influenced your projects form or function in some way.

Remember to also include citations (with URLs) in your code via comments to all code that you borrowed from or extended from blogs, forums, open source, etc. If I find code that was copied and not appropriately cited, I will consider this a direct violation of the UMD Academic Integrity policy. You will not be penalized for re-using or re-appropriating cool things in this class, you will be penalized for not properly attributing them.

Assignment Deliverables

The assignment deliverables are due before lecture begins.
  • Utilize github to store and post your code. This should be publicly viewable and accessible. You are welcome to use any license you like on the code itself (including no license at all--e.g., None). When you use other people's code, you must cite your source--even if it's just a blog post and a small snippet. I believe github provides academic accounts (for additional features, please check the website).

  • Post a Wiki write-up to your own wiki subpage on this wiki (example)

  • Upload a video demoing your submission to YouTube. You should include the link to the YouTube video in your Wikipage (again, you don't have to use your real names here). Please take the video creation process seriously--video is one of the best forms to portray the interactivity and sheer awesomeness of your inventions. I hope that you create something you would feel proud of to show your friends or family.

  • Presentation/demo. On Thursday, February 12, we'll have a presentation/demo day. We will dedicate the whole 75 minutes to this: the first part will be presentations and second part will be interactive demonstrations. We will likely have around 5 teams so each presentation should be ~5-7 minutes with discussion. It's up to you how you want to present your work--you could do a live demo for the class, play all or part of your video, show slides, or do an interpretive dance. After each team has presented their work, we'll use the remaining time in the class to interact with each others demos.

Assignment Grading and Rubric

Most, if not all, assignments in this class will be graded on novelty, aesthetic, fun, creativity, technical sophistication, and engagement. All assignments (including the project) will be peer-reviewed by everyone in the class including me using this feedback form (link). We will provide constructive feedback and new ideas and we will rank our favorite projects. The top team (or maybe top two teams) will receive an award and will have the opportunity to present at the HCIL Symposium at the end of the year.

You must also fill out a partner evaluation form (aka a peer assessment form). This is due February 17th before class but I would appreciate it if you filled it out earlier. I expect that this should take you ~15 minutes. Please be reflective, thoughtful, and honest about your own performance and that of your partner. Note: this is a private evaluation and your responses will not be shared.

In-Class Presentations

You must fill out this feedback form during the presentations and submit it before the end of class today. The order for the in-class presentations will be:
  1. 2048-calculator
  2. Ring Controller
  3. Interactive Gloves
  4. AccStick
  5. Custom 8-Directional Tilt Sensor
  6. Gesture Control for Car UI
  7. Ride Along

Completed Assignments

This page is editable by all members of the class (once you login to wikispaces). If you cannot edit this page, please send me an email or post to Piazza for help. List your assignment below. You and your partner do not have to list your real names unless you want to. Instead, you can come up with a team name (I know some students are sensitive about online privacy and I respect that).

1. Interactive Glove

Majeed Kazemitabaar, Elizabeth McNany
A glove with flex sensors, touch pads, an accelerometer, and a coin motor, which can detect hand orientation, finger taps, and flexed fingers, and provide feedback in the form of vibrations. We wrote custom programs in addition to demonstrating its ability to control different games and act as keyboard input.

2. AccStick

Seokbin Kang, Jonggi Hong
Assistick is a tangible computing interface with 4 sticks which assists desktop computing with accessibility functions. Each stick of AccStick is mapped to an accessibility function. A user can bend sticks so that each function is executed with the user's preference. Touch potentiometer and a LED strip on the docking station provide tactile and intuitive volume control interface.

3. Ring Controller

Sriram Karthik Badam, Raul Guerra
Ring Controller is a wearable input device that uses a magnetic compass to track the 3D motion of a user's hand over any desk or table. By placing a magnet on the table, the ring controller can keep track of the changing magnetic field in all three dimensions when the user interacts. We developed an application demonstrating how these readings can be used to play space invaders.

4. 2048 Controller

Philip Dasler, Rotem Katzir
The 2048 Controller is tilt-based controller for the online game 2048. The user simply tilts the controller in one of four directions in order to move tiles around the board. As the 2048 is a literal numbers game, the controller was packaged into a calculator so that a cohesive theme exists throughout the experience.

5. Gesture Control for Car UI

Kentaro
In this assignment, I’ve tried to make a gesture control method for car user interface. As you know, in current car user interface, the touch control method is very popular, but we need to research the next generation of control method.

6. Custom 8-Directional Tilt Sensor

Brian B.
I created an eight-directional tilt switch using mostly low tech, recycled materials. This sensor was designed with the goal of making a low tech, low budget sensor with some of the features of an accelerometer.

7. Ride Along

Kailyn and Luis

Ride Along is a bike that controls a virtual car using a magnetic sensor. The interface is a scenic driving route with the occasional deer that you will

save or kill.