Our robot has a frickin’ laser beam attached to it.
On April 8-9, hacklab.to members held a hackathon to build a lab robot. At the end of that day we christened our project Train Overlord.
The robot’s brain is an Arduino with an that lets it move bi-directionally on its track and raise and lower its winch basket. That–plus some IR end sensors that tell Train Overlord when it has reached the end of its track–was where we were at the end of the hackathon.
Oh, how Train Overlord has grown.
In the two weeks since the creation of Train Overlord, we have made some significant improvements and added lots of cool features.
The first problem we saw was that Train Overlord moved much too slowly for our tastes. After a trip to Creatron, we acquired a few parts and got to work on building a new engine.
The new engine gives a bigger electric motor and solid drivetrain than before. The previous setup was just a rubber wheel which used friction to move the train’s wheel. The new engine is essentially a gearmotor kit with a pair of train wheels axles mounted to it. One set of train wheels and axle roll freely (these are standard off-the-shelf wheels), while the other axle is mounted to our gearmotor and and has custom wheels that were printed with the lab’s MakerBot. Printing these custom wheels gave us the proper inner-diameter hole for mounting them to the gearmotor’s axle, and a larger outside diameter for a higher top speed.
The second problem was that the only way we could talk to Train Overlord was to connect its Arduino brain to a computer and upload new code. “This is nonsense,” we thought. “We’re living in the future and should be able to do this wirelessly. We dug around in our bins of parts for an XBee shield, a couple of XBee modules, and an XBee explorer to connect it to a Linux box that acts as a controller. XBee modules use the Zigbee technology to pass serial data over RF, which is a flexible and relatively low-tech solution to the issue. We then whipped up some Arduino code to accept simple one-letter commands, and a basic Ajax-ified web interface that you can use to build and execute a queue of these commands. More recently, we added an iPhone interface–either using an app Abtin wrote to communicate with Processing over Bluetooth, or another Ajax web app to send commands (go forward; go back; raise winch; lower winch; stop) to the robot.
Using the servo technology we learned about in this past Monday’s Arduino servo workshop, we constructed a pan and tilt laser mechanism. Our test program moves the robot back and forth, and then draws an infinity symbol with the laser. That’s right: Train Overlord now has a laser targeting mechanism. WIN.
Finally, we’ve made several improvements that help us collaborate on the project, including a public git repository and extensive documentation on Hacklab’s internal wiki.
Train Overlord is very much still in the development phase, but over the next few weeks and months we should have interesting and exciting stuff to share with the world.