LEGO Robotics Projects
Software
Arduino
Python/MicroPython
HTML & CSS
LabVIEW
Hardware
LEGO SPIKE Prime Kit
WIO Terminal
Raspberry Pi 4, Microphone & Camera
For my Intro to Robotics & Mechanics course Spring '21, we were challenged to build a new robotic system every week. Our main tools included a LEGO SPIKE Prime Robotics kit, a Raspberry Pi microcontroller, a Wio Terminal, and LabVIEW and Arduino coding IDEs.
Here is a compilation of all my projects.
Robot Viennese Waltz
For the final project, my group and I built three robots that waltzed together.
The requirements included:
1. Robots should dance the Viennese Waltz with a partner
3. Robots should proceed in a clockwise direction along a large circle, performing smaller loops along the way
2. Robots should start and stop with the music
Given we were a group of three, we came up with a unique solution: we built three robots- two leaders, one follower - with two robots dancing at a time with the leaders switching out.
My main contribution was building and programming the “follower” robot, which would track a green dot on either leader using image processing and a PID controller. When one of the leader robots spotted red tape on the ground, they would exit the circle and the other leader would replace its position, with the follower behind the main leader at all times.
Smart Teleprompter
For the midterm, I built an automated LEGO SPIKE Prime system holding the WIO terminal so that the screen always faces the user as they move their face around while displaying scrolling text the user can read out loud.
The facial recognition was achieved through implementing an OpenCV Haar Cascade Classifier on the Raspberry Pi camera and the teleprompter rotates to keep the face in the center of the camera using a proportional controller.
Another proportional controller was implemented to control the font size of the scrolling WIO screen text by measuring the area of the identified face. The Raspberry Pi communicated to the SPIKE Prime via UART serial connections and SPIKE then communicated to the WIO in the same way.
Webcam Car
A LEGO SPIKE Prime car with Raspberry Pi + Pi camera that displays a live video feed online as well as can be controlled via an HTML interface. The SPIKE car communicates to the Raspberry Pi via a UART serial connection.
Digital Twin
A digital twin interface between a LEGO two-DOF SCARA arm and both 2D & 3D plots in LabVIEW.
The Van Gogh
The Van Gogh is a LEGO SPIKE Prime + WIO Terminal robotic two-arm mechanism that learns how to draw the letter C and mimics it both using a pen and paper and graphically on the WIO terminal in real-time.
The SPIKE code was able to mimic a letter C by storing relative motor degree positions from manually moving the arm in a C motion. Forward kinematics was then utilized in order to translate those movements into (x,y) coordinates for the digital C.
Crazy Races
The Crazy Line Races assignment involved building and programming a line-following robot that can race on a road network indicated by tape on the ground and requires the robot to stop if there is an obstacle in its way.
The robot used a light sensor programmed with a proportional controller to follow the line, and stops/beeps when the ultrasonic sensor detects an obstacle in the way.
Jumbo Space Invaders
Jumbo Space Invaders is a video game based on Space Runs with a WIO Terminal + LEGO SPIKE Prime interface. The user controls an elephant that shoots pellets out of its trunk in order to try and destroy a descending level of space aliens. The LEGO motor and force sensor serve as the controls, and the WIO displays the graphics on its screen.
LEGO Smart Dashboard
This dashboard uses the SPIKE hub and motors, Raspberry Pi, and WIO Terminal to display current weather temperature, time, and quotes from a Kanye West API.
It is connected to a Raspberry Pi via UART serial communication and utilizes REST APIs to retrieve current weather and time information, which is then visually shown through motor displays on the SPIKE.
The WIO Terminal is separately powered through a portable battery and calls a Kanye West API to display various Kanye quotes on the screen.