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.
This weekend’s robot hackathon was a huge success. Not only did everyone who participated have a blast, but we actually ended up with a nifty little robot too. You can also check out Eric’s blog post on the event as well as this fantastic set of flickr photos. Here’s a clip of the robot in action in one of our early tests:
The robot in the video runs on a set of powered train track rails. Power is drawn from the rails into the Arduino and the motor shield atop the carriage (photo: motorizing the carriage). The arduino is our robot “brain” (photo: coding the brain) that issues all the movement and LED blink commands (yes, any robot worth its salt MUST have blinking LEDs). While we now have several feet of track installed, this turned out to be a difficult job since hacklab apparently has a 4″ thick concrete ceiling. But thanks to a lot of hard work (photo: drilling the ceiling) it’s now rock solid and looks awesome. The idea is to lay additional track that will eventually allow the robot to drive along the ceiling all over the lab. Our “use case” is a robot that can be commanded to head over to the desks, pick up empty pop cans and ferry them over to the recycling bin (more about that in a moment).
After the above video was taken, we started to outfit the robot with additional capabilities and sensors. The first was a Sharp IR distance sensor that we’d like to use for robot positioning along the track. The second was this little contraption (see if you can guess what it is before scrolling further):
This little gadget is actually a winch that can raise or lower a bucket from the robot. In our proposed pop can pickup “use case” the winch is what will enable the robot to pick up and deliver pop cans to the recycling bin. …what? “ugly” you say? Not to us. What it lacks in sleek lines and striking curves is overshadowed by character and performance. As an example, if you look carefully, on the left side of the spool we have a heart shaped piece of acrylic that serves as our motor hub (yes, every self respecting robot needs a heart)! And equally cool is that just above it we have a limit switch with a roller on it that tracks along the edges of the heart as the spool turns, sending our robot three electronic “clicks” each rotation (two at the top of the heart and one at the bottom) that help us encode/track the position of the winch. It also has a homing switch at the top to allow the robot to figure out where the bucket is after a reboot. So will it lift a pop can? You bet! The heaviest object we tested with it was the fire extinguisher …which it lifted without a problem!
And of course, this is just the beginning. We have lots of code left to write, track to lay, and sensors to add. We also plan to give the robot a xbee wireless connection so we can issue it commands from within the lab as well. Adding a pan/tilt laser pointer atop the robot is also on our to-do list.
Thanks to everyone for an awesomely fun weekend, and feel free to roll up your sleeves and join us on this project as Hacklab’s Train Overlord continues to evolve!
IMPORTANT UPDATE: (2009-03-30) The workshop is now full. – Andrew
Okay electronics and music enthusiasts, it’s time to get out your soldering irons! (or buy one if you don’t have one yet) We’re going to build Theremins! (no experience required) If you’re not familiar with this amazing musical instrument, check out the following video of Clara Rockmore, or read the Wikipedia page.
We’re going to build a design by the late great Robert Moog. The circuit is excellent, easy to build, and you’ll end up with a professional-quality instrument on par with any commercial model. This is a great opportunity to learn some soldering and electronics skills and build a unique project. We’re going to provide kits since many of the parts are hard to find and expensive in single quantities. Here are the important details:
- Andrew Kilpatrick will lead the group
- Members and non-members are invited to take part – no electronics experience is necessary
- A maximum of 6 spaces are available this time around
- 4-6 workshops on Wednesday nights to build the project (extra time available as needed)
- Parts and supplies will cost approx. $120 – Please pay in advance to reserve your space.
- includes quality parts, PCBs, power supply, connectors, controls
- includes an acrylic laser-cut control panel (your choice of colour!)
- doesn’t include a wooden enclosure – we can build some here if someone wants to help
- Andrew is designing an optional amplified speaker which you can build for approx. $50
Please email Andrew: hacklab-mail at andrewkilpatrick.org to express your interest and reserve a space. Once we have six people signed up and paid up we’ll get the parts and start building. Andrew will mail participants with more details.
I’ve made a full writeup of the laser engraver project including the current firmware and schematics. It will be updated as things are tweaked and improved, but hopefully this helps give everyone a sense of what we’ve been up to.
Check out the article here.
About two weeks ago Hacklab acquired a Universal Laser Systems ULS-25P laser engraver. Ted found it for sale used for a small sum. But it had broken, ancient electronics which was the reason the unit was sold. We decided that it might be fun to try building our own electronics to get the unit going again. Exactly one week ago Dan and I came into the lab in the evening and tested the laser. We made a little Arduino program to send the laser the correct control signal. Amazingly, it worked! We burned a hole quite successfully through a piece of paper. With a 25W CO2 laser it would be possible to etch and cut a lot of materials under computer control!
A bunch of us worked all last weekend and a few nights this week building electronics, learning to configure and use the emc2 CNC software, and install a place for the unit to sit and proper ventilation to extract smoke and fumes from the etched material. And I am happy to report that exactly one week after initially testing the laser we have a fully working system! Below is a video of the very first run with the laser on.
We still have more to do learning about g-code and the CNC software, calibrating laser power and so on. Also, the machine needs to be moved to its final home in the bathroom with proper ventilation. I’ll be writing a complete page about all the technical details, including schematics, firmware, photos, etc. soon. For now enjoy the video, and please check it out next time you’re at the lab or ask on IRC.
We now have a webcam pointed at the sign….
Live Broadcasting by Ustream
Andrew has written a detailed blog post about making the LED sign work.
Check it out.
We’ve started a Hacklab project to bring utility to some surplus LED sign panels that have been hanging around the HackLab! These panels use a high-speed digital serial interface, which has been reverse-engineered by Dan and Andrew. It’s a very complicated and strange system. If you’re interested in digital logic, ask us to explain how it works.
In order to make the panels easy to use for members, we’re going to permanantly mount them on the wall over the stairs. They’re going to be attached to a nice painted piece of plywood (steev!) and wired up to a server. We’re going to do some circuitry to allow the sign’s power to be automatically controlled.
We’re going to interface the LED panels with a host computer using an Arduino. Our previous efforts pushed the limits of the Arduino’s performance, but we were running completely unoptmized code. Hopefully with a few tweaks, and by getting a bit more low level, we can move the serial data fast enough for an adquite scan rate.
The Arduino’s USB Serial interface will be used to interface the sign with the host computer, which will most likely be running BMix with a custom output plugin. BMix is software developed by Andrew, Dan and Jonathan for the Blinkenlights project in Toronto, and is very good at controlling a matrix of lights. It will allow the display to be operated using a standard UDP protocol which already has lots of language support, and will also allow it to be easily shared between a number of users and applications at the lab. There’s even a video game API.
This is the start of the project and the basic design… More information, photographs, and geeky details will be coming as we dig deeper.