I built this robot as an all-around robot to jump start my way into Arduino. I self taught myself everything about this robot from code to hardware and have taken no formal classes in computer programming or electronics. The robot took aproximately 8 months to complete. The chassis of the bot is a 2wd platform that is highly configurable and features tons of connection points, ideal for a all around experimentation bot. I later added a third plate in order to have even more options for connections and more room for sensors and such. The original goal was to simply navigate a room without bumping into obstacles, that goal quickly expanded to include things such as analyzing data from multiple sensors to make semi-intelligent decisions about it's path. An lcd display was added to give a personality of sorts to the robot. The robot communicates what it's doing/about to do via the screen. For example when an obstacle is detected the robot will say something like "Uh Oh!", "Looks like I've chose the wrong path!" and similar phrases. Atop the robot are 2 leds for use of communicating quickly what is going on in the code. One LED shows the status of obstacle detection, green when clear, and red when detecting/avoiding an obstacle. The other lights up every time the code completes one cycle of object detection (roughly 1/10 seconds) which I added simply for curiosity sake.
After completing those tasks I decided to add some new capabilities to the robot, first being the ability to play "hide and seek." The robot will wander around a bit, stop, and then use the PIR sensor to detect any motion. If there is no motion the robot will wander around once again. It's surprisingly entertaining trying to evade the robots vision but is slightly unfair as the robot cant detect motion while it is in motion. The bot boasts whenever it believes it's found you by taunting you to evade it again. The second functionality I added was the ability to be controlled via IR remote (tv remote). The remote gives you access to four degrees of motion in three different speeds. I will continue to develop this robot as money and ideas come to me. My latest endeavor is combining my two skills, Java and Arduino, to make a Java GUI that can control the robot. I've also started another project with a RC rock crawler which I will be entering into a robotics competition this spring. If you'd like to support this project feel free to check out http://igg.me/p/635797/x/5956262