Introduction: Making a Real Life War Tower Defense Game

Hello, we are GBU!

Our team was assigned a task in our VG100, Intro to Engineering, class: to design and build a real life Warzone Tower Defense Game. VG100 is a core class all freshmen are required to take at the Joint Institute(JI.) The Joint Institute is a program between the University of Michigan (UM) and Shanghai Jiao Tong University (SJTU.) The Joint Institute, located on the beautiful and vast Minhang campus, is ABET accredited and won high achieving awards; it is a prestigious and renowned school within SJTU and in China. The VG100 class is challenging and engaging course.

For the game, we are to build a paper tower that can defend itself against attacking bugs (robotic cars.) The tower will use a laser to hit the light sensor on the car to stop it. We had a few requirements to follow:


Rules of the Game:

  • The robotic car will travel straight along a track with a middle white line towards the tower.
  • The path, total of 2.5m, has a safe zone of 0.5m in the beginning, where the car will not stop even when irradiated by the tower’s laser.
  • At the end of the safe zone, there is a white line where the car will stop for 2-4 seconds.
  • After stopping, the bug can be irradiated by the tower. There will be one last white line for the bug to stop at before hitting the tower.

Competition Regulations:

Tower

  • Must be built of A4 paper
  • Can only use white glue to assemble the tower
  • At least 60cm in height
  • Each side's width should not exceed 3 pieces of paper

Bug/Car

  • Must have a front vertical board with dimensions of 15m x 10cm.
  • Photosensor, that is detecting the laser, is placed 5cm above the ground, before the vertical board.
  • A reflective wall is built around the light sensor.

For a reference video: http://v.youku.com/v_show/id_XMTc3NzkyMDA2MA==.htm...

Step 1: Concept Diagram

Included above are exploded diagrams of the car and tower.

Step 2: Material List / Supplies Needed

Tools Needed:

  • Hot Glue
  • Screwdriver
  • Scissors
  • Screws
  • Saw
  • Exact-o-knife
  • Glue
  • Tape
  • Soldering Gun

Other materials needed:

  • Acrylic Board
  • Cardboard
  • Wooden Block
  • Hard Styrofoam
  • Electric Tape
  • Battery Box
  • Small Hexagonal Brass Metal Pipe Screws
  • L-Shaped Connecters
  • Plastic Connecters
  • Coat Hanger

Tip: If you are planning to buy from Taobao, buy extras of the important components, such as the motors, driving motor boards, servos, tracking sensors, etc.

Step 3: Circuit Diagrams

Shown above is the brief circuit diagrams for the car and tower. These will be helpful figures for when we are assembling the tower and car.

Be careful to connect wire correctly. A soldering gun is required to solder some parts of the wires together. Use caution when working with a soldering gun.

Step 4: Building the Main Base of the Car [Car Prep]

  1. Take the cardboard slab, and using an exact-o-knife, cut it into 23 cm x 29.5 cm. (This will be served as the main body of the Car. )
  2. Using a saw, cut the wooden block to the dimensions: 24 cm x 5 cm x 2.4 cm. (This will serve as the platform for the controlling components.)

Step 5: Preparing the Front Vertical Board [Car Prep]

  1. Take the Plastic Board and using scissors cut to 15 x 10 cm in size.
  2. Cut a slit 1.5 cm wide and 0.5 cm tall (5 cm from the bottom of the board and approximately in the center horizontally) using an electric drill.
  3. Cut a small slab of wood, 1.5 cm x 0.5 cm about and hot glue it directly under the small slit that was just created.
  4. Using scissors cut the styrofoam to create a reflective wall for the sides of the photosensor.
  5. Tape pieces of paper onto the sides of the wall, to create a better reflective effect for the sensor.

Step 6: Assembling the Wheels [Car Prep]

  1. Cut 4 Acrylic circles using a laser cutting program, each with a radius of: 4.75 cm.
  2. Hot glue the Acrylic circles onto the outer side of the respective wheels.
  3. Take out two wheels (with radius of 2.9 cm) and attach the wheels onto the motors.
  4. Screw axels securely into place.Using a scissor, cut a coat hanger and fix it to approximately 27 cm.
  5. Take out the last two wheels. Slide the axel through the coat hanger tube and link them with an axle.
  6. Screw the L-Shaped metal connecters onto the main body. Slide the axel with the wheels without motors through the hole. Secure the screws.
  7. Take a white plastic connector and screw the wheels with motors onto the main body.

Step 7: Assembling the Car

  1. Screw the Arduino Uno face up on the top of the wooden platform, have it on the end.
  2. Attach the Arduino Bridge onto the top of the Arduino Uno.
  3. Next take the Driving Motor board and screw it onto the other end of the wooden platform.
  4. Place the wooden plank onto the middle of the main body. Hot glue it on securely.
  5. Hot glue the battery box next to the wooden block.
  6. Screw the light intensity sensor onto the small slab of wood that was attached to the front of the vertical board.
  7. Screw the IR sensor on the bottom of the car, more to one of the sides.
  8. Attach the wires, following the circuit diagram of the car included in Step 3.
  9. Tape down the wires and any flyways securely. Don't let the wires tangle with the wheels.

Step 8: Making the Paper Tower

    1. The tower is made of triangular prisms made of A4 paper.
    2. Pre-make a template.: 21cm x 2 cm.
    3. Take the piece of paper and fold three sides.
    4. Glue two of the sides together. Repeat until you have enough prisms.
    5. Follow the diagram and glue the prisms together as shown.
    6. Fold the paper as shown in the pictures to create a square base, with a half hexagonal structure, for the top of the tower.
    7. Glue the square base onto the top of the tower.
    8. Make a honey comb stand for the servo.
    9. Glue the honey comb stand onto the square base on top of the tower.

    Tip: We suggest using tape to test different positions before gluing on the base and honey comb stand because the tower if made of paper, it is essential that all parts are glued on securely to prevent balancing issues later on.

    Step 9: Assembling the Tower

    1. Using a Small Hexagonal Brass Metal Pipe attach the 180° servo and 270° servo together, with the 180° on the top.
    2. Hot glue the laser onto the 180° servo.
    3. Balance and tape down the Arduino Uno and batteries on the top platform of the tower.
    4. Hot glue an Ultrasonic Distance sensor onto each side of the base.
    5. Connect the wires as displayed in the tower circuit diagram in Step 3.

    Step 10: Full System View

    These were the final product we created.

    Thank you for reading our manual, and we hoped you enjoyed it. If you have any questions regarding our project, you can contact our team leader through: luffyx@sjtu.edu.cn.

    Step 11: Troubleshooting

    Car/Bug

    1. If any electrical component is not working properly, check the wires to see if they are connected properly.
    2. If electrical components are still not working properly, even though wires are connected right, use a voltage detector to test the voltage of each different locations. It is possible that the voltage current has been disturbed. Approximate correct voltages are included below:
      1. Wheels: 9V
      2. Sensors[All]: 5V
      3. Servos: 6-12V
      4. Battery: 12V
    3. If car is not working, make sure that the Arduino and Driving Motor board are connected, whether directly connected or connected together with a bread board. We suggest from experience to use the same battery to power both the Arduino and Driving Motor.
    4. When testing the cart on the track and you hear a loud sound, it could be the friction between the motors and axel or the outer wheels and the track. Use a lubricating oil on the motors and vasaline on the inner side of the acrylic cover on the wheels.

    Tower

    1. Keep tower in a dry location, for if the air is too humid the paper will soften and won’t be able to hold any weight.
    2. If the laser does not shoot precisely, alter the code to change the angles. However, a tip: change specific parts of the code, so that the other angles are not affected as well.