{"id":15816,"date":"2022-05-07T16:16:45","date_gmt":"2022-05-07T20:16:45","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/?p=15816"},"modified":"2022-05-07T16:16:45","modified_gmt":"2022-05-07T20:16:45","slug":"braille-alarm-clock-by-team-i-o-final-documentation","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/","title":{"rendered":"Braille Alarm Clock by Team I\/O: Final Documentation"},"content":{"rendered":"<p><span style=\"font-weight: 400\">The goal of the project was to design an assistive device for someone else. We were to get to know our client and understand where in their life they could benefit from something that we could create. We then kept in contact with them throughout the building process to make sure we were making something that addressed their goals. The notes and insights from the interview can be found here.<\/span><\/p>\n<h2>What We Built<\/h2>\n<p><span style=\"font-weight: 400\">We created a braille alarm clock. The alarm clock is fully functional by someone who is both without sight and hard of hearing. The user can check and reset the current time, as well as set the time for when they\u2019d like their alarm to go off, and it will reliably do so.<\/span><\/p>\n<div id=\"attachment_16057\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16057\" loading=\"lazy\" class=\"wp-image-16057 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-1024x768.jpg\" alt=\"On the table sits 3 objects. On the left is a black disc-shaped bed shaker, in the middle is our final clock device, and on the right is Alycia's original alarm clock\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6091-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16057\" class=\"wp-caption-text\">Final clock with bed shaker and original alarm clock on presentation day<\/p><\/div>\n<div id=\"attachment_16054\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16054\" loading=\"lazy\" class=\"wp-image-16054 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-1024x768.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6128-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16054\" class=\"wp-caption-text\">Top interface of clock with 12 red buttons in a circle for the clock, and 2 red buttons on the left (alarm and clock), and 2 green buttons (set and clear)<\/p><\/div>\n<div id=\"attachment_16051\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16051\" loading=\"lazy\" class=\"wp-image-16051 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-1024x768.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock2-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16051\" class=\"wp-caption-text\">Right side of prototype with solenoid and rocker switch<\/p><\/div>\n<div id=\"attachment_16052\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16052\" loading=\"lazy\" class=\"wp-image-16052 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-1024x768.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock3-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16052\" class=\"wp-caption-text\">Back of clock with acrylic flower details and power plug<\/p><\/div>\n<div id=\"attachment_16053\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16053\" loading=\"lazy\" class=\"wp-image-16053 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-1024x768.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/clock4-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16053\" class=\"wp-caption-text\">Additional flower acrylic details at the front<\/p><\/div>\n<div style=\"width: 620px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-15816-1\" width=\"620\" height=\"349\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9962.mp4?_=1\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9962.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9962.mp4<\/a><\/video><\/div>\n<p>Alycia testing out our final device. (Seated to the right of the a table is Alycia, a middle-aged woman with long hair. She is pressing buttons on a pink box that acts as a clock with brailled on it)<\/p>\n<h4>Narrative Sketch<\/h4>\n<p><span style=\"font-weight: 400\">Alicia has a big day tomorrow and wants to get an early start in the morning. She goes to her alarm clock, presses the arcade button marked <\/span><em><span style=\"font-weight: 400\">Alarm <\/span><\/em><span style=\"font-weight: 400\">and then shifts her hand to the clock buttons. She presses the fifth button, and then the sixth button: <\/span><span style=\"font-weight: 400\">5:30.<\/span><span style=\"font-weight: 400\">She then presses a different button market <\/span><span style=\"font-weight: 400\"><em>Set<\/em>. <\/span><span style=\"font-weight: 400\">Just to double check that she didn\u2019t make a mistake, she presses the <\/span><em><span style=\"font-weight: 400\">Alarm <\/span><\/em><span style=\"font-weight: 400\">button once more. Now the exciting part\u2026 she shifts her hand to the right wall of the clock, feeling for a circle opening with felt under it. Two of her fingers lightly rest on the felt and she waits. <\/span><span style=\"font-weight: 400\"><em>Tap, Tap, Tap, Tap, Tap<\/em>. <\/span><span style=\"font-weight: 400\">5. There\u2019s a short pause. <\/span><span style=\"font-weight: 400\"><em>Tap, Tap, Tap<\/em>. <\/span><span style=\"font-weight: 400\">3. There\u2019s a much pause. 0. A quick <\/span><span style=\"font-weight: 400\"><em>Tap-Tap<\/em>. <\/span><span style=\"font-weight: 400\">Knowing that the end of the sequence is always marked by the <\/span><span style=\"font-weight: 400\"><em>Tap-Tap<\/em>, <\/span><span style=\"font-weight: 400\">she goes to bed content.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Come morning time, the bed shaker violently rocks her bed waking her up. She gets out of bed, goes to the alarm clock and switches the switch from <\/span><em><span style=\"font-weight: 400\">ON <\/span><\/em><span style=\"font-weight: 400\">to <\/span><span style=\"font-weight: 400\"><em>OFF<\/em>. <\/span><span style=\"font-weight: 400\">The bed shaker stops immediately. She wants to check the time just to ensure she didn\u2019t miss anything in her day, so she presses <\/span><em><span style=\"font-weight: 400\">Clock <\/span><\/em><span style=\"font-weight: 400\">and moves her fingers to the felt again. 5 taps, 3 taps, and 1 tap. 5:31am. She nods with satisfaction and starts her day.<\/span><\/p>\n<h2>How We Got Here (Prototype and Process)<\/h2>\n<p><span style=\"font-weight: 400\">This prototype was designed to help answer the design question: <strong><em>How do we make an alarm clock for a blind person that is hard of hearing?<\/em><\/strong><\/span><\/p>\n<h4>Prototype<\/h4>\n<div id=\"attachment_16034\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16034\" loading=\"lazy\" class=\"wp-image-16034 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-1024x768.jpeg\" alt=\"On a whiteboard table are drawings in yellow, green, and red, depicting different ideas for our clock\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5320-scaled-e1651949392413-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16034\" class=\"wp-caption-text\">First meeting discussion possible ideas<\/p><\/div>\n<div id=\"attachment_16035\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16035\" loading=\"lazy\" class=\"wp-image-16035 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-1024x768.jpeg\" alt=\"In the center of the image are red marker drawings depicting different clock ideas, around it are 2 closed laptops and 3 markers strewn on the table\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5381-scaled-e1651949518432-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16035\" class=\"wp-caption-text\">Second meeting discussing clock ideas<\/p><\/div>\n<div id=\"attachment_16047\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16047\" loading=\"lazy\" class=\"wp-image-16047 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-1024x768.jpg\" alt=\"Drawn on a whiteball table with yellow marker are sketches of different clock interfaces\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5380-2-508x381.jpg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16047\" class=\"wp-caption-text\">Final 3 ideas for prototyping<\/p><\/div>\n<p><span style=\"font-weight: 400\">Prototype 1: Two clocks where each number is a button. The first clock would be for setting the hours, and the second clock would be for setting the minutes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Prototype 2: A finger slider, where you put your finger on a slider and the top of your finger would slide across different braille numbers. When you got to the number you wanted first, you would press set, and that would set the hours. Then for the minutes, you would slide to the number you wanted and that would set the minutes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Prototype 3: The third idea is similar to a rotary phone where you would put your finger in a small hole and circle around all the numbers to the number you were looking for. In each number spot would be braille that the user can read, and they would use the rotary system to set the hours and then minutes of their alarm.<\/span><\/p>\n<div id=\"attachment_16029\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_5517-2\/\" rel=\"attachment wp-att-16029\"><img aria-describedby=\"caption-attachment-16029\" loading=\"lazy\" class=\"wp-image-16029 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-1024x768.jpeg\" alt=\" On the table are our three prototype interfaces made of chipboard. Alycia is sitting on the left of the table while Noni and David sit on the right\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5517-2-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16029\" class=\"wp-caption-text\">Showing Alycia the prototypes on prototype day<\/p><\/div>\n<div id=\"attachment_16030\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_5518-2\/\" rel=\"attachment wp-att-16030\"><img aria-describedby=\"caption-attachment-16030\" loading=\"lazy\" class=\"wp-image-16030 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-1024x768.jpeg\" alt=\"We have 3 different prototypes on the table. The leftmost prototype is based on a rotatry dial clock, the middle is made of buttons arranged in a circle, and the rightmost prototype is based on a slider mechanism\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5518-2-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16030\" class=\"wp-caption-text\">Our 3 prototype interfaces<\/p><\/div>\n<div id=\"attachment_16048\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-16048\" loading=\"lazy\" class=\"wp-image-16048 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-768x1024.jpeg\" alt=\"Seated around a table are 4 people. On the right is Alycia, a middle-aged woman with long hair. On the left are 3 students, David, Noni, and Catherine who are handing Alycia chipboard cutouts to try as clock interfaces\" width=\"620\" height=\"827\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-768x1024.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-225x300.jpeg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-1152x1536.jpeg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-1536x2048.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-973x1297.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-508x677.jpeg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_9637-scaled.jpeg 1920w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><p id=\"caption-attachment-16048\" class=\"wp-caption-text\">testing prototypes with Alycia<\/p><\/div>\n<div style=\"width: 620px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-15816-2\" width=\"620\" height=\"349\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5519.mp4?_=2\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5519.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5519.mp4<\/a><\/video><\/div>\n<p>Alycia showing us how to make braille on dymo tape<br \/>\n(Alycia is using a poking device and a braille grid to press indentations onto sticky tape)<\/p>\n<p><span style=\"font-weight: 400\">All of our prototypes were feasible, yet how we moved forward was solely to the discretion of our client and what her personal preference was in terms of the alarm. She chose Prototype 1, where the interface is all buttons in a circle.<\/span><\/p>\n<p><span style=\"font-weight: 400\">We were a bit surprised that the client chose the option she did. When she went over her reasoning, she explained that practicality and ease-of-use in the long term were her main decision factors. The other ideas were fun and exciting, but there\u2019s much less that could go wrong with simple buttons. She also gave feedback that was eye-opening in the sense that we were underestimating her skills ability to a great extent. Things such as only needing one button clock interface and not two, and needing less braille options, her intuit knowledge that could help her use the alarm with ease. Initially when designing and speaking amongst each other, we were approaching the prototype as if we had just lost our vision and were encountering the world for the first time. However, after talking with Alyicia, we were able to revise our prototypes and make them not only braille friendly, but also extremely intuitive to her needs.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Feedback we took from the critique was to make it only one clock interface, as well as to change the button size. Alicia opted for smaller buttons around the clock as those would decrease the overall size of the alarm. She also mentioned the need for there to be ample space around each button as that would ensure there was enough room for her dymo tape to stick on. Thus, we made sure to account for the braille attachments and their length and width in each button design. She also told us she had no need for a Snooze button, nor did she need an option to set any time more than the multiples of five. This type of feedback was pivotal to our further discussion of how to implement the alarm clock successfully.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Something we hadn\u2019t even considered before she brought it up, was being able to tell the normal time of the day using the alarm clock. She informed us this was normal practice on her existing braille alarm clock that didn\u2019t work that well. Initially we chose not to focus on this as the clock module should have been able to reliably keep the time and there would be no reason to doubt it. However, after much discussion as a team and with our professor, we reimplemented it as a feature.<\/span><\/p>\n<h4>Process<\/h4>\n<div id=\"attachment_16043\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_5561-2\/\" rel=\"attachment wp-att-16043\"><img aria-describedby=\"caption-attachment-16043\" loading=\"lazy\" class=\"wp-image-16043 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-1024x768.jpeg\" alt=\"There are 2 laptops open on a table and in front of them are marker drawings and writings about different clock ideas. Some buttons, wires, and chipboard are also next to the writings\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5561-1-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16043\" class=\"wp-caption-text\">Deciding on how to improve prototype after showing to Alycia<\/p><\/div>\n<div id=\"attachment_16040\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_5679\/\" rel=\"attachment wp-att-16040\"><img aria-describedby=\"caption-attachment-16040\" loading=\"lazy\" class=\"wp-image-16040 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-1024x768.jpeg\" alt=\"There is a rectangular board cut out of white acrylic with a flower cut out of the same acrylic on the center of it. There are 2 red buttons on the left of the rectangle and 2 green buttons on the right. In the center of the flower is a ring of 12 small red buttons\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_5679-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16040\" class=\"wp-caption-text\">Final interface design for the clock<\/p><\/div>\n<div id=\"attachment_16041\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_6049\/\" rel=\"attachment wp-att-16041\"><img aria-describedby=\"caption-attachment-16041\" loading=\"lazy\" class=\"wp-image-16041 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-1024x768.jpeg\" alt=\"On the left is a piece of plywood with parts cut out of it. The parts were used to make a finger joint box that is on the right of the plywood\" width=\"620\" height=\"465\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-1024x768.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-300x225.jpeg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-768x576.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-1536x1152.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-2048x1536.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-973x730.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6049-scaled-e1651948524717-508x381.jpeg 508w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16041\" class=\"wp-caption-text\">Lasercut plywood to build clock<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_16032\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/67304202577__99c36527-fb76-4906-8a77-82278af10470-fullsizerender\/\" rel=\"attachment wp-att-16032\"><img aria-describedby=\"caption-attachment-16032\" loading=\"lazy\" class=\"wp-image-16032 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-768x1024.jpeg\" alt=\"There is a blob of coral-pink paint mixed on top of a clear acylic lid. Behind the paint are blank planks of plywood\" width=\"620\" height=\"827\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-768x1024.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-225x300.jpeg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-1152x1536.jpeg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-1536x2048.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-973x1297.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-508x677.jpeg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67304202577__99C36527-FB76-4906-8A77-82278AF10470.fullsizerender-scaled.jpeg 1920w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16032\" class=\"wp-caption-text\">Painting the plywood<\/p><\/div>\n<p><span style=\"font-weight: 400\">The programmable portion of the alarm clock was based on a finite state machine, a concept that David was familiar with from his ECE studies. This style of design was chosen because an alarm clock enters through many states during its usage, and transitioning between states based on inputs (and generating outputs at the right time) are all central ideas to an FSM. The final product ended up with seven states, and it worked extremely well- it allowed for coding details much easier, as it helped partition up the overall complicated structure into smaller, more manageable pieces. That being said, coding did have its fair share of difficulties. Converting a button into a toggle-able input was surprisingly complex; it involved debouncing a button to prevent erroneous multiple readings upon press and release of the button, as well as checking to make sure when a button is pressed and held (and not causing the incorrect interpretation of multiple button presses). The code also involved understanding a RTC (real-time clock) library, which had its own hidden difficulties (we had spent nearly an hour panicking as to why the clock was not working until we realized we hadn\u2019t written the code to actually START the clock!). With respect to the Gantt chart, there was some divergence from the original plan, because testing the code proved to be more reliant upon the hardware it worked with- for example, it was impossible to check if anything related to the clock was working if there was no clock module, which we did not receive until much later than anticipated. Nonetheless, the code was still completed and thoroughly debugged.<\/span><\/p>\n<div id=\"attachment_16033\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/67311492841__e5794b2a-a84f-49c1-a556-a4f59eb06811\/\" rel=\"attachment wp-att-16033\"><img aria-describedby=\"caption-attachment-16033\" loading=\"lazy\" class=\"wp-image-16033 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-768x1024.jpeg\" alt=\"On top of a table sits a big piece of cardboard. On top of the cardboard are wires connecting buttons and switches to the clock interfcae we prototyped with white acrylic\" width=\"620\" height=\"827\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-768x1024.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-225x300.jpeg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-1152x1536.jpeg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-1536x2048.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-973x1297.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-508x677.jpeg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/67311492841__E5794B2A-A84F-49C1-A556-A4F59EB06811-scaled.jpeg 1920w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16033\" class=\"wp-caption-text\">All wiring of the clock<\/p><\/div>\n<div id=\"attachment_16042\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/braille-alarm-clock-by-team-i-o-final-documentation\/img_6078\/\" rel=\"attachment wp-att-16042\"><img aria-describedby=\"caption-attachment-16042\" loading=\"lazy\" class=\"wp-image-16042 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-768x1024.jpeg\" alt=\"All wires, buttons, and breadboards are placed into pieces of plywood that are attached together with tape\" width=\"620\" height=\"827\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-768x1024.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-225x300.jpeg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-1152x1536.jpeg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-1536x2048.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-973x1297.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-508x677.jpeg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/IMG_6078-scaled.jpeg 1920w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><p id=\"caption-attachment-16042\" class=\"wp-caption-text\">Putting all components into the fingerjoint base<\/p><\/div>\n<p><span style=\"font-weight: 400\">There were a few tricky components to the circuitry, such as the solenoid and the interfacing of the bed shaker and its power supply. The solenoid needed to be powered directly by a 12VDC power supply, yet it had to be controlled by the Arduino; as such, a transistor circuit was used to act as a \u201cswitch\u201d that the Arduino could control to allow for power to the solenoid. Interfacing with the bed shaker proved to be very complicated, due to the strange peculiarity that it ran off of 9VAC. Creating a switch for 9V, being alternating current as well, was rather difficult, since that implied it would require a power supply that could not be unified in any way with the Arduino (unlike the solenoid, whose 12VDC power supply could also be used for the Arduino). Controlling an AC power supply also required the use of a relay, which was in essence, a switch for AC power supplies, similar to the transistor. The relay proved to also be troublesome in that it would draw too much current from the Arduino should it be directly connected, and that meant that another transistor circuit was needed for the relay- in essence, a switch for the switch. It was certainly a confusing set of circuitry- a memorable moment was when the transistor was actually fried due to an incorrect wiring, which then caused subsequent correct wirings to not work as well.<\/span><\/p>\n<h2><b>Conclusions and Lessons Learned\u00a0<\/b><\/h2>\n<p><span style=\"font-weight: 400\">We learned throughout the process that planning was very important to ensure that we could get all the different parts done well. Since we each had different responsibilities, it was important that we communicated our schedules well and adjusted our work plan as needed so that everyone in the group could work on their responsibilities. Especially for our code-heavy project, we found that it was always better to test early and test more. There would often be small edge cases that would mess with how our clock worked. Changes also needed to be made physically, such as adding another button or changing where the buttons were placed, which would help make using the device easier for Alycia. Additionally, we realized that we could make the best device only if we knew what the client actually needed and wanted. Rather than making assumptions, we always made sure to ask Alycia on what she thought would work the best for her as well as what she wanted from the project. There were times when her responses reassured our progress, and other where we were surprised by what she said and would have to rethink our ideas. In the end, we were grateful that Alycia was very cooperative and responsive to us during this project as we were able to produce a product that she liked as well.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">A common, but important piece of advice that was given was that \u201cThough it&#8217;s for a blind person, for presentations sake, there could have been some visual labels.\u201d This would allow for those who were NOT Alycia (eg. caretakers, friends, etc.) to be able to understand what was what on the clock. This would be a simple change, but extremely necessary, since as of now, we only know which buttons are what simply because we are the creators. There were also comments on the alarm clock having \u201cother features that many clocks have (i.e., snooze).\u201d This was also a fair point, and was considered by our team; given more time, this definitely could have been done. While we considered the situation of having too many inputs and causing confusion rather than more features, simple thoughts like \u201cDifferent shape on the \u201c12\u201d button\u201d to help find\/distinguish the clock buttons easier would be useful and helpful to implement.<\/span><\/p>\n<h2><b>Technical Details<\/b><\/h2>\n<h4>Schematic and Block Diagram<\/h4>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-16021\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Final-Project-Schematic.drawio.svg\" alt=\"\" width=\"1078\" height=\"1072\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/\/2022\/05\/Final-Project-Schematic.drawio.svg 150w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/\/2022\/05\/Final-Project-Schematic.drawio.svg 1078w\" sizes=\"(max-width: 1078px) 100vw, 1078px\" \/><\/p>\n<h4>Code<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/* Project Title: Tactile Alarm Clock\r\n * Creator: David Wu, Noni Shelton, and Catherine Liu\r\n * \r\n * This code is similar to a finite state machine for\r\n * an alarm clock. There are 12 button inputs for the 12 \r\n * numbers on the clock. There are 4 other button inputs \r\n * for miscellaneous purposes, being the alarm, clock, \r\n * set, and clear buttons. The 16 button inputs are each \r\n * involved in 2 arrays to facilitate checking for button\r\n * presses and button holding. An on\/off input is used to \r\n * determine if the alarm is turned on or not. An output signal\r\n * to a solenoid allows it to tap the time in an specified, \r\n * encoded manner. The code outputs its alarm signal at a certain\r\n * pin, and for this project, this is intended to connect the\r\n * bed shaker to its power supply. \r\n * \r\n * Pin Mapping:\r\n * Clock 12 : 12    Clock 6  : 6\r\n * Clock 1  : 13    Clock 7  : 7\r\n * Clock 2  : 2     Clock 8  : 8\r\n * Clock 3  : 3     Clock 9  : 9\r\n * Clock 4  : 4     Clock 10 : 10\r\n * Clock 5  : 5     Clock 11 : 11\r\n * Doing Alarm               : 27\r\n * Doing Clock               : 26\r\n * Set                       : 24\r\n * Clear                     : 22\r\n * Alarm On\/Off              : 28\r\n * Solenoid                  : 30\r\n * Alarm output (bed shaker) : 33\r\n * \r\n *\/\r\n\r\n#include &lt;Wire.h&gt;\r\n#include \"RTClib.h\"\r\n\r\nRTC_DS3231 rtc;\r\n\r\n\/\/ clock 12 inputs\r\nconst int CLOCKPIN0 = 12;\r\nconst int CLOCKPIN1 = 13;\r\nconst int CLOCKPIN2 = 2;\r\nconst int CLOCKPIN3 = 3;\r\nconst int CLOCKPIN4 = 4;\r\nconst int CLOCKPIN5 = 5;\r\nconst int CLOCKPIN6 = 6;\r\nconst int CLOCKPIN7 = 7;\r\nconst int CLOCKPIN8 = 8;\r\nconst int CLOCKPIN9 = 9;\r\nconst int CLOCKPIN10 = 10;\r\nconst int CLOCKPIN11 = 11;\r\n\r\n\/\/ the miscellaneous buttons\r\nconst int DOING_ALARMPIN = 27;\r\nconst int DOING_CLOCKPIN = 26;\r\nconst int SETPIN = 24;\r\nconst int CLEARPIN = 22;\r\n\r\n\/\/ alarm on\/off\r\nconst int ON_OFFPIN = 28;\r\n\r\n\/\/ outputs\r\nconst int SOLEPIN = 30;\r\nconst int BEDSHAKERPIN = 33;\r\n\r\n\/\/ state management\r\nint currState = 0;\r\nint nextState = 0;\r\nconst int defaultState = 0;\r\nconst int alarmState = 1;\r\nconst int clockState = 2;\r\nconst int setAlarmHourState = 3;\r\nconst int setClockHourState = 4;\r\nconst int setAlarmMinState = 5;\r\nconst int setClockMinState = 6;\r\nconst int alarmTriggered = 7;\r\n\r\n\/\/ clock 12 inputs\r\nint clockInput[12];\r\nint clockPressed[12];\r\n\r\n\/\/ the miscellaneous buttons\r\n\/\/ misc inputs: doing_alarm, doing_clock, set, clear\r\nint miscInput[4]; \r\nint miscPressed[4];\r\n\r\n\/\/ alarm on\/off\r\nbool isOn = true;\r\n\r\n\/\/ time management\r\n\/\/ arbitrary default setting when clock is first turned on\r\nconst int DEFAULT_HOUR = 7;\r\nint alarmHour = DEFAULT_HOUR;\r\nint alarmMin = 0;\r\nint tempHour = DEFAULT_HOUR;\r\nint tempMin = 0;\r\n\r\nvoid setup() {\r\n  pinMode(CLOCKPIN0, INPUT);\r\n  pinMode(CLOCKPIN1, INPUT);\r\n  pinMode(CLOCKPIN2, INPUT);\r\n  pinMode(CLOCKPIN3, INPUT);\r\n  pinMode(CLOCKPIN4, INPUT);\r\n  pinMode(CLOCKPIN5, INPUT);\r\n  pinMode(CLOCKPIN6, INPUT);\r\n  pinMode(CLOCKPIN7, INPUT);\r\n  pinMode(CLOCKPIN8, INPUT);\r\n  pinMode(CLOCKPIN9, INPUT);\r\n  pinMode(CLOCKPIN10, INPUT);\r\n  pinMode(CLOCKPIN11, INPUT);\r\n  pinMode(DOING_ALARMPIN, INPUT);\r\n  pinMode(DOING_CLOCKPIN, INPUT);\r\n  pinMode(SETPIN, INPUT);\r\n  pinMode(CLEARPIN, INPUT);\r\n  pinMode(ON_OFFPIN, INPUT);\r\n  pinMode(SOLEPIN, OUTPUT);\r\n  pinMode(BEDSHAKERPIN, OUTPUT);\r\n\r\n  \/\/ ensure rtc is found and we can start\r\n  if (!rtc.begin()) {\r\n    while (1);\r\n  }\r\n\r\n  \/\/ initialize an arbitrary time (12:34)\r\n  \/\/ rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\r\n  rtc.adjust(DateTime(2000, 1, 1, 12, 34, 0));\r\n  Serial.begin(9600);\r\n}\r\n\r\nvoid loop() {\r\n  \/\/ clock 12 inputs\r\n  clockInput[0] = digitalRead(CLOCKPIN0);\r\n  clockInput[1] = digitalRead(CLOCKPIN1);\r\n  clockInput[2] = digitalRead(CLOCKPIN2);\r\n  clockInput[3] = digitalRead(CLOCKPIN3);\r\n  clockInput[4] = digitalRead(CLOCKPIN4);\r\n  clockInput[5] = digitalRead(CLOCKPIN5);\r\n  clockInput[6] = digitalRead(CLOCKPIN6);\r\n  clockInput[7] = digitalRead(CLOCKPIN7);\r\n  clockInput[8] = digitalRead(CLOCKPIN8);\r\n  clockInput[9] = digitalRead(CLOCKPIN9);\r\n  clockInput[10] = digitalRead(CLOCKPIN10);\r\n  clockInput[11] = digitalRead(CLOCKPIN11);\r\n\r\n  \/\/ misc inputs: doing_alarm, doing_clock, set, clear\r\n  miscInput[0] = !digitalRead(DOING_ALARMPIN); \/\/ normally closed button\r\n  miscInput[1] = !digitalRead(DOING_CLOCKPIN); \/\/ normally closed button\r\n  miscInput[2] = digitalRead(SETPIN); \r\n  miscInput[3] = digitalRead(CLEARPIN); \r\n  \r\n  \/\/ alarm on\/off\r\n  isOn = digitalRead(ON_OFFPIN);\r\n\r\n  \/\/ find if\/which clockInput was pressed\r\n  int trigClockButton = -1;\r\n  for (int i = 0; i &lt; 12; i++) {\r\n    if (clockInput[i] == 1) {\r\n      trigClockButton = i;\r\n    }\r\n  }\r\n\r\n  \/\/ find if\/which miscInput was pressed\r\n  int trigMiscButton = -1;\r\n  for (int i = 0; i &lt; 4; i++) {\r\n    if (miscInput[i] == 1) {\r\n      trigMiscButton = i;\r\n    }\r\n  }    \r\n\r\n  \/\/ when to start output\r\n  if (isOn) {\r\n    DateTime now = rtc.now();\r\n    if ((convert12Hour(now.hour()) == alarmHour) &amp;&amp;\r\n        (now.minute() == alarmMin)  &amp;&amp;\r\n        (now.second() &lt; 5)) {\r\n       currState = alarmTriggered;\r\n    }\r\n  }\r\n\r\n  \/\/ figure out next state and output\r\n  if (currState == alarmTriggered) {\r\n    if(!isOn) {\r\n      digitalWrite(BEDSHAKERPIN, LOW);\r\n      nextState = defaultState;     \r\n    }\r\n    else {\r\n      digitalWrite(BEDSHAKERPIN, HIGH);\r\n      nextState = alarmTriggered;\r\n    }\r\n  }\r\n  else if (trigMiscButton != -1)\r\n    handlePressedMiscButton(trigMiscButton);\r\n  else if (trigClockButton != -1) \r\n    handlePressedClockButton(trigClockButton);\r\n  else \r\n    nextState = currState;\r\n    \r\n  \/\/ update unpressed buttons\r\n  \/\/ when a clockInput is unpressed and was pressed before\r\n  for (int i = 0; i &lt; 12; i++) {\r\n    if (!clockInput[i] &amp;&amp; clockPressed[i]) {\r\n      delay(30);\r\n    }\r\n  }\r\n  \/\/ when a miscInput is unpressed and was pressed before\r\n  for (int i = 0; i &lt; 4; i++) {\r\n    if (!miscInput[i] &amp;&amp; miscPressed[i]) {\r\n      delay(30);\r\n    }\r\n  }  \r\n  \r\n  \/\/update info\r\n  clockPressed[0] = clockInput[0];\r\n  clockPressed[1] = clockInput[1];\r\n  clockPressed[2] = clockInput[2];\r\n  clockPressed[3] = clockInput[3];\r\n  clockPressed[4] = clockInput[4];\r\n  clockPressed[5] = clockInput[5];\r\n  clockPressed[6] = clockInput[6];\r\n  clockPressed[7] = clockInput[7];\r\n  clockPressed[8] = clockInput[8];\r\n  clockPressed[9] = clockInput[9];\r\n  clockPressed[10] = clockInput[10];\r\n  clockPressed[11] = clockInput[11];\r\n\r\n  miscPressed[0] = miscInput[0];\r\n  miscPressed[1] = miscInput[1];\r\n  miscPressed[2] = miscInput[2];\r\n  miscPressed[3] = miscInput[3]; \r\n  \r\n  currState = nextState;\r\n}\r\n\r\nvoid handlePressedClockButton (int index) {\r\n  \/\/ when the clockInput is pressed and was not pressed before\r\n  if (!clockPressed[index]) {\r\n    delay(30);\r\n    switch (currState) {\r\n      \/\/ if alarm is triggered, ignore everything\r\n      case alarmTriggered:\r\n        break;\r\n      case alarmState:\r\n        tempHour = index;\r\n        if (tempHour == 0) tempHour = 12;\r\n        nextState = setAlarmHourState;\r\n        break;\r\n      case clockState:\r\n        tempHour = index;\r\n        if (tempHour == 0) tempHour = 12;\r\n        nextState = setClockHourState;\r\n        break;\r\n      case setAlarmHourState:\r\n        tempMin = index * 5;\r\n        nextState = setAlarmMinState;\r\n        break;\r\n      case setClockHourState:\r\n        tempMin = index * 5;\r\n        nextState = setClockMinState;\r\n        break;\r\n      default: \r\n        nextState = currState;\r\n        break;\r\n    }\r\n  }\r\n}\r\n\r\nvoid handlePressedMiscButton (int index) {\r\n  \/\/ misc inputs: doing_alarm, doing_clock, set, clear\r\n  \/\/ when the miscInput is pressed and was not pressed before\r\n  if (!miscPressed[index]) {\r\n    delay(30);\r\n    \/\/ if alarm is triggered, ignore everything\r\n    if (currState == alarmTriggered) {\r\n      nextState = alarmTriggered;\r\n    }\r\n    \/\/ doing_alarm\r\n    else if (index == 0) {\r\n      solenoidTapping(alarmHour, alarmMin);\r\n      nextState = alarmState;\r\n    }\r\n    \/\/ doing_clock\r\n    else if (index == 1) {\r\n      DateTime now = rtc.now();\r\n      solenoidTapping(convert12Hour(now.hour()), now.minute());\r\n      nextState = clockState;\r\n    }\r\n    else {\r\n      switch (currState) {\r\n        case alarmState:\r\n        case setAlarmHourState:\r\n          if (index == 2) {\r\n            \/\/ not complete inputs\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = defaultState;\r\n          }\r\n          else if (index == 3) {\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = alarmState;\r\n          }\r\n          break;\r\n        case clockState:\r\n        case setClockHourState:\r\n          if (index == 2) {\r\n            \/\/ not complete inputs\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = defaultState;\r\n          }\r\n          else if (index == 3) {\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = clockState;\r\n          }\r\n          break;\r\n        case setAlarmMinState:\r\n          if (index == 2) {\r\n            alarmHour = tempHour;\r\n            alarmMin = tempMin;\r\n            nextState = defaultState;\r\n          }\r\n          else if (index == 3) {\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = alarmState;\r\n          }\r\n          break;\r\n        case setClockMinState:\r\n          if (index == 2) {\r\n            \/\/ DateTime(YYYY, M, D, h, m, s)\r\n            rtc.adjust(DateTime(2000, 1, 1, tempHour, tempMin, 0));\r\n            nextState = defaultState;\r\n          }\r\n          else if (index == 3) {\r\n            tempHour = DEFAULT_HOUR;\r\n            tempMin = 0;\r\n            nextState = clockState;\r\n          }\r\n          break;\r\n        default: \r\n          nextState = currState;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\/\/ Taps: Hours, Tens place of Mins, Ones place of Mins\r\n\/\/ Ex. 9:47 is 9 taps, 4 taps, 7 taps\r\nvoid solenoidTapping (int timeHour, int timeMinute) {\r\n  for (int i = 0; i &lt; timeHour; i++) {\r\n    digitalWrite(SOLEPIN, HIGH);\r\n    delay(50);\r\n    digitalWrite(SOLEPIN, LOW);\r\n    delay(450);\r\n  }\r\n  delay(2000);\r\n  int minuteTens = timeMinute \/ 10;\r\n  int minuteOnes = timeMinute % 10;\r\n  for (int i = 0; i &lt; minuteTens; i++) {\r\n    digitalWrite(SOLEPIN, HIGH);\r\n    delay(50);\r\n    digitalWrite(SOLEPIN, LOW);\r\n    delay(450);\r\n  }\r\n  delay(2000);\r\n  for (int i = 0; i &lt; minuteOnes; i++) {\r\n    digitalWrite(SOLEPIN, HIGH);\r\n    delay(50);\r\n    digitalWrite(SOLEPIN, LOW);\r\n    delay(450);\r\n  }\r\n  delay(2000);\r\n  \/\/ a quick TAP-TAP to signal done tapping\r\n  digitalWrite(SOLEPIN, HIGH);\r\n  delay(50);\r\n  digitalWrite(SOLEPIN, LOW);\r\n  delay(100);\r\n  digitalWrite(SOLEPIN, HIGH);\r\n  delay(50);\r\n  digitalWrite(SOLEPIN, LOW);\r\n  delay(100);\r\n}\r\n\r\n\/\/ converts hours from 24-hour format to 12-hour format\r\nint convert12Hour(int timeHour) {\r\n  \/\/ later half of day\r\n  if (timeHour &gt; 12) \r\n    return timeHour - 12;\r\n  \/\/ midnight\r\n  else if (timeHour == 0)\r\n    return 12;\r\n  else\r\n    return timeHour;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The goal of the project was to design an assistive device for someone else. We were to get to know our client and understand where in their life&#8230;<\/p>\n","protected":false},"author":214,"featured_media":16057,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[100,159],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts\/15816"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/comments?post=15816"}],"version-history":[{"count":9,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts\/15816\/revisions"}],"predecessor-version":[{"id":16060,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts\/15816\/revisions\/16060"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/media\/16057"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/media?parent=15816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/categories?post=15816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/tags?post=15816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}