Before we get into the how-to, we felt it would be appropriate to explain a little bit about how this came to be. As many of you may remember, a couple of months ago we attended CES 2010. While there, we also attended the It Won’t Stay in Vegas Blogger party and ended up meeting the guys from Woot. After all of us spent a little bit of time appreciating the open bar, a group of us stood ended up standing around and talking shop for a while. All of a sudden, a member of our group, Jeremy Grosser, proposed the idea that Hackaday and Woot form a partnership. Basically, they would give us a heads up on what they are going to sell and we would write up a how-to on how to do something cool or useful with that product. Then, when the day came for Woot to sell the product, we would post our how-to. What you are reading right now just so happens to be that idea in action, the first official partnership between Hackaday and Woot. In this how-to, we’ll be taking apart the Wowwee Rovio mobile webcam robot, adding some super-bright LEDs for better see-in-the-dark action, and see how some software called RoboRealm can give it a little bit of artificial intelligence.
If don’t have a Rovio yet, you should probably head over to Woot and pick one up so you can follow along. Also, be sure to pick up a copy of RoboRealm at deals.woot while you’re at it. It is important to note that while writing this how-to, we used a modified design of the Rovio Head-Mounted LED hack, posted to RoboCommunity by [Rudolph].
- 6 super-bright white LEDs (Ours were rated for 3.3v with an intensity of 7000mcd.)
- 1 2N2907 PNP Transistor (We found ours in a 15 transistor combo pack from RadioShack.)
- 1 22ohm resistor
- 1 2.2k ohm resistor
- 22g solid hookup wire
- RadioShack 3x2x1″ Project Enclosure (We used the plastic back panel as a place to mount our LEDs.)
- 5mm LED holders (Optional. We ended up using them to mount our LEDs in their poorly drilled holes.)
- Heat-shrink tubing (Optional, but recommended.)
- A small strip of perfboard
We picked up most of our parts from RadioShack, but these parts are so common that you should be able to pick them up from any electronics components store.
The first step towards giving our Rovio some much needed extra light is, of course, to disassemble it. After turning the Rovio upside down, remove the six phillips-head screws and carefully remove the top shell to gain access to the Rovio’s internals. While you won’t be able to fully detach the top shell, you should be able to lay it next to the bottom part of the Rovio as seen above.
Inside of the Rovio, there are two main PCBs, the control board and the power supply board. For the purposes of this how-to, we will only need to modify the power supply board. To gain access to the power supply board, simply remove the two phillips-head screws that secure the board vertically. After you gain access to the board, you will then need to identify the ground and positive pads on the PCB. We will be tapping into these pads later to power our array of LEDs. One other item of interest to us is the white wire leading from the control board to the LED headlight board. This wire will allow us to control our new headlights through the Rovio’s web interface.
After firing up your soldering iron, you’ll need to solder two wires onto the power supply board. As you can see above, there are two areas with tiny little holes, allowing for easy access to both GND and VCC. After you have soldered both of these wires, screw the board back in and then turn your attention towards the white wire mentioned previously. After cutting the white wire, solder a length of hookup wire to the end of it and insulate it with appropriately sized heat-shrink tubing. Also, it’s probably a good idea to remove the LED headlight board entirely. This gives you three openings to run your wires out of from the Rovio to our new headlight panel. After you’ve removed the board, you can cut the wires leading to both the infrared LED and receiver. These function as a forward facing “radar” to alert the user if there are any obstacles ahead. We decided to salvage ours by placing them both in the new panel that we will soon be creating. If you choose to salvage your infrared “radar” as well, then remember to solder extension wires between the appropriate leads and the LED and receiver. We actually used some telephone tap connectors (from RadioShack) to extend the three wires leading to the infrared receiver, but soldering should work just fine. Now that you’re finished with all of the internal modifications to the Rovio, we can move on to the circuitry behind this hack.
In order to make sure that we can control our replacement LED headlights through Rovio’s web interface, we need to build a circuit that will detect when the headlights are triggered via the web interface and activate our headlights accordingly. To do this, we’ll use a PNP transistor to switch the ground of our headlight circuit. As you can see from the schematic above, the white wire that we mentioned earlier will be connected to the base of the transistor via a 2.2k resistor, the ground from the power supply board will be connected to the collector of the transistor, and the emitter of the transistor will be connected to the ground of the parallel array of LEDs. If you want to, you could probably add a few more LEDs to this design. Just remember, if you change the number or type of the LEDs, you will have to recalculate the value of the current-limiting resistor between VCC and the positive pin of the parallel LED array. After we’ve reviewed our schematic and we’re comfortable with it, we should be ready to breadboard.
As you can see, there really isn’t that much to our circuit as far as components go. The black and red wires come directly from the power supply board. Our voltage reading was right around 6.5v. Please note that your voltage may vary depending on the charge of your Rovio’s NiMH battery. The green wire was soldered to the white wire inside of the Rovio, and controls whether the transistor lets the ground flow to the LEDs. We found that the best way to test this circuit while breadboarding was to turn on the Rovio and turn on and off the headlights using the web interface. After confirming that the circuit works consistently, you can go ahead and solder the circuit onto some perfboard and connect to the Rovio.
The circuit really doesn’t take up much space on the perfboard. We decided to use the extra space on our board as a makeshift terminal block to extend the infrared LED. While soldering the circuit onto the perfboard, be sure to remember the orientation of your transistor. If you accidentally put it in backwards, you could switch the collector and emitter, burning out the transistor. We mention this only because we actually did it the first time we assembled our board, and we ended up having to swap in a new transistor before reassembling the board. After you’ve assembled and verified that your circuit works, we can move on to assembling our headlight panel.
Drilling and Wiring
On your blank panel, carefully drill 8 holes in any configuration you would like. When drilling your holes, be sure to use a 3/16″ drill bit. While it is actually slightly smaller than a 5mm LED, you can rotate the drill once or twice around to widen the hole. The main thing is that you don’t want to make the holes too large for the LEDs, which, incidentally, we ended up doing. One of them was so wide that we had to change the placement of our LEDs to make sure that they all more or less fit.
I don’t think that I need to get into too much detail here, but the major thing to remember is that the LEDs need to be wired in parallel. Also, be sure that you are connecting cathode to cathode and anode to anode, otherwise the whole circuit just won’t work. After you’ve completely assembled the panel, attach the wires the ground from your perfboard and the VCC from the power supply board to the circuit, and use the web interface to test that the LEDs get switched on when they’re supposed to be. If you decided to salvage the infrared “radar”, don’t forget to attach the infrared LED and receiver to the board in the two holes left over.
After you’ve finished with the drilling and wiring, you should be ready to attach the panel to the Rovio. While it was a little tricky for us, we were able to epoxy the panel to the underside of the front of the Rovio so that it looked like it was vertically mounted.
Now that your Rovio can see better in darker situations, lets take a look at RoboRealm.
While investigating all of the different things that we could do with our Rovio, we stumbled upon a piece of software called RoboRealm. RoboRealm allows you to take video input from any webcam, including the Rovio, and run it through any number of different modules to process the images. After the images are processed, the software can even see if any pre-defined conditions are met, and if they are it will instruct the robot to act accordingly. Combine that visual input with the audio input/output on the Rovio, and you can do some pretty cool stuff. The interesting part about this software is that it officially supports the Rovio out of the box. We’ve had a chance to mess around with it a little bit, and as far as we can tell, it seems like pretty powerful software.
We already know all of the cool things that we want to do with this software and our Rovio, but we’re curious, what would you do with it? Leave us your answer in the comments, and if we see something that we find truly inspiring, we’ll do some research, write it up, and post a how-to explaining how to do it. Who knows, there might even be a brand new Rovio and a free copy of RoboRealm in it for the winner too…