Horia Radoi – Assignment A2

Observations:

 Most observations were done in my day to day activities, by identifying issues I confronted myself with while at Princeton. Some came up during discussion with my friends in Colonial Club, and others during my daily activities or my past experiences.

I have observed both people rushing to class, both in golf carts (injured athletes or students) and on bikes (who had to slalom between studeents wearing headphones or just not paying attention to their surroundings).

In my PHI 203 lecture, I see a lot of people come into class, and just spending the full 10 minutes on Reddit or on Facebook. I overheard some people discussing the readings, but in the context of one of the students not having read the materials for class.

I remember some heated discussions in German class, in which people were debating how a word should sound like. I went into East Pyne and asked some students if they have such problems, and they said it is usually hard to say who is right because everybody is a beginner (Perhaps some professor input might help – similar to an audio version of Piazza).

My friend does not like squirrels and is completely terrified of them!

It is a pain to be in a new building (think engineer in McCosh or English major in the EQuad) and not know where the bathrooms are. Or worse, to know only about one bathroom and that to be full.

 

Brainstorming:

Some ideas were discussed with John O’Neill. Most of them came up during dinner discussions in Colonial (various members).

1. Autonomous Golf Carts – A self-driven golf cart that can pick you up from class and drop you off at your next one. This way the golf cart is no longer bound to one person, and more people can be serviced during a break time.
2. History of my seat – Since a lot of people use PFML, leave a trace of your thoughts as you enter the class and sit on your seat. Can be seat-specific or class-wide messages.
3. Class finder – for when you go in a new building for the first time and you don’t know where that class is supposed to be.
4. Classroom anonymous chat – Class-wide anonymous chat to enable interaction between classmates (have them open up rather than isolate themselves in facebook or reddit)
5. Assassins game – Game that computes all paths to class and gives you a target you might encounter. Your goal is to assasinate that target on your way to class (by taking a picture of them – with consent of course!)
6. Group doodle – a bit of collaborative and artistic fun (displayed on the projector). to be used ONLY before class.
7. Calorie counter for walks – provide basic information about your height and weight, plus your schedule, and if time allows it, this app suggests a route that will increase your walking time while not making you late (to gain that extra bit of exercise)
8. Map of closest restrooms, step by step directions and estimated waiting time. Could include some information about “quality of air” as well.
9. iDidNotReadThatTextCanYouSumItUpForMe (iDNR) – discuss and sum-up readings before class – anonymous and open to anyone. Collaborative reading notes.
10. What happened in the last hour? Twitter application that looks up the latest tweets of your friends and major information sources (CNN, BBC, Princeton, TigerAthletics etc.) that provides you a sum-up of the news that happened in the last hour – this way you will not miss anything important happening while you are in class.
11. Sounds Like This – Text questions and audio answers, with a voting system to choose the best/closest spelling of a word or phrase.
12. Squirrel tracker – for people who just want to avoid these critters (or admire themon your way to class). Help a young John Nash determine their day-to-day routines, so he can develop a Theory of Games (or did that already happen?)
13. Walk With Me – an app that computes a path that you and your friends can take together to maximize the time spent together (big problem in groups of friends who don’t live in the same res college)
14. Vote on playlist – choose song to be played on speakers next. People suggest youtube clips (songs), and the class votes on them. Whichever gains the most votes in splayed next. The professor can veto at any time, and the scoreboard resets at the beginning of every class.
15. Massive TRON game on the projector – lightcycles controlled by smartphone or laptop.
16. Weighted bike map – suggests a route that avoids choke points or heavily populated areas.

Motivation:

1. Golf Cart
Golf carts are most of the time parked, waiting for the person they were issued to or for their friend to use. Sometimes, the users may forget to charge the golf carts, or might be reckless with them. This prototype would be able to charge itself in designated areas, accommodate and serve more people and selectively distribute the fleet to cover the whole campus, while being aware of students and bikes on campus. Useful for increased efficiency and safety of students.

This process is necessary because of the current limitations in the number of people it can service and the restrictions of who can operate a medical golf cart (it is forbidden for people to use the golf cart if their right leg is broken, or they have back problems, or hand problems). Also, most of the time the golf carts are parked, or are sometimes operated in hazardous or irresponsible ways by friends of the injured “owners”.

Prototype available at: https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnTEliYjdhdVdjUzA/edit?usp=sharing

2. Calorie counter
We are all busy students, and sometimes we can’t find the time to exercise. Since walking is one of the healthiest and most natural means of exercise, this app suggests a route that will maximize your walking time in order to keep you fit and healthy.

Prototype available at: https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnTWkxUmhROUg3cG8/edit?usp=sharing

 

Usage:

1. Golf Cart service:

The user logs in with his Princeton ID. After the authentication, his identity is checked against a list of people who are cleared by the health center to use the application, and his position is identified (either GPS or LAN access point).

One connection has been made, the user will be notified of the availability of golf carts, their proximity and time until available again. He is then presented with a number of default choices (Next Class, McCosh – in case complications have arised, Athletic Training facilities, back to room or eating club) or prompted to enter his own location.

After he has made his choice, the user is provided updated information about the Golf Cart locations and eta until its arrival. He is also recommended to wait in a designated waiting area, and be prepared to board the vehicle as fast as he can. He will also be notified of the additional stops of the Golf Cart and identity of the future passengers.

Upon the arrival of the Golf Cart, the user has to scan his proxmity card once he is boarded in order to confirm his departure.

The Golf carts will continue to roam around campus, using short range sensors (stereo vision image processing and radars incorporated) to navigate through students. It will use a GPS service to position itself on campus and filter its position using vision processing to better identify its location. On an average run, the golf cart can fit two people, with the possibility of servicing more people the shorter and more efficient the runs are. After every session, the golf carts will return to a base station, where they will charge and wait for the next instructions.

 

2. Calorie counter

Simple user-interaction program that identifies your current location and accesses information about your future classes. It then recommends a fastest route to your next class, with an eta based on your average computed speed, and suggests alternate routes that would fit in the remaining time until your class begins, based on your average computed speed.

Once you have chosen your route, it will run in the background (maybe integrate with a music player), and notify you if you are running behind or are ahead of your schedule. It will provide the option of tracking you through GPS or provide you a status bar of where you are supposed to be right now on your chosen route.

 

User testing:

Both products are designated for minimalistic use on the Client-side, with most of the processing being done by the server side.

1. My “injured” friend Kevin trying out the Golf cart service:

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnV2ljemw4ZUVRZ28/edit?usp=sharing

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdndk84TzFaTG1iUEk/edit?usp=sharing

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnUElVT2dzYlhjM0E/edit?usp=sharing

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnelhKUlZEclFxNFU/edit?usp=sharing

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnbEtWNGZneFBvVU0/edit?usp=sharing

https://docs.google.com/a/princeton.edu/file/d/0B4WrajEYbtdnUFpvbTMtRGpyalU/edit?usp=sharing

 

Observations

During the prototyping process, a couple issues have been raised about the Golf cart service:

1. How safe will ti be for pedestrians, and what will one do if the golf cart “misbehaves”

2. Can the passengers still drive the cart? Why/Why not?

3. How will the students be made aware of the golf carts?

4. Will there be different “grades” of severity – ie. broken leg having priority over broken arm?

5. Can I introduce any address? What if I want to pick up my friend in Bloomberg and head together to the Street?

To address them, I have asked some of my friends, as well as people in some of my classes what they would think. These are the conclusions:

1. The golf cart will be equipped with an emergency stop button (or several), that will be easily reachable and will cause the golf cart to fully stop. An authorized programmer/public safety officer can deal with the problem.

2. no. While it is fun to drive such a golf cart through campus, its manual control could interfere with the server program. Besides, the vehicle will be autonomous anyway. Steering controls will not be removed from the golf cart in order for authorized mechanics to be able to manually pilot them, in case of a malfunciton.

3. Just as the current golf carts, they will be equipped with yellow warning lights and loud horns. While this could get the autonomous golf carts confused with normal ones, a paint change, or specific stickers could be mounted on the car. Of course, in addition to the sensors and cameras present on the car.

4. In the future there might be a distinction between different grades of severity. Of course people with locomotory disfunctions should have priority over people who can still walk.

5. The golf carts will have their hours of operation only during school hours. In addition to that, golf carts are restricted to a certain path on campus, even though some of the drivers choose to ignore the specified routes. This being said, at night, alternative means of transportation will be provided for injured athletes who wish to go party, or to return from a party.

Team Colonial – P1

Team Colonial:

Dave Lackey (dlackey@)

John O’Neill (jconeill@)

Horia Radoi (hradoi@)

Brainstorming ideas:

  1. (Concentration – sketched) Device that looks at what you’re browsing and shocks you / punches you when you procrastinate. Sketch.
  2. (Education) Interactive game that allows you to control things virtually that would otherwise be too dangerous (nuclear waste or dangerous chemicals).
  3. (Exercise) A game involving lasers that force you to exercise by performing quick foot movements in order to win.
  4. (Health) Laptop stand that raises up after a certain amount of time so that you have to stand (relieves back pain). Sketch.
  5. (Leisure) Beverage launcher controlled by voice.
  6. (Music) Virtual DJ board controlled by hand gestures.
  7. (Navigation – sketched) A device that taps your shoulder when you should turn right or left (vehicle or on-foot navigation).  Could possibly integrate with voice navigation. Sketch.
  8. (Other) Coding through gestures and voice (in addition to keyboard).
  9. (Other) Device that helps you wake up by giving you a challenging set of physical and virtual tasks to turn off its alarm mechanism.
  10. (Other) Pads under your sheets that slowly vibrate to wake you up. Sketch.
  11. (Robotics – sketched) A robot who crawls across a chalkboard to clean it when activated. Sketch.
  12. (Accessibility) Heads Up Display – Attached to your glasses and connected to your phone through bluetooth, displays information about callers, number of unread texts and/or emails. Sketch.
  13. (Health) Barcode reader for fridge – lets you know when your food is going bad.
  14. (Accessibility) Round touchscreen phone, that can be worn on your forearm.
  15. (Entertainment) A walking FURBY® toy, that can follow you around when it is hungry.
  16. (Accessibility) Local GPS/Wifi signal generators that can be attached to important devices that are easily misplaced(Phone, Keys, Prox, Backpack) – in order to find them easier.
  17. (Accessibility) Turning any display into a touchscreen by using a glove with an emitter attached to the fingers, which transmits a signal whenever it sense pressure (touching a surface), and 4 receivers placed on the corners of the display, which pinpoint the positon of the fingers.
  18. (Accessibility) Number 16 for generating 3D points by pressing a button and drawing in mid air (would require computer to see generated image/series of points)
  19. (Lifestyle) Travel mug with a heater incorporated, that heats your beverage whenever it gets too cold. Sketch.
  20. (Lifestyle) Backpack with a solar panel incorporated, which can recharge you phone or ipod.
  21. (Autonomous Vehicle) Cars that park themselves in a designated parking lot.
  22. (Autonomous Vehicle) On-campus golf cart taxi service for injured athletes – fleet of self driven golf carts that pick up and drop off injured students in an efficient way.
  23. (Lifestyle) Breathalyzer car start – you can’t start your car unless your BAC is in normal limits.
  24. (Lifestyle) Roomba/Helicopter that brings you a glass of water when you are in bed (autonomous or pre-programmed).
  25. (Lifestyle) Polarized TV programmes – two different programs running on the same device, but on different polarizing streams – you need a pair of glasses to watch your own show.
  26. (Lifestyle) Equipment that prepares a set breakfast when you wake up (start when you hit the alarm button on the alarm clock)
  27. (Lifestyle) Shampoo estimator – dispense enough shampoo based on the length of your hair
  28. (Lifestyle) Automated TShirt folder – give it crumpled Tshirts and it outputs them neatly folded.
  29. (Education) Piano assistant – load a music file and it teaches you how to play it on the piano, by lighting up the key you need to press.
  30. (Education) Number 29 for guitar – because guitars are cool.
  31. (Lifestyle) Device that changes the song on your ipod based on the intensity of your workout (mostly for running) or based on blood pressure. Sketch.
  32. (Lifestyle) Device that detects a song you dislike on the radio and replaces it with a song from your ipod (also serves as ipod charger)
  33. (Lifestyle) Glasses that light up if alcohol is detected in a drink
  34. (Entertainment) Racing game controllable with your steering wheel and car levers, for when you have to wait in the car for long times.
  35. (Lifestyle) Radar that detects how far you are from the car in front of you/ Alerts you when it has moved far enough – for stop-and-go traffic
  36. (Lifestyle) Camera incorporated in your eyeglasses, that can take an exact picture of what you can see.
  37. (Accessibility) Automatic page turner when eyes reach last element on page
  38. (Heath) Sensors improper posture, delivers some feedback – vibrations where incorrect.
  39. (Health) Use kinect to train user into proper lifting / workout form.
  40. (Health) Use kinect to detect if people are stalking you / behind you.
  41. (Health) Toothbrush that tells you if you’ve missed any spots
  42. (Lifestyle) Helping blind people shop for clothes, or just choose clothes in the morning
  43. (Lifestyle) Glasses with facial recognition so you never forget someone’s name, or perhaps those who have trouble recognizing faces, such as those with helps those with Asperger’s
  44. (Entertainment) Glasses that read the depth of objects in front of you, and recreates relative depth on a surface that can be felt (like a pinpression) — this way, a blind person could “feel” the objects and space in front of them (e.g. the way performers move left/right and forward/back on a stage)
  45. (Music) Using nerf guns as musical inputs (place in space alters note)
  46. (Lifestyle) Using myoelectric sensors to help amputees control machines (e.g. something that controls a paintbrush or prepares dinner)
  47. (Music) Rockband using flex sensors – someone plays air guitar or air drums, and the sensors on their limbs translate motion into a sound
  48. (Lifestyle) Travel mug with an LED that displays how hot a beverage is.
  49. (Lifestyle) Stereo cameras for glasses that can approximate distances.
  50. (Kinect) TV remote control using gestures.
  51. (Kinect) Martial arts/Krav Maga form/posture corrector in real time
  52. (Kinect) Light art – Use a Kinect controller to detect the position of a digital spray can, and based on its position, back project a grafitti drawing generated by the user. Sketch.

