P1 – Name Redacted

Brian Matejek
Matt Dolan
Ed Kelley
Joshua Prager

Team Name: Name Redacted

 

Assist the Elderly

  1. Device for assisting elderly with limited use of sense to navigate early morning tasks.
    image3

  2. “Life-alert” style device built into hearing aid. Can register a fall and connect to representative.

Games

  1. Interactive game that teaches fundamentals of computer science to young children.
    image5

  2. Projection based floor game. (probably not within budget)

  3. Interactive board game with lights and sensors that add complexity and randomness to the game.

  4. Attach flex sensors to trampolene or bouncing castle to provide visual feedback and make it into a game.

  5. Augmented visual deprecation exploration exhibit by creating highly intuitive feedback devices. (See this exhibit)

  6. Create a collaboration based game in which a group of people are in a room and are given choices and prompts and must make collaborative choices through real world interaction.

Tools

  1. Use a sensor (like kinect) to help people interact with objects in 3D and 2D virtually modeled environments or video games more naturally.

  2. Teach knot tying with interactive ropes (flex sensors plus led strips).

  3. Explore different ways of created faster virtual keyboards.

  4. Ways to input text that are not a keyboard.

  5. Automating fencing bouts start and end times to help reduce timing uncertainty.

  6. Have sensors on a tennis court to determine if the ball is in or out.

  7. Interacting with video replays for editing, youtube, etc.

  8. Create dynamic music composition layouts for iPad (e.g. Bjork used to create album)

  9. Make suitcases that automatically tell you how much they weigh.

  10. Measuring concussions using sensors in equipment.

  11. GPS that gives you directions through vibration rather than audio/visual signals.

    image2

  12. Create a better calculator that allows you to be more accurate and efficient.

  13. Control devices through sensors in your shoe.

  14. Interactive way to provide feedback on your CPR technique or how to use a defibrillator.

  15. Create a sudo-3D display that tracks a person’s head and adjust the display accordingly.

  16. Make bike/vehicle tires that automatically warn you when they’re getting low on pressure.

  17. Method for preventing DUIs/tracking alcohol consumed.

Improve Home Environment

  1. Make a motion based tv remote.

  2. Interactive bathroom mirror for getting news and information while you are brushing your teeth.

  3. Flower pot that lets you know when it needs to be watered.

  4. Interactive chopping board that gives you feedback on what you are cutting.

  5. Sensor in backpack to determine weight. Help reduce back injuries in kids. Could quickly tell you if you have everything you need for the day.

    image4

  6. Use motion sensor to go through motions of a sport action and have the program provide advice and feedback (like personalized coaching without a coach).

  7. Interactive movies that bridge the gap between passive entertainment and extremely active video games.

  8. Controlling different aspects of fish tank care (feeding, lights, water quality, etc…).

  9. Smart shower that lets you know how much water you’ve used and temperature.

  10. Wardrobe/pantry that helps you select, locate, clothes/food that you want to wear and put them back.

  11. Interactive poker table that deals the cards and calculates bets and the pot.

Services

  1. Quick way for waiters to digitally take orders in a restaurant through a handheld device.

  2. User interface for virtual restaurant table.

  3. Better way of interacting with a vending machine.

  4. Faster/better/increased functionality for campus print release stations.

  5. Design a cup that tells you how hot your drink is.

Improved Computer UI

  1. Create the next generation of computer desktop (essentially rethink the choices that were made with Windows 8).

  2. Make an “invisible” keyboard that senses which key you press based only on your hand movements

  3. Change the way we download and update by creating a lightweight dynamic game that either helps the computer in some way personalize the information or entertains the user during the process (or both).

  4. Create an input device that learns based on your movements and habits and adapts to become more accurate and effective.

School/Work

  1. Better way for students to interact with/receive information about class assignments. (Not 100% in the scope of this class)

  2. Create a teacher feedback device that shows teachers in real time how interested or confused students are, so they know what teaching techniques worked and what topics need to be more elaborated.

    image1

  3. Better iClicker (ability to have questions other than multiple choice).

  4. Create a type of non-linear presentation which is organized in a more natural mental model.

  5. Controlling class/work presentations or lectures using gestures.

Shortlist

  1. Device for assisting elderly with limited use of sense to navigate early morning tasks.

  2. Interactive game that teaches fundamentals of computer science to young children.

  3. Generic keyboard thing.

  4. Interacting with video replays for editing, youtube, etc.

  5. Smart bag

  6. More intuitive GPS

  7. Teacher feedback

  8. Controlling different aspects of fish tank care (feeding, lights, water quality, etc…).

Project Description

The project that we chose is to create an interactive tactile game or experience that facilitates the early understanding of fundamental computer science topics.  Essentially what this means, is some way in which we could expose people, especially children at a young age, to some of the metaphors and early concepts of CS and make it accessible enough.  Technologically, we think that the best way to achieve this is an extension of the white board.  We hope to combine computer vision with a projector.  Students would go up to the board and place tiles up.  These tiles would be then read in, executed like any other program, and results would be fed back to the user with visual feedback from the projector.

We chose this project for a few reasons.  Firstly, we think that if solves a fundamental problem.  In the past decade, there has been an increased push towards understanding and innovating on education.  It has long been known that education is the driving force of the future success of not only nations but the world.  But still today, many fewer students graduate from high school or college with the skills necessary to work in the tech industry than there are job openings.  This tech gap needs to be closed.  Learning a programming language has become just as important as learning a second spoken language (if not more important).  But besides the importance of the problem, we also chose this project because it is extremely well suited to the skills of the group.  We have experience with computer vision and graphics but more importantly we are all recent students in CS.  We know what it was like to learn our first languages and we feel like that puts us in a good position to improve the experience.

Target User Group:

The target user group for our project would primarily be younger students who have little to no knowledge of computer science or programming, though it could be generalized to people who lack knowledge of computer science in general. The barrier of entry to learning how to program is perceived as being very high by those unfamiliar with computer science and programming techniques. Sitting down in front of a computer and writing programs in a language completely foreign to them can seem like a very daunting task. Our goal is to lower this perceived barrier by making basic principles of computer science intuitive, engaging, and fun for the learning audience. People gravitate towards and are more comfortable with mediums they are familiar with. A whiteboard is something students are very accustomed to and also provides an easy way to display information visually. Being able to formulate a picture of what is going on inside a block of code instead of just staring at a wall of foreign text is something we think would be very useful in helping people understand what code does and how if functions.

Problem Description & Context:

Currently, there is very little computer science education in middle school classrooms.  Students who eventually do learn to code generally start in high school or college.  Our goal is to create an interactive, intuitive, and fun way  to teach the fundamentals of computer science to middle school students, and others with no formal computer science schooling.  Many middle schools are not equipped to teach computer science; they do not have the teachers and/or computer software to teach students how to code in Java or C.  Although middle school teachers might understand the fundamentals of computer science, they may not know enough about individual programming languages to teach their students.  All of these factors create an environment where computer science is simply not taught.  However, it is possible to teach students the fundamentals of computer science without relying on one particular language and fancy computer software.  In terms of the availability of the user group, it is entirely possible that students could devote part of class to learning computer science in this fun and interactive way.

Why We Chose this Platform:

Most middle school classrooms do not have computers for every student.  However, most have a projector, and most schools have some video cameras.  Almost every teacher also has a computer in class, but not every student has their own computer.  By connecting the video camera feeds and projector to the computer of the professor, we can run software on the computer that simultaneously parses the video input and outputs the corresponding images that we want.  Students will be able to interact with the video camera without having to interact with computers.  The projector offers an ideal way to display information to the students and change output simultaneously with the video camera.  But beyond practical logistics, we wanted to bring the experience of coding into the physical world.  One of the main barriers to entry for early CS students is often the intangibility of the virtual world.  It can be hard for students to wrap their head around the ideas of pointers or virtualization.  We hope that using physical types and real-time visual feedback, we can target these concepts and make them look and feel more real.  Imagine, for example, allocating memory in a virtual heap and then seeing a physical representation of that memory block instantly appear on the board next to the code.  Or even imagine how placing tiles in a for loop might help a student understand how iteration works.

Sketches:

sketch1 sketch2

Elite Four Brainstorming

Group Name: The Elite Four

Members:
Clay Whetung (cwhetung@)
Jae Young Lee (jyltwo@)
Jeff Snyder (jasnyder@)
Michael Newman (menewman@)

Brainstorming Ideas:

1. Create an interface for Magic: The Gathering or a similar game that maintains an internal representation of the game, enforces rules, and provides graphical feedback on game state to users.
2. Use a Kinect to train users in martial arts, dance, yoga, tai chi, etc. at a low cost by tracking the user’s skeleton and comparing their forms to those of expert users. The application can give them feedback on exactly where they’re going wrong.
3. Use pitch detection and score following to help musicians/singers know which notes they play out of tune while practicing and give them graphical feedback including direction and pitch distance.
4. An automated metronome with score following for practicing — when a musician plays a section correctly, the metronome automatically increases speed. If they play it incorrectly, the metronome shows them their mistakes and slows speed down.
5. A transparent device that can be overlaid on computer monitors (or televisions) of multiple sizes and transforms them into a pseudo-tablet so that artists using the system in Photoshop etc. get immediate visual feedback.
6. A drum pad for percussion practice in low-noise situations that uses a practice pad with piezo sensors inside to trigger drum sounds through headphones. The device would be similar to a practice mute for brass instruments and could be customized for varying sensitivities and with a range of sounds.
7. Interface to use basic functions of a computer while prone (i.e. in bed) — the device would project the interface onto the ceiling or wall, and use gestural control via Kinect or Wiimote. Avoids the common problems of using a laptop in bed – neck strain, hot surfaces, sharp corners, no surface to mouse on, etc.
8. A silent alarm clock that raises your shade for those who prefer to wake up with natural light, but want to do so later than the sun rises.
9. Voice recognition system to open doors. Allows for secure access by multiple people.
10. Make a self-control type device using the Kinect that locks users out of banned applications (i.e. World of Warcraft) or specific websites until they perform some physical task, for example a specific number of push-ups or a yoga routine.
11. A frisbee-throwing robot to help users practice Ultimate Frisbee skills. This allows users to practice catching when another human isn’t available, and it can throw consistently at specific speeds, heights, etc.
12. A system that actuates a laser or other toy to exercise your cat or another pet in your absence.
13. A similar device could use a treadmill to exercise your dog or other larger pet. For motivation, the animal could be receive a treat for running for a certain time or distance.
14. A voice-controlled kitchen helper that can automatically measure and dispense frequently-used ingredients.
15. A system that listens on a certain phone/Google Voice number for text messages and calls and allows you to remotely start arbitrary electronic appliances by connecting them to mains, for example to start coffee brewing 30 mins before you arrive home.
16. A device that aids disabled users in basic computer use by automatically scrolling based on the position of your eyes and having activated eye gestures for basic commands.
17. An Arduino-based system that makes the entire bathroom process hands-free (turning on the sink, dispensing soap, opening the door, etc.) — people don’t want to get their hands dirty again.
18. Go-to-sleep button: Press it when you want to sleep and it does everything you should before bed (i.e. hibernates computer, turns lights off, sets alarm clock).  Then when your alarm goes off everything turns back on!
19. Automatic bike lock — when you put the kickstand down, the bike automatically locks itself. Alternatively, a coiled lock system that automatically retracts the lock when you get close to it.
20. Mixology robot: When you go up to it and place an order verbally, it mixes the drink for you (makes much more complicated drinks for parties without hiring a bartender).
21. Heart rate sensor that controls the speed of a treadmill and plays ambient music with appropriate (and motivational) BPM.
22. Proximity sensor that can be attached to objects, so if you lose it then you can use the range sensor to find them.
23. Automatic transcription of music — you sing something and the device outputs the pitches and rhythms that you sang.
24. An interface that personalizes your entire house — scan your fingerprint and it does things like set the temperature, turn on certain lights in the house, etc.
25. System that uses RFID tags to track small informal transactions between friends so that money is kept even (i.e. Joe buys Frank a coffee and it gets logged, so maybe next time Frank will know to pay for Joe).
26. Smoke-controlled music player that plays progressively more progressive/alternative music as the amount of smoke in the room increases.
27. A weather sensor that detects brightness or dryness of the outside and dispenses sunscreen if it is very bright or lotion if it is very dry.
28. Alarm clock that syncs with your Google Calendar and wakes you up before your first appointment of the day, even if you forget to manually set an alarm. Also detects if you are awake already and won’t wake you up.
29. Freestyle rapping/poetry companion device that automatically performs voice recognition (very quickly) and suggests rhymes and/or insults based on previous words.
30. Musical routing system that automatically routes instrument inputs to amplifiers based on a performance schedule without the need to plug/unplug.
31. Silent band practice system with individual headphone mixes.
32. Party robot – allows attendees to vote by text on which of a few songs to play next, displays live tallies and automatically beat-matches and crossfades between songs to ensure that there are never silent moments.
33. Biometric sensor that detects which finger is being held to the sensor and opens certain applications and/or performs particular actions associated with each finger (e.g., different workspaces, a “gaming” finger, a multimedia finger…)
34. Alarm clock that is somehow synced with your sleep cycle (through movement, for example) in order to wake you up at the end of a sleep cycle before a certain time.
35. Fingerprint system that protects food/resources from roommates. Can also be used to “book” shared appliances like the oven or washing machine.
36. A credit-card or key fob form-factor sensor system that detects if you try to leave your room without your keys, wallet, or phone. If you forget them, it beeps and/or flashes a light to alert you.
37. A better way to flip through channels. Could use a Kinect and certain gestures, or a trackpad to scroll or detect blinking. Much easier than pressing the channel up/down buttons on a  remote.
38. Chair that detects your posture (e.g., how much you’re slouching, where your shoulders are, how much of your back is in contact with your chair) and automatically adjusts itself (with motorized cushions) to accommodate you.
39. Use a Kinect and projector to make an interactive desktop (like Jarvis from Iron Man)
40. Fingerprint scanning bike lock.
41. Shoes that inflate (or let in more air, like in those Nike air pockets) when you’re higher up in the air (when you jump) to cushion your landing.
42. Smartphone keyboard that adjusts based on how you’re holding it — if you’re holding it with one hand, for example, then the keyboard will automatically adjust to make it easier to type.
43. Television device that can sense when a laptop or other device with a screen is in front of it, then gives you the option of projecting that screen onto the TV, almost like a wireless external monitor.
44. External monitors that have a sense of physical location relative to other monitors that they are hooked up to — so if you have one monitor on the left and one on the right, you can swap their position and the mouse would still move correctly from the left screen to the right screen.
45. A device that enables any screen to be projected into a bigger size while maintaining any special properties it has (such as a touch screen) — a smartphone screen could be projected onto a table and essentially turned into a tabletop tablet.
46. A device in your shoes that measure how straight your steps are and sends the results to your phone — might be helpful for detecting when you’ve had too much to drink.
47. A glove that that can measure body temperature and control the room temperature accordingly. Additionally, gestures can be used to turn on speakers, turn lights off, etc.
48. Glasses/goggles with an infrared sensor that provide a heads-up display identifying living (and other warm) things in your field of view, classifying them based on their general shape and size (could be useful for detecting wildlife or stalkers).
49. Toilet that keeps track of the size/consistency/color of your stools, rating them on the Bristol stool scale and letting you know of potential health problems.
50. Either sensing gloves or a flat keyboard without a display that can be used to perform typing motions in the absence of a laptop, display, or proper keyboard — useful for situations where it’s not feasible to have a laptop out, or (for example) in a class where laptops are banned.

Brainstorming Sketches:
1) Interface for Magic: The Gathering or a similar game that maintains an internal representation of the game, enforces rules, and provides graphical feedback on game state to users.
duelDisk

7) Interface to use basic functions of a computer while prone.
proneComputing

10) Make a self-control type device using the Kinect that locks users out of banned appli­ca­tions or spe­cific web­sites until they per­form some phys­i­cal task.
fitnessSelfControl

19) Automatic bike lock — A coiled lock system that automatically retracts the lock when you get close to it.
bikelockR

26) Smoke-controlled music player.
smoke

32) Party robot – allows attendees to vote by text on which of a few songs to play next.
partyRobot

36) A credit-card or key fob form-factor sensor system that detects if you try to leave your room without your keys, wallet, or phone.
keyfobR

50) Sensing gloves that can be used to perform typing motions in the absence of a laptop, display, or proper keyboard.
typingGloves

Our idea:
We chose to work on the key alert system that will alert users if they try to leave their house/room without their keys/wallet/phone. We chose this idea because it solves a common problem: leaving home unprepared and getting locked out or worse. The proximity sensor will also allow users to find their lost necessities with ease. Usually this is done only for cell phones through a desktop or web app that will make the phone ring or give its GPS coordinates. With our system, however, all a user needs to do is grab the proximity finder that is hanging nearby and walk through her house until she finds the missing item(s). This project is somewhat open-ended; for example, the proximity technology could be carried outside of one’s domicile and used to find lost objects anywhere. This project also allows us to explore making user interfaces that have minimal use of traditional interfaces.

Target User Group:
This project is aimed primarily at people who have self-locking doors — a type of lock extremely common on college campuses. The primary issue with these doors is that if you leave your room without your key, you will promptly be locked out, often requiring a call to security and having to wait for their arrival. This is a massive inconvenience that costs the user time, comfort, and — in some cases — money. With our system, students (or even the university itself) would be able to install a very simple system and feel secure in their preparedness. This user group can quite often be disorganized, hurried, and stressed; these issues can compound to make remembering the little things, such as one’s keys, quite difficult.

Problem Description & Context:
The high level goal of this project is to ensure that users can feel confident that they haven’t forgotten anything when they leave the house — in particular, we are addressing the problem of forgetful students getting locked out by self-locking doors. A technical solution could improve the situation by alerting students when they try to leave their room without their keys. This is superior to a non-technical solution, such as simply leaving a reminder note, because the automated system will never “forget” to alert the user, whereas a student might forget to leave/read a note. Thus, it is important that the system be as automatic and simple as possible — after all, the goal of this project is to make users’ lives easier, not more difficult. In addition, we need to consider that these projects will be implemented in dorms or other places where the user does not have actual ownership of the building. As such, our solution must not require a destructive installation. Rather, it should be simple to install and remove. Since our target user group lives in a busy, high-stress environment, we do not want the solution to require much maintenance on their part. Instead, it should be more of an “install-once-and-forget-about-it” solution. A similar problem has been solved by using a beeper system that helps users find keys. But our goal here is not just to help users keep track of their keys, but to protect them from absentmindedness in general.

Platform:
We intend to build our device around the Arduino platform. This platform seems appropriate for an automated system that is meant to be small, simple, and generally unobtrusive. Relying on a desktop/laptop/mobile app would make less sense, since such devices would be useless whenever powered down or (in the case of mobile devices) lost or left elsewhere. For sensors, RFID tags or similar devices may be suitable for short-range proximity detection. For example, the system could detect when the door is opened but an RFID tag (associated with keys/wallet) is not present.

More Sketches:
doors

P1 – Team X

Group 10:

  • Osman Khwaja (okhwaja)
  • (av)
  • Igor Zabukovec (iz)
  • Junjun Chen (junjunc)

Brainstorming List

  1. Fingerprint sensing bike lock opener.
  2. Password gesture for opening a door.
    s4
  3. Darkness detecting light system for dorm rooms.
  4. Mood Llghting based on music.
  5. Device that automatically scrolls Facebook based on your eye position.
  6. Kindle that flips the page based on your eye position.
  7. Switch computer windows with gestures.
  8. Shades that close based on how bright it is outside.
    s5
  9. Shades on a timer for taking naps.
  10. Alarm clock that opens blinds.
  11. Alarm clock that senses if you’re still in bed.
  12. Drawers that open pants/shorts, t-shirts/long sleeve based on the weather.
  13. Golf swing analyzer sunglasses.
  14. Smart foot stool that softens when you put your foot on it but stays rigid when other things are on it.
  15. Automatic coiling headphones that coil when you tug on them 3 times above a certain tension threshold.
  16. A mouthguard type sensor that tells if, after brushing your teeth, your mouth has an acceptable amount of plaque.
  17. A laptop monitor sensor that adjusts the angle of the screen based on your positioning in bed.
  18. A smartphone keyboard that adjusts to how you’re holding it (i.e. if holding it with one hand, will make a viable keyboard that caters to your one-handedness).
  19. When connecting external monitors to your laptop, you have to set your screen’s relative position. How about creating a system that that adjusts the external screen based on your position relative to the screen?
  20. A running shoe step monitor that tells a runner if they’re pronating their foot properly and recommends what type of shoe to buy.
  21. A gadget that lets you compare prices of a certain good while you’re at the store. Imagine you walk into Walmart and want to know if you’re getting a good deal on these headphones. Pull out smartphone/gadget, take picture, and a list of competitor prices shows up. (Kayak for real life).
  22. A toothbrush that tells you if you’re brushing your teeth too hard.
  23. Shoes that, as you’re jumping in the air, brace for impact by increasing cushion (I think laptops have something similar).
    s6
  24. A phone, that when placed on your bed, senses that you’re asleep and automatically moves calls to voicemail.
  25. Developing an alternative for knobs for music production programs (knobs are terrible to use with the mouse … we could just use physical knobs, but is there something more interesting?).
  26. Turn a laptop into a touch screen.
  27. Water dispenser that measure the amount of water in your cup (so it can stop pouring).
  28. Refrigerator that tracks what you have (and how much) and tells you what you need to buy.
  29. Sensor that reminds you to water your plants when the soil is dry
  30. Clothing that tells you if you’re slouching
  31. Clothing that indicates when it is stained / wrinkled / untucked, etc.
  32. Glasses that indicate whether or not you are straining your eyes too much (for example if you spend a lot of time in front of your computer screen).
  33. Headwear to help blind people navigate (senses when there is something in their path)
  34. Sound visualizer: Turn sounds to colors (for deaf people, or just to visualize sounds)
  35. System for dancers to learn moves that is synchronized to music. i.e. if they practice moves slowly, the music will play slowly, if they stop, it stops, etc.
    s2
  36. Similarly, an interactive system that responds to a dancer’s movements by generating both sound and visuals, allowing the dancer to control an entire multimedia performance (not necessarily just for practice).
  37. A similar system that compares a dancer’s moves against a previously recorded prototype (say by a teacher), so it can show mistakes in practice.
  38. A similar system for musicians to practice with an accompaniment track (slows down when they do, etc.)
  39. System that tells you if you have everything you need when you leave your room
  40. System that helps you find stuff in your room
  41. Live responsive software to music for a party : visuals are created according to the music played by the band/dj : sound, patterns, volumes. Possibility to use machine learning algorithms so that the software could recognize patterns in music
  42. Live responsive software to people’s movement in space for party: create visuals according to their movements: combining micros and kinects and use effects.
  43. Combine 40 and 41 : create a whole integrated systems for parties, where the experience keeps changing.
  44. Tools on shopping carts that reads your shopping list on a USB key. Then minimize the distance in the shopping mall and tells you where to go exactly on a screen placed on the shopping cart.
    s3
  45. Shopping cart as above, but instead of just telling you where to go, drives itself following the calculated path.
  46. Bike padlocks that have heating function (using a battery) so that the lock does not get stuck when it freezes (this happened to me a few times and it is very annoying).
  47. Electronic remote that can be used for all sorts of appliances: control your coffee machine, tv radio, etc.
  48. Same idea, except using voice and gesture recognition:  by saying “coffee”, “TV”, etc. turn things on or off, and by raising or lowering your arm change the volume (for example).
  49. Tool to plug and heat the coffee machine and make your coffee when your alarm clock goes off or when you go out of bed (in connection with idea 11) so that you do not have to wait in front of your coffee machine.
    s1
  50. System to drive a car using only eye movements, for paraplegics.
  51. Program that allows your to chance the source code file that you are working on without using the keyboard, so that you separate the functions of writing code and of choosing the file.
  52. A new way of accessing different directories on the computer that simulates files organized in a 3d space.

Idea Chosen

We chose idea #35: System for dancers to learn moves that is synchronized to music (i.e. if they practice moves slowly, the music will play slowly, if they stop, it stops, etc). We chose this because this (more than many of our other ideas) applies to a specific target user group. We also think that learning moves is a real world problem that our system could realistically help solve. Our system wouldn’t interfere much with users’ normal practice, which means it wouldn’t be hard for them to use. Also, since there are many dancers on campus, we would have access to the target user group for testing. It seems feasible in terms of budget, as it wouldn’t require very many parts. It would be a Kinect-based application, but as a second idea, we could also use tethers and other sensors (large flex sensors, etc). It also seems feasible in terms of work, and it is also a good starting point from which we can build on if we have time to extend the project (see ideas #36 and #37).

Target User Group

Dancers are our target user group. Although this system would ideally be useful for all dancers, it will be particularly interesting to work with dancers who want to introduce non-traditional practices in their performance, where their craft consists of an interaction with the music, instead of being treated as a response to the music. A very important aspect of our system is to minimize any limitations to their movement, and to allow the system to work in a large space.

Project Description and Context

A system to allow dancers to practice moves without disturbing their practice. Currently, if  dancers want to change their music during practice, they must stop and go to a device that controls the music (like a computer or iPod). This would disrupt their practice, as it would require a lot of back and forth movement unrelated to the piece that they wish to perform. Additionally, since there is no easy way of controlling the tempo of the music on the spot, a dancer must adjust their moves to the predefined tempo. This may work for performances, but is not good for practice, when the dancer might want to practice some moves slower (but still to the music). This whole process might be improved with a technical solution that makes the music follow the person, instead of the other way around. Dancers must spend a lot of time practicing and they generally have a set practice location. This means that the problem solution does not have to be mobile, and that the user group would be motivated to use it. One related solution is using a remote control, but this means that the dancer must carry the remote with them. There are also other gesture based control systems, but they require the dancer to interrupt their practice in order to display these gestures to control the system. Our aim to develop a more “intelligent” and responsive system, to make the practice routine as fluid and efficient as possible.

Technology Platform

We chose to use several sensors :
– Kinect would probably be the best and most useful since it can easily capture movements. This would capture the whole body movement of the dancer, as well as allow the dancer to move around the room. Also, since we can use gesture controls with the Kinect, this also means that the dancer wouldn’t have to walk from their practice location to say a computer or other physical interface to control the music. A Kinect platform would be the least disruptive to a dancer’s normal practice.
– In case no kinect are available we could use tethers: thanks to them it is possible to determine the position of the dancer and  their movements. However, the dancers would have to be attached to physical objects on stage which is not as practical, but could create interesting performance possibilities
– Flex sensors with an Arduino can also be used as well, though seem more difficult.

Sketches

sk1sk2

Team Varpex: Group Brainstorming

Group Mem­bers: Sam Payne, Pre­rna Ramachan­dra, Dil­lon Reis­man, Abbi Ward

Ideas for a Better World:

1. A device that can notify you when people open/close doors or enter/leave your room so you can track room occupancy remotely, for the benefit who cohabitate with someone and want privacy.
2. Track the number of people in dining halls with sensors at the door – trigger a movie or TV show or music when enough people have entered the room or when they have exited.
3. Put sensors on chairs so that dining hall table layout can be tracked to determine where there are free seats.
4. Make a device which tracks when people start to fall asleep by sensing when their head slouches and wake them up using a vibration or light
5. (Sketched by Sam) A jacket to help posture – senses when someone is slouching and gives them a vibration or stimulus to correct posture.
back
6. A set of utensils that give feedback when a user has brought food to their mouth too quickly (vibrate, retract head of utensil etc.)
7. When reading a book on the treadmill, a device that bobs the book up and down to match your head movement to make reading in motion easier.
8. Gloves that give feedback to adults (or children) learning how to type by offering feedback (vibration) when an adult types with the wrong finger, or incorrectly otherwise.
9. A ‘personal clipboard’ that a user wears so that the user has memory which can interact with the keyboard (metal contacts?) to quickly copy data onto the memory, which the user can then paste onto other computers.
10. A jacket which allows users to feel music using vibrations (helpful for the deaf, or people who want to feel the bass but want to avoid noise pollution).
Vest
11. Motorized robot which can create hand made soft serve ice cream cones – that way a person doesn’t have to do it (and it’s perfect every time!)
12. When ice cream is running low, people running the store don’t know – add a sensor to determine if ice cream in a container is low and a new bag of soft serve/container of ice cream must be retrieved so that not as much time is wasted.
13. Camera on glasses which can track eyelid movement and be controlled to take pictures hands free for people who want to take pictures while driving, rock or mountain climbing, doing other activities which do not leave their hands free to work a camera.
CameraGlasses
14. Train movements for walking after leg injury (give feedback on bad walking form) – can also be used for activities such as sports.
15. Glasses whose lenses go darker when bright flashes of light are detected to prevent seizures in epileptic patients.
16. Small modules which interact with each other for adolescent learning – simulating chemical reactions, abstract physics concepts such as force, etc.
17. Dynamic mood lighting based on frequencies in music – fast movement generates warm colors and slow music generates cool colors (hear the rainbow!), for people who are hearing impaired and can’t hear music.
18. Dogs need companionship – make a robotic trainer which is able to reward dogs but still provide remote interaction with owner, if dog is alone at home and owner is away.
19. Long distance communication with a dog via a robot that shows your face, has pre-programmed audio, a receptacle and thrower for a ball/biscuits – for people who leave dogs alone at home or with do sitters.
20. Play instruments remotely using flex sensors on your hands — elbow positions for trombone, finger positions for guitar/violin.
21. Use Kinect gestures to communicate and interact with a robot dog – for people who can’t own a real dog!
22. Detect when babies roll over in their cribs and sleep in wrong positions by using sensors in the crib.
23. Play frogger in real life! Speed sensors on body to warn you when crossing the street. Maybe for young children, or crossing mall highways which don’t have actual crosswalks.
24. Find your car in a parking garage and leads you to it using light or sound or some kind of directional compass.
25. Calorie counter of food, as a function of weight of plate at start of meal, that can notify you if you’re eating too much or that can be integrated with a mobile app to help you monitor your food consumption.
26. Embedded sensors in glasses so waiters know when to refill your drink
27. Sensors that warn students about backpacks that are too heavy.
28. Sensors that warn when music is too loud.
29. Backpack that senses when you are stressed and becomes a back massager
MassagingBackpack
30. Put out signal to a room and figure out where you should put dampeners for the best acoustics.
31. Use detectors on tongue to talk with your mouth closed.
32. A system that gives you feedback about your speed of speech or time left during presentations.
33. Use dancing to produce music, use Kinect to match beat to dancing.
34. Correlate good dancing to good music- suit of body sensors that detect movement, evaluate dance performance, produce music based on ‘quality’ of dance.(Variation on 33)
35. Sensing for epileptic seizures to notify those around you that you are at a health risk (detect the early signs that a seizure may start).
36. Automatic nail filer that files nail to the perfect level.
37. Device that monitors your alchol consumption, such as by tracking your breath or rate of drinking, and tells you to slow down your drinking privately.
*38. Tune your trumpet in real time by attaching a device to your tuning slide.
39. Feedback for learning instrument

  • trombone
  • violin

40. Track body movement to create art – dancing can become digital/visual art. Could also be built for the handicapped to make art.
41. Convert gesture to text in real-time for better remote interaction. Possible applications include ASL or understanding exorcisms.
42. Tune brass and other sections remotely so the conductor can easily tune the entire band
43. Sustainability: reinforce sustainable habits with rewards – anything from a text message saying thank you  to something more advanced
44. Robotic thermostat for students who don’t have access to actual thermostat. (Mechanically turns the knob)
45. Something that warns you of bad behavior that will affect you in the long term

  • biting nails
  • picking your nose
  • keep your legs closed while sitting
  • grinding your teeth
  • snoring

46. An umbrella that responds to wind and tilts to give you the most coverage. It tells you which way to tilt using an array of LED’s.
– It could also light up and play music when it’s raining to cheer you up!

47. Use head rotation as a method for computer navigation for those who cannot use traditional methods of navigation
48. Use sensors for an interactive lifting trainer that will detect and correct your form and motivate you as the workout gets difficult.
49. Use the Kinect to watch where you are and only turn on lights in that direction.

  • Use for spotlights in theater
  • When you and your hot date are getting close, the lights dim

idea49

50. Create an iris scan for your entertainment system or computer so only authorized people can turn it on (parental control)
idea50
51. Make brushing your teeth easier for people who have limited range of arm motion. They can control with their hand where the brush goes using a map of the teeth they can hold in their lap.

ToothbrushIdea
52. A projector capable of projecting flat images onto surfaces which are not flat.

Final Project Chosen: Feeling your music

Problem Description and Context

Many people like to listen to their music at a high volume, not only because it is loud, but also because they can feel the lower frequencies. Many home theaters come with larger subwoofers that provide frequencies below hearable frequencies so that people can feel the effects of their movie. However, subwoofers of this kind are expensive, and playing music with loud bass tones can be irritating to neighbors. We wish to provide a solution to the problem of requiring high volume or expensive equipment to feel lower frequencies. This product would conveniently integrate with users’ listening habits. Solutions exist but are not widespread

Target User Group

Our target user group is people who want to feel low bass frequencies in dorms, apartments, or other locations which do not allow noise pollution. We are also targeting audiences which cannot afford expensive audio equipment – very often these are the same people who live in dorms and apartments. Specifically, our target audience would attend concerts which play for audiences who enjoy feeling the music. Electronic music festivals are especially attractive for those who like the feel music. These days, more electronic music genres such as Dubstep stress heavy basslines. To summarize in a few words: we are looking for people who live in apartments or dorms who do not have resources to purchase expensive sound equipment who like to listen to music with heavy basslines.

Tech platform

We’ve chosen to use the Arduino because it can perform Fast Fourier Transforms for analyzing audio frequencies quickly and we can easily integrate it with the hardware we will need to create vibrations. It is also portable (when combined with a battery pack) which will be critical to creating a wearable product.


Why we chose this idea

We chose this idea because the user group is accessible. There have been other trends in technology to match this same idea (approached in different ways) Skull Candy’s Skull-Crusher headphones attempt to vibrate the skull to provide concert-like experiences. We were torn between several ideas, and this project seems to match our group’s interest as the most exciting.

Yucht Dohan Saha Cheong Project 1

Team Members

Miles Yucht

David Dohan

Shubhro Saha

Andrew Cheong

Brainstorm

  1. Digital flute powered by light sensors for people who have limited lung capacity but still would like to learn to play. Varying aperture can modulate tone volume, and it could also could teach you to play interactively.
  2. For young, urban professionals who don’t carry mice with their laptops, one could have a credit-card format mouse that is thin enough to fit in your wallet.
  3. I want a computer I can wear around my neck and interact with by holding up my fingers, a la Sixth Sense, if you work in the field where it’s difficult to set up your laptop.
  4. For people who can’t control a mouse with their hand, they could move a ball with their feet to control their cursor.
  5. For more effective group meetings, a giant electronic collaborative whiteboard with physical interface such that everyone could edit it simultaneously. At one time, everyone would have the same view.
  6. If you want a copy of notes from today’s lecture if you couldn’t make it, a device that records a teacher’s notes on the blackboard and processes them into a PDF which would be available right after lecture
  7. If I’m paralyzed or shopping from home, I want to be able to try on virtual clothing to see what I would look like without having to actually put the clothes on my physical body.
  8. If I have no fingers, I could still control my TV with Kinect gesture/voice
  9. Learning to jump rope is hard. It would be easier with a jump rope that gives you feedback on what you need to adjust to become better, and it could teach you new tricks and save scores/records.
  10. Instead of hiring a personal trainer, you could instead buy a device that would record you exercising and give you feedback, such as squatting or golf swing, to improve your technique and lower your chance for injury
  11. Markov-based model for predictive typing to guess the next word you’re going to type in your phone/sentence so you can text faster, for those of us that are horrible spellers.
  12. If you want to learn how to dance, but the DDR style doesn’t appeal to you, pads on the ground could light up, playing back a dance step tutorial, to teach you and perhaps a partner how to dance.
  13. Learning to skateboard is hard, so my skateboard could detect foot placement to give feedback when learning to ride the skateboard.
  14. I want my mirror to sympathize with me. By analyzing my face, my mirror should give me words of encouragement if I look like I’m feeling down in the morning.
  15. Use gestures to control the multitude of lights in large rooms or in rooms where light controls are not easily accessible, for handicapped people or those interested in making dramatic entrances/exits.
  16. For parents who want to introduce their young children to instruments, one could use a plant as a musical instrument by measuring flexing in the plant. This would require minimal technical skill and would also have the performer interact with nature.
  17. For those college students that have a hard time waking up in the morning, a wake up alarm that won’t reset unless subject to the most violent conditions, like throwing it or slamming it
  18. Use Xbox Kinect to give feedback on how to improve your posture if you have posture-related health issues.
  19. For someone who can hold objects but has trouble typing, one could use physical gestures or general input device motion as passwords, as opposed to a typed text string.
  20. For someone who has no motor control in their hands, a phone-like device could speed-dial numbers and interact with the user according to patterns of blowing air.
  21. Device should detect butt location to infer how well someone is paying attention in an audience. More complicated: body language inference from camera at front of room (the inference step might even be doable with the same seat sensors as well)
  22. Authenticate based on a laser key based on uniquely-shaped objects in a 2D/3D laser field. Stick your hand in there if you want
  23. Create a sensor in bed that turns the lights off when there’s someone laying down… or two. Could trigger many possible actions such as arming house alarm etc
  24. Devise a sensor in the bathroom that makes you aware of the number of bacteria on your hands as you wash them
  25. Flush a toilet by blowing air into a sensor, reduces germs on contact
  26. Enable computers to teach and/or read sign language, perhaps with XBox Kinect
  27. Create a system that detects facial emotions so they can be used in focus groups to more conveniently collect data
  28. Blowing air into a sensor to create a beatbox drumkit that people with disabilities can use
  29. An algorithm can analyze keyboard typing sound patterns to infer what type of activity is being performed, use to evaluate student attention levels in lecture
  30. For people who can’t speak loudly, voice-interaction systems should try to read their lips
  31. Rubbing your pocket to change tracks on iPhone on a cold day
  32. Utensils/containers that tell you if your food is too hot to eat… alternatively, containers that automatically heat up food that is too cold
  33. For people who use the same computer over the course of the day/night, a program that takes into account ambient light and current display (maybe even type) to calculate the best values for brightness and other display parameters (gamma, contrast, etc.)
  34. Music playlist that automatically changes to suit you as you change tasks
  35. 3D manipulation of models and visualizations (think molecules / proteins) with Leap, this is a much more natural gesture
  36. Use LEAP motion as an effective, cost-effective way to scan faces for authentication
  37. Play Rock, Paper, Scissors with LEAP to provide companionship for children
  38. Direct a virtual live orchestra using baton movements captured in LEAP. This can be used to train amateur conductors
  39. Integrate LEAP into clothing to make convenient computer gestures right in front of your body
  40. Control a quadricopter with tongue movements so disabled individuals can go beyond joystick interaction
  41. Violin that lights up on the frets to teach novices how to play songs
  42. Computer in backpack with projector on chest to make a virtual piece of paper you can write on with a stylus (convenient, mobile notetaking)
  43. Reconstruct ping pong game based on sounds from microphone (triangulate landing and where it is hit)
  44. Control quadcopter or another electronic device with LEAP motion… it’s a far more convenient and natural gesture than joystick
  45. When you’re working out and don’t want to change your music player for fear of covering it with sweat or taking time off of exercise, your music player could measure your heart rate and the speed of the repetition of the exercise and generate a playlist of appropriate songs.
  46. Use Xbox Kinect to obviate human labor in semaphore training
  47. Billiards table that visually augments your game interaction, suggests ball movements to make the game easier for novices
  48. Control quadricopter by measuring movements in a 3D point cloud with an accelerometer… much more natural gesture than joystick systems.
  49. Eye-tracking system will move a vehicle (quadricopter) to the desired location being looked… for people with limited limb movement
  50. Teach children motor skills with a colored grid on the floor where they can play Simon Says with their feet

Sketches During Brainstorm

photo 1

Project Choice Justification

LEAP-based Authentication

One of our ideas was to use LEAP as a means of authentication using one’s face, a gesture, or a physical object. To us, the most clear application of this is for authenticating web services, such as for logging into one’s email or social media accounts. However, this kind of authentication is easily extendable to systems beyond web applications: for instance, one could use this to unlock doors or to control who can drive your car. Furthermore, the flexibility of LEAP means that any small, handheld objects could be used to identify you, such as a small tchotchke. With facial recognition, the username/password pair becomes obsolete because it is exceedingly expensive and difficult to recreate someone’s face to the precision required if you wanted to gain access to their accounts. The downside to this is that you’re exposing your credentials to everyone you walk past, so perhaps identity theft could become a real issue. However, this can be easily rectified by using a hand signal or handheld object to confirm your identity, like a password, that would be easy to keep hidden or hard to replicate. All in all, this seems like a very useful device with broad applicability that would allow people to spend more time going on with their lives and less time worrying about lost passwords and keys or simply taking time to login to sites, all in all with a high level of security.

Dance Dance

Games are generally really fun to play but often have no real-life applicability, such as the Guitar Hero franchise, whereas some tasks in real life can be somewhat droll to learn. Enter the digital dance floor, which could teach you to dance by lighting up tiles for you to step on in time to music. Here, the idea is that you would stand on a dance floor, which is composed of a set of transparent, square tiles. Each tile would be controlled by a single light source, the set of which would be managed by a computational device. By storing and replaying a pattern of lights over time, one could effectively recreate the steps of many dances. Then, using force-sensitive resistors underneath each tile, the accuracy and timing of one’s responding dance steps could be measured and quantified into a score, which would then be recorded at the end of the game. Additionally, multiple panel colors could allow for more than one player to participate in the game at once. This idea is also extendable, as there are many other modes for operation one could conceive of: for instance, you could have the lights respond to pressure, creating a dance floor that tracks how people move along it and lights up squares beneath people on the dance floor, or you could play a full-body version of Simon Says.

Detailed Description

Problem Description & Context. Reliable user authentication has been a perennial problem in human-computer interaction. How can a system verify that the user is who he/she claims to be? The prevailing solution varies on and off the computer screen. Inside the web browser, username/passwords systems ensure that the desired user is the only individual who knows the correct combination of inputs. Outside the computer, locks, keys, and RFID cards dominate the physical world to open doors and grant physical access. These solutions are not without challenges of their own. For example, what happens when a user forgets his/her password? The password recovery process is prone to hacking by email and phishing attempts. In the real world, physical keys and cards are liable to misplacement. We’ve all had a time we lost a key during our day-to-day bustle. Finally, an underserved segment of our population are those disabled individuals who cannot easily use existing forms of authentication. Consider individuals who have difficulty typing– username/passwords are a nuisance. Similar challenges are presented to individuals who have difficulty with traditional locks and keys. Our overall goal is simple, fast, reliable, user authentication.

