Like the film Pirates of the Caribbean? You can have similar naval battles at home! We are SOLE PRO, a group which aims at solve problems. We are from UM-SJTU Joint Institute - UM stands for University of Michigan and SJTU stands for Shanghai Jiao Tong University. Here is a photo of us with our robot, TAs and our professor Dr. Johnson. This manual is part of our Project 1 for the freshman class VG100. Shanghai Jiao Tong University lies in Minhang District, Shanghai, China. We have a really fascinating campus, which is shown in the pictures.
Our Project 1 is a game called Naval Battle. It is based on ancient naval battles where boats shoot each other with cannons. We have a 2000mm * 1500mm rectangular battlefield which is divided evenly by a 70mm-high and 18mm-wide wall. There is a 50mm gap below the wall and the field is surrounded by walls 120mm in height. There is a photo of the field provided by our TAs. We use big wooden balls and small Ping Pong balls as cannons to shoot each other.
There are 8 big balls and 4 small balls on each side of the field before the game starts. Balls on different sides have different colors --- you can just use two different paint to do it. In a bid to score, you need to move the balls to your opponent’s field. Small balls have a diameter of 40mm, so they can go across the wall through the gap. Big balls have a diameter if 70mm, which is bigger than the height of the gap and you have to devise ways to throw them over the wall. The game will last for 3 minutes. When time is up, a small ball on your opponent’s field can win your team 1 point and a big ball wins up to 4 points. If small balls are under the wall, neither of the two teams gets score. If you throw a ball outside of the field, your punishment is 2-point loss for a small ball and 5-point loss for a big ball. Also, there are some restrictions for your robot cars. The dimension limit is 350mm by 350mm by 200mm. Every team should use the same motors to drive their cars. Too fast motors are banned for the consideration of safety. After your opponents get their balls on your field, you can still move them back within the game time. Our Game Day consists of 2 parts: individual game and tournament. Our team got full mark -- 24 points in the individual game in less than a minute and won first place in the tournament. And you can see the video of our individual game which is posted on a Chinese video website called Youku.
Step 1: Concept Diagram & Material List
Notice there are 3 notes in the concept diagram. Our car has a round shape so it can steer without moving forward or backward, which is a big advantage. We use the robotic arm to catch big balls and throw them over the wall in the middle. There are 4 servo motors in total --- 3 for controlling the position of the claw and 1 for opening and closing the claw. We also use PS2 wireless controller to control the car. Because of good programming, our car is easy to operate. The core controller is Arduino UNO R3, which is cheap but powerful. We use YFRobot PM-R3 shield to control 2 motors and provide power supply for both motors and the Arduino board. We also use DFRobot IO Expansion shield to control 4 servo motors and provide external power supply for them.
Material list is provided in the last figure. Some common materials such as electrical wires and jumper wires are not involved in the list. You need to prepare some common tools such as certain types of screwdrivers and soldering iron.
Step 2: Circuit Diagram
You should first look at the next 2 steps and then refer to this step when you are connecting wires. We use battery boxes to stand for lithium batteries. The output voltage of the regulators should be 7V instead of 5V in the diagram. Red pins are VCC pins and black pins are GND pins.
(1) Install the PM-R3 shield onto the Arduino UNO board.
(2) Connect 2 motors and one voltage regulator to the shield using electrical wires. Do not connect the battery to the regulator now.
(3) Install the IO expansion shield onto the PM-R3 shield. 2 pins will not be connected, but don't worry about it. Make sure pins correspond when installing the 2 shields.
(4) Connect the PS2 signal receiver and 4 servo motors to the IO expansion board. The IO expansion board is compatible with standard servo motor pins, so you can directly plug the motors in, but be careful of direction --- the color of wires and pins should correspond. We only connect VCC wires to indicate which pins to use. You need to use 6 female-to-female jumper wires to connect the signal receiver - for VCC and GND pins on the receiver which are not connected in the diagram, you can connect them to any VCC and GND pins on the board.
(5) Connect the other voltage regulator to the servo pwr pins on IO expansion board. Do not connect the battery to the regulator now.
Step 3: Build Car Frame
(1) Cut a 5 mm-thick acrylic board based on the blueprint we designed.
(2) Dig holes for screws on the board based on the blueprint. (You can do step 1 and 2 by custom-make them online)
(3) Fix the motors on the board with four M4 screws for each motor.
(4) Weld wires to poles of the motors.
(5) Fix wheels to the motors with nuts and M4 screws.
(6) Fix Universal wheels to the board with M2 screws and bolts. Fix copper pillars to the board with M3 screws and bolts.
Step 4: Assembly
(1) Cut acrylic board on blueprint and fix motors, wheels, universal wheels, copper pillars and wire to the board with screws and nuts. (summary of the last step)
(2) Fix batteries to the base of car with glue.
(3) Link motors and regulators to the Arduino board with wire. Specific details are based on the Circuit Diagram.
(4) Fix wires of servo motors of the mechanical arm to the Arduino board according to the Circuit Diagram.
(5) Fix the mechanical arm to the upper board with M3 screws and nuts.
(6) Cut the base of a rubbish bin into four pieces and fix them to the copper pillars with glue.
(7) Fix the upper board to the base with M3 screws.
(8) Fix regulators to the upper board with adhesive tape and connect them to batteries.
(9) Here we go!
Step 5: Final Car View
You can build 2 cars and then play with your friends! Don't forget to upload the program to the Arduino board. You can find our program and the PS2 controller Arduino library in the file attachments.