The Ultimate Beer Pong Machine - PongMate CyberCannon Mark III

by grant_galloway in Circuits > Arduino

13532 Views, 88 Favorites, 0 Comments

The Ultimate Beer Pong Machine - PongMate CyberCannon Mark III

PongMate CyberCannon Mark III

Introduction

The PongMate CyberCannon Mark III is the newest and most advanced piece of beer pong technology to ever be sold to the public. With the new CyberCannon, any person can become the most feared player at the beer pong table. How is this possible? Well, the CyberCannon Mark III combines a state-of-the-art Launching System, Auxiliary FlightControl System, and Aiming Calibration System to ensure that each ping pong ball is shot with the highest possible accuracy. Here's how it works:

The PongMate's Launching System consists of a loading and shooting mechanism that was designed by top-level German and American engineers and guarantees maximum efficiency on the table. Load up the ball, press the button and shoot. The SG90 180 degree Servo will ensure that the ball is pushed accurately into position for an optimum shot. In order to make sure that you never run out of juice at the party and keep your streak going, the Launching System of the PongMate CyberCannon Mark III runs on not 2, not 4, but that’s right on 6 rechargeable AA batteries, clocking up to 9V and 6600 mA, to power both DC-Motors.

The Auxiliary FlightControl System utilizes state-of-the-art sensing and laser technology to calculate the optimal trajectory for the ping pong ball. With the help of the accelerometer and time of flight sensors, the PongMate CyberCannon Mark III can calculate the exact position of the user with respect to the target cup.

To visually guide the user to the correct shooting height and angle, the Aiming Calibration System is designed with a gravity level and 5 LED interface to ensure that the appropriate position has been achieved before launch.

The PongMate CyberCannon Mark III is not purely a technical piece of engineering. Thousands of hours of research were invested into the ergonomic design of the product. Hand stitched Italian Velcro straps are integrated into the solid timber baseplate and adjust to fit any arm size. A robust trigger handle is attached underneath the Auxiliary FlightControl System to provide a stable grip, even after a few pints of Stuttgart’s finest.

So, if you want to be good at beer pong, if you want to be on the winning team, and if you want to impress everyone at the party, then you need the PongMate CyberCannon Mark III, and you’ll never miss a shot again.

Hardware and Electronics

Below, you can find all of the hardware, electronic components, and tools needed to create the PongMate CyberCannon Mark III. The Electronics section is divided into four sub-sections -- Control Unit, Launching System, Auxiliary FlightControl System, and Aiming Calibration System -- to show which components are required for the different parts of the CyberCannon. Links to purchasing options for all of the electronic components have been provided; however, we do not specifically endorse any of the retailers that are linked.


Hardware

15-20cm PVC Drainpipe (Ø 50 mm)

4x Cable Tie

600x400mm Plywood Sheet (4mm)

1x Door Hinge

1m Velcro Fastener

12cm PVC Pipe (Ø 20 mm)

Wood Glue

Super Glue

Electric Tape

8x M3 Wood Screws

8x M2 Wood Screws

2x M4 50mm Bolt

2x Washer

4x M4 18mm Threaded Sleeve

2x M4 Bolt Nut

Electronics

Control Unit

Arduino Uno

Mini Breadboard

Jumper Wires

Battery Holder Pack

2x Battery Connector Cable

6x rechargeable AA Batteries (1.5V each)

9v Block Battery

Press-Button Switch

Launching System

2x DC-Motor 6-12V

L293D Motor Driver IC

Servo Motor

Launcher Button

2x Foam Rubber Wheels (45mm)

2x Reduction Socket (Ø 2 mm)

Auxiliary FlightControl System

MPU-6050 Accelerometer

VL53L1X Time of Flight (ToF) Sensor

ANGEEK 5V KY-008 650nm Laser Sensor Modul

Aiming Calibration System

2D Gravity-Level

5x 8bit WS2812 RGB LEDs

Europlatine (Soldering) or Breadboard

Tools

Box Cutter

Saw

Screw Driver

Needle & Thread

Soldering Iron & Solder*

