Introduction: Shooting Cardboard Da Vinci Tank


In this instructable you will learn how to create an actual shooting cardboard da Vinci tank.

(Note: If you can't play the videos try to use a computer)

Step 1: Parts + Tools

You will need the following parts and tools:


  • Cardboard (We used less than 80cmX80cm for sure, less than one box)
  • Glue gun stick
  • Duct tape
  • Arduino
  • 9V battery
  • 9V battery connector
  • 1 servo with a servo arm
  • 3 jumper wires
  • Rubber bands


  • Knife or scissors
  • Hot Glue gun
  • Ruler

Step 2: Making the Templates

In order to cut the cardboard to the right shape you will need paper templates for the

  • Base of the tank
  • Top cover panels
  • Little thing on top of the tank

To make the base template you will need to mark and cut a 16 sided polygon with a diameter of 297mm on a sheet of paper.

To make the cover panels' template mark an isosceles triangle on a sheet of paper where the base of the triangle is 60mm and the height of it is 120mm and cut it out.

The last template left to make is the one for the little top panels on the top. In order to make those just mark an isosceles triangle with a base of about 20mm and a head angle that is the same as the other cover's template.

Step 3: Cutting the Cardboard

Now that you have the templates all that's left is to cut the cardboard.

You'll need to cut parts as follows:

  • 2x base plate (16 sided polygon)
  • 16x top cover panel (triangle with 60mm base)
  • 16x top small panel (triangle with 20mm base)
  • 2x 460mm by 25mm rectangle

If you want you can scale the model up or down as long as the ratios are kept the same.

Step 4: Making the Top Cover

The next step in making the tank is finishing the top part of it.

In this step all you need to do is to glue together the top cover panels in to a conical shape, glue the top small panels to a conical shape and glue the two "cones" to each other.

When gluing the triangles together make sure you don't glue them flat but keep a small angle between them so that when you need to connect the outer most triangles to each other you'll have an easier time doing it.

Step 5: Making the Base

Make a supporting pole out of a rolled piece of cardboard, the pole should be 90mm tall and 30mm in diameter.

Wrap the top half of the pole in tape and leave the bottom half of it exposed so that you can glue to it stuff later on. Now glue three small right angle triangles to the bottom side of the pole and glue these small triangles to the base plate you cut earlier.

On the other side of the base plate glue on four small tabs that are about 4mm away from the edge of the plate.

Step 6: Making the Cannon Hall

In this step you will make the bottom most part of the tank.

To start take the two long rectangles of cardboard that you cut in the beginning and cut holes through them as shown in the picture. Glue the two rectangles to the perimeter of the other base plate that's left. On the other side of the base plate add four wheels. These wheel are there only for aesthetic purposes.

Step 7: Making the Cannon

In this step you will need to create the cannon body. (The electronics will follow in the next step).

To make it you will need to

  • Cut a piece of cardboard with a size of about 250mmX70mm.
  • The long side of the cardboard needs to be in the same direction as it's fibers. (This is needed because the cardboard will be a lot more robust in that direction).
  • Fold the 70mm side in half to make a 250mmx35mm piece and tape it to make sure it stays that way.
  • Make a small cut in the end of it to hold the rubber band as shown in the second image.
  • Hot glue the cannon body to the cannon hall base plate so that the rubber band will be shot through one of the cannon holes.
  • Hot glue the servo to the end of the cannon body.

Step 8: Electronics and Code

You will need to connect all of the electronics as shown in the image above.

Then you will need to upload the attached code to the Arduino from your computer using the Arduino IDE.

You might wanna tweak ARMED_SERVO_ANGLE, SHOOT_SERVO_ANGLE and DELAY_BEFORE_SHOOTING_MILLIS to your specific structure.

#include <Servo.h>

const int SERVO_PIN = 9;

const int ARMED_SERVO_ANGLE = 90; const int SHOOT_SERVO_ANGLE = 30;


void setup() { const Servo shooter_servo = get_shooter_servo(); delay(DELAY_BEFORE_SHOOTING_MILLIS); shoot_and_arm(shooter_servo); }

void loop() {}

Servo get_shooter_servo() { Servo shooter_servo; shooter_servo.attach(SERVO_PIN); return shooter_servo; }

void shoot(Servo shooter_servo) { shooter_servo.write(SHOOT_SERVO_ANGLE); static const int SHOOTING_TIME_MILLIS = 500; delay(SHOOTING_TIME_MILLIS); }

void arm(Servo shooter_servo) { shooter_servo.write(ARMED_SERVO_ANGLE); }

void shoot_and_arm(Servo shooter_servo) { shoot(shooter_servo); arm(shooter_servo); }

Step 9: Assembly

Just put the three main sub-assemblies on top of each other and you're all set!

Cardboard Speed Challenge

Third Prize in the
Cardboard Speed Challenge