During Spring 2018, an Introduction to Microcontrollers course, instructed by Professor Jacob Schmidt, was offered for the very first time at UCLA. The course included topics such as microcontrollers in robotics and motion, sensing and data acquisition, communication with specialty integrated circuits, using Processing language, digital and analog input/output, SPI and I2C, interrupts, and other advanced topics.
In order to solidify the concepts presented in the lectures, a final design project was assigned to the class. The prompt: build something cool.
For the final project, I decided to build both physical and virtual versions of a marble tilt game.
The virtual marble tilt game was visualized using Processing and controlled using the LIS3DH accelerometer connected to an Arduino Uno. The GUI for the game was written in Processing.
A LIS3DH accelerometer attached to an Arduino Uno controlled the motion of 2 TowerPro SG-5010 servos which tilted the platform of the physical marble tilt game. The frame for the game was 3D-printed using services on UCLA campus. An IR LED and phototransistor were placed at the end of the maze to detect when a small ball was covered the ending spot. The GUI for the game was written in Processing and is essentially the virtual GUI with the addition of a timer.
Here is a video of the game in action:
This was a very fun, exciting, and hands-on class which taught me so much about circuit design and microcontrollers. I wish this class was offered earlier so that I could apply some of the skills I learned here to some of the hackathons that happen on campus. Nevertheless, this class will help me tremendously in planning and executing my future pet projects.