Interesting State Machines

Similar to the Korean bath room state machine, this is a Japanese ramen booth seating chart state machine. It shows how many and which seats are empty.

This water kettle that my mom bought can boil water and also keep the water warm. When the light is red, it means the water is heating, and keep warm is not on. When the light is purple, it means the water is heating and water well be kept warm once it finished boiling. When the light is blue, it means the water is being kept warm.

 

Interesting state machines

  1. This device disrupts the listening of smart speakers until you initiate a voice command. (Source)

2. Food delivery robots (Source)

3. Interactive jewelry that glows differently according to number of people around.

Visual Rice Cooker States

When I thought about sounds that I rely on in the kitchen, the first thing came to my mind was my rice cooker. I realize that I rarely look at the screen of my rice cooker and heavily relies on the sound of it. In addition, the rice cooker often gives very inaccurate time estimates and sometimes it would take twice the time as it states, which discourages to look at the display even more.

Here is the p5js prototype.

It does still has the idea of a ‘bar graph’, but I was really trying to imitate how the rice change while during the cooking process. I played around with how the size of rice grows individually, and their arrangement and orientation.

Finally, I chose a constant number of rice throughout the ‘growing process’. Their x and y are almost done in perfect grids, but I added a little randomness to prevent individual rice from looking like rotating while maintaining the ‘uniform’ distribution.

I also wanted to show distinct different from the cooking states and done state, and I thought a background color change is more obvious/powerful than just the pattern change, especially when users are far away from the rice cooker.

Class 5, 15 Sep – State changes

Class Admin

who needs access to A10? We can only do it Tue night during class hours.

bookstore has not shipped yet. we will get tracking #’s when they do.

This is in the kit: ELEGOO UNO Project Super Starter Kit with Tutorial and UNO R3 Compatible with Arduino IDE

trying to deal with lost class time: an assignment for next tue, then a crit on the 24th that includes the assignment?

Review Assignments

what went right?

what went wrong?

The “thing like a pot” is a rotary encoder

Finite vs. abstract state machines

finite: what we’re doing in class, fixed states and paths

abstract: can modify itself to adapt to changes in data.

What’s a state machine in nature with interaction?

Reactive state machines:

Hourglass timer – set time, start, stop, reset

Arcade game – attract / play / reward

gambling devices slot machines

Murphy bed attached to lights

Interactive state machines:

content predictors on Amazon/Netflix/eBay, “if you like…”

advertising predictors, “if you like xxx we want you to buy yyy”

microwave that can adjust cooking time based on humidity (I have one of these!)

traffic lights with IR detectors for EMS vehicles

Picker robots

Music instrument as state machine:

https://www.humaninstruments.co.uk/instruments

What if state machines were smart(er)? What are interesting problems for them to solve?

What are predictive states machines? console gaming turned in to physical gaming

auto-aiming / target tracking

catch a frisbee (dogs know calculus)

Can made predictions based on history/sensors? Your car notices you’re a sloppy driver (exhausted) and limits your speed. Duolingo detects you’re having vocab problems and changes your exercises (this is an ASM, arguably).

Visual changes in state

  • Doppler shift in nature
  • lives / health in a video game
  • traffic slowdowns in Waze
  • intensity of light => time of day

Mini-assignment for Thursday

post some interesting state machines to Looking Outward

Natural Alarm

Lamp
Circuit

https://www.tinkercad.com/things/32OPOznpltn-stunning-curcan/editel?sharecode=ZzRkc6SEV4qRWETWBHUlpaVMg9w8RBxkgwzj03aXpbA

I do not know why but phone/mechanical alarms tend to give me migraines. (I think it’s because it suddenly creates a loud noise that wakes you up? not sure; but this is why I can’t take naps) So I just wake up corresponding to light. Yet I also sweat a lot, and I have been waking up in a gross state of mind because always wake up to the heat of the sunlight.
So I thought, what if an LED lamp works as an alarm instead of creating a loud sound.
I coded/made a circuit that has an LED that corresponds with the value of a photoresistor.
In real life, the photoresistor would be attached behind the blind so when the sun comes out, the LED lamp will light up without sunlight over heating the room.

Visual Timer

