{"id":18115,"date":"2023-04-10T10:31:33","date_gmt":"2023-04-10T14:31:33","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/?p=18115"},"modified":"2023-05-05T17:28:23","modified_gmt":"2023-05-05T21:28:23","slug":"project-name-by-hue-values-final-documentation","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/","title":{"rendered":"Bill&#8217;s Cooking Buddy by Hue Values: Final Documentation"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h3>Introduction<\/h3>\n<p>In this class, we worked collaboratively with our client\u00a0 Bill, who has achromatopsia and is sensitive to light. We aimed to create an assistive device to help him with his daily activities. After conducting several interviews with Bill, we learned that he loves cooking but has difficulty determining if the meat is cooked through due to his inability to see color changes. As a result, we decided to create an assistive cooking device to help him cook safely. We aim to provide Bill with a device that will enable him to cook confidently and safely.<\/p>\n<h3><\/h3>\n<h3 style=\"text-align: left\">What we Built<\/h3>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9758\/\" rel=\"attachment wp-att-18307\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18307\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758.jpeg\" alt=\"\" width=\"1241\" height=\"1431\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758.jpeg 1241w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758-260x300.jpeg 260w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758-888x1024.jpeg 888w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758-768x886.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758-973x1122.jpeg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9758-508x586.jpeg 508w\" sizes=\"(max-width: 1241px) 100vw, 1241px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Our project is an assistive device designed to help our client Bill with his cooking activities. As mentioned, Bill has achromatopsia and is sensitive to light, which makes it difficult for him to determine if meat is cooked through due to his inability to see color changes. To address this challenge, our device has two systems. The first system is a temperature sensing system that allows Bill to input the desired cooking temperature using a keypad. The device will then display both the set temperature and the current temperature detected by the probe on two seperate screens. The second system is a timer that countdown the cooking time for Bill&#8217;s dish and alerts him when it&#8217;s completed. Together, these two systems help Bill cook safely and confidently without worrying about undercooked or overcooked meat.<\/p>\n<p>&nbsp;<\/p>\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-18115-1\" width=\"620\" height=\"349\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/vue_video_cache_filtered_spliced-2.mp4?_=1\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/vue_video_cache_filtered_spliced-2.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/vue_video_cache_filtered_spliced-2.mp4<\/a><\/video><\/div>\n<p>&nbsp;<\/p>\n<p>&#8220;Story&#8221;<\/p>\n<p>Bill wakes up early on a Sunday morning feeling energized and ready to cook up a storm in the kitchen. He decides to make a special breakfast of pancakes and bacon, and he can&#8217;t wait to use his new assistive cooking device. He pulls out his ingredients, preheats the stove, and starts cooking the bacon. With his device by his side, he inputs the desired temperature and sets the timer for the bacon. As the bacon cooks, Bill takes advantage of the time to prepare the pancake batter. He uses the probe to check the internal temperature, and the device displays the readings on the screen. The bacon is perfectly cooked, and Bill is thrilled with the results. Next, it&#8217;s time to cook the pancakes. Bill sets the temperature for the griddle and starts cooking. He sets the timer for each batch, knowing that he won&#8217;t have to worry about overcooking or undercooking them. The device beeps to signal when it&#8217;s time to flip the pancakes, and Bill easily flips them. Finally, it&#8217;s time to plate the food. Bill arranges the pancakes and bacon on the plate and pours a generous maple syrup. He sits down to enjoy his meal, feeling proud of himself for cooking such a delicious breakfast. Thanks to his new assistive cooking device, Bill can cook safely and confidently without worrying about undercooked or overcooked meat. He feels empowered and independent in the kitchen and can&#8217;t wait to try out new recipes with his device by his side.<\/p>\n<h3><\/h3>\n<h3>How we got There<\/h3>\n<ul>\n<li>\n<h4>Prototype<\/h4>\n<\/li>\n<\/ul>\n<p>We started by prototyping the inputs and outputs of the meat-cooking assistive device. We were thinking about and exploring how different buttons, screens, LEDs, and temperature sensor work with one another and are housed and interacted with by Bill.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-18117 alignleft\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435-215x300.jpg\" alt=\"Laying out buttons, screens and potentiometers for temperature adjustment. \" width=\"455\" height=\"635\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435-215x300.jpg 215w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435-735x1024.jpg 735w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435-768x1070.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435-508x708.jpg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3435.jpg 902w\" sizes=\"(max-width: 455px) 100vw, 455px\" \/><\/p>\n<div id=\"attachment_18118\" style=\"width: 443px\" class=\"wp-caption alignright\"><img aria-describedby=\"caption-attachment-18118\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-18118\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-300x241.jpg\" alt=\"\" width=\"433\" height=\"348\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-300x241.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-1024x824.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-768x618.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-1536x1236.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-973x783.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436-508x409.jpg 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_3436.jpg 1583w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><p id=\"caption-attachment-18118\" class=\"wp-caption-text\">Ideating on the form of the object and how Bill may interact with it.<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_18126\" style=\"width: 529px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-18126\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-18126 \" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-300x185.png\" alt=\"\" width=\"519\" height=\"320\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-300x185.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-1024x633.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-768x475.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-973x601.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM-508x314.png 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.08.09-AM.png 1534w\" sizes=\"(max-width: 519px) 100vw, 519px\" \/><p id=\"caption-attachment-18126\" class=\"wp-caption-text\">A version with screen to compliment the voice from the speaker, and a more tangible button system for inputting the temperature.<\/p><\/div>\n<div id=\"attachment_18123\" style=\"width: 531px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-18123\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-18123\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.06.01-AM-300x191.png\" alt=\"\" width=\"521\" height=\"332\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.06.01-AM-300x191.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.06.01-AM-768x489.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.06.01-AM-508x324.png 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.06.01-AM.png 964w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><p id=\"caption-attachment-18123\" class=\"wp-caption-text\">A version with screen to compliment the voice from the speaker, and a more tangible button system for inputting the temperature.<\/p><\/div>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-18128\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-300x87.png\" alt=\"\" width=\"486\" height=\"141\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-300x87.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-1024x297.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-768x222.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-973x282.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM-508x147.png 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.37-AM.png 1222w\" sizes=\"(max-width: 486px) 100vw, 486px\" \/><\/p>\n<div id=\"attachment_18127\" style=\"width: 519px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-18127\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-18127\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-300x89.png\" alt=\"\" width=\"509\" height=\"151\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-300x89.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-1024x305.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-768x228.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-973x289.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM-508x151.png 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.09.16-AM.png 1318w\" sizes=\"(max-width: 509px) 100vw, 509px\" \/><p id=\"caption-attachment-18127\" class=\"wp-caption-text\">Figuring out handheld versions. Thinking about features it might have and how they may be interacted with.<\/p><\/div>\n<div id=\"attachment_18121\" style=\"width: 464px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-18121\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-18121\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-300x213.png\" alt=\"\" width=\"454\" height=\"322\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-300x213.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-1024x728.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-768x546.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-1536x1092.png 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-973x692.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM-508x361.png 508w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/Screen-Shot-2023-04-10-at-11.00.11-AM.png 2022w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><p id=\"caption-attachment-18121\" class=\"wp-caption-text\">A reference that Bill shared of his kitchen space, and the shelf the device will live on.<\/p><\/div>\n<p>After the prototype critique, we asked more questions to Bill because we wanted to design a device that truly fits his preferences. Our questions for Bill after these initial prototypes revolved around:<\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Where would he like it? Storage?\u00a0<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">On the countertop<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">As a complete object (fully handheld)\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Something that fits in a drawer<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Something that goes on a backsplash<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Should it be wipable\/ cleanable?\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">What kind of inputs would he prefer?\u00a0<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">More touch screen style\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Different kinds of potentiometers\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Keypad\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The dirtiness of fingers may be a consideration<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Does he want to set each degree of temperature or scroll through a menu?\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Does he want the additional feature of a cooking timer? <\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">What kind of outputs to tell him that it is ready<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Audio<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Visual? Zach said he had a high screen<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Light? How many bulbs are on kind of thing<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Incorporating the feedback we received during the critiques, we made several changes to our design. We added a voice output feature for the current temperature and included a separate timer feature. We also made the box housing generally pretty dark for higher contrast. During the refining process, we asked Bill many questions about his cooking preferences and needs. We learned that while he does cook in a dark kitchen and likes sound output, he prefers to read numbers from a screen. He also mentioned that white text on a black background and a comfortable font size would work well for him. We found a 7-segment number display that would meet his needs and decided to make the housing and aesthetic of the box generally pretty dark to provide higher contrast.<\/p>\n<div style=\"width: 620px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-18115-2\" width=\"620\" height=\"1102\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9253-2.mp4?_=2\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9253-2.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9253-2.mp4<\/a><\/video><\/div>\n<p>Initially, we had considered including a progress bar or feedback feature to let Bill know how close his meat was to reaching the target temperature. However, Bill said it wouldn&#8217;t be something he would particularly need, so we decided to focus on providing him with the current and target temperatures on the two displays instead. Regarding input, we discussed the practicality of a keypad layout and decided to include a little button connecting to the speaker to voice the current temperature when pressed. We also included a separate timer feature with an hour and minute dials and a similar screen and button for voicing the feature.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9760\/\" rel=\"attachment wp-att-18320\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18320\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-scaled.jpg\" alt=\"\" width=\"1920\" height=\"2560\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-scaled.jpg 1920w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-225x300.jpg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-768x1024.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-1152x1536.jpg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-1536x2048.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-973x1297.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9760-508x677.jpg 508w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>Considering Bill wants to put this device on his shelf above the stove, we designed to used a power cable that allows Bill to plug it in and use the device easily. We also added an on and off switch just in case he doesn&#8217;t like to plug in and out every time but still can turn the device on and off.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9759\/\" rel=\"attachment wp-att-18321\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18321\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9759-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p>Another feedback we took from the critique is that adding a hinge on the device to organize the probe is necessary. So we 3D modeled and printed a hinge that could exactly hold the probe and mounted it to the top of the device.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9763\/\" rel=\"attachment wp-att-18323\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18323\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-scaled.jpg\" alt=\"\" width=\"1898\" height=\"2560\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-scaled.jpg 1898w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-222x300.jpg 222w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-759x1024.jpg 759w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-768x1036.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-1139x1536.jpg 1139w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-1519x2048.jpg 1519w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-973x1312.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9763-508x685.jpg 508w\" sizes=\"(max-width: 1898px) 100vw, 1898px\" \/><\/a><\/p>\n<ul>\n<li>\n<h3 id=\"b-process\">\u00a0 Process<\/h3>\n<\/li>\n<\/ul>\n<p>Our Built process followed our initially outlaid schedule very closely, we did not experience a lot of delays or deviations from the initial design plan aside from the electronics taking 1 day extra to finish and debug.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9228-4\/\" rel=\"attachment wp-att-18328\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18328\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9228-3-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p>3D Printed Hinge for the thermistor<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9216-2\/\" rel=\"attachment wp-att-18326\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18326\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9216-1-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p>Laser-cut the box with black acrylic. and soldered electronics placed side by side.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9765\/\" rel=\"attachment wp-att-18327\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18327\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-scaled.jpg\" alt=\"\" width=\"1920\" height=\"2560\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-scaled.jpg 1920w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-225x300.jpg 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-768x1024.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-1152x1536.jpg 1152w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-1536x2048.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-973x1297.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9765-508x677.jpg 508w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>We have a double panel for the front to cover the &#8216;ABCD&#8217; row of the keypad, which we will not use.<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9219\/\" rel=\"attachment wp-att-18330\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18330\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-scaled.jpg\" alt=\"\" width=\"2560\" height=\"2367\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-300x277.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-1024x947.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-768x710.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-1536x1420.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-2048x1894.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-973x900.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9219-508x470.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a>Soldered all electronics together to avoid unstable connections.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/project-name-by-hue-values-final-documentation\/img_9245-3\/\" rel=\"attachment wp-att-18329\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18329\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/IMG_9245-2-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a>Glue the components on the box.<\/p>\n<p>Overall the build process was what we expected. We stuck closely to our initial design and the electronics cooperated with the vision of our final product. There were a few strange library conflict with our text to speech library but that was debugged rather quickly. All of our box parts fit well and the foresight to use clearly labeled stranded wire made assembly very easy.<\/p>\n<p>&nbsp;<\/p>\n<h3>Conclusions and Lessons Learned<\/h3>\n<p><span style=\"font-weight: 400\">Starting with the final critique. We were overall pleased with the final presentation and critique of the project. There were some last minute software\/ electric related bugs but other than that, our device performed as expected.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">The feedback that we received was roughly split into 2 categories: design and execution. The design related feedback was very insightful as at that point in time, we had been staring at this particular design for a couple weeks, having fresh perspectives was nice. Much of the feedback centered around the user friendliness of the design stating that :\u201d<\/span><span style=\"font-weight: 400\">Some of the usability was unclear, it could benefit from some labels to clarify what each numbers are corresponding to and a volume potentiometer.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u201c and \u201c<\/span><span style=\"font-weight: 400\">Would be helpful if the buttons read out their purposes as well as the corresponding figures, as well as having the displays physically labeled\u201d. The core of the feedback that complimented the design on its sleekness and minimal look also criticized the confusing nature of the placement of the buttons. It would probably be a good idea to label the buttons as it does not really detract from the overall look or function of the device. It was an issue of running out of time that we chose not to mess with the overall design too much. In addition, the displays being physically labeled would probably preclude the need for labeling the buttons. We also had a design comment about the placement of the thermometer over the speaker cutout. \u201cPlacement of thermometer rest in proximity to speaker holes presents moisture challenges and could be made more ergonomic.\u201d This was very interesting as we had not considered the potential for the thermistor to become wet and leak into the speaker port. Given that both the port and the mount are easily moved. A future interaction would definitely address this. There was also a comment about adding some rubber feet to the device to prevent it from slipping. This would probably be a good idea on a commercial version but we designed the device to fit on a specific shelf where slipping when pushing a button would not cause any problems.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Finally on execution notes. A lot of notes were on the buggy timer and screen flashing which we were aware of potential fixes already. However, there were some software notes that we had not considered. One interesting note is that \u201cNeeds warning beeps at T\u20135\u00b0, solid alarm tone at T\u00b0, and a constant (but dismissable) BURN ALERT at something like T+10\u00b0.\u201d While designing the functionality of the product, we only considered a warning when the temperature was met with the assumption that Bill would be able to head and see it. If it&#8217;s the case that he is in another room, we did not consider that possibility. A future iteration would include an approaching temperature chime as well as a burn warning that is sustained in order to address these cases. I think this was just a situation where we did not consider the possibility of him missing the complete chime.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Overall the feedback was very insightful and having many experienced perspectives really helped us understand the advantages and disadvantages of the design choices that we made.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Working with Bill was an overall good experience. We think given that he was the coordinator and CLASS staff, our experience might be different from other groups working with CLASS members. With Bill specifically, something like not being able to see the doneness of meat was not a complication that we had ever considered with color blindness. Having him as a client made us aware of a lot of issues that partial vision deficiency could cause for a person even if it&#8217;s not as serious as full blindness. We are grateful for the opportunity to work with him. We also learned valuable lessons working with and interacting with the other clients in the project as well as the CLASS trip. Prior to this project, we did not have a lot of experience interacting with the disabled community and this project gave a lot of insight into their lives and struggles.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Finally, some notes about this project. This project ran smoothly overall and the team worked well together. The division of tasks was more or less equal and people were able to bring their specialized skills to make the project what it was. Given the opportunity to do it again, our process would be very similar. We built it flex time in the event that something went wrong which helped us out a lot in the end. This final project was an excellent close to a very interesting and engaging class. <\/span><\/p>\n<p>&nbsp;<\/p>\n<h3>Technical Details<\/h3>\n<ul>\n<li>\n<h4>Schematic and Block Diagram<\/h4>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-18366\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-content\/uploads\/2023\/04\/schefinal.drawio.svg\" alt=\"\" width=\"1338\" height=\"3062\" \/><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<h4>Codes<\/h4>\n<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">\/*\r\nProject Name: Bill's Cooking Buddy Helper\r\nProject Members: Sapna Tayal, Angie (Chuyi) Wang, Harry Ren\r\nCode Author: Harry Ren\r\n- Assistive Meat Thermometer and Cooking timer\r\n- Keypad input for target temperature\r\n- All values displayed on 7 segments and can be read via speaker\r\n\r\nController: Arduino Mega\r\n\r\nPin Mapping:\r\nA0: Keypad pin 1\r\nA1: Keypad pin 2\r\nA2: Keypad pin 3\r\nA3: Keypad pin 4\r\n10: Keypad pin 5\r\n11: Keypad pin 6\r\n12: Keypad pin 7\r\n13: Keypad pin 8\r\n\r\n2: Current Temp Button\r\n3: Target Temp Button\r\n4: Timer Button\r\n\r\nA8: Hour Potentiometer Pin\r\nA9: Minute Potentiometer Pin\r\n\r\n6: Main Audio Amp Pin\r\n7: Inverted Audio Amp Pin\r\n\r\nA10: Temp Probe Pin\r\n\r\nNote: all 7 Segment pins connect to I2C Bus (master-slave) System\r\nSDA: 7 Segment main SDA\r\nSCL: 7 Segment main SCL\r\n\r\nPortions of code are adapted from the following sources\r\n- https:\/\/forum.arduino.cc\/t\/another-bbq-thermometer-wifi-enabled-with-push-notifications\/225467\r\n- https:\/\/forum.arduino.cc\/t\/countdown-timer-and-adafruit-4-digit-7-segment-display-w-i2c-backpack\/364882\/2\r\n- https:\/\/www.instructables.com\/Arduino-Text-to-Speech-Converter-Using-LM386-Talki\/\r\nrelevant functions are credited\r\ncode by Harry Ren at Carnegie Mellon University (hjren@andrew.cmu.edu)\r\nreleased by author to public domain, April 2023\r\n*\/\r\n\r\n\r\n#include &lt;Keypad.h&gt;\r\n#include &lt;OneWire.h&gt;\r\n#include &lt;DallasTemperature.h&gt;\r\n#include \"Talkie.h\"\r\n#include \"Vocab_US_Large.h\"\r\n#include &lt;Wire.h&gt;  \/\/ Enable this line if using Arduino Uno, Mega, etc.\r\n#include &lt;Adafruit_GFX.h&gt;\r\n#include \"Adafruit_LEDBackpack.h\"\r\n#include &lt;math.h&gt;\r\n\r\n\/\/Lines 12-19 adapted from https:\/\/forum.arduino.cc\/t\/another-bbq-thermometer-wifi-enabled-with-push-notifications\/225467\/2\r\nfloat air;          \/\/  temperature\r\nfloat meat;         \/\/   Unused from sample code\r\nfloat vin = 4.999;  \/\/  DC Voltage as measured with DMM between +5V and GND\r\nfloat r2 = 100000;  \/\/ Resistance in ohms of your fixed resistor\r\n\r\nfloat A = 0.00004556837992;     \/\/ \"A\" Coeffecient in Steinhart-Hart Equation\r\nfloat B = 0.0002634285613;      \/\/ \"B\"\r\nfloat C = 0.00000005286310982;  \/\/ \"C\"\r\n\r\nconst int sw1 = 2;  \/\/current temp button\r\nconst int sw2 = 3;  \/\/tgt temp button\r\nconst int sw3 = 4;  \/\/timer button\r\nconst int sw4 = 5; \/\/io switch\r\n\r\nTalkie voice;  \/\/init speaker\r\n\r\n\/\/ Define the pins for the 7-segment display: depreciated\r\nconst int digitPins[] = { 2, 3, 4, 5 };\r\nconst int segmentPins[] = { 6, 7, 8, 9, 10, 11, 12 };\r\n\r\n\/\/ Define the keypad\r\nconst byte ROWS = 4;\r\nconst byte COLS = 4;\r\nchar keys[ROWS][COLS] = {\r\n  { '1', '2', '3', 'A' },\r\n  { '4', '5', '6', 'B' },\r\n  { '7', '8', '9', 'C' },\r\n  { '*', '0', '#', 'D' }\r\n};\r\nbyte rowPins[ROWS] = { A0, A1, A2, A3 };  \/\/keypad pins\r\nbyte colPins[COLS] = { 10, 11, 13, 12 };  \/\/keypad pins\r\nKeypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);\r\n\r\n\r\nAdafruit_7segment mat = Adafruit_7segment();     \/\/curr 7seg\r\nAdafruit_7segment mat1 = Adafruit_7segment();    \/\/tgt 7seg\r\nAdafruit_7segment matrix = Adafruit_7segment();  \/\/timer 7seg\r\n\r\nint number = 0;  \/\/curr tgt\r\nint temp = 0;    \/\/curr temp\r\n\r\nint startMinute = 4;   \/\/  Modify these defines to\r\nint startSecond = 59;  \/\/ change the timer interval\r\nint minutes = startMinute;\r\nint seconds = startSecond;\r\nbool notStarted = 0;  \/\/timer started bool flag\r\n\r\nunsigned long previousSecondMillis = 0UL;\r\nlong oneSecond = 1000UL;  \/\/ milliseconds per second\r\n\r\nconst int POT_PIN_H = A8;\r\nconst int POT_PIN_M = A9;\r\nint digit_H = 0;\r\nint digit_M = 0;\r\n\r\n\r\nvoid setup() {\r\n\r\n  Serial.begin(9600);\r\n\r\n  \/\/init button pins\r\n  pinMode(sw1, INPUT);\r\n  pinMode(sw2, INPUT);\r\n  pinMode(sw3, INPUT);\r\n\r\n  \/\/init 7 segments\r\n  mat.begin(0x70);\r\n  mat1.begin(0x71);\r\n  matrix.begin(0x72);\r\n  mat.print(number);\r\n  mat1.print(temp);\r\n\r\n  matrix.writeDigitRaw(2,0x2);\r\n  \r\n  \/\/ Set the digit pins as outputs: depreciated\r\n  for (int i = 0; i &lt; 4; i++) {\r\n    pinMode(digitPins[i], OUTPUT);\r\n  }\r\n\r\n  \/\/ Set the segment pins as outputs: depreciated\r\n  for (int i = 0; i &lt; 7; i++) {\r\n    pinMode(segmentPins[i], OUTPUT);\r\n  }\r\n\r\n\/\/init speaker code: depreciated\r\n#if defined(TEENSYDUINO)\r\n  pinMode(5, OUTPUT);\r\n  digitalWrite(5, HIGH);  \/\/Enable Amplified PROP shield\r\n#endif\r\n}\r\n\r\n\r\nvoid loop() {\r\n  \/\/read switches\r\n  int switch1 = digitalRead(sw1);\r\n  int switch2 = digitalRead(sw2);\r\n  int switch3 = digitalRead(sw3);\r\n  int switch4 = digitalRead(sw4);\r\n\r\n  \/\/BUTTON CODE\r\n  if (switch1 == 1) {\r\n    readnum(number);\r\n  }\r\n  if (switch2 == 1) {\r\n    readnum((int)air);\r\n  }\r\n  if (switch3 == 1) {\r\n    notStarted = 1;\r\n    \/\/previousSecondMillis = 0UL;\r\n  }\r\n  \r\n\r\n  \/\/TEMP PROBE CODE\r\n  \/\/read and update current temp\r\n  readSensors();\r\n  mat1.print((int)air);\r\n\r\n  \/\/KEYPAD CODE\r\n  \/\/ Wait for a key press\r\n  char key = keypad.getKey();\r\n  char printednum = '0';\r\n  \/\/ If a key was pressed, display and read the corresponding number\r\n  if (key != NO_KEY) {\r\n    int newnumber = getNumberForKey(key);\r\n    saynum(newnumber);\r\n    if (newnumber == 14) {\r\n      number = 0;\r\n      mat.clear();\r\n    }\r\n    \/\/update the 7 seg number\r\n    else if (number &lt; 1000 &amp;&amp; newnumber != 14 &amp;&amp; newnumber != 15) {\r\n      number = number * 10 + newnumber;\r\n    }\r\n    mat.print(number);\r\n    \/\/Serial.println(number);\r\n  }\r\n  if (switch4==1){\r\n    mat.clear();\r\n    mat1.clear();\r\n    \r\n  }\r\n  mat.writeDisplay();\r\n  mat1.writeDisplay();\r\n\r\n  \/\/TIMER CODE\r\n  \/\/Setting timer\r\n  if (notStarted == 0) {\r\n    int potVal_H = analogRead(POT_PIN_H);\r\n    int potVal_M = analogRead(POT_PIN_M);\r\n\r\n    digit_H = map(potVal_H, 1023, 0, 0, 30);\r\n    digit_M = map(potVal_M, 1023, 0, 0, 59);\r\n\r\n    startMinute = digit_H;  \r\n    startSecond = digit_M;  \r\n    minutes = startMinute;\r\n    seconds = startSecond;\r\n    matrix.writeDigitNum(0, (minutes \/ 10));\r\n    matrix.writeDigitNum(1, (minutes % 10));\r\n    matrix.writeDigitNum(3, (seconds \/ 10));\r\n    matrix.writeDigitNum(4, (seconds % 10));\r\n    if (switch4==1){\r\n    matrix.clear();\r\n\r\n  }\r\n    matrix.writeDisplay();\r\n  }\r\n\r\n  else {\r\n    \/\/ Countdown timer\r\n    \/\/adapted from https:\/\/forum.arduino.cc\/t\/countdown-timer-and-adafruit-4-digit-7-segment-display-w-i2c-backpack\/364882\/2\r\n    \/\/ --------- Run this every second ------------------\r\n    if (millis() - previousSecondMillis &gt;= oneSecond) {\r\n      \/\/update 7 seg per second\r\n      matrix.writeDigitNum(0, (minutes \/ 10));\r\n      matrix.writeDigitNum(1, (minutes % 10));\r\n      matrix.writeDigitNum(3, (seconds \/ 10));\r\n      matrix.writeDigitNum(4, (seconds % 10));\r\n      if (switch4==1){\r\n    matrix.clear(); \r\n  }\r\n      matrix.writeDisplay();\r\n      if (seconds-- == 0) {\r\n        if (minutes == 0) {\r\n          \/\/If timer reaches 0\r\n          notStarted = 0;\r\n          voice.say(sp2_COMPLETE);\r\n          \/\/minutes = startMinute;\r\n          \/\/seconds = startSecond;\r\n          delay(1000);\r\n        } else {\r\n          \/\/ rollever from n:00 to (n-1):59\r\n          minutes -= 1;\r\n          seconds = 59;\r\n        }\r\n      }\r\n\r\n      previousSecondMillis += oneSecond;\r\n    }\r\n  }\r\n}\r\n\r\n\/\/reads a 4 dig number on speaker\r\nvoid readnum(int number) {\r\n  if (number &gt; 999) {\r\n    saynum((number \/ 1000) % 10);\r\n  }\r\n  if (number &gt; 99) {\r\n    saynum((number \/ 100) % 10);\r\n  }\r\n  if (number &gt; 9) {\r\n    saynum((number \/ 10) % 10);\r\n  }\r\n  if (number &gt; -1) {\r\n    saynum(number % 10);\r\n  }\r\n}\r\n\r\n\/\/reads a single number\r\nvoid saynum(int n) {\r\n  switch (n) {\r\n    case 1:\r\n      voice.say(sp2_ONE);\r\n      return;\r\n    case 2:\r\n      voice.say(sp2_TWO);\r\n      return;\r\n    case 3:\r\n      voice.say(sp2_THREE);\r\n      return;\r\n    case 4:\r\n      voice.say(sp2_FOUR);\r\n      return;\r\n    case 5:\r\n      voice.say(sp2_FIVE);\r\n      return;\r\n    case 6:\r\n      voice.say(sp2_SIX);\r\n      return;\r\n    case 7:\r\n      voice.say(sp2_SEVEN);\r\n      return;\r\n    case 8:\r\n      voice.say(sp2_EIGHT);\r\n      return;\r\n    case 9:\r\n      voice.say(sp2_NINE);\r\n      return;\r\n    case 0:\r\n      voice.say(sp2_ZERO);\r\n      return;\r\n    case 14:\r\n      voice.say(sp3_CLEAR);\r\n      return;\r\n    case 15:\r\n      \/\/readnum();\r\n      return;\r\n\r\n    default: return;\r\n  }\r\n}\r\n\r\n\r\n\/\/ Convert the key to a number (casting caused problems)\r\nint getNumberForKey(char key) {\r\n  switch (key) {\r\n    case '0': return 0;\r\n    case '1': return 1;\r\n    case '2': return 2;\r\n    case '3': return 3;\r\n    case '4': return 4;\r\n    case '5': return 5;\r\n    case '6': return 6;\r\n    case '7': return 7;\r\n    case '8': return 8;\r\n    case '9': return 9;\r\n    case 'A': return 10;\r\n    case 'B': return 11;\r\n    case 'C': return 12;\r\n    case 'D': return 13;\r\n    case '*': return 14;\r\n    case '#': return 15;\r\n    default: return 0;\r\n  }\r\n}\r\n\r\n\r\n\/\/Depreciated Function\r\nvoid displayNumber(int number) {\r\n  int digits[4];\r\n  digits[0] = number % 10;\r\n  digits[1] = (number \/ 10) % 10;\r\n  digits[2] = (number \/ 100) % 10;\r\n  digits[3] = (number \/ 1000) % 10;\r\n}\r\n\r\n\/\/ Reads and updates current temp\r\n\/\/ adapted from https:\/\/forum.arduino.cc\/t\/another-bbq-thermometer-wifi-enabled-with-push-notifications\/225467\r\nvoid readSensors() {\r\n  float a0 = analogRead(A10);                            \/\/ This reads the \"voltage\" value on A0. Value is actually divided into 1024 steps from 0-1023.\r\n  float v0 = a0 * .0049;                                 \/\/ Converts A0 value to an actual voltage (5.0V \/ 1024 steps = .0049V\/step.\r\n  float r0 = (((r2 * vin) \/ v0) - r2);                   \/\/ Calculates resistance value of thermistor based on fixed resistor value and measured voltage\r\n  float logr0 = log(r0);                                 \/\/ Natural log of thermistor resistance used in Steinhart-Hart Equation\r\n  float logcubed0 = logr0 * logr0 * logr0;               \/\/ The cube of the above value\r\n  float k0 = 1.0 \/ (A + (B * logr0) + (C * logcubed0));  \/\/ Steinhart-Hart Equation to calculate temperature in Kelvin\r\n  float f0 = (1.8 * (k0 - 273)) + 32;                    \/\/ Convert temperature to Fahrenheit\r\n\r\n  if (isnan(f0))  \/\/ If value is not a number, assign an arbitrary value\r\n  {\r\n    air = int(1);\r\n  } else {\r\n    air = f0;  \/\/ Otherwise use the calculated value\r\n  }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Introduction In this class, we worked collaboratively with our client\u00a0 Bill, who has achromatopsia and is sensitive to light. We aimed to create an assistive device to&#8230;<\/p>\n","protected":false},"author":43,"featured_media":18307,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[159],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/posts\/18115"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/comments?post=18115"}],"version-history":[{"count":15,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/posts\/18115\/revisions"}],"predecessor-version":[{"id":18368,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/posts\/18115\/revisions\/18368"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/media\/18307"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/media?parent=18115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/categories?post=18115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2023\/work\/wp-json\/wp\/v2\/tags?post=18115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}