*Breadboard is an alternative to soldering.

Extras

2x Ping Pong Balls

20x Red Cups

Beer (or Water)

Logic

Z-tilt.jpg
Horizontal Distance vs DC Motor Speed.PNG

The logic behind the PongMate CyberCannon Mark III is all about simplifying the relationship between the system's variables and the DC motor speed in order to shoot each ping pong ball the correct distance. If the CyberCannon were a stationary launcher with a fixed angle, then the calculation for the DC motor speed would be a fairly simple relationship between the launcher distance to the cup and the power being supplied to the motors. However, because the CyberCannon is a wrist mounted machine, then the vertical distance from the launcher to the cup and the launcher angle would need to be considered in addition to the horizontal distance when calculating the DC motor speed. Finding the correct solution to a system of four variables with only trial and error at our disposal would be extremely difficult and tedious task. Assuming we were able to find this correlation, however, the slight inconsistencies of the launcher and sensor readings would still produce enough inaccuracy within our system that it does not make sense to add so much precision to the DC motor speed calculation. Ultimately, we decided that it would be best to try and eliminate as many variables as possible so that the DC motor speed could be reasonably determined through trial and error and produce understandable results for the user. For example, it is much easier for the user to understand that DC motor speed increases as horizontal distance increases and decreases as horizontal distance decreases. If the equation for DC motor speed had too many variables, then it would not be intuitive how the DC motor speed is being calculated.

Again, the main variables within our system are the horizontal distance, vertical distance, launcher angle, and DC motor speed. In order to produce the most consistent results, we decided to eliminate the vertical distance and launcher angle from the DC motor speed calculation by fixing these variable. By guiding the user to the correct height and angle with the Aiming Calibration System, we were able to fix the vertical distance and launcher angle. Specifically, the correct vertical distance is indicated when the middle three LEDs of the five LED interface turn green, and the correct launcher angle is indicated when the bubbles on the two-axis gravity level are centered between the black lines. At this point, the only remaining variables are the horizontal distance and the DC motor speed. That being said, the horizontal distance needs to be calculated from sensor data since the horizontal distance cannot be measured directly. Instead, the direct distance from the launcher to the cup and the angle from the horizontal plane can be measured and used to calculate the horizontal distance. We used the VL53L1X ToF Sensor to measure the distance from the launcher to the cup and the MPU-6050 Accelerometer to measure the angle from the horizontal plane. The math behind this calculation is very simple and can be seen in the attached image to this section. Basically, the only formula needed to calculate the horizontal distance from these two sensor readings is the Law of Sines.

Once the horizontal distance is calculated, the only thing left to do is find the correlation between this distance and the DC motor speed, which we solved using trial and error. A plot of these values can be seen in the attached image. We expected that the relationship between horizontal distance and DC motor speed would be linear, but we were surprised to find out that it actually followed a curve more similar to a cube root function. Once determined, these values were hard-coded into the Arduino script. The final implementation of all of these parts can be seen in this video here, where the LED interface changes to indicate the relative height to the target and the DC motor speed can be heard changing with the varying input values from the sensors.

Hardware Construction

fullPart.jpg
back_part.jpg
wheels.jpg
dc_motor-02104.jpg
front_part.jpg
servo-02098.jpg
led_box.jpg
led_cables.jpg
LED-02124.jpg
wrist.jpg
20200708-20200708-IMG_2752.jpg
aux_system-02123.jpg
base_plate.jpg
20200707-IMG_20200707_142247.jpg
20200707-IMG_20200707_170238.jpg
20200707-IMG_20200707_170212.jpg
pipe-02094.jpg
20200707-IMG_20200707_182314.jpg
20200707-IMG_20200707_182320.jpg

