{"id":1316,"date":"2020-09-23T22:45:53","date_gmt":"2020-09-24T02:45:53","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1316"},"modified":"2020-10-17T00:46:59","modified_gmt":"2020-10-17T04:46:59","slug":"actually-press-start-for-your-laundry-dryer","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1316","title":{"rendered":"Actually Press Start for Your Laundry\/Dryer"},"content":{"rendered":"<p><strong>Problem:<\/strong><\/p>\n<p>I was having a lot of trouble coming up with something for this crit, but thankfully (at least for me) one of my housemates had forgotten to click start on the dryer and when she went to get her clothes an hour later, they of course were still wet. With our oven, I&#8217;ve forgotten to press start multiple times since moving in a month ago and the setup is literally just inputting the baking temperature. Thankfully, it beeps a few times to let me know that I never actually pressed start. If I were deaf, listening to music, or there was a lot of noise coming in from outside though, this wouldn&#8217;t help at all. When it comes to doing laundry, simply not pressing start can be a huge drain of time. However, this crucial last step is so easy to forget in even the smallest pre-steps like inputting a baking time, but especially so for laundry considering it takes a decent amount of time to load clothes.\u00a0 For washing and drying clothes, a visual notification would save a ton of time and would ensure that as long as you aren&#8217;t blind, you will know you forgot to press start regardless of your ability to hear.<\/p>\n<p><strong>Proposed Solution:<\/strong><\/p>\n<p>My proposed solution is to notify the user to press start with an obnoxiously flashing LED strip along the walk away from the machine so as to catch their attention easily. The device would only light the LED strip if a few conditions are met so that energy isn&#8217;t wasted and the user who loads clothes slower than an arbitrary average isn&#8217;t unnecessarily annoyed. First, clothes would have to be loaded into the machine. This could be detected by a broken IR beam at the bottom middle of the machine. Secondly, the lid must be closed. Rather than use a tilt sensor which would limit this to machines with lids that are vertical when open and horizontal when closed, I&#8217;ve chose a photo resistor as the inside of the machine will be dark when closed. Finally, the notification will only occur if the user has walked a few steps away from the machine, detected by an ultrasonic ranger, as there&#8217;s no need for it if they are standing right in front of it and very well may not have forgotten. If they&#8217;ve walked out of the room, here signified by a time elapsed and no return in front of the machine, the LED strip automatically turns off.<\/p>\n<p><strong>Proof of Concept:<\/strong><\/p>\n<div style=\"width: 720px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-1316-1\" width=\"720\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/go-bk-and-press-button.mp4?_=1\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/go-bk-and-press-button.mp4\">https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/go-bk-and-press-button.mp4<\/a><\/video><\/div>\n<p style=\"text-align: center\"><em>This shows the intended use where in the user sees the flashing LEDs and goes back to press start.<\/em><\/p>\n<div style=\"width: 840px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1316-2\" width=\"840\" height=\"473\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/press-start-to-begin-with.mp4?_=2\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/press-start-to-begin-with.mp4\">https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/press-start-to-begin-with.mp4<\/a><\/video><\/div>\n<p style=\"text-align: center\"><em>This shows how nothing happens if the start button is pressed to begin with.<\/em><\/p>\n<div style=\"width: 840px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1316-3\" width=\"840\" height=\"473\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/lights-turn-off-if-youve-left.mp4?_=3\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/lights-turn-off-if-youve-left.mp4\">https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/lights-turn-off-if-youve-left.mp4<\/a><\/video><\/div>\n<p style=\"text-align: center\"><em>This shows how the lights turn off if you&#8217;ve left.<\/em><\/p>\n<div style=\"width: 840px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1316-4\" width=\"840\" height=\"473\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Nothing-if-just-close-lid.mp4?_=4\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Nothing-if-just-close-lid.mp4\">https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Nothing-if-just-close-lid.mp4<\/a><\/video><\/div>\n<p style=\"text-align: center\"><em>This shows how nothing will happen if the lid is closed but nothing is in the machine.<\/em><\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" class=\"aligncenter wp-image-1334 size-medium\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-300x300.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-1024x1024.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-150x150.jpg 150w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-768x768.jpg 768w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-1536x1536.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-2048x2048.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/Photo-resistor-and-ir-breakbeam-sensor-in-box-1200x1200.jpg 1200w\" sizes=\"(max-width: 300px) 85vw, 300px\" \/><em>Photoresistor and IR breakbeam sensor in box<\/em><\/p>\n<p><img loading=\"lazy\" class=\"aligncenter wp-image-1337 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/circuit.jpg\" alt=\"\" width=\"955\" height=\"396\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/circuit.jpg 955w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/circuit-300x124.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/09\/circuit-768x318.jpg 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p style=\"text-align: center\"><em>My Circuit<\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">const int IRpin = 3;\r\nint IRstate;\r\n\r\nconst int buttonPin = 10;\r\nint buttonPressed = 0;\r\n\r\n#include &lt;PololuLedStrip.h&gt;\r\nPololuLedStrip&lt;13&gt; ledStrip;\/\/LED in pin 7\r\nconst int LEDPIN = 13;\r\nconst int LED_COUNT = 10;\/\/in full project would be a lot longer strip of LEDs\r\nrgb_color red[LED_COUNT];\r\nrgb_color black[LED_COUNT];\r\n\r\n#include &lt;NewPing.h&gt;\r\nint triggerPin = 12;\r\nint echoPin = 11;\r\nint maxDistance = 400;\r\nNewPing sonar(triggerPin, echoPin, maxDistance);\r\n\r\nint photoPin = A5;\r\n\r\nvoid setup() {\r\n  pinMode(IRpin, INPUT);\r\n  pinMode(buttonPin, INPUT);\r\n  digitalWrite(IRpin, HIGH); \r\n  pinMode(LEDPIN, OUTPUT);\r\n  pinMode(photoPin, INPUT);\r\n\r\n  Serial.begin(9600);\r\n}\r\n\r\nvoid loop() {\r\n  IRstate = digitalRead(IRpin);\r\n  \r\n  int photoVal = analogRead(photoPin);\r\n  Serial.println(photoVal);\r\n  int distance = sonar.ping_cm();\r\n  for (uint16_t i = 0; i &lt; LED_COUNT; i++) {\r\n                black[i] = rgb_color(0, 0, 0);\r\n              }\r\n              ledStrip.write(black, LED_COUNT);\r\n  if (IRstate == LOW) {\/\/broken\r\n    \/\/Serial.println(\"broken\");\r\n    \/\/Serial.println(distance);\r\n    \/\/Serial.println(photoVal);\r\n    if (photoVal &lt; 150) {\/\/lid closed\r\n      if (digitalRead(buttonPin)) {\r\n        buttonPressed = 1;\r\n      }\r\n      if (not buttonPressed) {\r\n        if (distance &gt; 10) { \/\/would've done 91cm, ~3ft for real thing\r\n          static int startTime = millis();\r\n          if (millis() - startTime &lt; 7000) {\/\/7s for demo, but would be about 30 for actual thing\r\n            static int blinkStart = millis();\r\n            for (uint16_t i = 0; i &lt; LED_COUNT; i++) {\/\/this rotates through each LED on the strip so that each one will be red\r\n              byte x = millis() - 20 * i;\r\n              red[i] = rgb_color(255 - x, 0, 0);\r\n            }\r\n            ledStrip.write(red, LED_COUNT);\r\n            if (millis() - blinkStart &gt;= 10) {\r\n              for (uint16_t i = 0; i &lt; LED_COUNT; i++) {\r\n                black[i] = rgb_color(0, 0, 0);\r\n              }\r\n              ledStrip.write(black, LED_COUNT);\r\n              blinkStart = millis();\r\n            }\r\n          }\r\n        }\r\n        \r\n      }\r\n    }\r\n  }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Problem: I was having a lot of trouble coming up with something for this crit, but thankfully (at least for me) one of my housemates had forgotten to click start on the dryer and when she went to get her clothes an hour later, they of course were still wet. With our oven, I&#8217;ve forgotten &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1316\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Actually Press Start for Your Laundry\/Dryer&#8221;<\/span><\/a><\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1316"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1316"}],"version-history":[{"count":10,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1316\/revisions"}],"predecessor-version":[{"id":1636,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1316\/revisions\/1636"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}