NameNetIDCourse

Ethan Zhang

ethanz2110
Albert Chenalbertc6110
Jake Xiongyuangx2110

Image result for pong



Project Proposal

  1. Introduction

    1. The objective of our project is to construct and program a physical pong game in which two autonomous ‘robots’ at either end of the pre-built arena move side-to-side, deflecting a ball back and forth like the classic computer game. The goal is that the robots will be able to indefinitely bounce the ball back and forth without any human input. Our project’s primary function is being entertaining to watch.

    2. We brainstormed and researched the feasibility of several different types of sensing methods and setups, such as ultrasonic sensors (would interfere with each other and don’t work well on spheres) and touch sensors (might not be sensitive enough). We ultimately decided on what was both likely to work while being reasonable to construct and execute.

    3. We couldn’t find any examples of project exactly like ours; most results were very high-tech ping pong robots that could play humans in 3-dimensional table tennis. Obviously this would be much too difficult so we decided to scale our project down in both size and reduce it to 2-dimensional pong. While our project is more for entertainment/fun than any particular function, we hope that through the process of designing and constructing it we can learn many relevant electronics and teamwork skills.


  2. Design Details

    1. We will rely on lasers and receiver modules on both sides parallel to the length of the arena, which communicates the current latitude of the ball to either Arduino located on each robot. Since the ball located in the arena will block at least one receiver module from its respective laser as it is moving around, we will direct both of the robots to move to that respective location. Since the robots will only be under guidance of the laser, no prediction algorithm will be necessary. The robots will be powered by a small DC motor connected to 3-4 pushing plates that constantly rotate in order to hit the ball back. This simplification allows us to not worry about the timing of when to activate the pushing plates when the ball rolls near the robot. Finally, each robot will be attached to a track rather than on wheels for movement. Since there may be sharp direction changes as the ball bounces off the walls of the arena, relying on a track to change direction will be much more consistent compared to the traditional wheel drive. 


  1. Initial Parts List

    1. 1x Arduino Mega 

      1. https://store.arduino.cc/usa/mega-2560-r3

    2. 2x motor drivers for Arduino

      1. https://www.amazon.com/Qunqi-2Packs-Controller-Stepper-Arduino/dp/B01M29YK5U/ref=sr_1_6?crid=9MGPSXQHGPDW&keywords=arduino+motor+controller&qid=1581741641&sprefix=arduino+motor%2Caps%2C163&sr=8-6

    3. ~10x pairs of small lasers and corresponding receiver modules 

      1. https://www.amazon.com/Icstation-5V-Laser-Sensor-Module/dp/B01M8PFZRC/ref=sr_1_2?keywords=arduino+laser+receiver&qid=1581741538&sr=8-2 

      2. https://www.amazon.com/Laser-Transmitter-Module-Arduino-10pcs/dp/B07FQ6696X/ref=sr_1_5?keywords=arduino+laser+receiver&qid=1581741538&sr=8-5

    4. 2x small belt and sprockets sets (like those found on a 3d printer)

      1. https://www.amazon.com/KeeYees-Timing-Tensioner-Torsion-Printer/dp/B07JKT5BZQ/ref=sr_1_5?keywords=belt+and+sprocket&qid=1581741605&sr=8-5

    5. 2x motors to drive the belt/sprocket

    6. 2x small DC motors (with gearbox) for paddles

    7. Various ⅛” - ¼” plywood sheets

    8. Plastic balls (table tennis balls)

    9. Wood glue/screws


New Parts List

  1. Raspberry pi
    1. https://www.amazon.com/Vilros-Raspberry-Basic-Starter-Official/dp/B07TLG1RWD/ref=sr_1_2_sspa?crid=218TDYHCK4SVT&keywords=raspberry+pi&qid=1582249844&sprefix=rasp%2Caps%2C168&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExMEVSNzVFOUxKUkQwJmVuY3J5cHRlZElkPUEwNjkxMzc5MjM2SlNXU1JXOVY2QiZlbmNyeXB0ZWRBZElkPUEwMjc4MTUyMUtPTkJNSlVNN0NMTCZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=
  2. Webcam
    1. https://www.amazon.com/Logitech-Laptop-Webcam-Design-360-Degree/dp/B004YW7WCY/ref=sr_1_3?keywords=webcam+1080p&qid=1582249754&sr=8-3
  3. Timing belt & sprockets
  4. Stepper motors
  5. DC motors with gearbox
  6. Raspberry pi stepper motor controller



  1. Possible Challenges

    1. Physically building the arena and belt system such that the robots attached to the belts will be able to move side-to-side with enough precision and speed may prove to be difficult, depending on how high of a velocity the paddle will hit the ball.

    2. Constructing the robot so that it will not interfere with lasers and receiver modules while operating DC motors to spin the pushing plates.

  2. References

https://store.arduino.cc/usa/mega-2560-r3

https://www.mschoeffler.de/2017/01/20/how-to-build-an-optical-light-barrier-with-the-arduino-the-keyes-laser-module-ky-008-and-a-laser-receiver-detector-module/

Comments:

Great idea! Please check out some examples of block diagrams. It should show how each component communicates with each other. I suggest that after your project gets approved, talk to the machine shop as soon as possible since they can help you with the physical design of the arena.

Posted by yuchenc2 at Feb 16, 2020 02:21

Please revise your block diagram as Johnny said.

Lasers sound interesting, may be difficult to wire up. A basic OpenCV computer vision setup may be more reliable.

Please talk to machine shop ASAP. You will need to coordinate with them as soon as possible to get this system built in time.

Posted by fns2 at Feb 16, 2020 13:13

I would look for specific examples of people doing similar things to the mechanical portion of this project. That way you can limit the amount of times you have to deal with your first possible challenge. And like Finn said, the system is reliant on the structure of your "arena" so getting that done is probably a crucial first step.

Posted by dbycul2 at Feb 16, 2020 21:58

Looks great!

I agree in that lasers+receivers are not the best approach. It adds significant complexity with overlapping paddles/balls (requiring some memory+prediction in software side). 

Make sure you have a good way that prevents the ball from just losing energy and stopping. 

Posted by weustis2 at Feb 16, 2020 22:48

Approved, Feb 20th


Posted by fns2 at Feb 20, 2020 18:56