This project was all about learning how to use microcontrollers and becoming familiar with embedded systems. For this project, I worked with three other lab partners to create a “RoomBot” that would navigate through an obstacle course, alert the user of any potential hazards or intruders, and return to “home base” after a successful sweep. Below, is a picture of a modified Roomba that was used in Iowa State’s Computer Engineering 288 course. This Roomba has a Tiva™ TM4C123GH6PM Microcontroller.

We used Code Composer Studio to write C code for this project, and we were able to communicate with the Roomba through PuTTY, a terminal emulator, by using Wifi or a UART cable. Digging deep into the Open Interface class for our Roomba, we were able to make use of the various sensors on the bot, including cliff-detection, edge detection, and object detection. For our final demo, we used a GUI created by one of my lab partners to make a map of the course allowing us to easily return to home base. My role for this project was researching, developing, and implementing code to help control the Roomba.