Back again with an update on the Wireless Networked Robot! It’s Done! That’s right it’s all finished! Nine months in the making this has been a challenging and rewarding project as you will see in this writeup.
First off let us talk about what this little guy can do. Its method of propulsion is a set of tank treads connected to two 6 volt DC motors and gearboxes. It has two gear settings, one High, one Low. Those motors are each connected to an H-Bridge allowing the motors to be power either forward or backward. The H-Bridge is controlled via a micro-controller. The Micro-controller is an “Arduino Diecimila”. The Arduino is running custom firmware “Mostly” written by me. It is controlling not only the motor direction but also handles headlight activation, and LED Status Bar control.
Movement is controlled via a WRT54GL Wireless router running openwrt and a custom script “not written by me”. This robot can be controlled from anywhere there is an internet connection as long as the ports for the robot and camera are forwarded through the router. The Router is connected to the Arduino micro-controller using a ttl serial connection of which the router has two available serial ports but they are not visible to the general public. You must solder wires to the routers PCB in order to use these ports.
Also connected to the router is an ABS megacam 4210 wired network camera with 360 degree pan, 120 degree tilt, a microphone and audio out. This allows for 2-way audio communication over the network. Connected to the megacam is one of those portable battery powered speakers for mp3 players. So you can hear what the robot hears, see what it sees, and talk through it if you like!
All of this powered by an 18v 2.5ah Rigid Brand rechargeable Drill Battery. With this setup I get about an hours worth of play before I need to recharge. I hacked apart one of my chargers for the batteries (I had several) and used the plug to make the battery easily removable from the robot. Later plans include the ability to park the robot onto a charging base station. As well as including some type of battery status information sent wirelessly back to the operator.
It is all controlled via an application I wrote in Visual Studio .NET. The application has a built in web browser to access the web cam’s stream as well as some of the controls. It also has controls for the robot on the right hand side of the application that control movement of the robot and the camera. There are settings for the camera and robot IP addresses/Ports. There are also settings for web control strings for the PTZ controls of the camera. The application can be controlled via keyboard shortcuts, clicking buttons on app with a mouse, or via an xbox 360 controller (my preferred method). The 360 controller works with the application by utilizing a piece of software called xpadder. This is an excellent application in which you can assign any number of keyboard keys to the xbox controller. Xpadder is available here http://www.xpadder.com. It is not free but is well worth the 16 dollars or so.
Here is a list of some of the internals:
- Linksys WRT54GL wireless router
- ABS Megacam 4210 wired Webcam
- Portable amplified speaker
- Arduino Diecimila microcontroller
- 2 – 12v positive fixed linear voltage regulators, a 1Amp and a 3Amp (camera, headlight, router, and arduino)
- 2 – 6v positive fixed linear voltage regulators (one per motor)
- 1 – 5v positive fixed linear voltage regulator (speaker)
- 1 – 12v relay for headlight activation
- 1 – 80′s Robot Toy (donor for body, motors and gearboxes, h-bridge and the head)
Source code downloads:
Check out the video of it in action below. List of build photos below the video.