{"id":15849,"date":"2022-05-06T11:38:46","date_gmt":"2022-05-06T15:38:46","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/?p=15849"},"modified":"2022-05-07T13:21:35","modified_gmt":"2022-05-07T17:21:35","slug":"inspiration-capture-device-by-team-callisto-final-documentation","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/inspiration-capture-device-by-team-callisto-final-documentation\/","title":{"rendered":"Inspiration Capture Device by Team Callisto: final documentation"},"content":{"rendered":"<h1><strong>Inspiration Capture Device by Team Callisto: final documentation<\/strong><\/h1>\n<p>The Inspiration Capture Device (ICD) is the product of weeks of collaboration with our team\u2019s client, Mary. After meeting with Mary multiple times in person and through the phone, we determined that Mary, as a writer, values the inspiration that can come at a moment\u2019s notice highly. Thus, we wanted to make her an assistive device that allowed her to quickly and easily capture whatever kind of inspiration reaches her in her daily life so that it could help her writing process.\u00a0 For some more background information on our project, please refer to this post: <a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/team-callisto-interview-documentations\/\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/team-callisto-interview-documentations\/<\/a><\/p>\n<h2 id=\"2-what-we-built-10-pts\">What we built<\/h2>\n<p>The ICD captures \u2018inspiration\u2019 in two different ways- through a picture taken on a small camera or through a voice memo recorded on an audio recorder. The ICD is meant to do this while being as accessible as possible for Mary; the device is split into two parts (a remote controller and a necklace) to make it easy for her to interact with. At the mere press of a button, Mary can take a picture of whatever she is currently facing or turn on a voice recorder on her neck to quickly capture what\u2019s on her mind for future use.<\/p>\n<div id=\"attachment_15851\" style=\"width: 914px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15851\" loading=\"lazy\" class=\"size-full wp-image-15851\" title=\"\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-cam.png\" alt=\"\" width=\"904\" height=\"614\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-cam.png 904w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-cam-300x204.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-cam-768x522.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-cam-508x345.png 508w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><p id=\"caption-attachment-15851\" class=\"wp-caption-text\">Camera component of the ICD\u2019s remote controller<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15852\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15852\" loading=\"lazy\" class=\"size-full wp-image-15852\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-wires.png\" alt=\"\" width=\"790\" height=\"518\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-wires.png 790w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-wires-300x197.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-wires-768x504.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-wires-508x333.png 508w\" sizes=\"(max-width: 790px) 100vw, 790px\" \/><p id=\"caption-attachment-15852\" class=\"wp-caption-text\">Inside the remote you\u2019ll notice various wires as well as an Arduino Uno and a transceiver on the left near the camera<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15853\" style=\"width: 840px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15853\" loading=\"lazy\" class=\"size-full wp-image-15853\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-remote.png\" alt=\"\" width=\"830\" height=\"548\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-remote.png 830w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-remote-300x198.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-remote-768x507.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-remote-508x335.png 508w\" sizes=\"(max-width: 830px) 100vw, 830px\" \/><p id=\"caption-attachment-15853\" class=\"wp-caption-text\">Top view of the remote controller, featuring two buttons with their LED lights meant to indicate current remote activity<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15854\" style=\"width: 756px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15854\" loading=\"lazy\" class=\"size-full wp-image-15854\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-necklace.png\" alt=\"\" width=\"746\" height=\"482\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-necklace.png 746w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-necklace-300x194.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/callisto-necklace-508x328.png 508w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><p id=\"caption-attachment-15854\" class=\"wp-caption-text\">The necklace part of the ICD featuring a green LED<\/p><\/div>\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-15849-1\" width=\"620\" height=\"1102\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/combined.mp4?_=1\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/combined.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/combined.mp4<\/a><\/video><\/div>\n<p>The above video is a compilation of clips relating to the ICD&#8217;s capabilities.<\/p>\n<div id=\"attachment_15857\" style=\"width: 1610px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15857\" loading=\"lazy\" class=\"size-full wp-image-15857\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33.jpg\" alt=\"\" width=\"1600\" height=\"1200\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33.jpg 1600w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/33-508x381.jpg 508w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-15857\" class=\"wp-caption-text\">Image of Juan&#8217;s hand that was captured in the ICD demo video.<\/p><\/div>\n<h3><strong>Narrative<\/strong><\/h3>\n<p>While Mary is out shopping, she notices that a beautiful unfamiliar kind of bird has perched itself on a table in front of her. She pushes the ICD\u2019s red button to take a picture of the bird so she could find out what type of bird it is later. After doing so, she decides to write something about the bird.<\/p>\n<p>Later in the week, she suddenly gets a fantastic idea for a short story\u00a0 while she\u2019s out and about in Pittsburgh. To ensure she doesn\u2019t forget this idea, she presses the ICD\u2019s blue button and says her idea out loud. She then presses the button again to stop and save the recording. Hours later, Mary uploads the file on her computer, listens to her voice memo, and starts getting to work on an amazing story.<\/p>\n<h2 id=\"3-how-we-got-here-prototype-and-process-20-pts\">Prototype and Process<\/h2>\n<p>Our prototype was broken into four parts so that we could test each component before combining them.<\/p>\n<p>The four components included the remote control, the microphone, the camera, and the necklace. The remote control included large buttons connected to LEDs and wireless transmitters, the microphone and the camera were each attached to an SD card, and the necklace included a casing for internal components and a chain.<\/p>\n<div id=\"attachment_15858\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15858\" loading=\"lazy\" class=\"size-full wp-image-15858\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.01-AM.png\" alt=\"\" width=\"790\" height=\"524\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.01-AM.png 790w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.01-AM-300x199.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.01-AM-768x509.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.01-AM-508x337.png 508w\" sizes=\"(max-width: 790px) 100vw, 790px\" \/><p id=\"caption-attachment-15858\" class=\"wp-caption-text\">The remote control component of the ICD prototype<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15859\" style=\"width: 792px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15859\" loading=\"lazy\" class=\"size-full wp-image-15859\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.07-AM.png\" alt=\"\" width=\"782\" height=\"618\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.07-AM.png 782w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.07-AM-300x237.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.07-AM-768x607.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.07-AM-508x401.png 508w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><p id=\"caption-attachment-15859\" class=\"wp-caption-text\">The microphone component of the ICD prototype<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15860\" style=\"width: 842px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15860\" loading=\"lazy\" class=\"size-full wp-image-15860\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.12-AM.png\" alt=\"\" width=\"832\" height=\"552\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.12-AM.png 832w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.12-AM-300x199.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.12-AM-768x510.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.12-AM-508x337.png 508w\" sizes=\"(max-width: 832px) 100vw, 832px\" \/><p id=\"caption-attachment-15860\" class=\"wp-caption-text\">The camera component of the ICD prototype<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15861\" style=\"width: 772px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15861\" loading=\"lazy\" class=\"size-full wp-image-15861\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.17-AM.png\" alt=\"\" width=\"762\" height=\"668\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.17-AM.png 762w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.17-AM-300x263.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.11.17-AM-508x445.png 508w\" sizes=\"(max-width: 762px) 100vw, 762px\" \/><p id=\"caption-attachment-15861\" class=\"wp-caption-text\">The necklace component of the ICD prototype<\/p><\/div>\n<p>&nbsp;<\/p>\n<div style=\"width: 620px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-15849-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\/buttons_LEDs.mp4?_=2\" \/><a href=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/buttons_LEDs.mp4\">https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/buttons_LEDs.mp4<\/a><\/video><\/div>\n<p>The above video showcases the ICD&#8217;s simple user interface.<\/p>\n<h2>Prototyping<\/h2>\n<div id=\"attachment_15876\" style=\"width: 784px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15876\" loading=\"lazy\" class=\"size-full wp-image-15876\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.30-AM.png\" alt=\"\" width=\"774\" height=\"902\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.30-AM.png 774w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.30-AM-257x300.png 257w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.30-AM-768x895.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.30-AM-508x592.png 508w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><p id=\"caption-attachment-15876\" class=\"wp-caption-text\">The initial sketches for the necklace part of the ICD<\/p><\/div>\n<p>Through our interview with Mary, we found that she is creative and a writer but cannot write down her thoughts quickly, so we created a solution that would allow her to record herself the moment she receives inspiration.<\/p>\n<div id=\"attachment_15877\" style=\"width: 590px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15877\" loading=\"lazy\" class=\"size-full wp-image-15877\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.44-AM.png\" alt=\"\" width=\"580\" height=\"1302\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.44-AM.png 580w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.44-AM-134x300.png 134w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.44-AM-456x1024.png 456w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.44-AM-508x1140.png 508w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><p id=\"caption-attachment-15877\" class=\"wp-caption-text\">The initial sketch for the remote control part of the ICD<\/p><\/div>\n<p>After talking with Mary about our initial sketches and solutions, she suggested that we also include a camera capability because she needs the help of someone else to use her phone camera. We also decided to create a separate remote that housed the camera but also triggered the microphone in the necklace wirelessly to make it more accessible for Mary.<\/p>\n<div id=\"attachment_15878\" style=\"width: 582px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15878\" loading=\"lazy\" class=\"size-full wp-image-15878\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.54-AM.png\" alt=\"\" width=\"572\" height=\"874\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.54-AM.png 572w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.54-AM-196x300.png 196w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.21.54-AM-508x776.png 508w\" sizes=\"(max-width: 572px) 100vw, 572px\" \/><p id=\"caption-attachment-15878\" class=\"wp-caption-text\">The initial sketch for the attachment of remote<\/p><\/div>\n<p>We were trying to figure out the best way to attach the remote to the wheelchair so that it would be easy for Mary to press to record her life. We found that it might be best for remote attachment works like a watch to fix on the wheelchair controller.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-15867\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM.png\" alt=\"\" width=\"1356\" height=\"1064\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM.png 1356w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM-300x235.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM-1024x803.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM-768x603.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM-973x763.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.15.54-AM-508x399.png 508w\" sizes=\"(max-width: 1356px) 100vw, 1356px\" \/>Started a simple setup to work on the microphone component using a microsd card reader module and a microphone module<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-15868\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM.png\" alt=\"\" width=\"980\" height=\"1076\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM.png 980w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM-273x300.png 273w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM-933x1024.png 933w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM-768x843.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM-973x1068.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.07-AM-508x558.png 508w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/>Upon recording the audio noticed that there was a lot of noise. In order to investigate where the noise was coming from we hooked the output of the microphone to an oscilloscope. With some testing we realized that the noise was coming from writing to the SD card reader.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-15869\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM.png\" alt=\"\" width=\"800\" height=\"1068\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM.png 800w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM-225x300.png 225w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM-767x1024.png 767w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM-768x1025.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.22-AM-508x678.png 508w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>During the prototype critique, we asked Mary to interact with the microphone set up, focusing on how she would insert and remove the microsd card from the reader. We found that reader module was not optimized for Mary\u2019s hands as the sd card was too small and the push mechanism to remove was difficult. And so, we invested in a larger SD card reader.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-15870\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM.png\" alt=\"\" width=\"954\" height=\"1226\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM.png 954w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM-233x300.png 233w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM-797x1024.png 797w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM-768x987.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.42-AM-508x653.png 508w\" sizes=\"(max-width: 954px) 100vw, 954px\" \/><\/p>\n<p>Unfortunately, the noise still persisted. We switched the arduino uno for an arduino pro micro to see if the board made any difference. Our final design would also use a pro micro as it would allow the microphone to fit in the necklace holder.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-15871\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM.png\" alt=\"\" width=\"1398\" height=\"1038\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM.png 1398w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM-300x223.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM-1024x760.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM-768x570.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM-973x722.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.16.54-AM-508x377.png 508w\" sizes=\"(max-width: 1398px) 100vw, 1398px\" \/><\/p>\n<p>The above change did not fix the noise either. As a last resort we scrapped the SD card readers and invested in a module(vs1053)\u00a0 that had the optimizations required to cleanly record audio. Given more time we would have fully recorded audio with little noise, but instead the audio files were written to the SD card without any audio.<\/p>\n<p>There were also some issues with other components; a moment of frustration regarding the transceivers in our project should be mentioned: Juan spent an unideal amount of time attempting to debug issues with the wireless transceivers. Unsure if the issue was hardware, software, or wiring-related, hours were lost on his part trying to fix the transceiver problem and could\u2019ve gone towards other aspects of the project. This narrow focus on solving the problem in retrospect was a mistake- the time spent trying to resolve the issue (which ended up being due to a broken transceiver) could have instead been spent assisting Sumayya with the voice recorder component of the project. By the time the solution to the transceiver problem was discovered, it was simply too late to assist with other aspects of the project. This served as a learning experience regarding debugging physical computing components as well as knowing when to cut your losses. In addition, we also had some issues with the ICD&#8217;s physical case.<\/p>\n<div id=\"attachment_15880\" style=\"width: 756px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15880\" loading=\"lazy\" class=\"size-full wp-image-15880\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.24.40-AM.png\" alt=\"\" width=\"746\" height=\"556\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.24.40-AM.png 746w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.24.40-AM-300x224.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-11.24.40-AM-508x379.png 508w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><p id=\"caption-attachment-15880\" class=\"wp-caption-text\">The failed versions of the cases<\/p><\/div>\n<p>To make sure the two cases are easy for Mary to use, we have to make them both as small and light as possible. Therefore, every electronic component should be located at its specific place. We did a lot of tests to decrease the size.<\/p>\n<h3><strong>Prototyping Process Findings<\/strong><\/h3>\n<p>Though we each worked on separate components of the ICD, the prototyping process helped teach us a variety of lessons not only about our individual components, but also about working on a physical computing project in general. From questions regarding how our overall project would be powered to what final form it would take, there were several moments throughout the prototyping process where we had to answer questions as a team rather than individually. This was somewhat surprising-even though we were all working on vastly different pieces of technology, the choices we each made on our parts had effects on the overall team project that were sometimes subtle and other times drastic. It was partly due to this that our final version was incomplete- we didn\u2019t truly begin accommodating each other\u2019s work until the final stages of the project. By that point, it was too late to make some much needed adjustments, such as making the ICD\u2019s case less sharp and improving the ICD\u2019s attachment to a wheelchair which were recommended to us from our critiques. We did not intentionally ignore this feedback, but unfortunately we ran out of time to address most of it.<\/p>\n<h3>Gantt Tracking<\/h3>\n<div id=\"attachment_15882\" style=\"width: 2022px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15882\" loading=\"lazy\" class=\"size-full wp-image-15882\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM.png\" alt=\"\" width=\"2012\" height=\"1260\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM.png 2012w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-300x188.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-1024x641.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-768x481.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-1536x962.png 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-973x609.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.20.25-AM-508x318.png 508w\" sizes=\"(max-width: 2012px) 100vw, 2012px\" \/><p id=\"caption-attachment-15882\" class=\"wp-caption-text\">Our team&#8217;s Gantt chart- visualizing our originally planned project schedule<\/p><\/div>\n<p>Overall, we were able to roughly follow our Gantt chart to about 75% accuracy. Divergences from our schedule were mainly due to longer than expected debugging times, slow-arriving components that were stuck in transit for longer than preferred, as well as other miscellaneous issues such as group members falling ill during some days.<\/p>\n<h2>Conclusions and Lessons Learned<\/h2>\n<h3>Feedback<\/h3>\n<p>Some feedback that stood out to us were the following:<\/p>\n<ul>\n<li>\u201cDevelop ergonomics, far reach in objectives file transferring\u201d<\/li>\n<li>\u201cThere are several steps involved in retrieving files; but, those could be incorporated into an end-of-day routine. The device is a bit large and the sharp corners could be uncomfortable.\u201d<\/li>\n<li>\u201cThey really should have considered how their client would use this and added some personality of their client into it.\u201d<\/li>\n<li>\u201cA good idea. Make attachment to chair more stable.\u201d<\/li>\n<\/ul>\n<p>The reason why these pieces of feedback stood out to us was because they reinforced ongoing discussions we were already having regarding the direction of our project. Adding \u201cpersonality\u201d and making file transferring simpler, for instance, were goals we wanted to achieve but didn\u2019t really figure out how to do so. This was partly due to delays in our planned schedule, and ultimately by the time we shifted our focus to the form of our project there was too little time to implement some of the recommended changes. That being said, all of the feedback received was insightful and extremely helpful for possible future iterations of our project.<\/p>\n<h3>Thoughts on Remote Work<\/h3>\n<p>In general, it was smooth to work remotely. At the first beginning, we lost contact with Mary but we got into a collaboration with her successfully soon. Sometimes we did different parts of the project individually but we still cared about the work from each other. Everyone put a lot of effort into this project and often continued working after class alone. If we had another chance to work together remotely, it might be a good way for better collaboration by updating the process once after work.<\/p>\n<h3>Takeaways from working with Mary<\/h3>\n<p>This journey looked like we were doing a device to help Mary, but literally it was Mary who inspired us a lot. She never gave up her love towards life though her mobility was limited. She had her own hobbies and work, her life was so adorable and she got a lot of sense of achievement during her tutorial work. \u201cI really enjoy my life.\u201d Mary said in her first interview with us. At that time we four were all touched by her strong positive vibe.<\/p>\n<h3>Concluding Thoughts<\/h3>\n<p>Even though our final prototype was somewhat distant from our original vision, the process we all went through while working on the prototype was very educational and insightful. We each learned different things about not just our components, but about the process of prototyping a physical computing project as well as working as a team in general.<\/p>\n<p>Given a second go at the project knowing what we know now, our biggest changes would have to do with how we worked on the project in general. Our decision to split the ICD into four separate parts, one for each member, seemed like an obvious one at first but in retrospect proved to be a hindrance in the final stages of our prototyping process. Since we were all the resident \u201cexpert\u201d on the part we were working on within the group, having a group member absent severely hampered our ability to move the project forward. This hurt us a lot after carnival, where some members of the group got sick and as a result had to miss some work sessions- negatively impacting the whole group\u2019s progress.<\/p>\n<p>A possible solution would be to assign two members to each component. This would greatly help with the aforementioned absence problem, and it would have also had positive effects on each component itself since there would be two minds tasked to making progress on each part instead of just one. Additionally, we would also resolve certain prototype issues, like choosing a battery and final form, as soon as possible instead of saving that for the very end given the importance of accessibility for our client.<\/p>\n<p>Some other takeaways include establishing a debugging process for components early on, not underestimating the soldering process, properly gauging capabilities\/knowledge early on in the process, and removing\/combining features earlier! These takeaways were largely individual- Juan\u2019s takeaway (the debugging process) was the result of too many hours spent trying to debug what ended up being broken components. Sumayya\u2019s, on the other hand, centered on her experience tackling the complicated voice recording system. Instead of pivoting to a different direction earlier, her various attempts to get the component working backfired as other components that were behind in terms of progress would have made major use of an extra mind. Yongwen and Tristan also had their fair share of takeaways stemming from their assigned components. Overall, however, we can simply say that each one of us learned something valuable about our very own approaches to different problems.<\/p>\n<h2>Technical details<\/h2>\n<h3>Diagrams<\/h3>\n<div id=\"attachment_15889\" style=\"width: 1544px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15889\" loading=\"lazy\" class=\"size-full wp-image-15889\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM.png\" alt=\"\" width=\"1534\" height=\"730\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM.png 1534w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM-300x143.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM-1024x487.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM-768x365.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM-973x463.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.19-AM-508x242.png 508w\" sizes=\"(max-width: 1534px) 100vw, 1534px\" \/><p id=\"caption-attachment-15889\" class=\"wp-caption-text\">Remote Controller Diagram<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_15890\" style=\"width: 1462px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-15890\" loading=\"lazy\" class=\"size-full wp-image-15890\" title=\"\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM.png\" alt=\"\" width=\"1452\" height=\"860\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM.png 1452w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM-300x178.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM-1024x607.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM-768x455.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM-973x576.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Screen-Shot-2022-05-06-at-10.49.31-AM-508x301.png 508w\" sizes=\"(max-width: 1452px) 100vw, 1452px\" \/><p id=\"caption-attachment-15890\" class=\"wp-caption-text\">Necklace Diagram<\/p><\/div>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-16026\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio.png\" alt=\"\" width=\"1922\" height=\"1260\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio.png 1922w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-300x197.png 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-1024x671.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-768x503.png 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-1536x1007.png 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-973x638.png 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-content\/uploads\/2022\/05\/Phys-Comp-P3-Schematic.drawio-508x333.png 508w\" sizes=\"(max-width: 1922px) 100vw, 1922px\" \/><\/p>\n<h2>Code<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">\/\/ Thanks to ArduCAM Mini demo (C)2018 by Lee, found at http:\/\/www.ArduCAM.com\r\n\/*Image Capture Device - Remote\/Camera Code,\r\nJuan Meza, Tristan Hineman\r\nThis code operates the remote's various functionalities, including\r\nhow it takes user input, how it sends data wirelessly, and how it takes \r\nand saves images taken from the device. \r\n*\/\r\n\r\n\/\/SPI Mosi-11, Miso-12, Sck-13\r\n\r\n#include &lt;nRF24L01.h&gt;\r\n#include &lt;RF24.h&gt;\r\n#include &lt;EEPROM.h&gt;\r\n\r\n#include &lt;Wire.h&gt;\r\n#include &lt;ArduCAM.h&gt;\r\n#include &lt;SPI.h&gt;\r\n#include &lt;SD.h&gt;\r\n#include \"memorysaver.h\"\r\n\r\n#define BUTTON 8\r\n#define BUTTON_BLUE 2\r\n#define LED_BLUE 6 \/\/blue LED\r\n#define LED_RED 5 \/\/red LED\r\n#define SD_CS 9\r\n#define FRAMES_NUM    0x00\r\n\r\nconst byte address[6] = \"42069\";\r\nbool isButtonPressed = false;\r\nunsigned long buttonTime;\r\nint ButtonPresses = 0;\r\n\r\n\/\/ set pin 7 as the slave select for the digital pot:\r\nconst int CS = 7;\r\n\r\nRF24 radio(3, 4); \/\/ CE, CSN\r\n\r\n\/\/camera\r\n\/\/This demo can only work on OV5640_MINI_5MP_PLUS or OV5642_MINI_5MP_PLUS platform.\r\n#if !(defined (OV2640_MINI_2MP_PLUS))\r\n#error Please select the hardware platform and camera module in the ..\/libraries\/ArduCAM\/memorysaver.h file\r\n#endif\r\n\r\n\r\nbool is_header = false;\r\nint total_time = 0;\r\n\r\n#if defined (OV2640_MINI_2MP_PLUS)\r\nArduCAM myCAM( OV2640, CS );\r\n#endif\r\n\r\nuint8_t read_fifo_burst(ArduCAM myCAM);\r\n\r\nvoid setup() {\r\n\r\n  pinMode(BUTTON, INPUT_PULLUP);\r\n  pinMode(BUTTON_BLUE, INPUT_PULLUP);\r\n  pinMode(LED_BLUE, OUTPUT);\r\n  pinMode(LED_RED, OUTPUT);\r\n\r\n  buttonTime = millis();\r\n\r\n  radio.begin();\r\n  radio.openWritingPipe(address);\r\n  radio.setPALevel(RF24_PA_MIN);\r\n  radio.stopListening();\r\n\r\n  \/\/ camera\r\n  uint8_t vid, pid;\r\n  uint8_t temp;\r\n  \r\n#if defined(__SAM3X8E__)\r\n  Wire1.begin();\r\n#else\r\n  Wire.begin();\r\n#endif\r\n\r\n  Serial.begin(115200);\r\n  \r\n  Serial.println(F(\"ArduCAM Start!\"));\r\n  \/\/ set the CS as an output:\r\n  pinMode(CS, OUTPUT);\r\n  digitalWrite(CS, HIGH);\r\n  \/\/ initialize SPI:\r\n  SPI.begin();\r\n  \/\/Reset the CPLD\r\n  myCAM.write_reg(0x07, 0x80);\r\n  delay(100);\r\n  myCAM.write_reg(0x07, 0x00);\r\n  delay(100);\r\n   \r\n   \r\n  while (1) {\r\n    \/\/Check if the ArduCAM SPI bus is OK\r\n    myCAM.write_reg(ARDUCHIP_TEST1, 0x55);\r\n    temp = myCAM.read_reg(ARDUCHIP_TEST1);\r\n    if (temp != 0x55)\r\n    {\r\n      Serial.println(F(\"SPI interface Error!\"));\r\n      delay(1000); continue;\r\n    } else {\r\n      Serial.println(F(\"SPI interface OK.\")); break;\r\n    }\r\n  }\r\n\r\n\r\n#if defined (OV2640_MINI_2MP_PLUS)\r\n  while (1) {\r\n    \/\/Check if the camera module type is OV2640\r\n    myCAM.wrSensorReg8_8(0xff, 0x01);\r\n    myCAM.rdSensorReg8_8(OV2640_CHIPID_HIGH, &amp;vid);\r\n    myCAM.rdSensorReg8_8(OV2640_CHIPID_LOW, &amp;pid);\r\n    if ((vid != 0x26 ) &amp;&amp; (( pid != 0x41 ) || ( pid != 0x42 ))) {\r\n      Serial.println(F(\"ACK CMD Can't find OV2640 module!\"));\r\n      delay(1000); continue;\r\n    }\r\n    else {\r\n      Serial.println(F(\"ACK CMD OV2640 detected.\")); break;\r\n    }\r\n  }\r\n  \r\n#endif\r\n\r\n\r\n  \/\/Initialize SD Card\r\n  while (!SD.begin(SD_CS))\r\n  {\r\n    Serial.println(F(\"SD Card Error!\")); delay(1000);\r\n  }\r\n  Serial.println(F(\"SD Card detected.\"));\r\n  \/\/Change to JPEG capture mode and initialize the OV5640 module\r\n  myCAM.set_format(JPEG);\r\n  myCAM.InitCAM();\r\n  myCAM.clear_fifo_flag();\r\n  myCAM.write_reg(ARDUCHIP_FRAMES, FRAMES_NUM);\r\n}\r\n\r\n\r\nvoid loop() {\r\n\r\n  myCAM.flush_fifo();\r\n  myCAM.clear_fifo_flag();\r\n#if defined (OV2640_MINI_2MP_PLUS)\r\n  myCAM.OV2640_set_JPEG_size(OV2640_1600x1200);\r\n#endif\r\n\r\n  int buttonVal = digitalRead(BUTTON);\r\n  \/\/Serial.println(buttonVal);\r\n  \/\/as a reminder, when a button is being pressed buttonVal turns to zero\r\n\r\n  int buttonBlueVal = digitalRead(BUTTON_BLUE);\r\n\r\n  if (buttonVal == 0) {\r\n    Serial.println(\"red is being pressed\");\r\n    digitalWrite(LED_RED, HIGH);\r\n\r\n    myCAM.start_capture();\r\n    Serial.println(F(\"start capture.\"));\r\n    total_time = millis();\r\n    while ( !myCAM.get_bit(ARDUCHIP_TRIG, CAP_DONE_MASK));\r\n    \r\n    Serial.println(F(\"CAM Capture Done.\"));\r\n    total_time = millis() - total_time;\r\n    Serial.print(F(\"capture total_time used (in miliseconds):\"));\r\n    Serial.println(total_time, DEC);\r\n    total_time = millis();\r\n    \r\n    read_fifo_burst(myCAM);\r\n    total_time = millis() - total_time;\r\n    Serial.print(F(\"save capture total_time used (in miliseconds):\"));\r\n    Serial.println(total_time, DEC);\r\n    \/\/Clear the capture done flag\r\n    myCAM.clear_fifo_flag();\r\n    digitalWrite(LED_RED, LOW); \/\/turn off to signify that image has been taken\r\n    \r\n  }\r\n\r\n  if (buttonBlueVal == 0) {\r\n    Serial.println(\"blue is being pressed\");\r\n    const char text[] = \"ACTIVATE NECKLACE\";\r\n    radio.write(&amp;text, sizeof(text));\r\n    digitalWrite(LED_BLUE, HIGH);\r\n    delay(500); \/\/do some blinking first\r\n    digitalWrite(LED_BLUE, LOW);\r\n  }\r\n\r\n  if ((buttonVal == 0 || buttonBlueVal == 0) &amp;&amp; millis() - buttonTime &gt;= 500) { \/\/button is being pressed for reasonable time\r\n\r\n    \/\/Serial.println(millis()-buttonTime);\r\n    ButtonPresses++;\r\n    buttonTime = millis(); \/\/reset buttonTime for next button press\r\n    \/\/Serial.println(\"Button is being pressed.\");\r\n    Serial.println(\"Button has been pressed this many times:\");\r\n    Serial.println(ButtonPresses);\r\n\r\n  }\r\n\r\n  else {\r\n    \/\/Serial.println(\"Button is NOT being pressed.\");\r\n  }\r\n\r\n  if (ButtonPresses &gt;= 1) {\r\n    \/\/digitalWrite(LED1,HIGH); \/\/on, LOW for off\r\n\r\n  }\r\n\r\n  if (ButtonPresses == 2) {\r\n    \/\/digitalWrite(LED2,HIGH);\r\n\r\n  }\r\n\r\n  if (ButtonPresses &gt; 2) { \/\/more than 2,  reset!\r\n    Serial.println(\"TIME TO RESET\");\r\n\r\n    digitalWrite(LED_BLUE, LOW);\r\n    digitalWrite(LED_RED, LOW);\r\n\r\n    delay(300); \/\/do some blinking first\r\n\r\n    digitalWrite(LED_BLUE, HIGH);\r\n    digitalWrite(LED_RED, HIGH);\r\n\r\n    delay(300);\r\n\r\n    digitalWrite(LED_BLUE, LOW);\r\n    digitalWrite(LED_RED, LOW);\r\n\r\n    ButtonPresses = 0; \/\/reset total button presses\r\n  }\r\n}\r\n\r\nuint8_t read_fifo_burst(ArduCAM myCAM)\r\n{\r\n  uint8_t temp = 0, temp_last = 0;\r\n  uint32_t length = 0;\r\n  static int i = 0;\r\n  static int k;\r\n  char str[16];\r\n  File outFile;\r\n  byte buf[256];\r\n  length = myCAM.read_fifo_length();\r\n  Serial.print(F(\"The fifo length is :\"));\r\n  Serial.println(length, DEC);\r\n  \r\n  if (length &gt;= MAX_FIFO_SIZE) \/\/8M\r\n  {\r\n    Serial.println(\"Over size.\");\r\n    return 0;\r\n  }\r\n  if (length == 0 ) \/\/0 kb\r\n  {\r\n    Serial.println(F(\"Size is 0.\"));\r\n    return 0;\r\n  }\r\n  \r\n  myCAM.CS_LOW();\r\n  myCAM.set_fifo_burst();\/\/Set fifo burst mode\r\n  i = 0;\r\n  while ( length-- )\r\n  {\r\n    temp_last = temp;\r\n    temp =  SPI.transfer(0x00);\r\n    \/\/Read JPEG data from FIFO\r\n    if ( (temp == 0xD9) &amp;&amp; (temp_last == 0xFF) ) \/\/If find the end ,break while,\r\n    {\r\n      buf[i++] = temp;  \/\/save the last  0XD9\r\n      \/\/Write the remain bytes in the buffer\r\n      myCAM.CS_HIGH();\r\n      outFile.write(buf, i);\r\n      \/\/Close the file\r\n      outFile.close();\r\n      Serial.println(F(\"OK\"));\r\n      is_header = false;\r\n      myCAM.CS_LOW();\r\n      myCAM.set_fifo_burst();\r\n      i = 0;\r\n    }\r\n    if (is_header == true)\r\n    {\r\n      \/\/Write image data to buffer if not full\r\n      if (i &lt; 256)\r\n        buf[i++] = temp;\r\n      else\r\n      {\r\n        \/\/Write 256 bytes image data to file\r\n        myCAM.CS_HIGH();\r\n        outFile.write(buf, 256);\r\n        i = 0;\r\n        buf[i++] = temp;\r\n        myCAM.CS_LOW();\r\n        myCAM.set_fifo_burst();\r\n      }\r\n    }\r\n    \r\n    else if ((temp == 0xD8) &amp; (temp_last == 0xFF))\r\n    {\r\n      is_header = true;\r\n      myCAM.CS_HIGH();\r\n      \/\/Create a avi file\r\n      EEPROM.get(0, k);\r\n      k = k + 1;\r\n      EEPROM.update(0, k);\r\n      \r\n      Serial.print(\"Picture number=\");\r\n      Serial.println(k);\r\n      itoa(k, str, 10);\r\n      strcat(str, \".jpg\");\r\n      \r\n      \/\/Open the new file\r\n      outFile = SD.open(str, O_WRITE | O_CREAT | O_TRUNC);\r\n      \r\n      if (! outFile)\r\n      {\r\n        Serial.println(F(\"File open failed\"));\r\n        while (1);\r\n      }\r\n      \r\n      myCAM.CS_LOW();\r\n      myCAM.set_fifo_burst();\r\n      buf[i++] = temp_last;\r\n      buf[i++] = temp;\r\n    }\r\n  }\r\n  myCAM.CS_HIGH();\r\n  return 1;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/*               \r\n* Thanks to Dejan Nedelkovski, www.HowToMechatronics.com\r\n\/*Image Capture Device - \"Necklace\" Code,\r\nJuan Meza \r\nThis code operates our necklace's wireless capabilities.\r\nIt where the necklace should look for a signal and \r\nperforms an action after finding said signal. \r\n*\/\r\n\r\n\r\n#include &lt;SPI.h&gt;\r\n#include &lt;nRF24L01.h&gt;\r\n#include &lt;RF24.h&gt;\r\n#include &lt;string.h&gt;\r\n\r\n#define LED_TEST 3 \/\/green temp LED\r\n\r\nconst byte address[6] = \"42069\";\r\nRF24 radio(7, 8); \/\/ CE, CSN\r\n\r\nvoid setup() {\r\n\r\n  pinMode(LED_TEST,OUTPUT);\r\n  \r\n  Serial.begin(115200); \r\n  radio.begin(); \r\n  radio.openReadingPipe(0, address); \r\n  radio.setPALevel(RF24_PA_MIN); \r\n  radio.startListening(); \r\n  \r\n  Serial.println(\"Receiver is ready to receive...\");\r\n  digitalWrite(LED_TEST,HIGH);\r\n  delay(300); \r\n  digitalWrite(LED_TEST,LOW); \r\n  \r\n}\r\n\r\nvoid loop() {\r\n  \r\n  if (radio.available()) {\r\n    char text[32] = \"\";\r\n    radio.read(&amp;text, sizeof(text));\r\n    Serial.println(text);\r\n\r\n    String key = \"ACTIVATE NECKLACE\";\r\n\r\n    if (String(text) == key){\r\n      \/\/blink LED! \r\n      digitalWrite(LED_TEST,LOW); \r\n      digitalWrite(LED_TEST,LOW); \r\n      delay(300); \r\n      digitalWrite(LED_TEST,HIGH);\r\n      digitalWrite(LED_TEST,HIGH);\r\n      delay(300);\r\n    }\r\n  }\r\n  \r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Special thanks to Professor Zacharias and everyone else who helped us get so far!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inspiration Capture Device by Team Callisto: final documentation The Inspiration Capture Device (ICD) is the product of weeks of collaboration with our team\u2019s client, Mary. After meeting with&#8230;<\/p>\n","protected":false},"author":218,"featured_media":15850,"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\/15849"}],"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\/218"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/comments?post=15849"}],"version-history":[{"count":4,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts\/15849\/revisions"}],"predecessor-version":[{"id":16027,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/posts\/15849\/revisions\/16027"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/media\/15850"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/media?parent=15849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/categories?post=15849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/s2022\/work\/wp-json\/wp\/v2\/tags?post=15849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}