Overview: The Pong-Bot’s job is bouncing ping pong balls into six tumblers as fast as possible. This task is based on Bouncerchallenge from the old TV game show Minute to Win It (although many people say it reminds them of beer pong). A “race function” matches the robot against a human to see who can complete bouncing balls into six tumblers first.

Background: I was intrigued by IBM Watson beating Jeopardy champion Ken Jenkins a few years ago. So, while we have robots fighting robots and robots, and interacting with people in some way, I didn't see many robots challenging humans in physical skill games. This motivated a robot to challenge human competitors in a physical skill game (bouncing ping-pong balls).

Findings: I'll summarize robot vs. human game outcomes from two Maker Faires in this Instructable, and share some "lessons learned."

Technical overview: The robot operates using an Arduino UNO, two servos, a gear motor, and hall effect, optical, and mechanical sensors. An OLED display reports race results. See System Overview and General Operation for details. Also, because this project evolved over time, I'll share some "lessons learned."

Project difficulty: Good electrical and mechanical construction skills, along with Arduino IDE experience is required. Estimated cost $300, and construction time of at least a couple of weekends.

Step 1: System Overview and General Operation

The Pong-Bot game system has 4 main Functional Requirements:

FR1: Robot must bounce ping-pong balls into a tumbler

FR2: Robot moves between tumbler locations (from tumbler #1 to tumbler #2 ...) and returns to initial start position.

FR3: Control a "drag race" between Pong-Bot and human competitors and measure elapsed time to bounce ping-pong ball into each of the six tumblers.

FR4: Coordinate the above functions

Details: FR1: Robot must bounce a ping-pong balls into a tumbler -

Ping-pong balls are stored in a length of vertically inclined 1-1/2 PVC pipe. Balls roll down the pipe bouncing off a plywood base and then fly into a tumbler. A "firing" servo releases a single ball at a time. After release, another servo reloads a ball from pipe upper section to be ready for the next "shot."

<p>how does the robot know if it missed? Does it try again, does it change elevation or azimuth to insure a hit, how does the bot calculate a trajectory? The human must do all these things.</p><p>Awesome.</p>
<p>The robot only takes one shoot at each tumbler and since it does not have a vision system, it won't detect a miss or take a second - that is an open loop control system. I practice the robot, once calibrated, rarely misses.</p>

About This Instructable




More by e024576:Small Parts Rack From Repurposed Chick-Fil-A Fruit Cups Magnetically Attached Small Part Bins Arduino Controlled Game: Pong-Bot Vs Human  
Add instructable to: