Assignment 3: Smart Kettle

Problem

Many hot prepared drinks are actually supposed to be prepared at temperatures significantly under boiling temperatures. However, when using a kettle, it is difficult to tell what temperature water is at, as the only feedback it can give is a whistling noise. Additionally, deaf and hearing impaired individuals are unable to tell when a kettle has reached boiling by listening to the whistle.

Solution

A Smart kettle that is able to keep track of the temperature of the beverage that it is holding, letting users know when to brew and drink different types of drinks.

Proof of Concept

The smart kettle would give users the ability to understand the temperature of the water that they are boiling by use of a series of different colored LEDs. For instance, red would serve as the hottest temp, denoting an appropriate temperature for making black tea or coffee,  yellow would serve as the next indicator for white tea/green tea or hot cocoa, green for drinking tea/coffee and blue for too cold. It uses an TMP36 temperature sensor to track the state of the liquid in the container.

a3_stateMachine

tempStateMachine480

A more accessible fridge

Problem: Fridges alert users when their fridge door is open by beeping loudly. For users who are hard of hearing, this is not a feasible indicator.

Solution: Fridge flashes a bright light to get the attention of the user to notify them that their fridge door is open

Proof of Concept: Using a ultrasound sensor, an LED and a SparkFun, I created a simple state machine. If the ultrasound sensor is sensing a distance of more than 20 centimeters it begins flashing the LED. Otherwise, the LED remains off.

Video :VID_20190909_231515

Fritzing and Arduino Code

Assignment 3: What to do?

As Herb Simon said:

“In an information-rich world, the wealth of information means a dearth of something else: a scarcity of whatever it is that information consumes. What information consumes is rather obvious: it consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention and a need to allocate that attention efficiently among the overabundance of information sources that might consume it.”

My workspace has more than enough information to constitute an overabundance, and as a result, I don’t know what to pay attention to. The most obvious culprit is the sticky note. They’re a great reminder, but once you have more than a couple of them, I don’t know which one is most urgent.

My proposed near-future solution is to embed a simple LED indicator into the post-it to indicate how long until it is due, so that at a quick glance, I can see what I should be focusing on without having to read each note and prioritize.

I would expect something like this could be feasible in the next five years with current trends in battery efficiency, low power IoT processors, the constantly lowering costs of the hardware, and the physical scale we’ve already accomplished (see image below)

I mocked this up using a potentiometer and digital input as a proxy for remaining time and status of completion:

 

notestate – Fritzing and Arduino code

Micro Wave

Simple State Machine:

A microwave has multiple states: OFF, COOKING, and DONE, ALERT USER. Part of this system is that by opening the door of the microwave, the cooking and alerting user states can be stopped.

Problem:

For those who are deaf or are hard of hearing, knowing when a microwave is done cooking is not perceived because normally the microwave beeps to notify the user.

General Solution:

A visualization means that would inform a user of the state that the microwave is in even when they aren’t watching the microwave itself.

Proof of Concept:

A Sparkfun Redboard Turbo with a potentiometer and switch. The potentiometer allows the user to control the amount of time the microwave is cooking. The switch allows the user to start and stop the microwave. In this case, the LED embedded in the Sparkfun Redboard Turbo board will be used to represent the state of the microwave.

Fritzing Sketch:

The Fritzing sketch shows diagrammatically how the Sparkfun Redboard Turbo would be connected to the potentiometer and switch. Not pictured is the LED embedded light on the actual Sparkfun Redboard that would be operated through code.

Video:

Files:

Assignment_3_Final

 

Assignment 03: SAFE SMARTPHONE CASE

Problem: 

Being distracted by a smartphone when we are walking is really dangerous. We lose our attention and we lose our sight and become “blind”.

 

General Solution:

I am going to design a smartphone case that is equipped with an ultrasonic distance sensor in front of it. It keeps tracking the surrounding while people are walking using a smartphone. When it detects an object that is closer than a certain distance, it warns the user using lights (or possibly vibration or other methods).

 

Proof of Concept:

When making a prototype, I chose red and green LEDs to visualize the warning sign. An ultrasonic distance sensor keeps paying attention to the front direction of a user while moving. When there is nothing in front of the sensor, it lights up green led and write “IT’S SAFE” on serial. When there is anything appear less than 10 cm, it lights up red led and write “WATCH OUT!” on serial.

 

Arduino Code:

SAFE_SMARTPHONE_CASE

 

Demo Video:

Assignment 3: Traffic Light For The Color Blind

Premise

I was driving a friend of mine that’s colored blind, and we stopped at a traffic light. I asked him, “how can you tell if it’s red or green or yellow?”

He said, “I usually guess. During the day I can see if the top or the bottom one is one, but at night it’s hard to tell, so I just wait and see if other people go, then I’ll go.”

I thought there must be another way to design traffic lights for the color blind, but for now, hope this solution helps.

Traffic Light Translator

The project reads which state the LED is on (red, yellow, or green), and based on that it prints on a screen the state in which the traffic light is on. Also, at the bottom it prints a countdown in seconds to how long you have left in that state.

This could also be useful to anyone, not just color blind people. For example, if something is blocking your view to the traffic light (i.e poor weather or giant truck in front of you), this display could exist in people’s cars and show you what state the traffic light is on.

For this to be implemented, there needs to be a way for the device to know which traffic light to read the state of, which I am unsure of how to do. Possibly, using GPS coordinates?

Proof of Concept

Code & Files

Alsanea_Files

Note: I did not include a schematic diagram because I used the board’s built in LED.

Visualizing Automatic Restroom Appliance States

Problem:

Automatic restroom appliances such as faucets and hand dryers are becoming increasingly popular in public and private applications alike. While this technological innovation has many befits in terms of convenience, sanitation, and energy efficiency, it is also the source of a great deal of frustration when things don’t function as intended.

All too often, I’ve found myself waving my hands vigorously underneath an automatic faucet to no avail. One of my main complaints about the interaction is that there’s no way to know which part of the state machine isn’t functioning properly. Could it be that the sensor isn’t seeing my hands because I didn’t position them properly? Is there simply a delay before water begins to dispense? Or is the sensor malfunctioning altogether?

Proposed Solution:

To solve this problem, I propose implementing a visual feedback system (using multicolored LEDs) to inform users whether any malfunction is due to their own error, or if it is a fault in the electronic system.

Proof of Concept:

I wired two different colored LEDs (green and red) to serve as a simple, intuitive, visual representation of the states of an automatic faucet. The LED s are directly linked to the infrared distance sensor that serves as an input to the system. If the green LED turns on, the sensor sees the user’s hands. If the red LED is on, the distance sensor is reading a value outside of its range, indicating that the electronic system is broken. In the case that the green LED turns on but water isn’t dispensing after a few seconds, users will know that there is malfunction in the hydraulic system.

Brief video demonstration

Assignment 3 ino

Assignment 3: Bedroom Way-finding

Problem: Bedroom floors (especially mine) are usually in constant states of disarray… but they are variable states of disarray. Sometimes I leave my backpack in the middle of the floor or pull my desk chair to the foot of my bed or any number of things. No matter the situation, everyone can relate to tripping on any number of items on the floor of your bedroom because the lights are off in the room… Can someone develop a way-finding system for rooms when the overhead lights are off to 1) avoid waking others in the room and 2) avoid stepping on/tripping over things?

Describe the general solution: In the smart house of five years from now, each floor would be equipped with pressure sensors and pinhole-sized LEDs. As someone wakes up and looks to leave their bed, they can press one button on their bedside monitor to see a softly-lighted, real-time path charted for them on their floor.  

Proof of Concept: Essentially, someone presses and holds the button on the console to turn the device on. While on, the device reads in data from the pressure sensors on the floor – wherever those sensors read in additional weight, those areas get marked as a location where an object was detected and then triggers the corresponding LED to not turn on. In effect, pressing the console’s switch illuminates (with very soft light, as to not wake up others in the room and to be easily identified by your own eyes adjusting to being awake) the locations in the room where someone can step to get to their destination. Eventually, using Machine Learning/AI techniques, the console could plot your best path to a certain destination given the time you wake up and your own tendencies (to the shower if it is 7am or to the fridge for a late night snack at 12:30am).

