{"id":104,"date":"2021-12-11T21:40:55","date_gmt":"2021-12-11T21:40:55","guid":{"rendered":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/?p=104"},"modified":"2024-05-11T19:08:31","modified_gmt":"2024-05-11T19:08:31","slug":"final-destination-specialone-surprisebox","status":"publish","type":"post","link":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/2021\/12\/11\/final-destination-specialone-surprisebox\/","title":{"rendered":"Final Destination: SpecialOne SurpriseBox"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Short Story Featuring SpecialOne<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"SpecialOne Surprise Box\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/wHO1RcTW9To?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>SpecialOne Demo<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"SpecialOne Demo\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/BS-Obs2TWxs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Project Description <\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we&#8217;re sold on the idea of buying SpecialOne, let&#8217;s first learn its basics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Who am I? <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m the founder of SpecialOne. SpecialOne is a surprise box expert that elevates your engagement day by curating your glowing and music ring box. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why is my company relevant to you? <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In today&#8217;s ultra-competitive world, the only way people can feel good about themselves is by being better than others.   It is so easy for people to get lost in the comparison loop. It&#8217;s common for people to have second thoughts after seeing their ring and go about thinking &#8211; &#8220;Jess&#8217;s ring looks better than mine! Ugh! Why did John even propose me with this single <em>solitaire <\/em>ring?&#8221; However, this ruins the entire essence of a special moment that can only be experienced by you and no one else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SpecialOne aims at enhancing the engagement day experience by removing unnecessary pressure on how fancy your ring should be, but instead works on making the moment special.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Who would buy SpecialOne Surprise Box?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The market for SpecialOne Surprise Boxes is huge!  According to <a href=\"https:\/\/wedding.report\/index.cfm\/action\/wedding_statistics\/view\/market\/id\/00\/idtype\/s\/location\/united_states\/\">wedding.report <\/a>(yes, this website exists!) the total number of weddings in 2020 was 1.2 million in the United States. If we get a 10% of this market share, then we would get roughly 120,000 buyers in the US alone! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Who will mentor me in this project?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I would seek assistance from the course instructor, Professor St. John and Instructor Mensing. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What materials and funding will I require for this project? <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I would require: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Squarewear<\/li>\n\n\n\n<li>Arduino UNO<\/li>\n\n\n\n<li>Wooden Ply<\/li>\n\n\n\n<li>Drilling Equipment<\/li>\n\n\n\n<li>Screws<\/li>\n\n\n\n<li>Saw<\/li>\n\n\n\n<li>Red fancy cloth<\/li>\n\n\n\n<li>Willpower <\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Documenting My Progress<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Day 2<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Light Response!\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/pUT3Php5zUs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I learned how to solder and it was fun! Soldering did take a ton of time, but finally seeing this neopixel band light up was extremely satisfying.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Day 3<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Connecting Photodetector and Buzzer\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/R7_5KO2KR70?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Day 4<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Box Hinges\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/BxhsEMsauUk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Component Connections<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-768x1024.jpg\" alt=\"\" class=\"wp-image-152\" style=\"width:242px;height:322px\" srcset=\"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-768x1024.jpg 768w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-225x300.jpg 225w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-1152x1536.jpg 1152w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-1536x2048.jpg 1536w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211206_175634-scaled.jpg 1920w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-768x1024.jpg\" alt=\"\" class=\"wp-image-153\" style=\"width:244px;height:324px\" srcset=\"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-768x1024.jpg 768w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-225x300.jpg 225w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-1152x1536.jpg 1152w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-1536x2048.jpg 1536w, https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-content\/uploads\/sites\/755\/2021\/12\/20211205_164920-scaled.jpg 1920w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>My Code <\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ NeoPixel Ring simple sketch (c) 2013 Shae Erisson\n\/\/ Released under the GPLv3 license to match the rest of the\n\/\/ Adafruit NeoPixel library\n\n#include &lt;Adafruit_NeoPixel.h&gt;\n#ifdef __AVR__\n #include &lt;avr\/power.h&gt; \/\/ Required for 16 MHz Adafruit Trinket\n#endif\n\n\n\/\/-----------ALL CONSTANTS AND PIN CONNECTIONS --------------------------\n\/\/ Which pin on the Arduino is connected to the NeoPixels?\n#define PIN        6 \/\/ Neopixel Attachment\n#define BUZZER_PIN 9 \/\/Where is the buzzer attached\nconst int ldrPin = A0;\n#define DELAYVAL 500 \/\/ Time (in milliseconds) to pause between pixels\n#define NUMPIXELS 16 \/\/ Popular NeoPixel ring size \/\/ How many NeoPixels are attached to the Arduino?\n#define LED_COUNT 12\n\n\n\n\n\/\/ When setting up the NeoPixel library, we tell it how many pixels,\n\/\/ and which pin to use to send signals. Note that for older NeoPixel\n\/\/ strips you might need to change the third parameter -- see the\n\/\/ strandtest example for more information on possible values.\nAdafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);\nAdafruit_NeoPixel strip(LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);\n\n\n\n\nvoid setup() {\n  \n  Serial.begin(9600);\n  pinMode(PIN, OUTPUT);\n  pinMode(ldrPin, INPUT);\n  pixels.begin(); \/\/ INITIALIZE NeoPixel strip object (REQUIRED)\n  pixels.clear();\n\n}\n\nvoid loop() {\n  int ldrStatus = analogRead(ldrPin);\n\n\/\/CHECKINGG FOR LIGHT \n  if (ldrStatus &lt;= 200)\n  {\n    Serial.print(\"Its Dark, Turn on the LED:\");\n    Serial.println(ldrStatus);\n    pixels.clear(); \/\/ Set all pixel colors to 'off'\n\n  }\n  \n  else\n  {\n    Serial.print(\"Its Bright, Turn off the LED:\");\n    Serial.println(ldrStatus);\n    pixels.clear(); \/\/ Set all pixel colors to 'off'\n    \/\/Now turn the light on\n    pixels.show();   \/\/ Send the updated pixel colors to the hardware.\n\n\n  \/\/ The first NeoPixel in a strand is #0, second is 1, all the way up\n  \/\/ to the count of pixels minus one.\n  for(int i=0; i&lt;NUMPIXELS; i++) { \/\/ For each pixel...\n\n    \/\/ pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255\n    \n  theaterChase(strip.Color(150, 0, 0), 50); \/\/ Red, half brightness\n  playSong();\n  theaterChase(strip.Color(127, 127, 127), 50); \/\/ White, half brightness\n  theaterChase(strip.Color(127,   0,   0), 50); \/\/ Red, half brightness\n  theaterChase(strip.Color(  0,   0, 127), 50); \/\/ Blue, half brightness\n  rainbow(100);             \/\/ Flowing rainbow cycle along the whole strip\n\n  }\n}\n}\n\n\/\/ Add the notes needed using the note sheet. Spaces acts like breaks\nchar song&#091;] = \"mmggaag mmggaag mmeeddc mmffeed mmggaag mmggadm\";\n\n\/\/ beats per note\n\/\/ Add the beats needed to complete the song. \n\/\/ The amount of beats should match the amount of notes and spaces\nint beats&#091;] = {  5, 1, 1, 7, 1, 3, 2, 4, \n                 5, 1, 1, 7, 1, 3, 2, 4,\n                 1, 3, 4, 2, 2, 1, 1, 2, \n                 5, 1, 1, 7, 1, 3, 2, 4,\n                 5, 1, 1, 7, 1, 3, 2, 4, \n                 5, 1, 1, 7, 1, 3, 2, 4};\n\/\/------------Modify ONLY The Code Above To Update the Melody ----------\n\n\/\/---------------- Do Not Edit The Code Below------------------------\n\/\/ speed of song\nint tempo = 300;\n\/\/ convenience notes means we don't need Pitches.h\n\/\/ names of the notes\nchar names&#091;] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };\n\/\/ corresponding tones for C4 - B4, C5 (looked up values from Pitches.h)\nint tones&#091;] = { 262, 295, 330, 349, 392, 440, 494, 523 };\n\n\/\/ play the song using the variables: song, songLength, beats\nvoid playSong()\n{\n  delay( 5000 );\n\n  \/\/ for each note in the melody:\n  for (int noteIndex = 0; noteIndex &lt; sizeof(song); noteIndex++)\n  {\n  \/\/ if it's a space\n  if (song&#091;noteIndex] == ' ')\n  {\n    \/\/ rest\n    delay( beats&#091;noteIndex] * tempo\/5);\n  }\n  \/\/ otherwise it's the name of a note\n  else\n  {\n    \/\/ play the note at that index for the specified time\n    playNote(song&#091;noteIndex], beats&#091;noteIndex] * tempo);\n  }\n      \/\/ pause between notes\n  delay(tempo);\n  }\n}\n\/\/ play the tone corresponding to the note name\nvoid playNote(char noteName, int duration)\n{\n  \/\/ loop through the names\n  for (int i = 0; i &lt; sizeof(names); i++)\n  {\n  \/\/ if we found the right name\n  if (names&#091;i] == noteName)\n  {\n    \/\/ play the tone at the same index\n    tone( BUZZER_PIN, tones&#091;i], duration); \n    \/\/ don't bother looking through the rest of the names\n    break;\n  }\n  }\n}\n\n\n\n\/\/------------------Additional Neopixel functions----------------------------\nvoid theaterChase(uint32_t color, int wait) {\n  for(int a=0; a&lt;10; a++) {  \/\/ Repeat 10 times...\n    for(int b=0; b&lt;3; b++) { \/\/  'b' counts from 0 to 2...\n      strip.clear();         \/\/   Set all pixels in RAM to 0 (off)\n      \/\/ 'c' counts up from 'b' to end of strip in steps of 3...\n      for(int c=b; c&lt;strip.numPixels(); c += 3) {\n        strip.setPixelColor(c, color); \/\/ Set pixel 'c' to value 'color'\n      }\n      strip.show(); \/\/ Update strip with new contents\n      delay(wait);  \/\/ Pause for a moment\n    }\n  }\n}\n\n\/\/ Rainbow cycle along whole strip. Pass delay time (in ms) between frames.\nvoid rainbow(int wait) {\n  \/\/ Hue of first pixel runs 5 complete loops through the color wheel.\n  \/\/ Color wheel has a range of 65536 but it's OK if we roll over, so\n  \/\/ just count from 0 to 5*65536. Adding 256 to firstPixelHue each time\n  \/\/ means we'll make 5*65536\/256 = 1280 passes through this loop:\n  for(long firstPixelHue = 0; firstPixelHue &lt; 5*65536; firstPixelHue += 256) {\n    \/\/ strip.rainbow() can take a single argument (first pixel hue) or\n    \/\/ optionally a few extras: number of rainbow repetitions (default 1),\n    \/\/ saturation and value (brightness) (both 0-255, similar to the\n    \/\/ ColorHSV() function, default 255), and a true\/false flag for whether\n    \/\/ to apply gamma correction to provide 'truer' colors (default true).\n    strip.rainbow(firstPixelHue);\n    \/\/ Above line is equivalent to:\n    \/\/ strip.rainbow(firstPixelHue, 1, 255, 255, true);\n    strip.show(); \/\/ Update strip with new contents\n    delay(wait);  \/\/ Pause for a moment\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Short Story Featuring SpecialOne SpecialOne Demo Project Description Now that we&#8217;re sold on the idea of buying SpecialOne, let&#8217;s first learn its basics. Who am I? I&#8217;m the founder of SpecialOne. SpecialOne is a surprise box expert that elevates your engagement day by curating your glowing and music ring box. Why is my company relevant &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/2021\/12\/11\/final-destination-specialone-surprisebox\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Final Destination: SpecialOne SurpriseBox&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1806,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-104","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/posts\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/users\/1806"}],"replies":[{"embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":12,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"predecessor-version":[{"id":162,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/posts\/104\/revisions\/162"}],"wp:attachment":[{"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/mumtazlearns\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}