loading
Bring your 3D models to life! In this instructable we will custom make a remotely controlled tank. We will infuse paper-craft with an arduino based system. This tank will be controlled on a android based phone though a bluetooth connection. I've strived to create something with a pleasing fit and finish. Remote control is also quite cheap and feasible for any project! I will show you how and why.

I want to show that It is possible to achieve a high level of visual aesthetic without the need for expensive machinery (no need for laser cutters, power tools or 3D printers).

I hope the pictures alone will guide and inspire you try new things! Show me what RC creations you have made in the comments below :)

Step 1: Create/Choose a Model

There are thousands among thousands of existing paper-craft models to choose from. If there isn't already a model you can always convert a 3D model into a foldable model using pepakura. Paper craft is powerful in that it lets us create 3D objects from paper. it is also relatively inexpensive to aquire. One bonus is that the models are designed hollow and leave room for skeleton circuitry.

tank

Step 2: Pick Features

There are thousands among thousands of existing papercraft models to choose from. What you want to remotely control is totally up to you. However there is always a few things to keep in mind
  • Keep it simple. Don't go all out if you aren't familiar with etiher sides of the spectrum
  • Know the limitations. the individual features of an ironman suit may be possible but it will not fit in a regular sized model
  • Commit. Taking on a paper model is a tedious task. Brining it to life seamlessly takes level of engineering and creativity.
RC features:
understand what you are capable of bringing to the model. what mechanisms already exist and how easily they are to implement. This takes experience. In other words don't go off building something impossible. 

For example... I want my RC tankto have :
  1. full ground movement
  2. led stop light
  3. push to start
  4. rotating turret
  5. speed control
  6. recoil


Step 3: Gather Materials

In this Instructable you will need:
  1. 4 Gear Motors - $24**
  2. 4 Wheels - $12**
  3. Motor Shield - eBay ($5)
  4. Arduino Uno - eBay ($10)
  5. 5xAA Battery Holder - ($2)**
  6. Foam Board - your local dollar store ($1)
  7. Bluetooth Adapter ($8)
  8. 1 Servo - eBay ($3)
  9. Paper
  10. Glue/Tape
*These parts came from a 4WD kit. (see next page) but can be sourced individually

Tools:
  1. Paper Cutter (Optional)
  2. Knife
  3. Pen
  4. Ruler
  5. Solder Iron

Step 4: Construct Arduino Proptype

Lets make sure everything work as intended before we dive into the paper model portion. This stage is to allow you to figure ouput how to configure and program the circuit. 

More information about how things are hookedup will be given on in the later stages.

Step 5: Build the Model

This part isnt documented as well. but as you can see in the picture above i did quickly contruct a white version of this tank before settling on the final design. We need to do this to figure out exacly how much space we have and how to shape our tank chasis before conrction

Step 6: Design Protoype

After building the model i noticed that the proportions just wouldn't be enough to fit the circuit and that every part would need to be closely pinned together. I attempted to create a base that would be as small as physically possible and resize the model to adjust for it. 

I used foam-board to space everything out and electrical tape to squeze everything together in a non-pernament fashion. Quickly put on wheels to see how it would look.

Step 7: Modifications to the Model

So the prototype proved that we needed to make some adjustments. Now we need to alter our original model and make room for our components. 



and... done.

Step 8: Papercraft.

Now that the final model is ready we can move onto the final cuts. I have used a paper cutter to cut all the pieces . However it is possible to do this task with a knife (which many do). 

I went over some of the folds with pen because the red construction paper bled white when cut. This is unfortunate but rather unoticable.

Step 9: Fitting

Lets piece everything together now to see how it fits.

Step 10: Repeat Previous Steps for Various Features of the Design

Now that we have wheels, lets decide now we are going to mount the turret and servo. HEre we will use foam board once again to space and fit everything closely together. 

Step 11: Attach Battery

With limited space we could only attach out battery pack to the bottom. If we had a smaller lip battery we could mount it in the turret instead . However the hull of the tank is relatively unnoticeable anyway so here we have it. (this also makes changing battery very easy)

Step 12: Add Decal and Minor Pieces

SO when we were proptyping with a intricate model its important not to spend too much time with these minor bits cause they take time and effor to create. However now that the core of the paper model is buyilt we should ad them to funtill the orginal design. Theses final finished are more difficult and takes percision to turn out well. I have used a pernament marker to create a black trim and over deval all around the body. 

It looks so much better.

Step 13: Final Touches

So these yellow wheels were bothering me so i went ahead and spray painted them black. Just some finishing touches :) 

Step 14: Done Papercraft Body

Perfect. Now lets add the electronics!

Step 15: Hook Up Components

Summary:
  1. Connect the four motors into their respective sockets and screw (it may take some figuring out how you may want to arrange this)
  2. Connect Ground and Power to the battery holder terminals
  3. Attach Servo to servo socket
  4. Plug-in bluetooth receiver - PWR to 5V, GND to GND, Rx to A4, Tx to A5
  5. Plug-in LED - A0 and GND
  6. Plug-in Switch - A1 and GND
There are still two free analog pins. If you've run out of space, consider switching to a ardunio mega which has many more points

Step 16: Programming

Here is the code I used it should be self explanatory if you go through it :

#include <AFMotor.h>
#include <SoftwareSerial.h> //Software Serial Port

#include <Servo.h>

Servo myservo;
int mySpeed;
int turretAngle;
char val;
char prevAction;
AF_DCMotor motor_1(1);
AF_DCMotor motor_2(2);
AF_DCMotor motor_3(3);
AF_DCMotor motor_4(4);


#define RED A0
#define SET A1
#define RxD A5 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD)
#define TxD A4

SoftwareSerial blueToothSerial(RxD,TxD);

int switchVal;
bool running;

void setup() {
  Serial.begin(9600); // Allow Serial communication via USB cable to computer (if required)
  pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
  pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
  pinMode(13,OUTPUT); // Use onboard LED if required.
  pinMode(RED, OUTPUT);  
  pinMode(SET,INPUT_PULLUP);  

  blueToothSerial.begin(9600);

  turretAngle = 90;
  switchVal = HIGH;


  mySpeed = 255;
  // turn on motor
  SetSpeed ();
  myservo.attach(9);
  Release();
}

void loop() {

  int sensorVal = digitalRead(SET);
  if (sensorVal == LOW)
  {
    running =! running;
    digitalWrite(RED, running? HIGH:LOW);
    delay (400);
  }


  if (true)
  {
    if(blueToothSerial.available())
    {
      val = blueToothSerial.read();
      Serial.print(val); // Print the character received to the Serial Monitor (if required)
      prevAction = val;

      if( val == 'F' ) //fwd         
      {
        SetSpeed();
        Forward();
      }
      else if( val == 'L' ) //left         
      {
        SetSpeed();
        Left();
      }
      else if( val == 'R' ) //right      
      {
        SetSpeed();
        Right();
      }
      else if( val == 'B' ) //reverse       
      {
        SetSpeed();
        Reverse();
      }
      else if( val == 'S' ) // top      
      {
        Release();
      }
      else if( val == 'G' ) // NW
      {
        NorthWest();
      } 
      else if( val == 'I' ) // NE  
      {
        NorthEast();
      } 
      else if( val == 'J' ) // SE
      {
        SouthEast();
      } 
      else if( val == 'H' ) // SW  
      {
        SouthWest();
      } 
      else if( val == '1' ) // speed
      {
        mySpeed = 255/10;
      }
      else if( val == '2' ) // speed
      {
        mySpeed = 255/10*2;
      }
      else if( val == '3' ) // speed
      {
        mySpeed = 255/10*3;
      }
      else if( val == '4' ) // speed 1 
      {
        mySpeed = 255/10*4;
      }
      else if( val == '5' ) // speed 1 
      {
        mySpeed = 255/10*5;
      }
      else if( val == '6' ) // speed 1 
      {
        mySpeed = 255/10*6;
      }
      else if( val == '7' ) // speed 1 
      {
        mySpeed = 255/10*7;
      }
      else if( val == '8' ) // speed 1 
      {
        mySpeed = 255/10*8;
      }
      else if( val == '9' ) // speed 1 
      {
        mySpeed = 255/10 *9;
      }
      else if( val == 'q' ) // speed 1 
      {
        mySpeed = 255;
      }
      else if( val == 'X' || val == 'x'  )
      {
        Reverse();
        delay(50);
        Forward();
        delay(50);
        Release();
      }
       else if( val == 'V' || val == 'v'  )
      {
          running =! running;
    digitalWrite(RED, running? HIGH:LOW);
      }
     
    }
    else
    {
      if( val == 'W'  )
      {
        TurretLeft();
      }
      else if( val == 'U' )
      {
        TurretRight();
      }
    }
  }
  else
  {
    Release();
  }
}

void MoveTurret()
{
  if (turretAngle < 30)
    turretAngle = 30;
  if (turretAngle > 150)
    turretAngle = 150;
  myservo.write(turretAngle);
}

void TurretLeft()
{
  turretAngle +=1;
  MoveTurret();
  delay(10);
}

void TurretRight()
{
  turretAngle -=1;
  MoveTurret();
  delay(10);
}

void Forward()
{
  motor_1.run(FORWARD);
  motor_2.run(FORWARD);
  motor_3.run(FORWARD);
  motor_4.run(FORWARD);
}

void Reverse()
{

  motor_1.run(BACKWARD);
  motor_2.run(BACKWARD);
  motor_3.run(BACKWARD);
  motor_4.run(BACKWARD);
}

void Left()
{
  motor_1.run(FORWARD);
  motor_2.run(BACKWARD);
  motor_3.run(BACKWARD);
  motor_4.run(FORWARD);
}

void Right()
{
  motor_1.run(BACKWARD);
  motor_2.run(FORWARD);
  motor_3.run(FORWARD);
  motor_4.run(BACKWARD);
}

void Release()
{
  motor_1.run(RELEASE);
  motor_2.run(RELEASE);
  motor_3.run(RELEASE);
  motor_4.run(RELEASE);
}


