Introduction: Warzone Tower Defense

This Warzone Tower Defense project is based
on a pixel-style game whose goal is to defend the tower with different weapons and annihilate all the enemies eventually.

What we need to do
is to bring this tower into an entity and make a robotic car (the “bug”) to symbolize the enemies.

Four tracks, three bugs and a tower make up the whole project. We can simply describe this project in three processes:

① Set up the tracks.

② The bugs set off successively.

③ The tower kills the bugs.

Step 1: About JI, VG100 Courses and Us

JI, the abbreviation of Joint Institute, is an institute of engineering that was jointly established by Shanghai Jiao Tong University and the University of Michigan in 2006 [1]. It is located in the southwest of Shanghai.

One of the most distinct features of JI is internationalization, which requires a pure English-language learning environment and the understanding towards different culture and values. Another feature is its emphasis on manipulative ability that encourages students to think and to bring the brilliant idea into an entity.

Our VG100 course is the quintessential example of the second feature, with the main objective to teach freshmen students how to carry out a whole engineering project and then make it clear to the audience. The combination of these two goals leads to our Warzone Tower Defense project, and we are here to explain to you how it works.

We are Wang Zibo, Zhou Runqing, Xing Wenqian, Chen Peiqi and Zhu Zehao, coming from Team One, Apollo. Apollo is the god of light and we use his name to show our determination that light always shines on us and thus we’ll never give up.

Step 2: Rules of the Project

  • Mark off an area, place the tower (made of paper) in the center of the area.
  • Line out two mutually perpendicular, 2.5-meter-long roads. Therefore, bugs can approach the tower from four directions.
  • This 2.5-meter-long road is divided into three parts, as is shown in Figure.

① The first part of the road, is a 0.5-meter-long shelter. This distance is used for the acceleration phase of the bug so it won’t be killed within this distance.

② The second part is one-meter long. At the end of this part, a white line exists to detect whether the bug can stop accurately at this point. The bug should stop for 2 seconds.

③ The third part is the last one meter. If you want to pass the game, all the bugs should be killed by the tower before they smash into the tower. But we set another white line at the end of the track at which the bug must stop instantly even if it hasn’t been killed, in order to protect the fragile paper tower.

  • The bugs should go forward in a straight line.
  • Set the speed of the bug between 0.2m/s-0.3m/s.
  • The ultrasonic sensors at the bottom of the tower are able to detect the location of the bug based on the distance between them only after the bug goes out of the shelter area.
  • The laser should not be rotating all the time. It should turn to the direction where the bug comes from only after the location of the bug has been determined.
  • The moment the laser from the laser pointer reaches the photo-resistor, the bug should stop and that means it has been killed.
  • The bug should not be killed during the 2-4s at the white line in the middle of the track.

Step 3: About Materials Uesd in This Project

Every materials and tools uesd in this project is shown in figures above.

Step 4: Bug's Step-by-step Instruction: Step 1

Turn over the horizontal board. Immobilize the omni-directional wheel onto it with hot-melt glue. Make sure that the wheel is located in the middle of the trail.

You are recommended to view the design of our bug shown above before following the instruction.

Step 5: Bug's Step-by-step Instruction: Step 2

Put the motor into the motor bracket. Use a coupler{1} to fit the motor to the tire. Screws are needed to ensure its fastness.

Stick the components onto the back side of the horizontal board. The wheels then appear symmetrically on both sides of the bug.

Step 6: Bug's Step-by-step Instruction: Step 3

Stick the Arduino board{2}, bread board{3}, motor driving board{4}, battery box and Li-polymer{5} on to the horizontal board.

Their relative positions can be changed properly based on your own needs.

Step 7: Bug's Step-by-step Instruction: Step 4

Stick the light sensor{6} onto the
vertical board with hot-melt glue. The sensor should be located exactly at the center of the board and parallel with ground.

Then, connect two boards together ( this can be seen in figures of next step).

Step 8: Bug's Step-by-step Instruction: Step 5

Install three infrared tracking sensors{7} to the joint of the two boards.

Step 9: Bug's Step-by-step Instruction: Step 6

Get the wires connected.

Follow the circuit diagram carefully.

Step 10: Final View of the Bug

Step 11: Tower's Step-by-step Instruction: Step 1

Build the paper structure as is shown in figure (except for the purple and blue parts).

Notice that only white glue can be used for immobilization.

Step 12: Tower's Step-by-step Instruction: Step 2

Install four ultrasonic sensors{8} onto the four sides of the tower.

Step 13: Tower's Step-by-step Instruction: Step 3

On top of the tower, place a thin piece of synthetic glass. Then put Arduino board, bread board, battery and battery box onto the synthetic glass.

Step 14: Tower's Step-by-step Instruction: Step 4

Install the cradle head{9} just beneath the synthetic glass. Then, connect the steering engine with the cradle head.

Step 15: Tower's Step-by-step Instruction: Step 5

Get the wires connected.

Follow the circuit diagram carefully.

Step 16: Final View of the Tower

Step 17: Our Performance in This Project

We’ve killed one bug, which travelled a distance of 1.5m.

Since a dark environment is required on Game Day, we are not able to provide a video clear enough. To make up for this, we upload another video that was taken in the day to show the function of our bug.

Step 18: Appendix A: Reference

[1] http://umji.sjtu.edu.cn/about/

[2] http://www.e0575.cn/read.php?tid=2130836

Step 19: Appendix B: Annotation

{1} Coupler: a kind of mechanical part used to connect two components that are originally unmatched together

{2} Arduino board: a simple kind of microcontroller

{3} Bread board: used for the connection of electronic circuits without the process of soldering

{4} Motor driving board: used to control the function of the motors

{5} Li-polymer: a kind of battery that is able to provide stable output voltage

{6} Light sensor: A tiny photo resistor is installed on the surface of this part and it can distinguish different light intensity.

{7} Infrared tracking sensor: a sensor that enables the bug to go straight by detecting the white light

{8} Ultrasonic sensor: Determine the exact location of the moving bug by receiving ultrasonic signal and then converting it to electrical signal.

{9} Cradle head: used to support something

{10} Steering engine: a kind of mechanical part that can turn around and get to the direction wanted

Step 20: Appendix C: Troubleshooting

  • Q: Why can’t I stoutly stick the motor brackets onto the synthetic glass with hot-melt glue?

A: Notice that the contact area between the motor brackets and the synthetic glass is quite limited. You should exactly locate the area where you are going to melt the glue and once the brackets are stuck onto the board, you shouldn’t move them anymore until the glue has clotted again.

  • Q: Why can’t my bug go forward in a straight line?

A: Notice that every motor differs from other motors slightly, the same with tires. You can either reduce errors by finding two extremely similar motors and tires, or install a tracking sensor just as we have done.

  • Q: Why does my tower always fall down?

A: Notice that paper is very poor at bearing weight. You can make the tower firmer by adding cylinder-shaped paper rolls that surrounds the bottom of the tower. However, make sure your structure doesn’t contain paper more than three layers.

  • Q: Why can’t I obtain relatively stable data from the ultrasonic sensors?

A: Notice that ring current can create an electromagnetic field that leads to the fluctuation of data. You can mitigate its effect by erecting the wires.