What is nice about the hardware construction of the PongMate CyberCannon Mark III is that you can either be quick and rough with it at home or be steady and precise with a CNC machine or 3D printer. We opted for the first option and used a box cutter to cut the 4 mm plywood sheets for our design; however, we provided CNC parts sheet if you would like to pursue this option. The layers of the plywood were designed so that the various components of the CyberCannon could be integrated as much as possible. For example, the base plate of the Launching System has cutouts for the Arduino, batteries, breadboard, and Velcro straps, while the base plate of the Auxiliary FlightControl System has cutouts that create a tunnel for the sensor wires and hide the bolts that attach the trigger handle. Once you have all of the pieces cut out from the plywood sheets, you can glue them together to form the base plates of the CyberCannon. When gluing, we think it is important to really check that everything is lined up correctly and also suggest that you use clamps or a few books to apply pressure while the pieces dry. Before you begin attaching more fragile components like the launcher pipe and electronics, we suggest sewing on the Velcro straps since you may need to turn over the base plate in order to insert the straps and make sewing easier. The launcher pipe should be cut to accommodate for the wheels that you are able to purchase and allow for the servo motor to properly actuate to push the ball into the wheels. We recommend that the wheels somewhat squishy so that they can be placed closer together than the diameter of the ping pong ball, which provides a more powerful and consistent shot. In this same vein, it is also important that the DC motors are secured tightly and do not move when the ball is squeezed between the wheels; otherwise, the ball will lose power and consistency. We also suggest that you make sure the screws you have purchased all fit in the holes of your electronic components so that you do not damage them and that you double check that there will be no screw conflicts between the various parts you are screwing into the base plates. Regardless of how precise you want to be during the hardware construction of the CyberCannon, the best way to make progress is just to start building and figure out the tiny details along the way.

Downloads

Electronics Assembly

Pong_Launcher_v3.png

The electronics assembly may seem like an easy step at first compared the hardware construction; however, this phase should not be underestimated because it is extremely important. One misplaced wire could prevent the CyberCannon from working properly or even destroy some electrical components. The best way to go about the electronics assembly is to simply follow the circuit diagram provided in the attached images and to double check that you never mix up the power supply and ground wires. It is important to note that we were running the DC motors on six 1.5V rechargeable AA batteries instead of one 9V block battery like the rest of the electronics because we found that the six AA batteries provided more consistent power for the DC motors. Once you have completed the electronics assembly, all you have to do is upload the Arduino code, and your PongMate CyberCannon Mark III will be up and running.

Arduino Code

Assuming you have set up everything correctly, the attached Arduino code is all you should need before the CyberCannon is ready to use. At the beginning of the file, we have written comments that explain all of the examples and libraries we used to help us implement the code for the various electronic components. These resources can be very useful to research if you want further information or a better understanding of how these components work. After these comments, you will find the variable definitions for all of the components being used in our script. This is where you can change many hard-coded values like the DC motor speed values, which you will need to do when you calibrate your DC motors with the horizontal distance. If you have previous experience with Arduino, you will know that the two main parts of an Arduino script are the setup() and loop() functions. The setup function can more or less be ignored in this file with the exception of the VL53L1X ToF sensor code, which has one line where the distance mode of the sensor can be changed if desired. The loop function is where the distance and angle values are read from the sensors to calculate the horizontal distance and other variables. Like we mentioned earlier, these values are then used to determine the DC motor speed and LED values by calling additional functions outside of the loop function. One problem we encountered was that the values coming from the sensors would vary by a significant margin due to inconsistencies within the electrical components themselves. For example, without touching the CyberCannon, both the distance and angle values would vary enough to cause the DC motor speed to oscillate randomly. In order to fix this problem, we implemented a rolling average that would calculate the current distance and angle by averaging over the 20 most recent sensor values. This instantly fixed the problems we were having with sensor inconsistencies and smoothed out our LED and DC motor calculations. It should be mentioned that this script is by no means perfect and definitely has a few bugs that still need to be worked out. For example, when we were testing the CyberCannon, the code would randomly freeze about one in three times that we turned it on. We have looked through the code extensively but have not been able to find the problem; so, do not be alarmed if this happens to you. That being said, if you manage to find the problem with our code, please let us know!

Destroy the Competition

05_final_prototype.jpg

We hope that this Instructable provided a clear tutorial for you to build a CyberCannon of your own and only ask that you go easy on your friends when you play them at the next party!

Grant Galloway & Nils Opgenorth