void NorthWest()
{
  SetSpeedLeft();


void NorthEast()
{
  SetSpeedRight();
  Forward();

void SouthEast()
{
  SetSpeedRight();
  Reverse();


void SouthWest()
{
  SetSpeedLeft();
  Reverse();
}

void SetSpeed()
{
  motor_1.setSpeed(mySpeed);
  motor_2.setSpeed(mySpeed);
  motor_3.setSpeed(mySpeed);
  motor_4.setSpeed(mySpeed);
}

void SetSpeedRight()
{
  motor_1.setSpeed(mySpeed/2);
  motor_2.setSpeed(mySpeed);
  motor_3.setSpeed(mySpeed);
  motor_4.setSpeed(mySpeed/2);
}

void SetSpeedLeft()
{
  motor_1.setSpeed(mySpeed);
  motor_2.setSpeed(mySpeed/2);
  motor_3.setSpeed(mySpeed/2);
  motor_4.setSpeed(mySpeed);
}

Step 17: Bluetooth

There are many apps you can use to control the tank over bluetooth, this one being my favourite as it came with the most buttons and is very well designed. Using the source code provided, the controller will automagicaly work!

Arduino Bluetooth RC Car.

It communicates by sending single character commands. When the arduino reads in this information, it knows what action to perform. with enough actions and pre-programmed intelligence, your design will come to life.

For example if i send the character 'f' via bluetooth to the car, the car will see 'f". it knows that when it see s'f' it needs to move forward and it moves all four motors accordingly.

Step 18: Play

If you've made it this far, I sincerely congratulate and thank you.

Please show off your creations :) 
<p>yet another great project</p>
<p>i love it!!!!</p>
<p>Hi, I am trying to do this as my project and I was wondering what size of paper did you use? it seems bigger than it looks in the video! and are those pdf files are all I need to build a basic model of tank? :) Thank you for sharing this awesome project btw</p>
Thanks for sharing your project! I've made it to! But i de not know how to pan the upper platform with your app. how do you do it? Thanks
<p>nice,papermodel I like it</p>
Hey alstroemeria cool project. I am looking forward to building it. Can you give more step by step instructions for beginners (like me). If not thanks for the great instructable.
Also does anyone know what the thing is thats below the servo and to the upper right of the bluetooth adapter?
Could you please add more descriptive steps on the pictures please? It looks great though I just get lost at a few parts! :D
does anyone know a good program similar to this for windows 7 or windows phone
even better and sorry it seems i am spamming <br>http://translate.google.co.za/translate?hl=en&amp;sl=ja&amp;u=http://www.wa.commufa.jp/~ton/&amp;prev=/search%3Fq%3Dhttp://www.wa.commufa.jp/~ton/%26client%3Dfirefox-a%26hs%3DSTp%26rls%3Dorg.mozilla:en-US:official <br> <br>english translation!
this is awesome <br>but one problem i can't download the tank file <br>if anyone would be willing to send it to me? <br>thanks.
Can this be used for the iPhone
awesome!
What tank did you base it off of? looks a lot like an Abrams.
the orginal model was labeled as a &quot;Type-10&quot; tank
Im having difficulties acquiring the PePaKuRa file for the tank. I have searched the gallery on the site but nothing comes up. The &quot;tank&quot; link you have given goes to a different site and the download link on that one is broken. Any help? thanks.
I'm sorry It seems that the links are dead. I am currently unable to find a copy of the model as well. Perhaps page 7's customized cut will be helpful if you want to recreate something similar.
This is great! Nice job and I hope you do well in the contest.
Amazing! You have ma vote dude! <br>But I just got a little lost sometimes looking at the photos. Maybe if you have put some subtitle explaining exactly what's happening on each photo (or at least the most important), beginners like me would have less doubts. Anyway, it is Incredible! Thank you!
Very Nice! I know some R/C Scale Tank boyz that use a bright LED, (in the barrel), and audio for simulated gun fire, (not to mention other sounds), then they have Infrared sensors that detect when they are shot, by another tank!
das cool
A great build! The best thing I like about it is your code gives me a better idea of how to use my bluetooth shield so I thank you for that.
If you have any other difficulties along the line ill be glad to help :) ty
Love it! <br> <br>Where did you find the wheels and gear boxes? Any online resources to source these exact parts?
thankyous! I have updated step 3 to detail how much i paid for the parts and where they were purchased. enjoy
just wow! I love your buildlog. <br>I also would love to see where your ordered your hardware... <br> <br>thanks, keep on!!!
thankyous! I have updated step 3 to detail how much i paid for the parts and where they were purchased. enjoy
Great work,!! ,,Metal slug arcade game bad guys tank ?
outstanding
This, sir, is brilliant. You have my vote.
Awesome :D
this is a great instructable!
This tank is the uber-cutie! :))
I love how the sensors look like googly eyes. <br> <br>Very well photographed as well.

About This Instructable

69,272views

619favorites

License:

More by alstroemeria:Reloj digital / analógico - Arduino + arte de papel RC Paper Tank - Bring your 3D models to life Digital/Analog Clock - Arduino + PaperCraft 
Add instructable to: