Self-Driving Buggies
- Category: IoT, Networking, Web Development
- Technologies: Arduino, C++, Java, Processing, Git
- Skills: Teaching, Demonstrating, Hardware Management
I taught 2nd-year Engineering Students how to program an Arduino Microcontroller attached to multiple sensors and actuators, enabling it to automatically drive around a course. The buggies consist of two servo motors attached to wheels, an ultrasound sensor to detect blocking objects, and two infrared sensors to detect the course line.
I instructed the students on how to control the motors based on the track detected by the infrared sensors, as well as how to slow down and speed up when the ultrasound sensor detects a blocking object. This was achieved using a PID control loop mechanism. The microcontroller is programmed in C++ using the Arduino development environment.
Additionally, the students designed a control GUI and visualization for the buggy's metrics using the Processing Graphical Library with Java. The interface established communication with the buggy through a simple server-client networking architecture. Since the students worked in groups with relatively large codebases, they were also taught Git version control.