---

Tuesday, February 28, 2012

New book: Making Android Accessories with IOIO

My new book, 'Making Android Accessories with IOIO' is out on Amazon now.

Its a small project-based book, that gets you started using IOIO boards.

IOIO boards are interface boards that allow you to connect electronics to your Android phone or tablet.

Although IOIO will work with Google's Open ACcessory standard, it will also work with the much older ADB standard which means that almost any Android phone will work with IOIO.

IOIO will work with either a USB cable or using a low cost Bluetooth USB dongle, making it great for robotic control applications.



Projects

Here are the projects that you can build using the detailed step-by-step instructions in the book. Each project description includes a parts list.


PIR movement detector - sends an SMS when movement detected.





Temperature logger - to SD on the phone, Bluetooth or USB


LED Matrix - 8x8 multicolor LED Matrix, with animations



Bluetooth rover


All the source code for the projects is provided on the book's website.

About the Author
These are my books. Click on the image below to find out more about them.


Monday, February 20, 2012

Deuligne I2C LCD Shield for Arduino

A few months ago, I wrote a review of two LCD shields. One from Freetronics and one from DFRobot.

On the face of it, this shield could be mistaken for yet another LCD shield. It even has the same 2 x 16 character LCD display of the two I reviewed in November. However this shield from Snootlabs has one very important difference. It is an I2C-based device and that means that rather than use 6 or 7 pins of the Arduino, it just uses A4 and A5. As well as being analog pins on the Arduino, these also double-up as the I2C interface.


I got mine in kit form, and as always the Snootlab's construction instructions were clear and easy to follow.

As well as the display itself, there is a little joystick interface, that is also controlled by I2C, so once again, no Arduino pins taken up.


Because it uses I2C, you do not use the standard LCD Library, but instead, you use a library provided by Snootlabs (see the product's download tab). This library came with a parallel set of examples, like those found in the LCD library.

This library sensibly uses the same names as the LCD library, so you will not find it difficult to use if you have used the LCD library. Here is the hello world example code, for example.


#include "Wire.h"
#include <Deuligne.h>

// initialize the library with the numbers of the interface pins
Deuligne lcd;

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.init();
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

To gain access to the joystick button presses, you use the method get_key.

lcd.get_key();

-1 means no key pressed
0: Right
1: Up
2: Down
3: Left
4: Select

The headers are the pass-through type, which may seem redundant for a shield that by its nature must be on the top layer, but while you would't put another shield on top, you may want to plug in header pins and the header sockets are low enough below the level of the display for this to be possible.

In addition, the designers have placed an extra set of connector pins next to the headers, to which right-angle connectors could easily be attached.

Conclusion

This is the best LCD shield that I have used. Not just because of the I2C interface. The display is particularly nice and the trimmer pot used to set the contrast much better positioned than the DFRobot module.


About the Author
These are my books. Click on the image below to find out more about them.



Sunday, February 12, 2012

FIGnition $30 Single Board Computer with Video Out

If you are waiting for the Raspberry Pi. And who isn't? You might like to indulge yourself in one of these wonderful devices. I saw one at Hack to the Future in Preston.

The board is sold in kit form for around 20 GBP (about 30 USD).


The FIGNition is the single-board-computer that has the kind of economy of design worthy of Sir Clive Sinclair. At its heart is an ATMega168 which manages to be a software graphics card, as well as a soft USB interface (for firmware upgrades). The yellow connector is composite video out and the connector below is USB that provides power.

The two 8 pin ICs are Flash storage (384K) and RAM (8k).

The keyboard (8 keys) uses a novel approach to allow you to enter commands to the computer. It takes a bit of getting used to, but is useable.

The board boots into a FORTH interpreter. Forth is a stack-based language, which in keeping with the whole philosophy of this board is simple and elegant.

The board is sold as a kit.



The instructions are clear and easy to follow, and add to the fun of this project. Everything is through hole, with well spaced and large pads, making is suitable for a newcomer to soldering.

There are comprehensive instructions for testing it after construction, something that I was not patient enough to do. The board started up first time for me.


You will need a TV that takes a composite video (yellow wire). I'm in the UK and our standard for TV is PAL, however the website does say that it will also work with NTSC.


The website recommends the use of an old fashioned CRT style TV (above). This worked fine, more stable than the old ZX81 I have, with clearer text.

I also tried it on a modern 40" LCD TV (below). This rendered the text far more clearly, but every few seconds it would lose sync and flicker off until it synced again. But even so, just about usable.




Conclusion

This product appealed to me on a nostalgia trip, and I thoroughly enjoyed making it. I will at some point revisit Forth and try out a few little programs.

It is also a great educational tool, both as a construction project, but also to show those kids, just how little you need to make a computer and that life without a GHz processor and a G of RAM is possible. This is a K not a G computer.

As a practical computer, then no, its not going to replace my laptop, and as a basis for embedded electronics, its not going to oust my Arduino or IOIO. But thats not what its for and I can not  think of many more fun ways to spend $30!

About the Author
These are my books. Click on the image below to find out more about them.


Friday, February 10, 2012

Snootlab Zombadge

If you want a nice simple board to solder up for fun, or just to learn a bit of soldering, then you might like to consider a Zombadge Kit from Snootlabs. They are kind of fun!


They come as a complete kit, with a lithium cell that fits in a holder on the back.

The instructions for building the kit are clear and simple, in Snootlab's usual photo-cartoon style. They also tell you how to identify the components.

For novices, the RGB LED is a little tricky to solder as the leads are close together, so check for solder bridges when you are finished.

The badge is powered by an ATTiny85 microcontroller fitted in a DIL socket. It has an RGB LED (left) an IR sender and an IR receiver as well as ICSP programming headers.

The ATTiny comes ready programmed and when you turn the badge on, it cycles the LED through its colors.

There are some instructions on installing various games on it here. Theses instructions are mostly in French, with an abbreviated version in English, but I had to refer to the French version to try and see what was going on. Better game translation please Snootlabs.

If you have a number of these badges, you can play some interesting interactive games.

Sadly I only had one, so I had to make do with a flashing LED.

The boards are designed to be programmed using an Arduino as an ICSP, and there are instructions for doing this (in English). Unlike the approach of Hi Low Tech, you do not use the Arduino IDE to program them, but rather run 'make' files after configuring them for the port to use.

I wanted to try programming the boards using the Arduino IDE and a USB Tiny ISP as I have with some home made ATTiny boards, but All I could get was:


Binary sketch size: 658 bytes (of a 8192 byte maximum)
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.



The schematic for the Zombadge is available on the downloads tab of the product page.

I would be interested to see if anyone gets any further with this. I can see some interesting hacks for this gadget, along the lines of TV be Gone!

Anyway - irrespective of my failed attempts to hack it, this is a nice little gadget!

About the Author
These are my books. Click on the image below to find out more about them.