กลับไปหน้ารวมไฟล์
genies-en-herbe-reach-for-the-top-game-machine-5ec7d5-en.md

My son's high school takes part in a "Génies en Herbe" league and annual tournament. This is a popular quiz game in French-speaking provinces of Canada.

It used to be on TV:

Now it is played in school classes, typically with parents acting as referees:

http://mpghp.ca/

There is an english version of the game known as "Reach for the top".

https://www.reachforthetop.com/

To play this game, you need a machine that determines which team and which player hits his buzzer first (a pushbutton). There are machines for sale, but they cost hundreds of dollars.

Here is one example of a machine for sale (500$ for this model, pretty typical of what is available on the market):

https://www.kijiji.ca/v-jouets-jeux/ville-de-montreal/console-de-jeu-genies-en-herbe-buzzer-quiz-genie-1/1445447757

undefined

With the help of my son, I decided to build one using an Arduino board, with the objective of making it as simple as possible to assemble it while minimizing at the same time the cost of the components. We were aiming to be able to build the whole thing for less than 100$.

The quiz machine helps determine which player and which team answers the fastest to a question by pushing a buzzer (a pushbutton). Each player has his own buzzer. The purpose of the machine is to determine which player answers first, by turning on part of the LCD screen associated with the buzzer being pushed first, and by making a sound. When a buzzer is pushed, the other buzzers are deactivated. The buzzers can be re-activated by a reset button operated by the referee. There is a timer after which the buzzers are re-activated if the referee does not push the reset button. The duration of the timer can be configured by pushing the reset button for a few seconds.

After testing many ideas, we converged on a design that uses an LCD screen, rather than LED lights, to identify the player thas has answered first. It saves on the cost of LED lights, reduces the power demand so that the device can be powered using the USB port of the Arduino only. It also reduces the number of required pins on the Arduino, and hence an Arduino Nano is sufficient. For the Arduino enclosure, we bought a wooden box at a Dollar store, and used a drill to make the holes we need for the wires, the reset button and the speaker. For the LCD screen, we used an oscillating tool to cut a rectangular hole in the top of the box.

We also designed handheld plastic enclosures for the pushbuttons that can be printed using a 3D printer. The cheapest solution for connecting the handheld devices to the Arduino enclosure was to use 22-gauge wire 2 conductor wire.

Here is what the latest version looks like when the lid is closed:

... and when it is opened:

We designed it for two teams of four players (the standard for Génies en Herbe games) but the code can easily be modified to handle more or less players per team.

Connecting the Arduino Nano to the components is pretty straightforward:

  1. The speaker is connected to pins 9 and 10, since we rely on the toneAC library.
  1. Each pushbutton used by one of the 8 players is connected to the ground and to a digital pin, from pin 2 to pin 11 (skipping over pins 9 and 10, as they are used for the speaker).
  1. The pushbutton used to reset the buzzers is connected to pin 12 and to the ground.
  2. The LCD screen is connected to ground, +5V, SDA (A4 on Nano) and SCL (A5 on Nano)

The code is available on GitHub at https://github.com/vinfort/buzzer_geh .

Now, here are two known issues with this prototype:

  1. The buttons take time to "warm up" (up to 30 seconds). A delay has been added during startup to deal with this issue.
  1. Software button debouncing takes a long time (100 milliseconds).

If you can help me with these two issues, let me know!

So what did it cost us in total for this version?

  1. 20$ for Nano V3.0 Module Soldered with Expansion Board and 1.5m USB Cable
  2. 11$ for nine 12mm Prewired Momentary Push Button
  3. 17$ for LCD Display Screen Blue with IIC Module Interface
  4. 26$ for 50 feet of 22 Gauge 2 Conductor Wire, so that we have about 6 feet of cable for each player.
  5. 32$ for printing the PLA handheld enclosures for the pushbuttons at our local library
  6. 1$ for a piezo buzzer
  7. 4$ for a wooden box from the local Dollar Store

Total: 111$. Over our 100$ budget, but we could have managed to stay under 100$ by simply reducing the length of the cables from 6 to 3 feet.

EXPANDED TECHNICAL DETAILS

Educational Trivia Buzzer Logic

Designed for scholastic competitions, this machine identifies exactly which contestant pressed their button first with millisecond accuracy.

  • Interrupt-Driven Race Detection: Uses external interrupts on the Arduino to capture button presses. This ensures that even if two players press within 1ms of each other, the "First-In" is locked in instantly.
  • Contestant Locking: Once a winner is identified, all other button inputs are software-locked. The winner's pedestal light illuminates, and a buzzer sounds to signal the moderator.

Moderator Control

  • I2C System Status: A central dashboard for the moderator shows the team names and the reaction times on an LCD. A master "Reset" button clears the state for the next question.

ข้อมูล Frontmatter ดั้งเดิม

title: "Génies en Herbe\" / \"Reach for the Top\" Game Machine"
description: "Open-source design for a \"Génies en Herbe\" / \"Reach for the Top\" quiz machine (can't afford the machines that are for sale on the Internet)."
author: "vinfort"
category: "Gadgets, Games & Toys"
tags:
  - "Games"
views: 6578
likes: 2
price: 1999
difficulty: "Intermediate"
components:
  - "1x 16x2 LCD display with I²C interface"
  - "1x Dremel"
  - "1x Arduino Nano"
  - "8x Handheld enclosure for pushbutton"
  - "1x Super Glue"
  - "1x Piezoelectric Buzzer"
  - "1x Box for Arduino"
  - "1x Frame for LCD screen"
  - "1x Breadboard Jumper Wire Pack (200mm&100mm)"
  - "1x Momentary pushbutton"
  - "1x Small Screwdriver"
  - "1x drill"
  - "1x 22 Gauge 2 Conductor Electrical Wire, 20M/65.6ft Flexible Black PVC Jacketed Hookup Wire, 22 AWG Tinned Copper Extension Cord"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://github.com/vinfort/buzzer_geh"
documentationLinks: []
passwordHash: "599086b9f68260ae222fd3b67fd77ec947daeed8a6c71865da5575740244f0cc"
encryptedPayload: ""
seoDescription: "Open-source design for a \\\"Génies en Herbe\\\" / \\\"Reach for the Top\\\" quiz machine (can't afford the machines that are for sale on the Internet)."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/genies-en-herbe-reach-for-the-top-game-machine-5ec7d5_cover.png"
lang: "en"