element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents How to Build a Reaction-Based Catch Game Using Arduino and Relays
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Toptech-Voices
Engagement
  • Author Author: cstanton
  • Date Created: 21 May 2026 10:51 AM Date Created
  • Last Updated Last Updated: 21 May 2026 1:29 PM
  • Views 9277 views
  • Likes 4 likes
  • Comments 5 comments

How to Build a Reaction-Based Catch Game Using Arduino and Relays

In this video, Mark builds a reaction-based catch game inspired by a classic TV challenge, using an Arduino Nano, relay-driven actuators, and a simple but effective control system. The setup drops sticks at random intervals, testing reflexes while showcasing practical electronics design, from power regulation and PCB assembly to embedded programming and mechanical integration. This project balances accessibility with clever implementation, making it ideal for makers looking to build something interactive and fun, watch the build and find the supporting code below.

Watch the Build

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Can you Catch the Game?

When he was young, Mark didn’t have access to modern gaming platforms. Like many at the time, entertainment came from broadcast television, limited channels, scheduled programming, and a reliance on anticipation rather than instant access. One particular show left a lasting impression: The Honeymoon Quiz. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.

The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player’s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.

Decades later, Mark revisits this concept with a modern, electronics-driven interpretation, building a fully autonomous, microcontroller-based version of the game. As he puts it:

“It will hold several sticks that will drop down randomly one by one… and you need to try to catch them. That’s the game.”

image

The Schematic

The system is divided cleanly into four functional sections: power, control, sound, and actuation.

The power design reflects Mark’s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:

“I know it's not the most elegant regulator nowadays, but it's analog and it's proven and tested… that's why I use it.”

An input supply (e.g. 12V) is stepped down to 8V for the actuators. This is a deliberate choice to provide sufficient drive strength to the relay-based mechanisms responsible for releasing the sticks.

The Arduino Nano operates using its onboard regulator, while also serving as the central controller. A push button connected to digital pin D2 serves dual purposes: starting the game and toggling difficulty.

This behaviour is clearly implemented in the code:

#define StartButton 2
EasyButton button(StartButton);

void buttonPressed() {
  running = !running;
}

void sequenceEllapsed() {
  expertmode = !expertmode;
  digitalWrite(ModeLed, expertmode);
}

button.onPressed(buttonPressed);
button.onSequence(2, 1500, sequenceEllapsed);

Here, a single press toggles the game state, while a double press (within 1500 ms) activates “expert mode” — a faster-paced variant of gameplay.

The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:

“It’s only used to generate a beeping sound to indicate the start and the end of a game… it will do the job quick and dirty.”

Finally, the relay drivers form the core of the mechanical interaction. Each relay controls a latch mechanism holding a stick. When triggered, the latch releases, allowing gravity to do the rest.

image

Game logic and behaviour

The game’s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:

  1. Play a start tone
  2. Sequentially drop sticks in random order
  3. Ensure no stick is dropped twice
  4. Play an end tone and reset

The randomness is carefully handled to avoid repetition:

int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}

This ensures that each actuator is triggered only once per game cycle, a detail not explicitly called out in the original blog, but critical to gameplay integrity.

Timing is also adjustable based on difficulty:

if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;

This reflects Mark’s intent to scale challenge dynamically, something he alludes to in his video breakdown as part of creating “a more difficult game.”

image

Placing the components

Component placement follows a logical and structured layout, aided by the available space on the prototyping board. While the blog presents this as straightforward. Mark notes:

“I know this is not the most elegant way of soldering… but I have to make do with what I have at home.”

This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.

After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:

“If I don't we will have a big short circuit… so this needs to be done.”

image

Baseplate

The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.

Mark emphasises the importance of keeping wiring short and manageable:

“I made a base plate… to keep wires short and compact.”

This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.

image

Building a Rig

The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:

“You can use some wood bars… I happen to have aluminum frames laying around from an old table.”

This reinforces the project’s ethos: use what you have, adapt creatively.

Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:

“Make sure you use proper double-sided tape… you don’t want the actuator to fall off completely.”

The goal is controlled release, only the sticks should fall, not the mechanisms themselves.

Another practical insight not present in the original write-up is wiring flexibility:

“All I need to worry about later is which wire is the common… all the other wires I can just connect randomly because the actuators are controlled randomly.”

Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly. The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.

Cut to approximately 25 cm and fitted with hooks, they interface directly with the latch mechanisms. While the blog presents this briefly, the transcript reinforces the intended gameplay experience, lightweight sticks that drop cleanly and predictably.

Sketch upload

Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.

The only dependency is the EasyButton library:

#include <EasyButton.h>

As highlighted in both the blog and transcript, this library simplifies input handling and enables multi-function button logic without complex interrupt handling, although the code does optionally enable interrupts if supported:
if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}


Testing reveals a key insight: the game is harder than it looks.

“As you can guess… this is more difficult than I expected.”

Even with a basic prototype setup, the random timing and human reaction limits quickly become apparent. This validates the original TV concept, and demonstrates the effectiveness of Mark’s implementation.

image

Reflection and future considerations

While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:

“Of course I will put a casing over the electronics… for now it’s an experimental setup.”

This suggests several natural future improvements:

  • Enclosing electronics for safety and durability
  • Refining the frame structure for portability
  • Adjusting difficulty scaling further
  • Potentially expanding actuator count or configurability

There is also a strong intended use case beyond personal experimentation:

“I’m going to have lots of fun on this… especially with the kids at my youth school.” 

This positions the project as both a technical exercise and a practical interactive installation. Mark’s catch game successfully recreates a classic concept using accessible electronics and straightforward mechanical design. It balances simplicity with enough technical depth to make the build engaging, while the gameplay itself delivers genuine challenge.

By combining randomness, physical interaction, and clear feedback mechanisms, the project highlights how effective even relatively simple embedded systems can be in creating engaging experiences, especially when paired with thoughtful implementation and iterative testing.

Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.

Supporting Files and Links

-  Episode 715 Resources  

Bill of Materials

Product Name Manufacturer Quantity Buy Kit
MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045 Molex 5 Buy Now
ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3 Onsemi 1 Buy Now
KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole KYCON 1 Buy Now
ONSEMI Small Signal Diode, Single, 100 V, 200 mA, 1 V, 4 ns, 4 A 1n4148 ONSEMI 11 Buy Now
Transistor BC517-D74Z ONSEMI 11 Buy Now
VISATON Speaker, Mini, 2 ", 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz Visaton 1 Buy Now
MENTOR LED Panel Mount Indicator, Chrome Plated, Green, 2 VDC, 8 mm, 20 mA, 20 mcd, Not Rated Mentor 1 Buy Now
MULTICOMP PRO Pushbutton Switch, 12 mm, SPST, (On)-Off, Round Raised, Red Multicomp Pro 1 Buy Now
Ressitor 2K Multicomp Pro 1 Buy Now
Resistor 3.9K Multicomp Pro 10 Buy Now
Resistor 200E Multicomp Pro 1 Buy Now
KEMET Multilayer Ceramic Capacitor, 0.1 µF, 50 V, ± 10%, Radial Leaded, X7R, 5.08 mm Kemet 2 Buy Now
330nF Kemet 1 Buy Now
Arduino Nano Arduino 1 Buy Now
MULTICOMP PRO 6MS1S3M1RESlide Switch, SPDT, On-On, Through Hole, Side Actuator, 100 mA, 20 V Multicomp Pro 1 Buy Now
Striped prototyping pcb board CIF 1 Buy Now
Product Name Manufacturer Quantity **BUY_KIT**
Lock mechanism 3~5V BADODO Security 10
 Power adapter 12V / 1A
Metal or wooden frame
  • arduino pwm speaker
  • diy stem game
  • diy arcade build
  • physical computing project
  • diy catch game
  • random drop game
  • reaction time game arduino
  • engineering project tutorial
  • maker electronics project
  • prototyping pcb project
  • arduino easybutton library
  • interactive electronics game
  • arduino nano project
  • arduino game
  • relay actuator project
  • e14presents_markdonners
  • friday_release
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
  • kmikemoo
    kmikemoo 23 days ago

    donnersm I loved it.  Excellent project!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB 23 days ago in reply to donnersm

    If you stand directly under them you up the intensity for getting better. ;)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 24 days ago

    A variation on this game that used to be played at school, was to drop a ruler between two open fingers with the aim being to catch it as close to the 0 mark as possible as it fell through under gravity. As the game progressed, different pairs of fingers and different hands had to be used.

    You perhaps need a break beam sensor across the frame to prevent people from doing this:

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • donnersm
    donnersm 25 days ago in reply to DAB

    Yes It looks like I can use some training :-)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB 25 days ago

    Nice project.

    If nothing else, it could improve your eye hand coordination.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube