<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays</link><pubDate>Thu, 21 May 2026 13:29:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>e14sbhargav</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Current Revision posted to Documents by e14sbhargav on 5/21/2026 1:29:40 PM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54hafv0"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/yxGkHVo9bEw"&gt;https://youtu.be/yxGkHVo9bEw&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/0525.schematic.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000025.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000061.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000378.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000387.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation. Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54rg7c3"&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151346"&gt;Episode 715 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp54pbh70"&gt;Bill of Materials&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-65af5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,24017680,2401735,2575644~2,1457709,1848691,1201431,1201471&amp;nsku=26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X46790,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('65af5'));" data-farnell="9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,2401768~10,2401735,2575644~2,1457709,1848691,1201431,1201471" data-newark="26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X4679~10,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,undefined~11,undefined~11,,,,,undefined~10,,undefined~2,,,,,undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-fd50c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('fd50c'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-27cdd" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('27cdd'));" data-farnell="9666222" data-newark="88H4760" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-08437" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('08437'));" data-farnell="2839850" data-newark="49AC0350" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Small Signal Diode, Single, 100 V, 200 mA, 1 V, 4 ns, 4 A 1n4148&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4fb7a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9843680~11&amp;nsku=62M1970~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4fb7a'));" data-farnell="9843680~11" data-newark="62M1970~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transistor BC517-D74Z&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4af56" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575349~11&amp;nsku=84Y9603~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4af56'));" data-farnell="2575349~11" data-newark="84Y9603~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c336d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c336d'));" data-farnell="4662064" data-newark="15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MENTOR LED Panel Mount Indicator, Chrome Plated, Green, 2 VDC, 8 mm, 20 mA, 20 mcd, Not Rated&lt;/td&gt;
&lt;td&gt;Mentor&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-31171" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1215781&amp;nsku=02M0051&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('31171'));" data-farnell="1215781" data-newark="02M0051" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO Pushbutton Switch, 12 mm, SPST, (On)-Off, Round Raised, Red&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-72f4d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2913862&amp;nsku=69AC6100&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('72f4d'));" data-farnell="2913862" data-newark="69AC6100" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ressitor 2K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-44250" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401761&amp;nsku=45X4679&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('44250'));" data-farnell="2401761" data-newark="45X4679" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 3.9K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d7fcc" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=24017680&amp;nsku=45X46790&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('d7fcc'));" data-farnell="2401768~10" data-newark="45X4679~10" data-comoverride="" data-cmpoverride="" data-cpc="undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 200E&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-49e24" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401735&amp;nsku=45X4714&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('49e24'));" data-farnell="2401735" data-newark="45X4714" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KEMET Multilayer Ceramic Capacitor, 0.1 &amp;Acirc;&amp;micro;F, 50 V, &amp;Acirc;&amp;plusmn; 10%, Radial Leaded, X7R, 5.08 mm&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e3a48" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575644~2&amp;nsku=89Y7091~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e3a48'));" data-farnell="2575644~2" data-newark="89Y7091~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;330nF&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-039ed" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1457709&amp;nsku=58M4572&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('039ed'));" data-farnell="1457709" data-newark="58M4572" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Nano&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-5801a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1848691&amp;nsku=13T9275&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('5801a'));" data-farnell="1848691" data-newark="13T9275" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO 6MS1S3M1RESlide Switch, SPDT, On-On, Through Hole, Side Actuator, 100 mA, 20 V&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-77f0f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201431&amp;nsku=01M8447&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('77f0f'));" data-farnell="1201431" data-newark="01M8447" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Striped prototyping pcb board&lt;/td&gt;
&lt;td&gt;CIF&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1a0d0" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201471&amp;nsku=96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1a0d0'));" data-farnell="1201471" data-newark="96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;**BUY_KIT**&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock mechanism 3~5V&lt;/td&gt;
&lt;td&gt;BADODO Security&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;Power adapter 12V / 1A
&lt;table width="823"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="823"&gt;Metal or wooden frame&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/7</link><pubDate>Thu, 21 May 2026 13:29:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 7 posted to Documents by cstanton on 5/21/2026 1:29:40 PM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54hafv0"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/yxGkHVo9bEw"&gt;https://youtu.be/yxGkHVo9bEw&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/0525.schematic.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000025.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000061.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000378.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000387.png" /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation. Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54rg7c3"&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151346"&gt;Episode 715 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp54pbh70"&gt;Bill of Materials&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-e277d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,24017680,2401735,2575644~2,1457709,1848691,1201431,1201471&amp;nsku=26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X46790,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e277d'));" data-farnell="9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,2401768~10,2401735,2575644~2,1457709,1848691,1201431,1201471" data-newark="26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X4679~10,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,undefined~11,undefined~11,,,,,undefined~10,,undefined~2,,,,,undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-937c8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('937c8'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-b3042" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('b3042'));" data-farnell="9666222" data-newark="88H4760" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-53a46" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('53a46'));" data-farnell="2839850" data-newark="49AC0350" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Small Signal Diode, Single, 100 V, 200 mA, 1 V, 4 ns, 4 A 1n4148&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a1a42" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9843680~11&amp;nsku=62M1970~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('a1a42'));" data-farnell="9843680~11" data-newark="62M1970~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transistor BC517-D74Z&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-938ad" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575349~11&amp;nsku=84Y9603~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('938ad'));" data-farnell="2575349~11" data-newark="84Y9603~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-08912" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('08912'));" data-farnell="4662064" data-newark="15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MENTOR LED Panel Mount Indicator, Chrome Plated, Green, 2 VDC, 8 mm, 20 mA, 20 mcd, Not Rated&lt;/td&gt;
&lt;td&gt;Mentor&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1f6ec" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1215781&amp;nsku=02M0051&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1f6ec'));" data-farnell="1215781" data-newark="02M0051" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO Pushbutton Switch, 12 mm, SPST, (On)-Off, Round Raised, Red&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-b4f13" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2913862&amp;nsku=69AC6100&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('b4f13'));" data-farnell="2913862" data-newark="69AC6100" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ressitor 2K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e19bf" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401761&amp;nsku=45X4679&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e19bf'));" data-farnell="2401761" data-newark="45X4679" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 3.9K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c34a1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=24017680&amp;nsku=45X46790&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c34a1'));" data-farnell="2401768~10" data-newark="45X4679~10" data-comoverride="" data-cmpoverride="" data-cpc="undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 200E&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-aeaec" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401735&amp;nsku=45X4714&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('aeaec'));" data-farnell="2401735" data-newark="45X4714" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KEMET Multilayer Ceramic Capacitor, 0.1 &amp;Acirc;&amp;micro;F, 50 V, &amp;Acirc;&amp;plusmn; 10%, Radial Leaded, X7R, 5.08 mm&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c055f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575644~2&amp;nsku=89Y7091~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c055f'));" data-farnell="2575644~2" data-newark="89Y7091~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;330nF&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-355c2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1457709&amp;nsku=58M4572&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('355c2'));" data-farnell="1457709" data-newark="58M4572" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Nano&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6d490" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1848691&amp;nsku=13T9275&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('6d490'));" data-farnell="1848691" data-newark="13T9275" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO 6MS1S3M1RESlide Switch, SPDT, On-On, Through Hole, Side Actuator, 100 mA, 20 V&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-cb16c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201431&amp;nsku=01M8447&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('cb16c'));" data-farnell="1201431" data-newark="01M8447" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Striped prototyping pcb board&lt;/td&gt;
&lt;td&gt;CIF&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e240c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201471&amp;nsku=96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e240c'));" data-farnell="1201471" data-newark="96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;**BUY_KIT**&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock mechanism 3~5V&lt;/td&gt;
&lt;td&gt;BADODO Security&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;Power adapter 12V / 1A
&lt;table width="823"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="823"&gt;Metal or wooden frame&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/6</link><pubDate>Thu, 21 May 2026 11:33:46 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 6 posted to Documents by cstanton on 5/21/2026 11:33:46 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54hafv0"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/yxGkHVo9bEw"&gt;https://youtu.be/yxGkHVo9bEw&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fj0r6"&gt;Preparing the drop sticks&lt;/h2&gt;
&lt;p&gt;The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53h93c8"&gt;Testing and gameplay&lt;/h2&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp53hq22a"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54rg7c3"&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151346"&gt;Episode 715 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp54pbh70"&gt;Bill of Materials&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-03769" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,24017680,2401735,2575644~2,1457709,1848691,1201431,1201471&amp;nsku=26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X46790,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('03769'));" data-farnell="9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,2401768~10,2401735,2575644~2,1457709,1848691,1201431,1201471" data-newark="26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X4679~10,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,undefined~11,undefined~11,,,,,undefined~10,,undefined~2,,,,,undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-dfc96" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('dfc96'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f3036" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f3036'));" data-farnell="9666222" data-newark="88H4760" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-06750" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('06750'));" data-farnell="2839850" data-newark="49AC0350" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Small Signal Diode, Single, 100 V, 200 mA, 1 V, 4 ns, 4 A 1n4148&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-3abf4" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9843680~11&amp;nsku=62M1970~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('3abf4'));" data-farnell="9843680~11" data-newark="62M1970~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transistor BC517-D74Z&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-5309b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575349~11&amp;nsku=84Y9603~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('5309b'));" data-farnell="2575349~11" data-newark="84Y9603~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-985db" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('985db'));" data-farnell="4662064" data-newark="15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MENTOR LED Panel Mount Indicator, Chrome Plated, Green, 2 VDC, 8 mm, 20 mA, 20 mcd, Not Rated&lt;/td&gt;
&lt;td&gt;Mentor&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ade18" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1215781&amp;nsku=02M0051&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('ade18'));" data-farnell="1215781" data-newark="02M0051" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO Pushbutton Switch, 12 mm, SPST, (On)-Off, Round Raised, Red&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a9839" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2913862&amp;nsku=69AC6100&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('a9839'));" data-farnell="2913862" data-newark="69AC6100" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ressitor 2K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-11681" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401761&amp;nsku=45X4679&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('11681'));" data-farnell="2401761" data-newark="45X4679" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 3.9K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1a40f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=24017680&amp;nsku=45X46790&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1a40f'));" data-farnell="2401768~10" data-newark="45X4679~10" data-comoverride="" data-cmpoverride="" data-cpc="undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 200E&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-95fa2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401735&amp;nsku=45X4714&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('95fa2'));" data-farnell="2401735" data-newark="45X4714" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KEMET Multilayer Ceramic Capacitor, 0.1 &amp;Acirc;&amp;micro;F, 50 V, &amp;Acirc;&amp;plusmn; 10%, Radial Leaded, X7R, 5.08 mm&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-b50da" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575644~2&amp;nsku=89Y7091~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('b50da'));" data-farnell="2575644~2" data-newark="89Y7091~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;330nF&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-dccc8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1457709&amp;nsku=58M4572&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('dccc8'));" data-farnell="1457709" data-newark="58M4572" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Nano&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-bd6c1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1848691&amp;nsku=13T9275&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('bd6c1'));" data-farnell="1848691" data-newark="13T9275" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO 6MS1S3M1RESlide Switch, SPDT, On-On, Through Hole, Side Actuator, 100 mA, 20 V&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-67c20" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201431&amp;nsku=01M8447&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('67c20'));" data-farnell="1201431" data-newark="01M8447" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Striped prototyping pcb board&lt;/td&gt;
&lt;td&gt;CIF&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6b201" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201471&amp;nsku=96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('6b201'));" data-farnell="1201471" data-newark="96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;**BUY_KIT**&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock mechanism 3~5V&lt;/td&gt;
&lt;td&gt;BADODO Security&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;Power adapter 12V / 1A
&lt;table width="823"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="823"&gt;Metal or wooden frame&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/5</link><pubDate>Thu, 21 May 2026 11:31:14 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 5 posted to Documents by cstanton on 5/21/2026 11:31:14 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54hafv0"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/yxGkHVo9bEw"&gt;https://youtu.be/yxGkHVo9bEw&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fj0r6"&gt;Preparing the drop sticks&lt;/h2&gt;
&lt;p&gt;The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53h93c8"&gt;Testing and gameplay&lt;/h2&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp53hq22a"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54rg7c3"&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp54pbh70"&gt;Bill of Materials&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-7ce83" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,24017680,2401735,2575644~2,1457709,1848691,1201431,1201471&amp;nsku=26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X46790,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('7ce83'));" data-farnell="9730940~5,9666222,2839850,9843680~11,2575349~11,4662064,1215781,2913862,2401761,2401768~10,2401735,2575644~2,1457709,1848691,1201431,1201471" data-newark="26M6335~5,88H4760,49AC0350,62M1970~11,84Y9603~11,15J5302,02M0051,69AC6100,45X4679,45X4679~10,45X4714,89Y7091~2,58M4572,13T9275,01M8447,96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,undefined~11,undefined~11,,,,,undefined~10,,undefined~2,,,,,undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-61e4c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('61e4c'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ab709" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('ab709'));" data-farnell="9666222" data-newark="88H4760" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c6b1d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c6b1d'));" data-farnell="2839850" data-newark="49AC0350" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Small Signal Diode, Single, 100 V, 200 mA, 1 V, 4 ns, 4 A 1n4148&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-da2ee" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9843680~11&amp;nsku=62M1970~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('da2ee'));" data-farnell="9843680~11" data-newark="62M1970~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transistor BC517-D74Z&lt;/td&gt;
&lt;td&gt;ONSEMI&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-8a581" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575349~11&amp;nsku=84Y9603~11&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('8a581'));" data-farnell="2575349~11" data-newark="84Y9603~11" data-comoverride="" data-cmpoverride="" data-cpc="undefined~11" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-65407" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('65407'));" data-farnell="4662064" data-newark="15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MENTOR LED Panel Mount Indicator, Chrome Plated, Green, 2 VDC, 8 mm, 20 mA, 20 mcd, Not Rated&lt;/td&gt;
&lt;td&gt;Mentor&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e176c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1215781&amp;nsku=02M0051&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e176c'));" data-farnell="1215781" data-newark="02M0051" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO Pushbutton Switch, 12 mm, SPST, (On)-Off, Round Raised, Red&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ef3d1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2913862&amp;nsku=69AC6100&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('ef3d1'));" data-farnell="2913862" data-newark="69AC6100" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ressitor 2K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-69094" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401761&amp;nsku=45X4679&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('69094'));" data-farnell="2401761" data-newark="45X4679" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 3.9K&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c8e5c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=24017680&amp;nsku=45X46790&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c8e5c'));" data-farnell="2401768~10" data-newark="45X4679~10" data-comoverride="" data-cmpoverride="" data-cpc="undefined~10" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resistor 200E&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4db14" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2401735&amp;nsku=45X4714&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4db14'));" data-farnell="2401735" data-newark="45X4714" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KEMET Multilayer Ceramic Capacitor, 0.1 &amp;Acirc;&amp;micro;F, 50 V, &amp;Acirc;&amp;plusmn; 10%, Radial Leaded, X7R, 5.08 mm&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ac276" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2575644~2&amp;nsku=89Y7091~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('ac276'));" data-farnell="2575644~2" data-newark="89Y7091~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;330nF&lt;/td&gt;
&lt;td&gt;Kemet&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4bc79" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1457709&amp;nsku=58M4572&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4bc79'));" data-farnell="1457709" data-newark="58M4572" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Nano&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ada7e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1848691&amp;nsku=13T9275&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('ada7e'));" data-farnell="1848691" data-newark="13T9275" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTICOMP PRO 6MS1S3M1RESlide Switch, SPDT, On-On, Through Hole, Side Actuator, 100 mA, 20 V&lt;/td&gt;
&lt;td&gt;Multicomp Pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-988ec" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201431&amp;nsku=01M8447&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('988ec'));" data-farnell="1201431" data-newark="01M8447" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Striped prototyping pcb board&lt;/td&gt;
&lt;td&gt;CIF&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7e1ee" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1201471&amp;nsku=96K6330&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('7e1ee'));" data-farnell="1201471" data-newark="96K6330" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;**BUY_KIT**&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock mechanism 3~5V&lt;/td&gt;
&lt;td&gt;BADODO Security&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;Power adapter 12V / 1A
&lt;table width="823"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="823"&gt;Metal or wooden frame&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/4</link><pubDate>Thu, 21 May 2026 11:25:39 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 4 posted to Documents by cstanton on 5/21/2026 11:25:39 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp54hafv0"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/yxGkHVo9bEw"&gt;https://youtu.be/yxGkHVo9bEw&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fj0r6"&gt;Preparing the drop sticks&lt;/h2&gt;
&lt;p&gt;The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53h93c8"&gt;Testing and gameplay&lt;/h2&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp53hq22a"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;/div&gt;
Supporting Links and Files
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;-&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/3</link><pubDate>Thu, 21 May 2026 11:15:33 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 3 posted to Documents by cstanton on 5/21/2026 11:15:33 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Watch the Build&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fj0r6"&gt;Preparing the drop sticks&lt;/h2&gt;
&lt;p&gt;The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53h93c8"&gt;Testing and gameplay&lt;/h2&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp53hq22a"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;/div&gt;
Supporting Links and Files
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;-&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 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&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/2</link><pubDate>Thu, 21 May 2026 11:11:56 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 2 posted to Documents by cstanton on 5/21/2026 11:11:56 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Watch the Build&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jp537b3t0"&gt;Can you Catch the Game?&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;When he was young, Mark didn&amp;rsquo;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: &lt;em&gt;The Honeymoon Quiz&lt;/em&gt;. Among its many challenges was a deceptively simple game that stood out for its difficulty and tension.&lt;/p&gt;
&lt;p&gt;The concept was straightforward. A frame positioned above the player held several sticks. Without warning, they would drop at random, and the player&amp;rsquo;s only task was to catch them before they hit the ground. Simple in design, but demanding in execution.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It will hold several sticks that will drop down randomly one by one&amp;hellip; and you need to try to catch them. That&amp;rsquo;s the game.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp537b3t1"&gt;The Schematic&lt;/h2&gt;
&lt;p&gt;The system is divided cleanly into four functional sections: power, control, sound, and actuation.&lt;/p&gt;
&lt;p&gt;The power design reflects Mark&amp;rsquo;s preference for simplicity and reliability over modern optimisation. While acknowledging newer approaches, he intentionally uses a linear regulator:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know it&amp;#39;s not the most elegant regulator nowadays, but it&amp;#39;s analog and it&amp;#39;s proven and tested&amp;hellip; that&amp;#39;s why I use it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;This behaviour is clearly implemented in the code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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);&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Here, a single press toggles the game state, while a double press (within 1500 ms) activates &amp;ldquo;expert mode&amp;rdquo; &amp;mdash; a faster-paced variant of gameplay.&lt;/p&gt;
&lt;p&gt;The sound system is implemented using a PWM-driven speaker, producing simple tones to indicate game states. Mark describes this pragmatically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s only used to generate a beeping sound to indicate the start and the end of a game&amp;hellip; it will do the job quick and dirty.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp538s5b2"&gt;Game logic and behaviour&lt;/h2&gt;
&lt;p&gt;The game&amp;rsquo;s operation is governed by a simple but effective state-driven loop. Once started, it progresses through a fixed lifecycle:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Play a start tone&lt;/li&gt;
&lt;li&gt;Sequentially drop sticks in random order&lt;/li&gt;
&lt;li&gt;Ensure no stick is dropped twice&lt;/li&gt;
&lt;li&gt;Play an end tone and reset&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The randomness is carefully handled to avoid repetition:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int randStick = random(3, 13);

