I was looking for a simple way to add Wifi to a robot project, when someone pointed me to Electric IMP. After reading a little about it, i decided to just order one and try it out. A few evenings of toying and I have to conclude that the IMP is a whole new type of component.
The IMP is a microcontroler that is programmed over a Wifi connection. You can use it to add a wireless connection to your robot project or you can use it as a standalone controler with 6 IO-pins. The whole thing is sitting in a nice SD-card package. Just add an SD-slot, ID-chip and power and you're set to go.
The hardware specs are impressive. It has a powerfull processor and provides lots of advantages and features that I was missing on Arduino and Picaxe:
- Easy Wifi
- Full 32bit object oriented programming
- Double I2C ports
- 6 IO-ports with independent PWM
- no more serial-cable trouble
Plugging it in
The guys from electric IMP claim you can add IMP to your project with only $1 worth of components, but that excludes the cost of adding those components to a board. I started with the IMP breakout board by Sparkfun which costs more ($19.95).
The board has a mini-USB connector that can be used to provide power. If you want to power the board from batteries, you can use the battery pins that are protected from reverse polarity. In order to use USB power, you need to solder the pins for a jumper.
Sparkfun also sells a board in a shield format and there is a third board with some switches, pots and sensors.
Network settings
In order to get the device working, you need to load your network settings by creating an IMP acount and installing an app on an android or IOS device. Enter your networking settings and hold your IMP with the LED facing the screen of your smartphone. The network settings (SSID, Password and your IMP account) is transfered to the IMP by flashing the smartphone screen. The blinks from the screen are read by the LED. "BlinkUp" they call it.
After blinking up, the LED starts flashing different colors and when it is s steady green blink, it has successfully connected to the network.
The IMP will now connect to the IMP servers. Not to your laptop or computer, but only to the IMP servers. It took me some time to decide that this is not a bad idea. It saves you a lot of trouble debugging all sorts of problems you might encounter setting up your own connection. Your IMP automatically shows up in a planner on the website, where you can add connections to other computers if needed.
Programming
The IMP is programmed directly on the website using a C-like language called Squirel. As I mostly use picaxe controlers, with integer math and anoying language limitations like the inablilty to use a formula in a simple IF condition, this is a real improvement. Programming your robot without a cable or software to install is very nice too. You alter your program a bit, press the "run" button and your device is updated.
On the website you find a couple of examples that help to connect your IMP to other computers like a webserver or your laptop and to other IMPs if you want. I find the documentation rather limited, but all this is still very much under development and people appear to be working hard to fill in the gaps. Some additions, like a way to construct your own user interface in the programming environment have been promised in the near future.
Conclusion
The electric IMP was a real surprise for me. The many features and processing power make it an interesting alternative to many other controlers. Although $30,- may be a lot for someone with a smaller budget, the use of the SD card format makes it extremely easy to re-use the IMP in other projects, because you can just pull out the card from one robot and shove it in another.
I haven't begun to explore all the posibilities, but I can think of lots of them. You can add the processing power of external computers to the smallest robot and have it look up info on google maps. We can make lots of LMR robots around the world communicate to each other. We can even send a project to a robot faire on the other side of the world and tweak the program from home.
I really hope more people give this little gadget a try, because it is allready changing the way I plan to build my projects.
Links: