University of Cincinnati CCM Mechatronics Spring 2026 - Interactive Operation Game Board - Evan Reinhart & Ryan Buckley

by reinhaen in Circuits > Arduino

25 Views, 0 Favorites, 0 Comments

University of Cincinnati CCM Mechatronics Spring 2026 - Interactive Operation Game Board - Evan Reinhart & Ryan Buckley

IMG_3754.jpeg
IMG_3748.jpeg

This project recreates the classic Operation game as a "full-scale" interactive prop. Players use tweezers to remove 3D printed objects from cavities without touching the edges. If they do, then lights, buzzers, and even mechanical effects warn them of their malpractice!


The build combines:

  1. Arduino Mega for control
  2. "Touch" inputs
  3. LED feedback
  4. Servos for mechanical eye movement
  5. Relay-controlled AC lamp (nose)

Supplies

Electronics

1 × Arduino Mega 2560

1 × Arduino Nano (optional secondary controller for sound fx)

4 × cavity sensors (metal contacts or foil-lined cavities)

4 × LEDs (with resistors ~220Ω)

1 × 5V Relay Module (for AC lamp)

1 × AC E26 light socket + bulb

2 × SG90 Servo Motor (or similar)

1 × Toggle switch (with cover)

1 × Toggle switch

1 × 2 position rotary selector switch

Jumper wires, breadboard or terminal blocks

120v Power

  1. IEC C13/C14 plugs
  2. duplex receptacle outlet & cover

5V supply (Arduino + servos)

Separate AC line (for lamp via relay)


Build Materials

Tote/bin for electronic support box

Plywood / MDF base

Conductive metal (for cavity edges + tweezers)

Paint + graphics for game board


Electronics Tools

Wire strippers

Soldering iron + solder

Multimeter

Small screwdrivers (flathead & Phillips)

Needle-nose pliers

Fabrication Tools

Drill

Jigsaw

Sanding block

Clamps

Measuring tape + straight edge

Finishing Tools

Paint brushes / rollers

Hot glue gun

Heat shrink + heat gun (or lighter)

Gaff tape / electrical tape

Utility knife

Game Board

IMG_3754.jpeg
IMG_3738.jpeg
IMG_0008.jpeg
IMG_3752.jpeg

The game board is constructed from the following building materials:

1/4" MDF - ripped to 23"x35" (determined by poster size and included bleed)

1x4 - ripped to 3", routed top edge with 3/8" round over, mitered in corners and framed around MDF

Poster from Walgreens - 24x36 adhesive backed poster (make sure to find a 50% code online!)


I cut the cavities out of poster and then traced them onto the MDF. I cut the MDF holes using a forstner bit and a jigsaw. Some light sanding was required to make the transitions smooth. The sticker sheet went on smoothly after aligning the edges. The 1x4 frame was painted red with spray paint. Once dry, I glued the frame and secured with temporary clamps and brad nails.


3D Modeling & Printing

Screenshot 2026-04-30 at 3.27.26 PM.png
Screenshot 2026-04-30 at 3.29.42 PM.png
Screenshot 2026-04-30 at 3.31.37 PM.png
IMG_0165.jpeg
IMG_0163.jpeg

To bring the game board to life, we designed a pair of animated eyes with moving eyelids. These are driven by two servos total, using a simple linkage system to synchronize motion.

Each eye consists of:

  1. Upper eyelid (moves)
  2. Lower eyelid (optional or fixed)
  3. Linkage arms connecting both eyes for side to side scrolling
  4. 👉 Instead of one servo per eye, both eyes are:
  5. Mechanically linked
  6. Driven together for synchronized motion

Support Box Overview

IMG_0252.jpeg
IMG_0253.jpeg
IMG_0251.jpeg

All control electronics and power distribution were housed in a modified plastic tote reinforced with internal plywood stiffeners. The tote provided a lightweight, portable enclosure, while the plywood added rigidity for mounting components securely. Inside, the Arduino, power supplies, and a 120V AC input (via an IEC panel connector) were "organized" for safe and efficient operation. Two 9-pin CPC connectors were installed to carry power and control signals between the enclosure and the game board, allowing for quick disconnect during transport or maintenance. The lid was outfitted with a two-position rotary selector switch and an “anesthesia” trigger switch for user interaction, while the side of the tote housed the main breaker, master power switch, and a courtesy power receptacle for any additional devices.

Wiring

IMG_3708.jpeg
IMG_3753.jpeg
IMG_3746.jpeg
IMG_3711.jpeg
IMG_3710.jpeg

The wiring for the box is relatively straightforward. Wiring begins with 120V AC power entering the box through the IEC. Taking wires with spade terminations, run live, neutral, and grounding wires to a channel strip so the needed devices can be in parallel. The live wire is broken and wired into a breaker and main power switch. From the channel strip, take the live, neutral, and ground to the outlet and power supplies. 1 live and 1 neutral should be run to to the CPC for the nose. The live is once again broken for the relay that will allow the arduino to control when the light turns on. Wire signal from the pins for the gameboard straight from the arduino to the CPC, adding a common ground. On the board, run the signal and ground to all components. The only exceptions to this are the foil for the inputs and the tweezers. For the limbs, solder wire to the tinfoil (buying barbecue grade foil will make the soldering easier), then run them to their CPC. Solder wire to the tweezers then run it to common ground. Wiring the lid is the tricky because of the LEDs connected to the switches. Cut multiple wires to about 3 times the height of the box so you can access inside. For the stove switch, wire from DC+ and DC- to the arduino and red LED, wiring them in series with the switch. Then wire the green LED to the common 5V and common ground, and wire the anesthetics LED into signal and GND, once again in line with the switch.

Arduino Coding

IMG_3750.jpeg
Operation Code.jpg
IMG_3737.jpeg
IMG_3736.jpeg
IMG_3726.jpeg

Needed Libraries

  1. Servos (<Servo.h>)

The coding is also fairly simple. Include the servo library and define your pins before void setup. Inside void setup, define I/Os and latch your eyes servo to a pin. The loop is a series of "if, else" commands with "goto" commands that act as bailouts. Whenever the tweezers (attached to common ground) make contact with the foil, it sends an electric signal to the "INPUT_PULLUP." When the input reads low for a body part, the code will execute code to turn on the lights, then use the "goto" command to travel down the code and perform the eye movement. If the sedatives switch is on, the code skips the "goto" command, instead using the "return" command to avoid the servo movements.


I've attached the code for reference.

Downloads