Introduction: USB Robot

This is my entry for the Robot Contest (13 - 18 age group)

We have recently added a simple, low cost robotic arm to the robot, and written software that allows remote control of the arm and robot itself via WiiMote. This will be published when it is completley up and running (an my exams are over)

This instructible will describe the processes required to build a system for interfacing with a robot (and the basics of building a robot) around the velleman K8055 USB interface board (availible online or at maplins)
The robot is built mostly from scraps i had at home and parts from a car breakers yard
the whole project cost around £50 but will be much less if you have parts at home

I managed to throw this together in a few days but if you had all the parts ready it could be done in a day

I apologise in advance for the many typos i expect to find

(This includes problems with the software)

Step 1: Gather Parts

For the basics of this project (motor interface and control boards) you will need:

USB interface board :
2 computers (software WORKS with windows xp and vista, server not tested under win7 but client works) (client computer is optional, but pointless without)
a network connecting both computers (could be the internet)
Computer must be running microsoft .NET service pack 4

        Motor controler parts:
                      Blank PCB (or stripboard) and etching stuff
                      3x relays suitable for your motor (6v for coil) (cheap if you buy in bulk on ebay)
                      1x relay for light (optional) (ebay)
                      some bits of wire low current bell wire for signals (maplin)
                      some bits of high current wire suitable for motors (from an old emergency light)
                      4x diode (1n4004 reccomended) (maplin/ebay) (cheap on ebay in bulk)
                      Terminal block (not neccicery but very handy) (Very cheap at boot sales, can get from B&Q)
                      Basic Soldering skills (A soldering iron and solder helps too)
                      9v battery and clip

Extras to build the actual robot:

2x car windscreen wiper motors (matching pair) (car breakers yard £10 each)
2x 6mm coupling nuts (or whatever thread your motor shaft is) (ebay £6 for 10)
2x wheels (i used wheelchair wheels) (£5 from car breakers yard)
2x bolts / threaded rod connecting coupling nuts to wheels (size of coupling nuts) (i had this laying around at home, but is availible from wickes/B£Q for a few quid)
6x bolts long enough to go through your wood and right size to fit motor mount holes (had these at home too, i used M6)
Many washers to get the bolts in the wheels well
Wood to make the base, the size is up to you, my netbook JUST fits in mine and it  is 29cm x 36 cm
Wood to make the walls (TIP : get wood that is as long as the body and is more than wide enough to get all 3 motor nuts in)
Grey pipe insulation for bumpers
1x trolley wheel (got mine from B&Q)
1x 12v battery (from alarm system,  7amp hours)

Tell me if i have missed anything!

Step 2: USB Interface Board

These USB interface boards are great and terrible at the same time
They are very easy to use if you have loads of diodes and relays laying around at home
I havent really figured out the analouge inputs / outputs yet either
I got mine assembled just for the guarantee that it will work, but they require pretty good skills and a steady hand to assemble yourself in a kit
The board itself is plug and play with xp/vista, and the software was written by my friend dom in (2008 for client 2010 for server)
It communicates with the board using a DLL, the software is very easy to modify if you know the basics of
I have connected my relays to the board as follows in the attatched images

Step 3: Relay Board

I designed the relay board in ExpressPCB , a great bit of free software for making simple PCB's in, you can even order your pcbs to be made from the software (expensive though, from the US)
Express PCB and SCH files are attatched, along with PDF verisons of both
I used the iron toner transfer method with my laser printer to prepare and etch my board, i dont want to go into great detail about etching as this is about ROBOTS!, and there are some great instructibles allready on how to do it like this one
After i had my board complete (CHECK ITS NOT COME OUT MIRRORED!) I did this with a few of my first boards and could not figure out what was wrong with them! so check with the photos and schematic
I soldered all my components in place (i have labeled them all on an image below) and connected some little motors to the board for a test run.

Step 4: Robot (skip This If You Want to Design Your Own Body/motors)

I dont want to talk too much about the build of the hardware as i made most of this up as i went along and its pretty simple, i have attatched photos of the tricky bits like actually connecting the wheels to the motors (my motors had an imperial thread, this was a good thing becuase it makes the coupling nuts stay on VERY securley as i had to do them up very tightly as the coupling uts were metric.)

Step 5: The Software - Server

The server is a very simple program written in Visual Basic 2008
It listens on a socket connection for commands from the client, then interprets them and switches outputs on the USB board on or off accordingly.
Credit for both the client and server apps go to my mate Dom Taglialavore for helping me with the coding

Instructions for using the software:
if clients will connect from outside your home network, (eg the internet) set up PORT FORWARDING on your router for the port you want clients to connect on, this allows robot commands to bypass your routers firewall and get to the server.
Plug in USB board (set to card address 2, top jumper ONLY)
Check .DLL file is in the same folder as .EXE file
start server EXE
Click connect and wait for "card 2 connected" to be displayed underneath
type a port number in the text box (i use 5555) that the server will listen for connections on
Click start listening (a box may popup from your windows firewall/norton, this is becuase the application is trying to listen for a connection on your network card, click allow or unblock)
If all goes well "listning" should pop up, hit OK
the message display will now appear, if you dont want it , close it
all ready for client connection!

Step 6: The Software - Client

Instructions for how to use Client:

Check server is started
Open client EXE
type IP address of server
Enter port number (same as you entered on the server)
Click connect
Wait for "connected" to be displayed

When control panel is open:
Arrow Keys - Move robot
Space bar - Toggle light on/off
Ctrl key - send message

Source code for the client is included but i need to get the server source code from dom, check back for updates on that
If not check his site out :

Server code is availible here: but is an old version and may be badly written!
or mine:

Step 7: Finished Robot Video!

I use skype on the netbook so friends can control it and see where they are going
Here is a video of Dom (who coded the software) driving the robot

If you liked this instructable or have any questions/comments, please post them below!!!

National Robotics Week Robot Contest

Second Prize in the
National Robotics Week Robot Contest