He had already written a new control program for the Rovio, so redoing the same program with the EEG controls would give him a great comparison.
If you recall from the mind controlled TV , meditating on a single thought can be cumbersome for quick controls. Instead, he used facial expression recognition. 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 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.
The first step towards giving our Rovio some much needed extra light is, of course, to disassemble it. 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. 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.
This gives you three openings to run your wires out of from the Rovio to our new headlight panel. We decided to salvage ours by placing them both in the new panel that we will soon be creating. 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. 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.
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. The black and red wires come directly from the power supply board. Our voltage reading was right around 6.
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. 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.
On your blank panel, carefully drill 8 holes in any configuration you would like. While it is actually slightly smaller than a 5mm LED, you can rotate the drill once or twice around to widen the hole. 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. 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.
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. The interesting part about this software is that it officially supports the Rovio out of the box. Who knows, there might even be a brand new Rovio and a free copy of RoboRealm in it for the winner too…. Can I put a text-to-speech synthesizer and a speaker in it? J: Have you ever used a international mail forwarder?
Hack a day: next time think about the people outside the USA, look at your site stats, we are a lot! Man… sure was hoping for something cool with this when I saw Hackaday linked over at Woot. Big let down. Good grief! They happened to meet the people from Woot and came up with a great idea. Most likely international readers can still purchase the same product through a different supplier, they just may not get it for the same price as from Woot.
So quit crying you big babies. Mike: Nobody suggested that HAD does this intentionally. The LED adding was cool I suppose. Once you get that finished, tie it to the dog and have Rovio take it for a run around the park. I would like to see magnetic wheels so you could send the thing into HVAC ductwork. I would use it as a diagnostic tool without tearing a ventilation system apart. Maybe mount another magnet to pick up lost tools or parts. Failed to load latest commit information. View code.
Current code is a proof of concept for hacking directly Rovio code in RAM to implement local bahavior ie: not relying on a computer 'driving' the Web API to do automatic things. Demo code currently installs a timer procedure sending commands to blink Rovio blue leds left-right.
To recompile and test the code: 1 - Prerequisite: I'm doing this on Linux and using a gcc ARM cross compiler plus python scripts, this could probably be transposed to Windows with cygwin etc This is critical as code invokes Firmware functions at specific addresses, so other version will probably have different addresses.
If a signature for the patch 'PATC' is found code at 0x70e is invoked. At this location a demo code is poked demo-leds. The demo-leds code is poked in a memory region that is first allocated via the malloc API, so in theory this code is in a safe area that won't be overwritten during rovio operations.
0コメント