🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: sci.electronics
Article #8977

Re: Game Arbitration Circuit

#8977
From: Stephen Tell
Date: Sat, 15 Dec 1990 04:54
72 lines
4736 bytes
In article <1310039@hpcilzb.HP.COM> denny@hpcilzb.HP.COM (Trueman Denny) writes:
>I have a friend who wants to build a arbitration circuit as part of a high
>school project.  Basically all it does is determine who presses a button 
>first just like in Jeopardy.  Does a commodity IC exist that performs this
>function?

>I assume that a debouncing circuit will be needed to give a clean logic
>signal and then some sort of circuit to determine who pressed their button
>first and some sort of LED to indentify the person responding first and
>a buzzer.  If there is a tie then all corresponding LED are energized.

I built a device like to pick the first respondent of 6 players for 
College TV station.  I'd like to take credit for this idea, but it
came from my advisor.

To answer some of your questions first:  One usually doesn't want to allow
ties.  If you do, you need to set a time criterion; does a tie mean
within 1 second? 100 milliseconds? 100 nanoseconds?
There's really no need to debounce; just trigger on the first bounce
that the switch makes.

The proposed solution that was posted with an R-S latch for each player and
some gating to hold the all latches in the reset state except for the winner
suffers from a possible race condition if there is in fact a "tie;" the
time-definition of a "tie" is a function of the logic family used.  When both
inputs to the latch are high, the output is indeterminent, or perhaps both Q
and not-Q are high; and after the inputs settle the output assumes a random
state.  Using clocked J-K flip-flops might produce reasonable behavior but
I leave that as an exercise for the reader :-).

Our circuit worked like this:  An 8-bit shift register was loaded with a
single 0 and the rest 1's and its last output is fed back to its input.  Only
6 of the shift register outputs were used, one per player.  The shift register
output is anded with the signal from a player's switch, which 0 when the
switch is pressed.  The and gate output is low whenever the 0 in the shift
register lines up with a switch that is pressed.

The shift register is clocked at a rate in excess of 1Khz, so each player's
switch is sampled or scaned in turn for 1 millisecond.  The 6 and gate outputs
are further anded to get a signal that goes low whenever switch is pressed and
the corresponding shift register output is 0.  This output feeds an S-R latch;
when it goes low a player has won and the control latch is tripped changing to
the "we have a winner" state.  The latch disables the shift-register from
clocking, so the 0 in the shift register indicates which player pressed his
button first.  The shift register outputs are gated with the output of the
control latch an drive the output lamps, so when we are in the "winner" state
the correct lamp is lit.

The actual circuit is more complex than this; they wanted the lamps to "flash
randomly" at the start of the game, so there is another control latch that
indicates "flash" or "game" mode.  When in flash mode the shift register clock
is slowed down, the lamps are always enabled, and the input to the shift
register becomes the XOR or the last output and one of the intermediate ones,
configuring it as a 256-state pseudorandom sequencer.

The thing is built in four boxes, the controller, a lamp/switch box for
each team of three players, and a remote control box with "reset" and "flash"
buttons for the judge.  The lamp boxes contain opticly-isolated triac
drivers controlling 25-watt 120-volt lamps for the "winner" lamps.

If I was doing it again I'd add the other state distinction of "idle" and
"armed."  To prevent false alarms and people leaning on the buttons.

I hope this gives you some ideas.
If you really want I can try to draw the schematic, they lost the only copy;
I was foolish enough to think I was through with the project when they asked
me to fix it.

--------------------------------------------------------------------
Steve Tell      e-mail: tell@wsmail.cs.unc.edu usmail:  #5L Estes Park apts
CS Grad Student, UNC Chapel Hill.                       Carrboro NC 27510
Former chief engineer, Duke Union Community Television, Durham, NC.
Technical Details
Message-ID: <18137@thorin.cs.unc.edu>
Path: arc1-ca.pugleaf.net!utzoo!attcan!telly!problem!compus!lethe!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!emory!gatech!mcnc!thorin!oscar!tell
References: <1310039@hpcilzb.HP.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!telly!problem!compus!lethe!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!emory!gatech!mcnc!thorin!oscar!tell
From: tell@oscar.cs.unc.edu (Stephen Tell)
Newsgroups: sci.electronics
Subject: Re: Game Arbitration Circuit
Message-ID: <18137@thorin.cs.unc.edu>
Date: 15 Dec 90 04:54:21 GMT
References: <1310039@hpcilzb.HP.COM>
Sender: news@thorin.cs.unc.edu
Reply-To: tell@oscar.cs.unc.edu (Stephen Tell)
Organization: University Of North Carolina, Chapel Hill
Lines: 72