while (valueExistsInArray(droplog, arraySize, randStick)) {
  randStick = random(3, 13);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Timing is also adjustable based on difficulty:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (expertmode == 1) randTime = randTime * 500;
else randTime = randTime * 1000;&lt;/pre&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This reflects Mark&amp;rsquo;s intent to scale challenge dynamically, something he alludes to in his video breakdown&amp;nbsp;as part of creating &amp;ldquo;a more difficult game.&amp;rdquo;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53cbpg3"&gt;Placing the components&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I know this is not the most elegant way of soldering&amp;hellip; but I have to make do with what I have at home.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This highlights a key aspect of the project: it is intentionally accessible and built using available tools rather than precision manufacturing.&lt;/p&gt;
&lt;p&gt;After soldering, the board requires manual refinement. Traces are selectively removed using a rotary tool to prevent unintended connections:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If I don&amp;#39;t we will have a big short circuit&amp;hellip; so this needs to be done.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53dsku4"&gt;Baseplate&lt;/h2&gt;
&lt;p&gt;The baseplate serves as a practical integration point for the electronics. It houses the PCB, speaker, LED, and control button in a compact arrangement.&lt;/p&gt;
&lt;p&gt;Mark emphasises the importance of keeping wiring short and manageable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I made a base plate&amp;hellip; to keep wires short and compact.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;This design choice reduces noise, improves reliability, and simplifies assembly, particularly important in a system with multiple actuators.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53eclc5"&gt;Building a Rig&lt;/h2&gt;
&lt;p&gt;The mechanical structure is deliberately flexible. While the blog suggests building a frame, the transcript shows Mark adapting available materials:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can use some wood bars&amp;hellip; I happen to have aluminum frames laying around from an old table.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;This reinforces the project&amp;rsquo;s ethos: use what you have, adapt creatively.&lt;/p&gt;
&lt;p&gt;Actuators are mounted to the horizontal bar using strong double-sided tape. Interestingly, this is not just a convenience but a considered mechanical decision:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Make sure you use proper double-sided tape&amp;hellip; you don&amp;rsquo;t want the actuator to fall off completely.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;The goal is controlled release, only the sticks should fall, not the mechanisms themselves.&lt;/p&gt;
&lt;p&gt;Another practical insight not present in the original write-up is wiring flexibility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;All I need to worry about later is which wire is the common&amp;hellip; all the other wires I can just connect randomly because the actuators are controlled randomly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Because activation is randomised in software, physical ordering is irrelevant, a useful simplification during assembly.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fj0r6"&gt;Preparing the drop sticks&lt;/h2&gt;
&lt;p&gt;The sticks themselves are simple wooden segments, but their preparation is essential for consistent performance.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53fumk7"&gt;Sketch upload&lt;/h2&gt;
&lt;p&gt;Programming the Arduino completes the system. Mark uses the Arduino IDE, selecting the correct board and port before uploading the sketch.&lt;/p&gt;
&lt;p&gt;The only dependency is the EasyButton library:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;EasyButton.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;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:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;if (button.supportsInterrupt()) {
  button.enableInterrupt(buttonISR);
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53h93c8"&gt;Testing and gameplay&lt;/h2&gt;
&lt;p&gt;Testing reveals a key insight: the game is harder than it looks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;As you can guess&amp;hellip; this is more difficult than I expected.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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&amp;rsquo;s implementation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h2 id="mcetoc_1jp53hq229"&gt;Reflection and future considerations&lt;/h2&gt;
&lt;p&gt;While the blog frames the build as complete, the transcript makes it clear that this is still a prototype:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Of course I will put a casing over the electronics&amp;hellip; for now it&amp;rsquo;s an experimental setup.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This suggests several natural future improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enclosing electronics for safety and durability&lt;/li&gt;
&lt;li&gt;Refining the frame structure for portability&lt;/li&gt;
&lt;li&gt;Adjusting difficulty scaling further&lt;/li&gt;
&lt;li&gt;Potentially expanding actuator count or configurability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a strong intended use case beyond personal experimentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;m going to have lots of fun on this&amp;hellip; especially with the kids at my youth school.&amp;rdquo;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This positions the project as both a technical exercise and a practical interactive installation.&lt;/p&gt;
&lt;h2 id="mcetoc_1jp53hq22a"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;Mark&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Most importantly, it remains true to its roots: a simple idea, executed well, that is far more difficult than it first appears.&lt;/p&gt;
&lt;/div&gt;
Supporting Links and Files
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;-&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to Build a Reaction-Based Catch Game Using Arduino and Relays</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays/revision/1</link><pubDate>Thu, 21 May 2026 10:51:25 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a7da2de6-7f6d-45ff-b84b-bedae8c979c4</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays#comments</comments><description>Revision 1 posted to Documents by cstanton on 5/21/2026 10:51:25 AM&lt;br /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Watch the Build&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>