Idea Choice Explanation

For our project we are going with sensors that detect improper posture.  People who monitor their health and have seating posture issues could benefit from this.  A possible interface could be a simple set mechanism to set a desired posture, and then an alert mechanism to notify the user when they stray from the posture.  To reach this idea, the group members each picked his favorite idea and polled third-parties (students outside of the class) about their favorites.s

Check out our sketch here.

Project Description

Our target group of users are people who sit in chairs, are interested in monitoring their health through the use of technology and who have issues with correct posture and/or back pain.

It’s not too difficult to find out what good seating posture is.  Most people are probably already aware of it.  However, people almost inevitably end up twisting their body frames into unhealthy positions.  If people are aware that they’re straying from good posture, we believe that it will help them to stop straying.  For example, if they are slumping in their chair the product may alert the user about their mistake or penalize them in a virtual way.  This is a product that could be positioned during long periods of sitting.  Another important thing to realize is that they’re often sitting in a chair and in front of a screen, which makes the screen a perfect medium for relaying information about their posture.

One benefit of using flex sensors is that they can easily bend to any bodily contours. A preliminary idea involved creating a chair with properly-placed force sensors, but the arrangement of sensors would have to be reconfigured for each individual using it, unlike the flex sensors, which adapt to the shape of the user.  Additionally, flex sensors can be portable, allowing us to make the product accessible during other areas of life, such as with good weight-lifting posture.

A Game of Simon Sees

Group members:

David Lackey – dlackey@

John O’Neill – jconeill@

Horia Radoi – hradoi@

(Santhosh Balasubramanian)

Playing Simon Sees

The aim of our project was to create a wearable version of the classic game of Simon Says. As such, the goal of Simon Sees is to remember and duplicate the sequence of lights generated by the microcontroller. The player wears a pair of glasses with two lights, one on each side, which are diffused via straws to create a visible beam of light. The game begins by showing a light sequence of length 1, which the player must duplicate by pressing the corresponding buttons – lighting the straws to indicate his or her decision. After each successful level, an additional light is added to the sequence. When the user makes a mistake, a red LED light notifies the user, and he or she has to restart the game. Overall, we found our final implementation fairly successful, especially after decreasing the time between the lights in the sequence, which increased the amount of attention needed by the player. After spending time with our prototype and inviting additional users to participate, we discovered that future iterations should contain more than two sources of input/ouput and that the current interface for user input (two buttons) could be transformed into something more engaging and unique, such as auditory- or motion-based forms of interaction.

Click here to view our project in action!

Initial Design Sketch

Initial Design Sketch

IMG_20130213_230037

The Simon Sees interface. Note the red light used to notify a user when they make an incorrect move.

Players use the controller to indiciate which light they think is next in the sequence.

Players use the controller to indiciate which light they think is next in the sequence.

Additional Designs

1. Contextual Disco Ball

If our disco ball senses a low-light environment, it begins increasing the brightness of our LED’s (one red, one green, one blue,) which are placed inside of a semitransparent ball. The lights are pulsating, and the frequency at which these lights pulsate is determined by an interactive Processing interface.

sketch_ball

2. Slit Experiment

Using an LED light and a dark box with two thin vertical cuts in one side (at a known distance), generate an interference pattern on a wall by turning the LED light on inside the black box and pointing the side with the two cuts towards a wall (requires a dark room).

Page-01

List of Parts

  • 1 Arduino
  • 2 Breadboards
  • 2 Buttons
  • 3 LEDs (1 blue, 1 green, 1 red)
  • Alligator clips
  • 1 Pair of glasses
  • 2 Straws

Instructions

  1. Begin by properly placing the circuitry elements on the Arduino board. One button, which is used to trigger the left light, must use pin 13 and should be arranged to a schematic similar to that as described in the Arduino blogs. The button for the right light should be using pin 12. Our left, right, and red LEDs should be using pins 10, 11, and 9, respectively.
  2. In order to attach the LED’s to the glasses, use long wires that have been braided together. These allow us to alter where we place our LEDs while being fairly unobtrusive.
  3. Place LEDs in straws and tape them to the corresponding side of the glasses.
  4. Load the Arduino with the following code, observe the first light in the sequence, and copy – enjoy!

Code

/*
 Simon Says
 Repeat the sequence of lights given by the button inputs.
 */

// Constants 
int N = 10;
int RED_LED = 9;
int LEFT_LED = 10;
int RIGHT_LED = 11;
int LEFT_BUTTON = 13;
int RIGHT_BUTTON = 12;
int DELAY = 200;
int RED_DELAY = 1000;
// State variables
boolean isShowing; // Are we showing lights?
boolean leftLights[10]; // Each element is true for left, false for right
int i; // leftLights index
int level; // Game level

// the setup routine runs once when you press reset:
void setup() {

 // LEDs
 pinMode(RED_LED, OUTPUT);
 pinMode(LEFT_LED, OUTPUT);
 pinMode(RIGHT_LED, OUTPUT);

// Buttons
 pinMode(LEFT_BUTTON, INPUT);
 pinMode(RIGHT_BUTTON, INPUT);

// Init game
 reset();
}

// Reset game
void reset() {
 i = 0;
 level = 1;
 isShowing = true;
 generateLights();
}

// generate lights array
void generateLights() {
 randomSeed(analogRead(0));
 for (int j = 0; j < N; j++){
 leftLights[j] = random(0, 2);
 } 
}

// the loop routine runs over and over again forever:
void loop() {
 if (!isShowing) {
 checkInput();
 }
 else if (i < level && level <= N) {
 showLights();
 }
 else {
 // Stop showing lights
 isShowing = false;
 i = 0;
 }
}

// Check player input
void checkInput() {
 // Collect input
 int leftButtonState = digitalRead(LEFT_BUTTON);
 int rightButtonState = digitalRead(RIGHT_BUTTON);
 // Check
 if (leftButtonState == HIGH && leftLights[i]) {
 // Left hit
 i++;
 show(LEFT_LED);
 }
 else if (rightButtonState == HIGH && !leftLights[i]) {
 // Right hit
 i++;
 show(RIGHT_LED);
 }
 else if (rightButtonState == HIGH || leftButtonState == HIGH) {
 // Miss
 show(RED_LED);
 reset();
 }

 // Check level completion
 if (i == level) {
 i = 0;
 level++;
 isShowing = true;
 }
}

// Show lights
void showLights() {
 // Show lights
 if (leftLights[i++]) {
 show(LEFT_LED);
 }
 else {
 show(RIGHT_LED);
 }
}

// play light
void show(int led) {
 int d = DELAY;
 if (led == RED_LED) {
 d = RED_DELAY;
 }

 digitalWrite(led, HIGH);
 delay(d);
 digitalWrite(led, LOW);
 delay(d);
}