The story of the Narwhal 9000
Our team started with the idea to use echoAR to do sort of snapchat type stuff and when we echoAR workshop we learned that's not what echoAR was. We also realized it would be very tough for us to use Unity(a new coding application for all of us) to create a fairly complex project using a technology we knew nothing about so we regrouped. Another of our failed ideas included a voice distorter but again none of us had experience with manipulating audio in code and had no idea how to even start it.
The third idea we had was to create a joke teller but we weren't sure how to make it. We asked one of the organizers if we were allowed to use Arduino(a coding platform we all had experience with) and we began making a joke teller using the Serial port on the Arduino. We began by making our GitHub repo to store all of our versions and easily transmit the code. About halfway through making this joke teller one of the team members decided to make a haiku maker do to the similar structure. Another teammate also decided to branch off the main project and explore the idea of badlibs(her clever rebranding of madlibs).
We were all working separately at this point but we were still reviewing each others work using Github and our discord chat room. So our joke teller was the first one to get working but there were still some difficult bugs in the code. One of the challenges we faced was reading the values from the Serial port because the Arduino runs faster than the Serial and we had to use a function(Serial.available()) or other conditions to check if there was data to get. With an improvement to the syllable counting section of the haiku code the first semi working prototype was finished.
The BadLibs weren't quite done but the general idea was working with the improvement to our Serial.read() function by the end of Saturday night. When we began Sunday morning the biggest priority was fixing all the bugs on our three programs and putting them together into one super code. We had a little trouble putting the joke and haiku codes together and had to devise a method to switch between the two forms. We created a little prompt at the beginning to solve this and then read the response of the writer. One of the more mysterious challenges we faced was the memory of the arduinos. We had been running code on two Arduino unos up until this point but when we combined the code it stopped working even after all the basic bugs were solved so we tried running the code on an Arduino Mega and the increased memory seemed to fix the code. We then worked out the rest of the bugs in the badlibs and put all of the codes into one master code and finished our project. We then made the slideshow and the video later on Sunday and presented our project.
Along with all these challenges we've learned a lot about how to use Serial and how to code in C++ overall. One of our biggest lessons was the importance of a good idea because we probably spent the first one or two hours on finding idea until we found one we all liked and took it from there eventually making this beautiful creation.
Instructions on how to run our project are below
Welcome to the Nuclear Narwhals project!
This program was developed on the Arduino Uno and Mega but it is recommedend
that the program is run on the Arduino Mega. Download and run the file
"Fully_completed_hackathon_code.ino" on your Arduino. Once the program is
running on your Arduino, you have to open the serial monitor at 9600 baud
rate. Upon opening the monitor you should get a prompt from the
project to hear either a joke, a haiku, or a Badlib
(Our form of a Madlib). Type in either a "J", a "H", or a "B" to initiate
the laughter! All the other files in this Github are previous nonfunctional
versions and should be treated as such.