Target User Group. Our target user group boils down to two types:

  1. Disabled Individuals– For reasons related to limited finger movement or arm motion, these individuals experience difficulty using locks/keys or username/password typed into web sites. They desire access to their favorite web sites and physical rooms behind locked doors.
  2. Public Computer Users– Institutions like a university are full of public computers that require username/password authentication. The time spent authenticating by keyboard could be better spent serving another user, thus reducing the overall demand for computing resources over time. These institutional users desire speed– whether its university students trying to print a paper before class or a business professional trying to get a meeting started as quickly as possible.

Technology. Leap is a sensor that is capable of detecting 3D motion for 3D objects. While photos and videos are a 2D mapping of the 3D world, Leap is able to capture the full scope of 3D reality. This benefit allows our idea to become more viable. In the case for facial detection, the Kinect or a photo app would not suffice because authentication can be thwarted by simply placing a picture of a certain individual in front of the sensor. However, this wouldn’t be a problem for the Leap since the 3D would take into consideration the depth of the image. For a 3D object, due to the sensitivity and precision of a Leap, other systems may not be able to detect the subtleties of our authentication object.

Sketches.

photo 2

Lab 1 – DigiSketch

Group 10:

  • Junjun Chen (junjunc),
  • Igor Zabukovec (iz),
  •  (av),
  • Osman Khwaja (okhwaja).

Description: 

This DigiSketch is intend to do renew the famous Etch-a-Sketch, providing a new way to write on the computer. The principle is quite simple : use the two potentiometers to draw lines of circles and the photo-sensor to change the color of them. You can basically write and draw whatever you want. Start by writing letters, basic forms, and continue by increasing the complexity of your drawings and to test how skillful you are, try to draw a circle. If the user is adventurous, the Processing program can be modified in order to use a different color palette, a different sized canvas, or a different pen shape.

Our system overall achieved its goal. However, the calibration of the photocell could be improved, in order to allow the user more precise control over the color. Perhaps a different sensor could be used for this purpose. To make the system more sophisticated, we could have three different sensors controlling red/green/blue, rather than a single sensor controlling the shade of one color, as we have now. In general, our system proves how easy it is to replicate the Etch-a-Sketch concept; the possibilities for refinement are vast.

Pho­tos of sketches:

A system which allows you to draw in Processing using two rotary potentiometers to control  position, and using a photocell to control color.

photo2

A system which allows you to control the playback speed of a sound file by flexing your finger.

photo

An LED night-light system: turns on the night light when it is dark.

photo3

Sto­ry­board: photo

DigiSketch in Action:

The Arduino and the circuit:

photo7

An example of different colors that can be obtained by varying input to the photocell:

photo6

An attempt at drawing a circle:

photo5

List of parts

  • Arduino, wires, USB cord, breadboard
  • 10 k ohm resistor
  • Photocell
  • 2 rotary pots

Instruc­tions for Recreation

Connect a photocell to the bread board, with a 10kOhm pull down resistor from one leg of the photocell the ground. Connect the other leg to 5V. Connect the point between the photocell and the resistor to analog pin on the Arduino (we used A0). Connect a rotary potentiometer the the breadboard so that one other pin is connected to 5V and the other outer pin is connected to ground. Connect the middle pin to another analog pin (A1). Do the same for the other rotary pot to connect it to A2. Use the attached source code for Processing and Arduino – the Processing program receives messages from Arduino in order to draw on the screen.

Circuit diagram:

photo4

Arduino Source Code:

/* COS 436 - Lab 1 - Group 10 */
/* A Processing drawing system using two rotary potentiometers
   and a photocell. */
/* The Arduino program communicates with Processing with Serial port. */

int photoPin = 0; // the photocell is connected to A0
int pot1Pin = 1; // the 1st pot is connected to A1
int pot2Pin = 2; // the 2nd pot is connected to A2

int photoReading; // the analog reading from the photocell
int pot1Reading; // the analog reading from pot1
int pot2Reading; // the analog reading from pot2

// minimum and maximum values for calibration of photocell
int photoMin = 0;
int photoMax = 0;

void setup(void) {

  Serial.begin(9600);

  // Calibrate photocell during the first five seconds
  while (millis() < 5000) {     // Read in value from photocell     photoReading = analogRead(photoPin);     // Record the maximum sensor value     if (photoReading > photoMax) {
      photoMax = photoReading;
    }
    // Record the minimum sensor value
    if (photoReading < photoMin) {       photoMin = photoReading;     }   }      // Establish contact with Processing   establishContact(); } void loop(void) {   // Only send messages when there is a connection   if (Serial.available() > 0) {
    // Read input from Arduino's analog pins
    photoReading = analogRead(photoPin);
    pot1Reading = analogRead(pot1Pin);
    pot2Reading = analogRead(pot2Pin);

    // Map sensor value to desired range
    photoReading = map(photoReading, photoMin, photoMax, 0, 255);
    photoReading = constrain(photoReading, 0, 255);

    // Send sensor reading as comma separated values.
    Serial.print(photoReading);
    Serial.print(",");
    Serial.print(pot1Reading);
    Serial.print(",");
    Serial.println(pot2Reading);
  }
}

// Establish contact with processing.
void establishContact() {
  // Send an initial string until connection made
  while (Serial.available() <= 0) {
    Serial.println("0,0,0");  
    delay(300);
  }
}
Processing Source Code:
/* COS 436 - Lab 1 - Group 10 */
/* The Processing program recieves input from sensors which the 
   Arduino sends by serial port. */

import processing.serial.* ;

/* Serial port for message communication. */
Serial port;

/* Drawing parameters */
float ypos;
float xpos;
float fgcolor;

void setup() {
  size(500, 500); /* Canvas dimensions */
  background(255); /* White background. */

  println("Available serial ports:");
  println(Serial.list());

  port = new Serial(this, Serial.list()[0], 9600);  

  port.bufferUntil('\n'); /* Read in one line at a time. */
}

void draw() {  
  fill(fgcolor, fgcolor, fgcolor); /* Set color. */
  ellipse(xpos, ypos, 20, 20); /* Draw circle with a center determined by pots. */
}

void serialEvent(Serial port) {
  String myString = port.readStringUntil('\n'); /* Read in a line. */
  myString = trim(myString); /* Remove leading / tailing whitespace. */

  int sensors[] = int(split(myString, ',')); /* Split CSV input into int array. */

  // Print out sensor values:
  for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {     print("Sensor " + sensorNum + ": " + sensors[sensorNum] + "\t");   }   println();      if (sensors.length > 1) { /* else input is incorrectly formatted */
    fgcolor = 255 - sensors[0]; /* Set color of circles */
    xpos = map(sensors[1], 0, 1023, 0, width); /* Set x-position of circle center. */
    ypos = map(sensors[2], 0, 1023, 0, height); /* Set y-position of circle center. */
  }
  port.write("A"); // Send byte to get more data from Arduino program.
}

Do You Even Lift?

Team Name:

Do You Even Lift?

Group Members:

Adam Suczewski, Andrew Callahan, Matt Drabick, Peter Grabowski

Brainstorming:

  1. Live music aid — Music device that changes based on movement/attitude of the crowd. Uses Kinect to sense motion, adjusts lights/sound/fog accordingly.
  2. Skateboard odometer/speeder to monitor travel data for the curious skateboarder. Communicates to watch display, or alternatively to LCD display on board.
  3. Device to display airplane information (flight number, etc) by pointing to an airplane.
  4. Gesture based interface for surgeons in OR — they can’t touch anything during the operation for risk of becoming not sterile, so a hands free interface for browsing patient records would be useful — also useful for other professions like butchers, potters
  5. Emergency condom delivery system — when you’re in an intimate situation where it may be inappropriate to get up and leave, send out a (private message) to a trusted contact that you need a special delivery.
  6. Display/Orb that indicates what club to go to based on where your friends are going to. One dial (with marks for each of the clubs) that integrates GPS data from friends and points to the club with the most friends
  7. There are frequently used commands in photoshop (any program, really). Create a pedal based interface to map to these frequently used commands, to allow users to enter input with their feet as well and increase throughput
  8. Secret knock or password to open door without key or prox. – motor to pull down on down handle
  9. Arduino in a house hears fire alarm and shuts off the gas line
  10. Full, new and improved smoke detector. Chemical sensor/light trap detects smoke. Alerts security company, calls your phone, takes pictures inside for insurance company
  11. Kinect interface that allows you to make gestures to change the channel, up the volume, turn it on/off. Voice recognition for Netflix commands, etc.
  12. Hardware interface for convenient ordering from seamless – does online ordering for a particular. One button for your favorite chicken parm, one button for sushi, etc.
    1. We could use mechanical turk to map orders to buttons so that the user doesn’t have to dig through the API – he can just say “2 slices pepperoni pizza from Dominos” and an anon does the hard work for 10 cents
  13. Automated shocking when user bites nails to help break bad habit. Could be kinect based, although that might be overkill. May be too hard to differentiate between “hand near face” and “biting nails”
  14. Device to wear while running that vibrates on your left or right side to indicate a turn coming up. Useful for novel routes — think about downloading other’s routes from a site like runkeeper and following them for the first time.
  15. Kinect/webcam at the gym watches you lift and identifies problems in your form
  16. Monitor lifting technique using force sensors in hands and feet to check if force is equal. Also use wrist watch with sensors on each leg/arm. Choose which exercise you are about to perform and get feedback
    1. Could integrate with Fitocracy or other account. Keep track of your progress
  17. Weight lifting equipment with sensors built in to check the balance of the bar. Sensors detect balance and movement of the bar itself to give feedback.
  18. Previous points assume you already know proper form and are looking to improve it. Kinect based system could teach you step by step, overlaying a video of your exercise with what a correct exercise would look like. Also uses voice cues.
  19. Help runners with running form using a treadmilll with force sensors to detect foot striking. Display foot strike data on a monitor to help runner’s technique.
  20. Detect when runners have bad form when tired and using sensors on legs and arms that can detect when they pass each other.
  21. Arduino detects when it’s too bright/dark in room and adjusts shades on windows. Useful for classrooms
  22. Arduino raises/lowers blinds to act as an alarm clock
  23. Arduino works as a physical thermostat by opening windows when the room is too hot and closing them when too cold. Could also turn fan on and off.
  24. Combine above three ideas for room maintenance system. Potential for cross communication — for example, it might be ok for the room to be dark and cold if you’re sleeping, but not during the day.
  25. System that photographs people entering lecture, builds real-time attendance list, and can select a random attendee to answer a question. Solves problem of tracking attendance (students can sign in other students on sign in sheet), as well as wanting to pick a random student to answer a question
  26. When you’re low on some household supply, scan your barcode on device, and it gets added to an online shopping list/shopping cart, such as fresh direct or amazon.
  27. “Smart Container.” Have plastic containers that can be filled with water, flour, etc. that automatically adds that ingredient to your shopping list when the container is less than a quarter full.
  28. Integrate the above two into automated kitchen. Containers and to-do list converse, to answer more complicated questions like “Do I have what I need to make cookies tonight?” or “What do I need to pick up at the store if I want to make chicken parm tonight?”
  29. Arduino locks your door while you’re busy programming (while you have an IDE open or while you’re typing code etc). Or more realistically, illuminates a “Do no disturb” light
  30. Single button to open IDE, enable warning light, and initialize brew of favorite coffee. Enter “programming mode”
  31. Arduino turns off toaster when toast is done. Can be done with a light sensor that can detect the change in color as it browns, or a light trap/smoke sensor (depending on how dark you like your toast.
  32. Arduino listens while you make popcorn and turns off microwave when popcorn is done
  33. One better – Arduino uses netflix API to detect that you’re starting a movie, and makes popcorn for you.
  34. Automated smoothie making with arduino. Preset options to streamline process.
  35. Light controls for cyclists — button to signal for left right turns, as well as breaking lights
  36. Arduino measures out ingredients for you in the kitchen — you enter in a recipe, and it dispenses the correct amount of flour, sugar, etc for you.
  37. “Weasley clock” — location of various family members on dial, if they’re in predefined locations
  38. Location sensors on valuable items, with dial indicator of where they are in the house
  39. Device analyzes tempo of sex and plays appropriate music
  40. Arduino resets your WRT-54G (router). Have an infrared or radio remote so you can do it from the comfort of your couch upstairs

a. Also keeps from you from having to go under the desk or somewhere inconvenient.

  1. Device adjusts oven temperature based on meat thermometer and maybe color of steak
  2. Arduino power control for dishwasher. Monitors power grid data, and turns on dishwasher when power cost is lowest (i.e., middle of the night). Reduces peak (max) power usage, and more evenly distributes power usage over the course of the day.
  3. An Arduino based system that works as an air freshener that detects bad smells and activates a burst of delicious smell. Could be useful for public restrooms, and potentially more efficient than timer based systems.
  4. In a car, Arduino continually monitors the air coming through vents. If it detects bad air quality it rapidly shuts the vents. It could check for skunk or nasty north Jersey refineries or smelly truck brakes.
  5. Arduino brews tea for you by removing the teabag at the appropriate time. Useful if you need to brew many bags of tea at once, with specific brew times (consider Teavana or Infini-tea)
  6. Bartenders place bottles on LED stand. When they go to make a drink, the appropriate bottles light up. Decreases time required to find the bottles, increasing bar’s throughput. Especially good for new bartenders. Also looks pretty cool.
  7. Above could hook-in with DJ system, for song-themed drinks. For example, when Margaritaville comes on, you could offer a half price special on margaritas for the duration of the song. “Flash sale” mentality would potentially increase drink sales. Bartending system could flash or otherwise indicate ahead of time, so the bartender could prepare for the imminent rush.
  8. Place microphones around room or other venue to sense volume. If speaker is too loud, lower volume levels. If speaker is too soft, arduino aims microphone to maximize sound captured (or raises volume levels). Could use tracking system to make sure microphone is pointed optimally at face
  9. Glove for conductor of an orchestra. They can’t move or gesture while conducting, but may need to communicate during the performance with audio/house staff or parts of the orchestra. Glove has buttons to send predefined messages, or alternatively has a one handed keyboard system
  10. Washing machine status light (for the living room, kitchen, etc.). Make it easy to see if your permanent press load is finished, so it doesn’t wrinkle while sitting in the drier.

Sketches:

IMG_2095

1) Live music aid
2) Skateboard odometer/speedometer watch
4) Gesture interface for messy hands
7) Computer foot pedals for commonly used commands.

 

