A friend gave me his old Lego Spybotics robot, however, the programming environment that goes along with it is a bit too orientated to the younger user.
So why not control it using an Arduino?
Step 1: Open up!
In order to get this robot moving, we need to borrow its motors.
There are two DC motors in the robot. This is great, because we can control them independently, allowing forward, backwards and turning motion.
Start by unscrewing the lid off the top of the robot. The screws are located on the bottom. Four by the battery bay and two in the front.
Locate the two DC motors near the back, then switch on your soldering iron.
De-solder the motors from the contact points. This can be done by simply applying a little upwards pressure on the motor whilst heating the solder – the contact should come unstuck.
Once detached, remove the motors by just wiggling them out. Solder some wire (about 10cm or more) onto the contacts, taking care not to damage the rather fragile motor contacts.
Before putting the motors back, cover the original contacts with some electrician’s tape, just to isolate the old board from any current we send the motors’ way. Then just slot the motors back in.
There are two buttons on the top of the lid. Pull them out. This will create two holes. Route the cables through those holes and affix the lid back on.
Step 2: Motor control (with the infamous H-Bridge!)
Now that we have access to the motors, we need to drive them. I’m using a L293D quad half H-bridge driver chip. It cost me R27 ($3), and because of it being quad half, we can control both motors off one chip.
Refer to the image as to how to connect the H-bridge.
The reason for the quadruple grounds is to sink heat (and of course ground the chip), so be sure to connect all of them.
Step 3: Arduino
Connect the Arduino up as stated in the previous step and in the code. 3 AA batteries work well for the motors (you can borrow the existing battery bay to house them).
Here’s the code. It simply moves the bot forward, turns right, left, then reverses and repeats.
int LED = 13; //using built in LED
int Eleft = 6; //enable left motor. Must be a PWM pin
int Eright = 5; //enable right motor. Must be a PWM pin
int Rforward = 12; //right motor forward
int Rbackwards = 11; //right motor back
int Lforward = 9; //left motor forward
int Lbackwards = 10; //left motor back
Read more: Build An Lego Spybotics with Arduino