Inspiration
We had a development iRobot Create2 lying around the robotics lab here on campus, it was a remnant from the IARC competition a few years ago. After discovering the available serial port, and a quick search online for supporting documentation, we decided to alter the Roomba's predefined algorithms by injecting serial commands.
What it does
The Roomba (affectionately known as "roombie"), is controlled using a directional input dance pad, commonly used by the game Dance Dance Revolution (DDR). Upon pressing the directional arrows on the game pad, it permits directional movement of the Roomba (Forward, Reverse, Clockwise turn, Counterclockwise turn) at a constant velocity. We have also utilized the built in speaker to play midi-like songs, such as Smash mouth - All Star, and the classic computer generated song: Daisy Bell.
How we built it
From an hardware aspect, we are utilizing the iRobot Create2 chassis and power-pack to control the two drive motors as well as power the IR sensors. We used a Raspberry Pi 3 to send serial data via USB to the serial port located on the chassis. The Raspberry Pi is powered by a 12v Li-Po battery using a step-down converter.
From a software aspect, we utilized pomeroyb's Create2Control library on GitHub, written in python. Create2Control allows the pi to communicate with the Roomba over serial, accepting commands that can be interpenetrated by the Roomba's onboard control system, which is put into development state to permit external commands.
For controlling the Roomba with the game pad, the input is handled by a java library called jinput, it takes the inputs from the game pad and interpenetrates it into usable data that can be read by the base computer, and sent to the pi, which in turn is sent via serial to the Roomba as a command. The communication between the base computer (laptop) and the Raspberry Pi is handled via TCP/IP sockets over a wireless 802.11 connection.
Challenges we ran into
Learning the communication syntax to send commands to the Roomba, brainstorming creative ideas that utilize the Roomba, power distribution, networking,
Accomplishments that we're proud of
We taught ourselves python, and a small amount of Java, most of us being first timers at a Hackathon.
What we learned
Python, Networking, Sockets, Java fundamentals,
What's next for "The Doomba"
Expanded commands, maybe some more songs.
Log in or sign up for Devpost to join the conversation.