IMG_2100

11) Gestures to change tv settings
36) Auto measuring of kitchen indredients
41) Oven meat temperature adjuster

IMG_2098

Clockwise from top left:
29) Door lock when busy
32) Popcorn / Toast monitor
41) Auto adjust thermostat
45) Auto tea-brewing
46) LED bartender helper
Bike brake lights/ turn signals

IMG_2097

21) Window shade adjuster
25) Camera for attendance
26) Household barcode scanner
27) Smart containers

IMG_2096

Clockwise from top left:
6) Friend finding orb
9) Gas line cutoff in fire
13) Bad habit/nail biting breaker
20) Running form detector
15) Lifting technique montior
12) Convienient food ordering
8) Secret knock to get in room

IMG_2099

17) weight sensors in lifting equipment to check technique
19) Treadmill foot strike detector
42) Run appliances (dish washer) at low times on power grid.

Short description:

Our first choice is a kinect-based trainer for the weight room. This device would use a camera and body-tracking APIs to identify problems in form and point out fixes. It could also provide a full tutorial on how to do the lift, useful for a complete novice. We like the idea because:

  • We can approach the problem from a few different areas
  • Kinect APIs should make it easy to watch the lifter and identify problems
  • The advice would be very useful to the end-user, as it would be a very inexpensive (free, probably) way to check your form and avoid mistakes that could cause injury
  • Commercial gyms are always looking to buy the latest gimmicky things


If we can’t have a kinect, our second choice is to try using a standard webcam-based system to the same effect, or to just go and spend all of our budget on another kinect.

If none of the above pans out, another project we are interested in is an Arduino-based window thermostat, ideal for dorm rooms. The device could open and shut the windows when the room is too hot or cold, and could roll up the shades in the morning when it’s time to wake up. We think this could accomplished pretty efficiently and would be useful for your typical lazy college student. It has room for extra goals in the form of learning and adapting to the user’s patterns.

Full Description:

Target User Group – The system would aimed primarily at novice weightlifters. The system could start from scratch, assuming no user knowledge of the lift, and teach it in stages. The system’s ability to identify subtle problems in form could be useful for trainees of all skill levels, though, as some common problems in form are very tricky to notice on your own (e.g. not having the back in the right spot on the back in a squat, or allowing the lumbar to round in a deadlift).

Problem Description & Context – We are looking to solve the problem of inexperienced weightlifters doing lifts inefficiently or dangerously by compromising their form. This solution could offer guidance on how to correct these problems, as well as more general advice on routines and workout programming. We envision addressing this in the weightroom, right where the user does his/her lifts. Users will have varying experience levels, and we don’t want to interrupt experienced lifters who would rather not be annoyed. Some users might have different or mis-concieved opinions on how a lift should be done, and might choose to ignore some or all of the advice given. Some users might have friends or (human) trainers with them to help out.

Technology Platform – We imagine this working with a Windows PC (probably one of our laptops initially) hooked up to a Kinect. This gives us body-tracking APIs that will make it much easier to identify what the user is doing. Unless these saturate the gym, they could be placed on something like a cart with wheels, so that it can monitor different exercises or from different angles. If the idea takes off, the technology could be incorporated directly into exercise equipment like squat racks.

More Detailed Design Sketches:

IMG_2102

-Using a kinect, monitor lifting technique and give the user feedback
-System can evaluate technique and also give instructions to user
-Can be built in to lifting equipment or implemented separtately

IMG_2101

-User will be able to select from different lifts they want to perform.
-Visual and auditory display will give feedback (“Good Job!”, “Keep Arms Even”…) as well as act as the interface for selecting lifts or receiving instruction.
-Monitor/Audio can show “ideal” lifts teach user.

IMG_2103

-Kinect watches technique.
-Forces sensors check balance/evenness

 

Light DJ

Light DJ
Ryan Soussan, Bereket Abraham, Lauren Berdick, Andrew Ferg

Description
We used Processing and the Arduino to map a color wheel to the multi-color LED. On the computer screen, Processing displayed 3 overlapping circles, which were red, green, and blue. The mouse’s distance from each circle’s center corresponds to the intensity of that color. We then send those values to the Arduino and use them to set the brightness of each LED color. The only problem we encountered was the mismatch between the RGB mixing from Processing’s color values and the actual mixing of red, green, and blue light. When the LED mixes all 3 colors at equal intensities, it creates white light; however, mixing red, green, and blue in Processing creates a dark black-brown, creating a discrepancy between the GUI and the actual LED output.

Parts
1 computer (to run Processing and Arduino)
1 Arduino Uno microcontroller
1 multi-color LED
4 jumper wires
3 330 ohm resistors
1 small breadboard
1 piece of wax paper to diffuse the LED

Instructions

2 of our design sketches:

LightDJ3LightDJ4
Install Arduino and connect the board to you computer. Use the Blink and Dimmer tutorials to make the LED turn on. Remember to include a resistor for each pin. Use three PWM pins (~) so that you can modulate the brightness of the LED (these let you mimic an analog signal using a digital output). Test the different ends in order to match each pin to a certain color, and then encase the LED and mini-breadboard in wax paper to diffuse the light.

Front and back views of our little contraption:

LightDJ

LightDJ2

Now go to Processing and make your GUI. We represented the color wheel with 3 circles in a triangle (go to the color tutorial at processing.org). Make the circles slightly transparent so that they can overlap and mix. We then mapped the distance from each circle to the intensity of that particular color.

Our Processing GUI:

LightDJ5

The last step is to send the Processing color values to the Arduino using serial communications. Convert the color values calculated by Processing into bytes, to ease serial communications, and have the Arduino read the bytes one at a time, and set them to the corresponding color values. (For debugging, it may be useful to have the Arduino print the RGB values back to the serial port)

Source Code

Arduino:
#define RED 6
#define GREEN 10
#define BLUE 3

int rByte = 0;
int gByte = 0;
int bByte = 0;

void setup() {
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
Serial.begin(9600);
}

void loop() {

while (Serial.available() < 3) {};

// if there are any serial bytes available to read
if (Serial.available() > 0) {
// then read the 3 bytes, sent in order R,G,B
rByte = Serial.read();
gByte = Serial.read();
bByte = Serial.read();
}

// write the RGB values to the LED outputs
analogWrite(RED, rByte);
analogWrite(GREEN, gByte);
analogWrite(BLUE, bByte);

//Serial.write(rByte);
//Serial.write(gByte);
//Serial.write(bByte);
}

Processing:
import processing.serial.*;

int r = 390;
float rr = 0;
float gg = 0;
float bb = 0;
int b1,b2,b3 = 0;

Serial port;

void setup_port() {
port = new Serial(this, Serial.list()[0], 9600);
}

void setup() {
size(600, 600);
colorMode(RGB, 255);
noStroke();

setup_port();
}