In this demo, I can press the momentary switch to simulate turning the whole system “on”. With the button pressed, I can apply pressure to one of the 3 round FSR’s which causes its corresponding LED to turn off, signaling that you should not walk in that position.

Assignment 3 (Sketch, Frtizing Files)

Assignment 3: Visual display of a state that does not have a visually observable state

If you have any questions, please drop me email and I’ll update this post.

Assignment 3: Visual display of a state that does not have a visual state

Due: 11:59pm, Monday, 9 September, 2019

What to turn in: For now, combine your sketch files and fritzing file in to a zip file and attach that to the post describing your response.

Define a simple state machine in hardware and software representing a real system, use visual information to describe the states.  We are looking for the simplest display to provide a person with what they need to know about the state of a system.

Accessibility is a good place to start looking for a problem.  There are some accessibility issues that effect everyone, say a lack of information about an ongoing task being done by a machine.  My clothes drier has lights to tell me what it’s doing, but I have no idea how long it will be until my clothes are dry.

Example solution:

A dishwasher has three cycles: wash, rinse, and dry.  A state machine for this would have a mechanical switch that starts the state machine, timers that lead it through each state, and some visual indicator of the current state.  One solution would be LEDs representing states and a digital display showing how much time is remaining before the dishes are dry.  Would you need three LEDs for wash, rinse and dry; or would two LEDs for “washing” and “drying” be enough?  If I know it’s in “drying” mode and in a hurry I could open it up, remove an item, then dry it by hand.

Physical Therapy Stretch Assist

Assignment 2: Physical Therapy Metric Assist

Problem: As someone who has dealt with a series of joint issues throughout college, I have often found it difficult to track my progress in terms of strength and flexibility. It is pretty much impossible to measure your own flexibility, especially in terms of joints like the wrist, and can be difficult to tell when you are at the right level of stretch(especially since overstretching can result in reinjury).

Solution: A wearable system that uses a series of flex sensors to see how far a joint is able to be bent in different positions. Ideally, the Arduino This would allow the user to be able to use both hands to perform stretches and exercises, and warn against any overextensions through haptic feedback through a series of dime motors, letting the user know when they are in the optimal position, and when they are overstretching.

 

Mockup

Device Requirements: Arduino Uno, 3.3v dime motor, flex resistor

Fritzing Sketch

Arduino Pseudocode

const int FLEX_PIN = A0; // Pin connected to voltage divider output

const int DIME_PIN = 7; // Pin connected to dime motor

// Measure the voltage at 5V and the actual resistance of your

// 47k resistor, and enter them below:

const float INPUT_VOLTAGE = 5;

const float RESISTANCE = 47500.0;

 

// Upload the code, then try to adjust these values to more

// accurately calculate bend degree.

const float STRAIGHT_RESISTANCE = 37300.0; // resistance when straight

const float BEND_RESISTANCE = 90000.0; // resistance at 90 deg

 

const float GOAL_ANGLE = 40.0; // ideal angle for bending

const float MAX_ANGLE = 55.0; // max angle for bending

 

 

 

void setup()

{

Serial.begin(9600);

pinMode(FLEX_PIN, INPUT);

}

 

void loop()

{

// Read the ADC, and calculate voltage and resistance from it

int flexCURRENT = analogRead(FLEX_PIN);

float flexVOLTAGE = flexCURRENT * INPUT_VOLTAGE / 1023.0;

float flexRESISTANCE = RESISTANCE * (INPUT_VOLTAGE / flexVOLTAGE 1.0);

 

// Use the calculated resistance to estimate the sensor’s

// bend angle:

float angle = map(flexRESISTANCE, STRAIGHT_RESISTANCE, BEND_RESISTANCE,

0, 90.0);

if(angle>MAX_ANGLE) {

digitalWrite(DIME_PIN, HIGH);

delay(500);

}

else if(angle>GOAL_ANGLE) {

digitalWrite(DIME_PIN, LOW);

}

Else {

}

delay(500);

}