Problem

Time management is an important element in cooking. And it can get very difficult when there are multiple things that run spontaneously and need to be kept tracked of. Even through some cooking devices have their own timer, it is still difficult to pay attention to all of them once the there are multiple devices running. In addition, the devices are usually located differently across the kitchen.  Beeping sound is a great reminder, but it is difficult again if the person is deaf and cannot rely on sound.

Solution

One of the solutions is to “combine” the timers and put it into one device. Then, using accessible visual element to make the information comprehensive.

The components of the timer.

This is a timer made of a 4 digit display, a task button, a rotatory button, and a neo-pixel wheel. It is a device that keeps track of the remaining time of different tasks.  Push the task button to add a timer for a task. Rotate the rotary button to adjust how many hours and minutes the task will last. The new-pixel wheel will light up and reflect the length of the time.Push the rotary button to confirm the time.

Later, simply push the rotary button to go through the tasks and check the remaining time. Again, the neo-pixel wheel will reflect the percentage of time remaining.  Different tasks are indicated by the color shown on the neo-pixel wheel.

When one of the task is done, the new-pixel wheel will roll in circle as a reminder.

But only color is not enough to indicate which task is been done. Therefore, besides the timer device, different colors of LED lights are placed next to the task in the kitchen as a reminder. Such lights are turned on and off manually when the task starts and ends. I think keeping the manual part of control the light can give the user more awareness of the ongoing tasks. There are two designs of such lights. One can sticks to any surface, and one can only be mounted on a specific location like a light bulb. Design 1 offers more flexibility while design 2 is more durable if the tasks or cooking devices are fixed.

The LED lights

Proof of Concept

I made a prototype of the timer on a breadboard. The button on top is the rotary button. The potentiometer represents the turning of the rotary button. And the buttom button is the task button to add new task. The displayed number is a little inconsistent because the potentiometer does not fit well into the breadboard.

In the following videos, I first add a task with its time. I then add another task with another time. Finally, I check the remaining time of the two tasks. The pause before the display of the remaining time of the task is due to the code that run for the neo-pixel wheel which is not used in this prototype.

Wearable doorbell for hearing impaired individuals

Based on my previous concept, I developed symbolic visuals using p5.js. Colour is being used to indicate that somebody is knocking the door. Employing Computer Vision, the transmitter sends signals that categorise visitors into two categories; either friends or strangers. Warm-coloured,  fast-paced particles imply that close people like neighbours, family and friends are at the door, while cold-coloured, slow-paced particles embody unfamiliar faces. The user can either allow the entrance or speak to the visitors using the microphone.

Link to code: https://editor.p5js.org/MariaV/sketches/_JDB9Grwt

LED Status Thermometer

Problem:

A regular thermometer will beep to tell you that it is done taking your temperature. This is a problem for the deaf who in order to know it was done, would have to stare at the display and look for when the temperature stays constant. This would cause the person to go cross eyed and be highly unrealistic. Furthermore, impatient people are often tempted to take the thermometer out of their mouth early to make sure that it is working as it can sometimes feel like it’s taking forever to take a temperature. Other than the a fore-mentioned cross-eyed staring at numbers, this person has no idea how close the thermometer is to being done.

Proposed Solution:

In order to give more feedback to everyone and allow deaf people to easily know that the thermometer is done taking their temperature, I propose a thermometer that has an RGB LED attached to it at about eye level. This device would be red when they first put the thermometer in their mouth, turn yellow as the temperature got closer to leveling out, and finally turn green when the temperature was found. The colors would clearly show both when to take the thermometer out of the mouth and what stage it was at solving the problem for both deaf and impatient people.

Proof of concept:

In this demo video, I used a thermistor to represent the thermometer temperature sensor and my fingers to represent the temperature of my body. This is not a super accurate way to measure temperature, so I made the acceptable temperature ranges for it being done bigger than it would be for a real thermometer.

Quick mock-up of what it could look like in shape

A quick video demonstration for my proof of concept:

One note for others: If your phone has a good camera and you have it default to the best setting, make sure to change it to a much worse one for these proof of concept videos as the file will be huge and take forever to get saved to drive and won’t be uploadable as the max is 16MB.