void draw() {
background(255);
//blue circle
fill(0, 0, 255, 255);
ellipse(300, 200, r, r);
//green circle
fill(0, 255, 0, 150);
ellipse(200, 400, r, r);
//red circle
fill(255, 0, 0, 150);
ellipse(400, 400, r, r);

rr = sqrt((400-mouseX)*(400-mouseX) + (400-mouseY)*(400-mouseY));
gg = sqrt((200-mouseX)*(200-mouseX) + (400-mouseY)*(400-mouseY));
bb = sqrt((300-mouseX)*(300-mouseX) + (200-mouseY)*(200-mouseY));

rr = 255 – rr;
gg = 255 – gg;
bb = 255 – bb;

if (rr < 0)
rr = 0;
//  else if (rr < r)
//    rr = 255;
if (gg < 0)
gg = 0;
//  else if (gg < r)
//    gg = 255;
if (bb < 0)
bb = 0;
//  else if (bb < r)
//    bb = 255;

fill(rr, gg, bb, 255);
ellipse(0, 0, r, r);

b1 = (int)rr;
b2 = (int)gg;
b3 = (int)bb;

byte[] rgb = {(byte) rr, (byte)gg, (byte)bb};

port.write(rgb);

println(“Sending:”);
println(b1);
println(b2);
println(b3);

if (port.available()  > 0) {
println(“Reading: “);
println(port.read());
println(port.read());
println(port.read());
}
delay(5);
}

Team GARP – Project 1

Team Members

Gene Merewether

Alice Fuller

Rodrigo Menezes

Phil Oasis

Brainstorming

  1. Device for determining friends’ drunkenness by making them perform motor tasks and gauging their responsiveness
    1. decreased respiratory rate – breath sensor
    2. loss of balance – stand on one foot, sense movement of person holding it
    3. slurred speech – record speech….
    4. depressed pulse –  test pulse
    5. erratic behavior – checklist of irrational behavior friends can check off
    6. loss of fine motor control – similar to baby toy of putting shapes into the correct locations, the move the sensor along the wire without touching it, simple game
  2. Baby toy to teach shapes with different shaped (polygon etc) blocks and appropriate holes for the blocks that recognize them and light up correct parts
  3. LED strip from “cold” (blue) to “hot” (red) that senses proximity to a tagged object and displays appropriate colors, to help make finding your keys fun
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyc3dZb2RQZjh1RVU/edit?usp=sharing
  4. Transparent DJ table that allows the audience to see the DJ’s work. Ordinarily, the audience does not see the work a DJ puts in.
  5. Keyboard that lights up when you are supposed to press a key. Preferably, something that can rollover an existing keyboard with a nifty interface to allow you to choose songs to play. Some implementations of this exist, but they suck.
  6. a device than can test the security of rock or ice before stepping on it.
  7. Device that allows you to tilt and turn your hands to control a remote control airplane or Quadcopter. Less scary/more natural for kids than a remote control
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyWDFzTmZNUk93SUE/edit?usp=sharing
  8. An insulin needle with instruction that project or display before/during use.
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyODc3Tk52ZjM4Szg/edit?usp=sharing
  9. A ring that allows you to control your iPhone or mobile phone. Has a digital display that allows you to see your current song or text so you don’t have to pull it out. Essentially, the Pebble watch, but as a ring.
  10. massage display that projects lights onto the persons back indicating where and with what pressure to massage the person.
  11. A robot that plays ping pong. Instant ping pong partner.
  12. ring that integrates with google calendar/phone/blackboard and lights up as a reminder
  13. Cup with automatic drink instructions, and maybe shake/stir mechanism.
    1. https://docs.google.com/file/d/0B4_S-8qAp4jydWtXakVURXcyeFU/edit?usp=sharing
  14. Opera/Movie glasses that display the subtitles and allow you to zoom in and out. Some people love subtitles, other hate them and this would solve that problem so both people can watch.
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyUFFCajF4TG9IT3c/edit?usp=sharing
  15. A clipboard that digitizes notes.
  16. A device that a choreographer could use. First walk around the perimeter of the room to set the spacal place, it will then record the spatial locations of the choreographer as he/she moves, allowing them to look back at a recording of the movement patterns they made.
  17. A bag that will measure the weight of its contents. Memorizes previous weights and will tell you if you forgot something.
  18. A RFID pin that you can easily put on important objects that allows a bag or container to determine if you’ve forgotten to bring something.
  19. Shoes for elderly people to keep them from tripping. They have ultrasonic range-finders on them that see upcoming objects and start a cell-phone vibrate motor in the shoe to alert the operator
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyZkxJS21xZzk1WDA/edit?usp=sharing
  20. a coffee cup that indicates the temperature of the contents, preventing people from burning their tongues or taking a sip of cold gross coffee.
  21. A sensor connected to your legs that can sense if you ACl or achilles tendon is about to break and it will indicate that you need to stop exercising and stretch
  22. Connect a telephone to an elderly person’s hearing aid that turns on and calls the ambulance when an impact is sensed in the hearing aid.
  23. Jigsaw puzzles that allow you to change the background as you’d like.
  24. A training racket or watch that critiques your tennis/squash swing.
  25. A silent training violin
  26. Watch that measures pulse and motion and determines the right time in your sleep cycle to wake you up
  27. A belt of shirt that can help correct your posture helping to prevent back injuries and promote proper form while working out. It could send signals to your ipad or something to show what corrections need to be made to your posture.
  28. A coin that is needed to unlock your phone, like a physical key.
  29. A way to unlock your phone using a 3-D signature.
  30. A training flute that lights up when you need to press a note.
  31. A pen which digitizes what you’re writing, as you’re writing it
  32. A baseball or tennis ball that gives you information about its trajectory and path
  33. A fencing sword that shows how fast/bent the sword got in a bout and other information.
  34. Assisted driving gloves for the deaf that vibrate the hand that is in the direction of the next turn more as the turn approaches
  35. A device in a refrigerator that will text you when food is rotting.
  36. A toothbrush that glows if it goes over an area in your mouth that you should brush more.
  37. Multi-purpose two factor authentication apps. Authentication apps are becoming increasingly common on the app store for different services (GMail, etc.) and it would be useful to have one that is tied to your identity, so services only ask you to use one app.
  38. Building off of 16, a set of joint position sensing sleeves for knees, elbows, etc that remember body positions of dancers, martial artists, performers etc throughout a piece
  39. A clock that tracks and plots your sleeping habits
  40. A pillow or blanket that senses the occupants body temperature and adjusts its heat so as to optimise the person’s temperature. It could track the information and allow you to look back at the data. It will always be the cold side of the pillow.
  41. Similar to 14, a collaborative movie watching experience where people can post stuff on another screen next to the TV so people (especially parents/younger siblings) don’t talk to ask questions about plot etc.
  42. A scanner which you upload your grocery list to, and removes them from the list as you then scan items that you get
  43. Shoes that measure your gait and critiques it/helps it.
    1. https://docs.google.com/file/d/0B6XMC9ryo5M5R1FiaXBvQk5PdDQ/edit?usp=sharing
  44. A training drum kit that glows with the beat and tells you how off you are. Or something you can add to a drum kit that does this.
  45. Automatic gavel for a meeting. If it gets too loud, it will gavel automatically.
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyZ2Z4VEd5ZmVJams/edit?usp=sharing
  46. Stethoscope for taking a patient’s pulse/blood pressure in loud environments that changes the brightness of lights based on sound level in the earpieces
  47. A soccer ball that detects when it has crossed a line, and lights up to indicate that
  48. A watch that if you lick it will let you know if you are dehydrated.
  49. Game controllers that make it harder to play if you’re winning, and easier if you’re losing
  50. A heat resistant temperature sensor that changes color based on the temperature of the object it is touching
  51. A bar that has weight sensors under each of the bottles. It can tell you how much you have left of everything and it automatically gives inventory metrics.
  52. Electronic labels for stores that allow you to change prices throughout the day. Comes with inventory software so you can code how the prices change with how much quantity is left.
  53. A ring or other object that monitors a stock price and changes colors unobtrusively to indicate price changes so you can look during a meeting
  54. A breadboard that lights up with instructions when you input a wiring diagram
  55. Attachment for the phone that can analyze blood in different ways – insulin, oxygen content, disease, etc.
  56. A watch that will not let you fall asleep. Detects drowsiness and gives the wearer and nice shock.
  57. Digital chips that let you spatially organize emails or texts
    1. https://docs.google.com/file/d/0B4_S-8qAp4jyZUlEb0tYMEZSZGM/edit?usp=sharing
  58. Headphones that sense when you’ve fallen asleep, and can be used for noise cancelling or to wake you up after a fixed amount of time
  59. An interface to flip through ebooks using a kinect.
  60. A coatrack that tells you which coat you should wear today via a light up hanger / that gives you metrics on which clothes you use and which ones you don’t.
  61. A laundry bag that texts you when it is full
  62. Building on 60, an automatic coat checker! No humans required, very efficient and secure.
  63. Kinect application to sort through emails spatially
  64. A digital chip and map based application which gives you streetview or a picture from where you put the chip

Project Choice

We will be building a pressure-sensing insole for running shoes. We will place several force sensors on the footbed, and use the output to coach runners on proper gait. It is common for runners to require additional weight or support on either the inside of the sole or the outside of the sole. This project could be used in shoe stores to allow vendors to advise potential customers on the best type of shoes to wear.  Currently, in order to get gait analysis, you must go to a specialty running store, which will videotape you while running in order to analyze which parts of your feet hit the ground first.  With a pressure-sensing insole, this analysis can be done much more accurately, allowing runners to select insoles or shoes which best suit their gait.  Furthermore, the inclusion of live feedback would allow a runner to dynamically modify their running technique to best use energy.

We picked our idea because we have a specific user type, helping us narrow down the idea. Also, we felt it was the right scope for our group project. We also believe that starting simple is a good goal and the potential expansions to different areas are intriguing. This could also turn into a balance trainer using vibrating motors to give feedback on balance, for example.

We also think that there are a lot of directions to expand from this project – we can expand to other sensors in the leg and provide deeper diagnostics. We’re interested in making an intuitive user interface for people not experienced with computers. Presenting the collected data in an easy-to-understand way will also be a challenge. Existing solutions have a complex and unfriendly user interface that isn’t attractive to less computer-savvy users.

Detailed Description

Target User Group

Our target user group is employees and customers of Princeton Running Company, who we will have access to through in-store visits. Customers want to compare different models of shoes during a short in-store experience. They hope to find a pair of shoes that will be healthy for their feet. Customers also enjoy involving technology, and will enjoy the experience of “seeing” comfort or discomfort. Employees want to show their expertise to help put the customer at ease, and give the customer additional basis for making their decision.

As well, we may test the device with students using treadmills in Stevens Fitness Center, or with trainers associated with Varsity teams. Princeton students love analyzing things, and so will like making their run more comfortable with technology. Trainers will appreciate being able to visually demonstrate to their athletes when they are running.

Problem Description and Context

The employees of the Princeton Running Company will want a product that will help them sell shoes and be a trusted company. To do this they will need a product that is accurate so that customers leave happy. They will need something that does data analysis quickly so that the client does not need to have any extra wait time. They will want something aesthetically pleasing and easy to use so that they can quickly understand how to use it as well have something that the customer will want to look at. The customer will want something that feels comfortable and does not affect the way they run. They will want a visual result that they can easily understand so that feel that they are learning something about how they run as well as have trust in what the employee is telling them.

