Learning Module 1: Introduction to Soldering
For the learning module, Nico worked on his soldering skills with Evan. Nico already had experience with soldering from participating in Robotics, but he could still learn more just from practicing. Evan had no prior experience, but picked up quickly on the basic skills. They read through the manual and watched videos on the first day in class so they could be ready to go the next day. Nico finished the practice circuit board that had him solder resistors, capacitors, wires, and other interesting things as well. He is now really confident in his soldering ability and had a lot of fun this learning module.
Learning Module 2: Arduino Theremin
For the learning module, Nico and Jason worked with Arduino. Neither of them had any prior experience with it, but using documentation and videos online, they picked up quickly on the fundamental concepts. After a lot of investigating why their infrared sensor wasn't working correctly to measure distance, they found a lot more success in using an ultrasonic sensor. By using the tone() method and creating certain distance ranges for specific notes, they were able to play the tune to Happy Birthday. Nico now has a better understanding of how Arduinos work, and enjoyed working with Jason on this learning module.
Learning Module 3: Angry Flappy Bird in Unity
For the learning module, Nico and Quinn worked in Unity. Neither of them had any prior experience with it, but by following some tutorials, they were able to learn how to setup the scene, and how to write scripts to interact with objects. Nico had a lot of issues implementing the scorekeeping because the numbers were extremely blurry but after a bit of researching and experimenting, he figured out how the canvas object works. Overall, Nico had fun working in Unity and might work on a similar project later in the year.
Learning Module 4: Arduino-Based Self-Balancing Segway Robot
For the learning module, Nico worked with Franco to create a miniature self-balancing Segway robot that was controllable with their phones over Bluetooth. Franco was already quite knowledgeable with coding in Arduino, and Nico knew how to use modeling software to create designs for parts to 3D print. After planning out a rough design with everything laid out, Nico began to design different 'floors' for the robot that would perfectly hold each component. Having used Fusion360 for the WH Robotics team, Nico decided to try out a new, cloud based platform called OnShape and a cloud based 3D printing slicer called Makerbot CloudPrint. While OnShape was not his favorite (because he was used to Fusion360), Nico thought it was a solid free alternative. The Makerbot website user interface was not the best by any means, and without any tutorial it was hard to figure out how to actually import things onto a build plate and do things like slice it, and send it to print. Franco investigated how an HC-05 Bluetooth module worked after it was causing a lot of problems, and the solution was to factory reset it. After a couple problems with incorrect measurements for 3D prints and bugs in code, eventually they were able to get the Segway assembled and balancing on its own. Afterwards, they implemented the phone controller aspect that would only work on certain phones for some reason, but it worked on Nico's so they were fine with it. For the most part, Nico enjoyed working with new software, even if it was frustrating at times, and he is pretty happy with the final result. Nico intends to work with Franco some time in the future to do something with what they learned this module.
(MIT App Inventor code for Bluetooth phone app)
Learning Module 5: Bluetooth RC Car & VR Exploration
For the learning module, Nico and Lenny sought to rebuild an old RC Car that had been stripped of everything and made to function through a Bluetooth connection, similar to Nico's last learning module project. The main difference this time, was that the car would be controlled through the orientation of a VR headset. Lenny primarily focused on making the RC car operational, which involved soldering, wiring, and a lot more he was unfamiliar with. Nico on the other hand, worked a lot in Unity to be able to send Bluetooth commands from an Oculus Quest 2 headset to an Arduino. After encountering a lot of problems, Nico was able to get their Unity app downloaded to his phone and to be able to send commands to the Arduino that would make the RC car drive. However, an issue he was unable to resolve was that when the App ran on the Quest 2, Unity was unable to accurately take the orientation data of the headset to run conditional statements to send a specific command. Something Nico and Lenny wanted to add was an ESP-32 camera that would display the feed in the Unity app, but after a little research and failing to take rotation data (also known as Quaternions), they ran out of time.
Arduino Code
Unity Code
Learning Module 6: AI~Powered Plotter, Reinforcement-Learning Inverted Pendulum & More!
Work in progress: Come back later :)
-(View Franco G Learning Module #6)
Learning Module 7: Texting App Foundation & Song Picker App
For this learning module, Nico and Quinn were together but worked seperately on different projects due to Quinn's many abscences at the beginning of the learning module. Initially they sought out to create an app that would notify users when they spend more than 5 minutes on a social media app through a notification, but experiencing difficulties, Nico switched to creating the foundation of a messaging text app while Quinn worked on making a song suggesting app utilizing Spotify's APIs. Nico mostly worked in Android Studios which was completely new to him. Due to many tutorial videos online being outdated, simply setting up a project correctly so that he could edit the graphical interface easily took far too long but eventually he did it. Using Google Firebase as an online database was incredibly simple to set up as Android Studios has it entirely integrated with a tutorial in the "Tools" tab at the top next to "File" and "Edit." In the end, his app functioned as it allowed communication between two simulated phones, as well as two real Android phones. The app essentially served as a chatroom where an unlimited number of users could enter, and messages were only seen by those actively on the app. All in all, it was a fun learning module to work on and Nico is happy with the result.
(Android Studios graphical interface editor)
(A visual of what the database looked like. In order to not save chats, all communication was done in a single database text line that was continually updated and replaced by next texts)