Introduction: Bluetooth Controlled Arduino Scrapboat

I've been planning to make an RC boat to roam the waterways that are present in my apartment complex for a long time. But one hickup or another kept holding me back. Most of the time, it was lack of required materials or time. Even this time, my soldering iron committed suicide under mysterious circumstances just before I started making this. But I put my foot down and decided to make it without soldering and using just jumpers, insulation tape and lots of double sided tape. So i present to you the SS Scrap v1.1

Step 1: Parts Required

For this project I used whatever I had lying around the house so you can improvise as required.
1 X Arduino Deumilanove
1 X Bluesmirf gold BT module
1 X Micro servo from sparkfun
1 X Random Motor from old toy plane with prop
1 X 25V 1000uF cap (Can use any value cap, through trial and error, just had this lying around and it worked for me)
1 X Roll of insulation tape
1 X Roll of double sided tape
Lots of single strand wires
4 pin connector for Bluesmirf
Thermocol
Rectangular plastic box
9V battery
2AA batteries
1 X Android phone with Blueterm installed

Step 2: Connecting the Servo

The servo runs directly of the 5V provided by the Arduino. But in some cases, as happened to me, the Arduino cannot provide enough current to drive the servo, especially when it starts moving. This leads to random restarts and your code will never behave as you want it to. So connect the capacitor along the power leads of the servo, making sure that the positive (ie longer lead) is connected to the 5V pin and the shorter pin to ground. This will store charge and provide the extra current required. The third pin of the servo is connected to pin number 9 on the Arduino. 
On my servo, the colours of the leads were orange, brown and red.
Orange-pin number 9
Red- +5V
Brown- ground
I stuffed the leads of the capacitor into the servo port and taped it to make sure it would stay there (no soldering iron makes one resort to such barbaric methods :P)

Step 3: Connecting the Bluesmirf

As in my previous instructable, this boat is also controlled using serial over bluetooth link. THe BLuesmirf alread had headers soldered to it so it was easier to connect than the servo requiring only a 4 pin connector. While connecting the bluesmirf, the RX pin should go to the TX pin (pin 1) of the arduino and the TX pin should go to the RX pin (pin 0) of the arduino. The GND  goes to one of the ground pins on the Arduino and Vcc goes to 3.3V as the 5V piin is taken up by the servo.
Vcc- 3.3v
Gnd- Gnd
Rx- Tx or pin number 1
Tx- Rx or pin number 0

Step 4: Motor Connections and Mounting

The motor I was from and old toy plane which gave a lot of power for it's size. I didn't have a motor driver so this motor would be kept running while only the direction would be changed using the servo. The motor can handle only a maximum of 4-5V hence a separate battery supply was used. I used 2AAs in series taped together to give around 3V. This motor was peculiar as it always required an external force to start, kind of like world war I era biplanes. Hence, once it started it had to be kept running or it wouldn't start again.
The motor was attached to the servo using double sided tape over which I layered insulation tape for further safety. The whole servo+motor assembly was mounted on one end of the plastic box on top of a rectangular piece of thermocol to provide room for the propeller during its full range of motion. 

Step 5: Arduino Code

#include <Servo.h>

Servo steer;
char input = 'x';
int pos[] = {1000, 1500, 2000}; //contains armature postions
void setup()
{
    Serial.begin(2400);//starts serial link and baud rate should be the same as that configured in the bluesmirf

    steer.attach(9); //for connecting servo to pin number 9 on the arduino
    steer.writeMicroseconds(pos[1]);//initial position of serov makes the motor point in the forward direction
   

}

void loop()
{
    if(Serial.available())
    {
        input = Serial.read();// reads input charcater from serial over bluetooth
        switch(input)  //for steering to specific dierction based on value in array pos
        {
           case '1':
            {
                 steer.writeMicroseconds(pos[0]);
                   
               break;
           }

               case '2':
            {
                 steer.writeMicroseconds(pos[1]);
                   
               break;
           }

            case '3' :
            {
                 steer.writeMicroseconds(pos[2]);
                   
               break;
           }
          
        }
    }
}

Code is a simpler version of the code found here
http://heruka.tumblr.com/post/2827825699/arduino-serial-servo-control-code

Step 6: Final Assembly

So the final assembly consisted of cobbling together everything and putting it in the box. The Arduino was fixed in the center using double sided tape and the Bluesmirf was mounted a little higher up using a piece of cardboard. The 9V battery was connected to the vin port of the Arduino and it was attached near the end opposite to the motor using double sided tape along with the batteries for the motor. The wires for the motor had to be long enough to allow freedom of movement. The batteries were moved around to ensure the CG was maintained and the boat did not have a tendency to topple over.

Step 7: And Done..... That Was Easy

That's it! The motor has to be push started everytime as said before. Connect through bluetooth using any android phone running the blueterm app. The controls are 
1- left
2-forward
3-right
The motor keeps running independent of the arduino so if you lose connection, it still continues to  move. 
I haven't tested it outdoors as the winds are too high, but indoors or in calm water it handles pretty well and it depends on whether you can react fast enough to control it properly. It is quite responsive and the better the batteries are for the motor the better it will handle. This was a fun project which behaved as its supposed to for once. Please leave your comments below and vote for me in the contests i'm entering this in.
Thank you for reading