Trainers are likely to have similar desires as the store employee, but they will be more focused and accurate and in depth results. If they are actually trying to help improve an athletes running style or figure out what areas of the body the athlete need to strengthen they will need a very clear look of the precise areas that are receiving pressure. They might also want a comparative diagram or color system that shows how different the athletes pressure dispersion is from where it should be.

It is difficult to analyze gait and running form in a quantitative manner. This problem arises in many different scenarios: coaches looking to advise their athletes, shoe store customers looking for shoes with the right support, and doctors looking to provide more information to physical therapy patients. Many solutions to this problem still involve videotaping, which is inexact and inaccurate. Some products have recently entered the market with pressure sensor soles, such as the Tekscan F-Scan In-Shoe Plantar Pressure Mapping System, but it remains a largely unsolved problem for everyday use. Also, this system does not allow handheld/portable feedback, which would allow easy integration into sports.

The best possible scenario is to allow the system to provide easy-to-understand instant feedback. Hopefully, this would allow the user to play with the device and associate how different movements put pressure on their feet on the fly. It would also allow vendors to allow customers to A/B test shoes and make the system require less effort to use.

Appropriate Technology Platform

We are planning on making an Arduino-based system. The primary hardware element of the our project is pressure sensors, which can be easily linked to an Arduino. The data from Arduino can be easily read into a system and we can choose from a variety of different platforms to show data.  Because of the small form factor of the Arduino and associated parts, we envision the prototype including an ankle strap to hold those components.

Ideally, this would be able to provide live feedback to the user as they were running.  This would have the benefit of allowing the user to dynamically adjust their running style.  While this would be technically difficult, it might introduce another use for the product by allowing the user to change their gait mid-run and use less energy.  However, in order for this to be a viable product in that sense, it might be necessary to manufacture multiple models of insoles with different types of support.  This idea would add another level of complexity, but would also allow the insoles to be worn on a regular basis.

We envision that the greatest benefit of the product would be in post-run analysis.  The pressure sensors could act as a sort of pedometer, and help judge when new shoes are required.  Furthermore, after a run, the user could receive feedback on how their running style changed as they tired, and on what types of shoes they should purchase for running.  While these reports may seem trivial, they would help runners reduce injuries and accurately select shoes that best fit their running style.

Photos

Product in Use:

https://docs.google.com/file/d/0B6XMC9ryo5M5MVY1NmFwRy01WHM/edit?usp=sharing

Sensor Layout:

https://docs.google.com/file/d/0B6XMC9ryo5M5bkt1ZEVveklYNEk/edit?usp=sharing

Display Watch:

https://docs.google.com/file/d/0B6XMC9ryo5M5NFVZWGpOWFgxODg/edit?usp=sharing

Lab 0: Groovy Lava Lamp

Group Members

  • David Dohan
  • Miles Yucht
  • Andrew Cheong
  • Shubhro Saha


Description
In a moment of ‘70s nostalgia during our lab brainstorming session, we decided to build a lava lamp. Not only did we want to reproduce the brilliance of the original lava lamp, but also our objective was to creatively extend its capabilities. In particular, our innovative lava lamp allows the owner to change the lamp’s color/brightness with an interactive slider and switch between color/brightness modes witha push button. The milk and oil lava produced a unique texture of very fine bubbles which act as an excellent light diffuser. Our final product turned out to be a great success. It’s not perfect, but it changes color according to the user’s input and turns on when the room lights are turned off. The code written for this interactivity is our proudest feature, and there are several areas of improvement. The lava lamp is hardly robust—electrical connections inside the test tube had to be completed with paper clips because alligator clips were too large. With more time, we would’ve made it less obvious that the lamp is a crude Princeton water bottle with a test tube dropped inside of it. However, it demonstrates a proof of concept, and it is easily expandable in the event that one would like to use more LEDs or add more modes. Additionally, we could improve the smoothness of the mapping from linear values (from the soft pot) to the color wheel.

Photos of Sketches

 

We considered making a reaction time game with Arduino.

We considered making an LED change brightness in response to ambient light levels.

photo

 

This is our final schematic for the lava lamp.

Video

Here’s a YouTube video of our final system in action.

Parts

  • Arduino Uno
  • Small water bottle
  • 12 mL test tube
  • Tricolor LED
  • 5 330-ohm resistors
  • Photoresistor
  • Button
  • Softpot
  • Vegetable Oil
  • Teaspoon of milk


Instructions
There are four components to this build: the lava and its container, the tri-color LED light source, the interactive controls (i.e., the softpot, photoresistor, and button), and the Arduino with associated code. We first built and tested the light source with the Arduino before putting it into the test tube. When building the light source, make sure that the way you connect the LED to the rest of the circuitry makes a difference: it needs to be slim enough to fit inside a test tube. To build the light source:

  1. Connect pin 9 on the Arduino to a 330-ohm resistor, and in series connect the cathode on the tri-color LED corresponding to the red LED. For the second connection you will want to use longer cables so that they can reach from your breadboard to the LED once it is suspended in the lava lamp.
  2. Repeat step 1 with pin 10 on the Arduino to the green cathode and pin 11 on the Arduino to the blue cathode.
  3. Connect the tri-color LED anode to ground, again using a long cable.
  4. Because these wires all have to be very close to one another inside of the test tube, we recommend using a small amount of electrical tape between connections so that you don’t short out any connections.

To build the interactive component (softpot and button):

  1. Connect the softpot to the breadboard with pin 1 at 5V+, pin 2 to A1 on the Arduino, and pin 3 to ground.
  2. Connect the button using a 330-ohm resistor according to the Arduino Button tutorial (http://arduino.cc/en/tutorial/button).
  3. Connect the 5V+ to a 330-ohm resistor in series with the photoresistor. Connect A0 on the Arduino to the conductor between these two resistors, and connect the other end of the photoresistor to ground.

To build the lava lamp:

  1. Fill the bottle with half water, half vegetable oil up to about ⅘ of the way.
  2. Add in approximately a teaspoon of milk.
  3. Shake vigorously.
  4. The resulting mixture should have a slightly yellow/white color but also have a large number of small bubbles (resulting from the mixture of water and oil).

Assembling the final product:

  1. After finishing the LED assemblage, insert the LED into a test tube such that, when the test tube is lowered into the bottle, the LED will be approximately half-way down the bottle. The point of the test tube is to keep the LEDs dry and away from the oil-milk lava. If you’re having trouble (as we did), you can try a larger test tube.  Ideally, you should solder and insulate the leads, but since we are not allowed to solder, our makeshift solution was to use paper clips to extend one of the cathodes so that we could connect to it using an alligator clip. Also, a small amount of oil on the inside of the test tube acts as a lubricant, so it is then a bit easier to slide the LED assembly inside.
  2. Lower the test tube into the lavalamp, and use tape to hold the test tube in place inside the bottle.
  3. Play!

Usage
There are 4 basic modes: one to set the color of the LED and one to set the brightness. Switching between modes is accomplished using the button. In the color mode, the softpot controls only the color of the LED along a color wheel. In the brightness mode, the softpot controls the brightness of the LED without affecting its color. The third and fourth modes are for cycling through different colors By the nature of the softpot, as soon as one stops touching the component, the resistance returns to a steady state. Instead of trying to identify instances when this happens, we also made a fifth mode that saves the current settings. In this mode, the softpot has no effect on the color or brightness. In the future, we might add indicator lights to identify what mode we are in at any given time, even though it is really easy to find out (just touch the softpot and see how the light changes).

Source Code

// Lava lamp code for HCI (COS 436/ELE 469)

/*
  The RGB LED has three cathodes and a common anode. Each cathode
  corresponds to a color in the LED and is independently
  controllable.
*/

//for color of the tricolor LED only. determines the size of the 
//set of values over which each color fades on/off while using the 
//softpot.
int range = 300;

/*
  In each set of variables RGBLED_xxxx and RGB_x_mid, the former
  corresponds to the pin being used for color xxxx. The latter 
  corresponds to the softpot value at which color x is at its greatest
  brightness.
*/
int RGBLED_Red = 9;
int RGB_R_mid = 100;

int RGBLED_Blue = 10;
int RGB_B_mid = 500;

int RGBLED_Green = 11;
int RGB_G_mid = 900;

//Arduino pinouts for each component 
int softpot = A0;
int photosensor = A1;
int button = 2;

//current color
int color = 0;

//current values for the intensities of each LED color
int rgb_r, rgb_g, rgb_b;

// brightness ranges from 0 to 1
double brightness = 1.0;

// mode is:
//   0: set color
//   1: set brightness
int mode = 0;

// psthreshold is the least amount of light needed to activate the lights
int psthreshold = 850;

// state variable is:
//	0: off
//	1: on
int state = 1;

//calculates the intensity of a color based on the current value of
//the softpot, the color’s RGB_x_mid value, and the range variable.
int getBrightness(double mid, double cur) {
  int t1 = abs(mid - cur);
  int t2 = abs(mid - (cur - 1024));
  int t3 = abs(mid - (cur + 1024));

  int test1 = min(t1, t2);
  int minimum = min(test1, t3);

  if (minimum > range) return 0.0;

  return 255 * (range - minimum) / range;
}

//sets the color for all three colors in accordance with the current
//softpot value
void setVals(int cur) {
  if (state == 1) {
	rgb_r = getBrightness(RGB_R_mid, cur);
	rgb_g = getBrightness(RGB_G_mid, cur);
	rgb_b = getBrightness(RGB_B_mid, cur);
  }

  writeToLED();
}

//sets the brightness of the LED according to the current 
//softpot value
void setBrightness(double cur) {
  if (state == 1)
	brightness = cur / 1024;

  writeToLED();
}

//actually sets the PWM pins to the values dictated by the current
//color and brightness
void writeToLED() {
  analogWrite(RGBLED_Red, rgb_r * brightness * state);
  analogWrite(RGBLED_Blue, rgb_b * brightness * state);
  analogWrite(RGBLED_Green, rgb_g * brightness * state);
}

//switch between modes
void toggleMode() {
  mode = (mode + 1) % 5;
}

//setup each LED and button
void setup() {
  pinMode(RGBLED_Red, OUTPUT);
  pinMode(RGBLED_Blue, OUTPUT);
  pinMode(RGBLED_Green, OUTPUT);
  pinMode(button, INPUT);

  Serial.begin(9600);
}

void loop() {
  // Check to see if there is light in the room using the
  // photoresistor. If so, set the output to 0. Otherwise, use the
  // softpot.
  int current_light = analogRead(photosensor);
  int current_soft = analogRead(softpot);
  int button_state = digitalRead(button);

  if (button_state == HIGH) {
	while (digitalRead(button) == HIGH);
	toggleMode();
	Serial.print(mode);
	Serial.print("\n");
  }

  if (mode == 0) {
	setVals(current_soft);
  } else if (mode == 1) {
	setBrightness(current_soft);
  } else if (mode == 3) {
	color = (color + 1) % 1024;
	setVals((int)color);
  } else if (mode == 4) {
	color = (color + 1) % 2048;
	setVals(color/2);
  }
}