U.S. patent application number 12/875325 was filed with the patent office on 2011-03-10 for control system for reel mechanism.
This patent application is currently assigned to SUZO-HAPP GROUP. Invention is credited to Colin Crossman, Anthony Jeffs.
Application Number | 20110059787 12/875325 |
Document ID | / |
Family ID | 43648194 |
Filed Date | 2011-03-10 |
United States Patent
Application |
20110059787 |
Kind Code |
A1 |
Crossman; Colin ; et
al. |
March 10, 2011 |
CONTROL SYSTEM FOR REEL MECHANISM
Abstract
A reel control system is disclosed for eliminating known
problems with reel mechanisms used in gaming machines. First of
all, phase setting of the reel position is greatly simplified. The
control system also provides a relatively accurate method for
determining if a reel position has moved from a standstill
position, due to low power, no power or outright tampering. Any
movement of the reel can be corrected. The reel control system is
also configured with multiple serial bus interfaces connected to a
single serial bus that, in turn, can be connected to multiple
stepper motor drivers which provides for fast response time to
commands. In accordance with other aspects of the invention, the
reel control system can drive multiple stepper motor drivers
configured with the same physical address to reduce manufacturing
costs and is further configured to simultaneously drive multiple
reels, different distances, different directions, with different
numbers of symbols per reel as well as drive different types of
reels.
Inventors: |
Crossman; Colin; (Rhiwbina,
GB) ; Jeffs; Anthony; (Las Vegas, NV) |
Assignee: |
SUZO-HAPP GROUP
Mt. Prospect
IL
|
Family ID: |
43648194 |
Appl. No.: |
12/875325 |
Filed: |
September 3, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61240755 |
Sep 9, 2009 |
|
|
|
Current U.S.
Class: |
463/20 ;
273/143R |
Current CPC
Class: |
G07F 17/3202 20130101;
G07F 17/3211 20130101; G07F 17/34 20130101 |
Class at
Publication: |
463/20 ;
273/143.R |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A reel control system for communicating with a reel mechanism
having a reel for carrying symbols and a stepper motor driver, the
reel control system comprising: an intelligent reel driver
configured to communicate with a host application and a stepper
motor driver, said intelligent reel driver configured to enable the
home position of the reel to be aligned with a pay line by way of
an external PC.
2. The reel control system as recited in claim 1, wherein said home
position corresponds to a predetermined symbol on said reel.
3. The reel control system as recited in claim 1, wherein said
intelligent reel controller includes at least one serial bus for
communicating with said host application.
4. The reel control system as recited in claim 1, wherein said
intelligent reel controller includes one serial bus for
communicating with a plurality of reel mechanisms.
5. The reel control system as recited in claim 1 wherein said reel
includes symbols of different lengths.
6. A reel control system for a reel mechanism having at least one
stepper motor driver and at least one reel for carrying symbols,
the reel control system comprising: an intelligent reel driver
configured to monitor the reel position of said at least one reel
and automatically corrects the position of said reel when improper
movement is detected.
7. The reel control system as recited in claim 6, wherein said
intelligent reel driver is configured with two modes of
operation.
8. The reel control system as recited in claim 7, wherein said
intelligent reel driver automatically corrects the position of said
reel in a lock mode of operation.
9. The reel control system as recited in claim 7, wherein said
intelligent reel driver includes a tilt mode of operation in which
a tilt alarm when improper movement is detected.
10. A reel driver for controlling a plurality reels driven by a
plurality of stepper motor drivers in a gaming machine, the reel
driver comprising: a CPU; a memory; an input serial bus coupled to
said CPU for receiving commands from a host application. an output
serial bus coupled to said CPU for transmitting commands to said
plurality of stepper motor drivers; and a plurality of serial bus
interfaces coupled to said second serial bus for connection to a
plurality of stepper motor drivers.
11. The reel driver as recited in claim 10, wherein said plurality
of stepper motor drivers is eight.
12. The reel driver as recited in claim 10, wherein said reel
driver is configured to translate commands from said host
application to commands having a proper format and syntax for said
stepper motor drivers.
13. The reel driver as recited in claim 10, further including a
multi-channel multiplexer for coupling said plurality of serial bus
interfaces to said output serial bus.
14. The reel driver as recited in claim 13, wherein all of said
stepper motor drivers are configured with the same physical address
and are connected to said multiplexer.
15. The reel driver as recited in claim 10, wherein said reel
driver is configured to drive reels with different symbol
lengths.
15. The reel driver as recited in claim 10, wherein said reel
driver is configured to drive reels in different directions.
16. The reel driver as recited in claim 10, wherein said reel
driver is configured to drive reels of different reel types.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to and the benefit of U.S.
Patent Application No. 61/240,755, filed on Sep. 9, 2009, hereby
incorporated by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to a reel control system for a
gaming machine with multiple reels and more particularly to a reel
control system which facilitates factory calibration of the radial
position of the motor shaft to a home position on initial power up
and automatically resets the home position on subsequent power-ups
and maintains the standstill position of the reel mechanism while
enabling unequally spaced symbols. The reel control system is also
configured to drive a plurality stepper motor drivers virtually
simultaneously by way of a serial bus with multiple serial
interfaces. In accordance with another important aspect of the
invention, the reel control system can drive multiple reels,
different distances, different directions as well as different reel
types while reducing the manufacturing cost of these devices.
[0004] 2. Description of the Prior Art
[0005] Gaming machines are well known in the art. Such gaming
machines are known to include a plurality of reel mechanisms. The
reel mechanisms include a rotatable reel which carries a plastic
strip imprinted with symbols. The reel mechanisms are rigidly
supported in such gaming machines in a side by side relationship
such that the axes of rotation of the rotatable reels are
essentially horizontal and co-linear. Each rotatable reel is driven
independently by a stepper motor, which, in turn, is under the
control of stepper motor driver.
[0006] The stepper motor driver is a control system for controlling
the operation of the stepper motor in response to external signals.
In the context of a gaming machine, the external signals are
normally provided by a host game application. In response to user
input, such as a pull of a game lever or depressing a pushbutton to
initiate the game, the host game application generates a random
number. As discussed in detail in U.S. Pat. No. 4,711,451, hereby
incorporated by reference, each reel is divided up into a
predetermined stop positions. These stop positions are stored in
memory and normally coincide with the center positions of each of
the symbols on the plastic strip carried by the reel. The random
numbers generated by the random number generator are then
associated with the addresses of the various stop positions for the
reel mechanism.
[0007] As mentioned above, each reel mechanism is independently
controlled. Thus, the host game controller generates a random
number for each reel mechanism. Known gaming machines are provided
with three (3) to seven (7) reel mechanisms. Thus, the host game
controller generates a random number for each of the reel
mechanisms.
[0008] An exemplary reel mechanism is illustrated in U.S. Pat. No.
5,388,829, hereby incorporated by reference. The gaming machine
includes a window for each reel mechanism on its front panel. The
reel mechanisms are mounted in the gaming machine so that one or
more symbols on each reel are visible from the outside of the
machine through the window. Each reel assembly includes a fixed
lamp rigidly carried by a frame member which also carries the
stepper motor and the rotatable reel. The reel mechanisms and the
lamp assemblies are located so as illuminate the symbols behind the
windows.
[0009] It is important that the symbols on the various side by side
reels in the gaming machine be aligned relative to the payline.
Assuming a single payline, the centerlines of the symbols for each
of reels should be essentially colinear. Many factors are known to
affect the alignment. One factor is known as phase setting. Phase
setting relates to calibration of the angular position of each reel
so that the number one symbol on the reel is aligned within the
payline on the gaming machine on power up. More particularly, each
reel is mechanically coupled to a stepper motor shaft by way of a
cross pin, as illustrated in detail in U.S. Pat. No. 4,410,178. a
through hole, traverse to the shaft axis, is formed in the stepper
motor shaft. A cross pin is received in the through hole. The cross
pin is received by a mating slot on the hub of the reel to
mechanically couple the stepper motor to the reel mechanism.
[0010] When the stepper motor driver is initially powered up, the
angular position of the motor shaft is unknown in relation to the
energized winding position. For example, for a 200 step motor with
four (4) pairs of windings in full step excitation mode, each pair
of windings will have 50 step positions in one revolution. Thus,
when the motor is first energized, it is not known which of the 50
energized positions is aligned to the zero phase or home position.
The home position is correlated to a home position on an optical
encoder wheel. As such, the stepper motor is known to be factory
adjusted by a procedure known as phase setting with no load on the
motor shaft.
[0011] It is known that if a load, such as a reel, is applied to
the stepper motor shaft during power-up, the zero phase or home
position will be offset thus requiring re-calibration when the reel
mechanism is installed in a gaming machine. In order to correct the
offset in the phase setting in the field, the stepper motor housing
is physically rotated with respect to the reel mechanism frame. The
procedure for phase setting is described in detail in Standard
Operating Procedure SOP-0205-01-N-DEV, Starpoint Electrics Ltd,
Pages 1-36, January, 2004, hereby incorporated by reference. In as
much as there are normally five (5) reel mechanisms per gaming
machine (number of reels in machine can be 3 to 7), phase setting
of each of the reel mechanisms in a gaming machine (or at time of
manufacture) is cumbersome and time consuming.
[0012] In particular, two windings of the stepper motor are
energized in the field so that the reel assumes a permanent static
position. Once locked in the static position, the motor is adjusted
on the frame, so that the home position on the encoder aligns with
a home position on the optical encoder. Rotation of the motor
housing causes the zero phase position of the motor and the symbol
on the reel, to be aligned to the payline.
[0013] Failure to correct the offset in the zero position can
result in the symbols on the reels not properly lining up with the
pay lines on the gaming machines and with the symbols on the other
reels in the machine. Unfortunately, since gaming machines are
configured so that the reel is directly coupled to the stepper
motor on power up, the zero position will be offset.
[0014] Another problem with known reel mechanisms is the ability to
control the reel position during a standstill condition. State
gaming laws, e.g. Nevada gaming laws, require that the standstill
condition be monitored and that an indication be provided should
the reel move during such a standstill condition. Normally, systems
for monitoring a standstill condition normally utilize an optical
sensor and an optical encoder wheel. In known systems, the optical
sensor and the optical encoder are used to detect movement of the
reel. Should the movement beyond an acceptable amount be detected
during a standstill condition, a tilt condition is known to be
indicated.
[0015] There are several other problems with current methods of
monitoring and controlling the reel position during a standstill
condition. First, the monitoring requires an optical sensor.
Second, during temporary power interruptions and low power
conditions, the reels may drift from their standstill positions. In
known systems, the drift would be indicated as a tilt condition,
thereby ending any games in progress, likely disenchanting players.
Thirdly, if reels are tampered with, the movement must be
detected.
[0016] Known gaming machines include reel control systems with
other problems. For example, known reel control systems have
limited functionality. Indeed, known reel control systems are
relatively limited in the number of reel control mechanisms that
can be controlled and suffer from manufacturing and operational
problems. For example, known gaming machines are known to include
reel control drivers with unique addresses for each reel control
mechanism in the gaming machine. The unique addresses require
additional manufacturing steps and require additional inventory
thus increasing the cost of such devices. In addition, known reel
control mechanisms are known to require separate serial control
buses for each reel control mechanism thus decreasing the response
time of the system. In addition, known reel control systems are
known to be limited with respect to their operational abilities.
For example, known reel control systems cannot drive different
types of reels simultaneously or drive multiple reels in different
directions.
[0017] Thus, there is a need for eliminating the need for manual
phase setting in reel mechanisms in gaming machines and improving
the method of monitoring and responding to conditions when the reel
position drifts during a standstill condition and providing reel
control mechanisms with improved operational abilities that are
less expensive to manufacture.
SUMMARY OF THE INVENTION
[0018] The present invention relates to control system for
eliminating known problems with reel mechanisms used in gaming
machines. First of all, phase setting of the reel position is
greatly simplified. More particularly, in accordance with one
aspect of the invention, phase setting of the motor shaft in an
unloaded position is obviated thus simplifying the overall
calibration procedure. Manufacturing phase setting calibration is
done with a loaded rotor shaft. Instead of rotating the motor
housing to align the first symbol with a payline, the stepper motor
is energized causing the rotor shaft to rotate to a home position.
The shaft is then rotated under software control until the first
symbol is aligned with a payline. The angular distance to that
position is stored in persistent memory as an offset along with the
home position. On subsequent power-ups, the system retrieves the
stored home and offset positions from the persistent storage and
rotates the rotor shaft to the stored positions and writes these
positions to the stepper motor driver as the home and offset
positions.
[0019] The control system also provides a relatively accurate
method for determining if a reel position has moved from a
standstill position, due to low power, no power or outright
tampering. Any movement of the reel can be corrected. In a lock
mode and any games in progress can be allowed to continue.
Alternatively, in a tilt mode, any games in progress are terminated
and an alarm signal is indicated. The control system takes
advantage of the micro-stepping ability of the stepper motor driver
to enable symbol strips with different size symbols to be
implemented.
[0020] In accordance with an important aspect of the invention, the
reel control system is configured with multiple serial bus
interfaces connected to a single serial bus that, in turn, can be
connected to multiple stepper motor drivers which provides for fast
response time to commands. In accordance with other aspects of the
invention, the reel control system can drive multiple stepper motor
drivers configured with the same physical address to reduce
manufacturing costs and is further configured to simultaneously
drive multiple reels, different distances, different directions,
with different numbers of symbols per reel as well as drive
different types of reels.
DESCRIPTION OF THE DRAWING
[0021] These and other advantages of the present invention will be
readily understood with reference to the following specification
and attached drawing wherein:
[0022] FIG. 1 is a block diagram of a control system for a reel
mechanism in accordance with the present invention.
[0023] FIG. 2 is a block diagram of an Intelligent Reel Controller
(IRD) configured to host configured to interface to an exemplary
number of reel mechanisms.
[0024] FIGS. 3A and 3B are process diagrams for phase setting of
the reel mechanisms in accordance with the present invention.
[0025] FIG. 4 is a software flow diagram for detecting movement of
a reel mechanism during a standstill condition.
[0026] FIG. 5 is a two dimensional representation of a symbol strip
with unequal symbol lengths in accordance with one aspect of the
invention.
[0027] FIG. 6 is a data flow diagram illustrating the operation of
the reel control system in accordance with the present
invention.
[0028] FIG. 7 is an exemplary simplified flow diagram of an
exemplary application for use with the present invention.
[0029] FIG. 8 is an exemplary simplified flow diagram for an
Intelligent Reel Driver (IRD) in accordance with the present
invention.
DETAILED DESCRIPTION
[0030] The present invention relates to a reel control system for a
gaming machine having at least one reel mechanism, for example, as
described in detail in U.S. Pat. Nos. 4,410,178 and 5,388,829,
hereby incorporated by reference. As will be discussed in detail
below, the control system in accordance with the present invention
relates to a reel control system that includes various improvements
relative to known reel control systems.
[0031] For example, the reel control system is configured to
eliminate known problems related to phase setting and detection of
reel movement during a standstill condition. In accordance with
another aspect of the invention, the reel control system may also
be configured to enable reels with unequal symbol lengths to be
utilized which enabled the odds of a winning combination to be
easily changed. In accordance with yet another aspect of the
invention, the reel control system is configured to control
multiple stepper motor drivers by way of a single serial bus with
multiple serial bus interface, for example, eight (8) serial
interfaces, which improves the response time of the system and
enabling the stepper motors to be operated at a relative fast
speed, for example, full speed. In order to facilitate the
manufacturing and reduce the cost of such devices, the reel control
system is configured to operate with the stepper motor drivers all
configured with the same physical address. Finally, the reel
control system in accordance with the present invention can control
multiple reels, different types of reels in different directions
virtually simultaneously, as discussed below.
Reel Control System
[0032] Referring to FIG. 1, a reel control system in accordance
with the present invention is generally identified with the
reference numeral 20. As shown, the reel control system 20 includes
a Intelligent Reel Driver (IRD) generally identified with the
reference numeral 22 and a multiple of reel mechanisms, generally
identified with the reference numerals 26, 28 30 and 32. The IRD 22
is used to interface a host controller 24 with one or more reel
mechanisms 26, 28 30 and 32.
[0033] Each reel mechanism 26, 28, 30 and 32 includes a stepper
motor and a stepper motor driver. The electrical connections
between the stepper motor and the stepper motor driver are made
locally at each reel mechanism 26, 28, 30 and 32. The connections
from each of the stepper motor drivers are terminated, for example,
by way of an exemplary connector (not shown) and routed to the IRD
22. The connectors from the stepper drivers are mated with
corresponding reel interfaces, generally identified with the
reference numeral 34 on the IRD 22. The reel interfaces 34 are
configured as complementary connectors (not shown). The reel
interfaces 34 and the complementary connectors from the stepper
drivers may be implemented as 18 pin Molex type MTA connectors.
[0034] As will be discussed in more detail below, the IRD 22
provides an interface between the host or master controller 24 and
a plurality of stepper motor drivers, for example eight (8)
identified with the reference numerals 26, 28, 30 and 32. The IRD
22 acts as a client or slave with respect to the host controller
24. The IRD 22 acts as master with respect to the stepper motor
drivers 26, 28, 30 and 32 when sending commands to the stepper
motor drivers 26, 28, 30 and 32 and acts as a slave when receiving
data from the stepper motor drivers 26, 28, 30 and 32.
[0035] In accordance with an important aspect of the invention, the
IRD 22 communicates with each of the stepper motor drivers 26, 28,
30 and 32 by way of individual serial communication buses 34, 36,
38 and 40, for example, I.sup.2C buses. Communication between the
IRD 22 and the host controller 24 may be by way of serial
communication buses 42 and 44, for example, an RS-232 bus and/or a
USB bus. For example, the RS-232 bus 42 may be used to connect a
host controller 24 to the IRD 22 while the USB bus 44 may be used
for connecting the IRD 22 to a personal computer (not shown) for
initialization, testing and calibration. A common power supply 46
may be used to provide power to both the IRD 22 and the host
controller 24.
[0036] Game controllers, for example, as described in detail in
U.S. Pat. No. 5,988,638, hereby incorporated by reference, are well
known in the art. Such game controllers may include a persistent
memory device for storing all of the stop positions for each symbol
on each reel in the gaming machine. These stop positions are used
to identify the positions of the center of symbol position of each
symbol on each reel and/or the position of one or more pay lines on
each symbol. The stop positions are stored in memory at various
memory addresses and may be used to identify the center of the
symbol positions and/or pay line positions with reels having
equally spaced symbols and unequally spaced symbols, for example,
as illustrated in FIG. 5. The random numbers may also represent the
number of symbols each reel is to move.
[0037] As is well known in the art, the host application or
controller 24 includes a random number generator (not shown) for
generating random numbers that are correlated with the addresses of
the stop positions of the reels in the gaming machine. The random
numbers may also represent the number of symbols each reel is to
move.
[0038] The stepper motor drivers then cause the reels to rotate to
the randomly selected reel positions. As will be discussed in more
detail below, these randomly selected reel positions are configured
as reel control commands by an Application Program Interface (API).
The reel control commands are sent to the IRD 22. The IRD 22
converts the reel control commands to stepper motor driver commands
which have the proper syntax and format for the stepper motor
drivers. These stepper motor driver commands are sent to the
stepper motor drivers which drive the respective reel mechanisms
26, 28, 30 and 32 to the positions which correlate with the
positions generated by the random number generator. The stepper
motor driver commands are sent the IRD 22 over one of the serial
communication buses, the USB bus 42 or the RS-232 bus 44 under the
control of the IRD 22.
[0039] The IRD 22 acts both as a master and a slave depending on
whether the IRD 22 is sending commands to the stepper motor driver
26, 28, 30, 32 or receiving data from the stepper motor drivers 26,
28, 30, 32. In particular, when the IRD 22 sends a command to the
stepper motor drivers 26, 28, 30, 32, the IRD 22 acts as a master.
When the IRD 22 receives data from the stepper motor drivers 26,
28, 30 and 32, the IRD 22 acts as a slave.
Intelligent Reel Driver
[0040] As mentioned above, the intelligent reel driver (IRD) is
configured with multiple serial bus interfaces that can be
connected to multiple stepper motor drivers which provides for fast
response time to commands. As shown in FIGS. 1 and 2, the exemplary
IRD 22 is shown with eight (8) serial bus interfaces, for example,
I.sup.2C bus interfaces, which allow the IRD 22 to control eight
(8) reel mechanisms virtually simultaneously. Each of the eight (8)
serial interfaces, in turn, is capable of driving, for example,
thirty-two (32) stepper motor drivers since each stepper motor
driver has a 5 bit address. The IRD 22 is thus configurable to
drive 256 (8.times.32) stepper motor drivers. The IRD 22 is thus
able to drive a relatively large number of stepper motor drivers
and provide relatively fast response times. As such, the IRD 22
allows commands to be sent to the stepper motor drivers at a
relatively fast speed, thereby reducing system response time.
Indeed, known systems with a separate I.sup.2C bus for eight (8)
separate stepper motor drivers would have an increased response
time, i.e the difference in time from the time is sent to the
stepper motor driver and the time the command is fully executed, on
the order of a factor of eight (8).
[0041] In accordance with other aspects of the invention, the reel
control system can drive multiple stepper motor drivers configured
with the same physical address to reduce manufacturing costs. For
an exemplary AMIS-30624 stepper motor driver, the format of the
address is generally one byte. Bits 6 and 7 are fixed as a "1"
while bit 0 is preset as a "0". Bit 1 is hardwired while bits 2, 3,
4 and 5 are configured as OTP, one time programmable. In order to
simplify manufacturing, the OTP bits for all of stepper motor
driver. These OTP bits may be set by way of a SetOTP command on the
stepper motor driver. In order to reduce manufacturing costs, the
OTP address bits for all of the stepper motor drivers are set to
the same physical address. In order to provide selectivity of the
various stepper motor drivers, the hardwired bit, bit 1, is
connected to the FPGA 56 (FIG. 2). The FPGA 56 is configured as an
eight (8) channel duplex time division multiplexer. As such
commands from the IRD 22 are sent to the respective stepper motor
drivers virtually simultaneously by way of time division
multiplexing. Similarly, data from the stepper motor drivers is
returned to the IRD 22 in the same fashion.
[0042] In accordance with another aspect of the invention, the reel
control system is configured to drive different types of reels,
such as reels having both an equal number of symbols and reels
having an unequal number of symbols, for example, as illustrated in
FIG. 5. As will be discussed in more detail below, the stop
positions for all of the symbols on a reel are stored. Thus for
random signals based on a number of symbols to move a reel, the
radial distance that the reel is moved is calculated irrespective
of the radial length of the symbols I. Thus, the system can control
reels with symbols having different radial lengths as well as a
different number of symbols per reel.
[0043] Moreover, the reel control system allows for movement of the
reels in different directions. In particular, the SetPosition
command has a signed data bytes. In particular, the most
significant bit (msb), i.e bit 15, is used to determine the
direction of rotation of the reel depending on whether the msb is a
"1" or a "0". Based on the above, the reel control system is
configured to simultaneously drive multiple reels, different
distances, different directions, with different numbers of symbols
per reel and can also drive different types of reels.
[0044] An exemplary hardware block diagram of the IRD 22 is
illustrated in FIG. 2. As shown, the IRD 22 includes a CPU 48, for
example, a 32 bit ARM CPU and a non-volatile memory 50, for
example, a EEPROM. The IRD 22 also includes an LED matrix control
circuit 52 which does not form a part of the present invention. The
stepper motor drivers for the various reel mechanisms 26, 28, 30
and 32 (FIG. 1) are connected to the IRD 22 by way of a plurality
of connectors or reel interfaces 54. Each reel interface 54 is
connected to a field programmable gate array (FPGA) 56 by way of an
I.sup.2C buffer, generally identified with the reference numeral 58
and an I.sup.2C interface, generally identified with the reference
numeral 60. The I.sup.2C buffers 58 and the I.sup.2C interfaces 60
are used to interface the I.sup.2C buses corresponding to the
stepper motor drivers of the various reel mechanisms 26, 28, 30 and
32 to a Field Programmable Gate Array (FPGA) 56. These I.sup.2C
buffers 58 and the I.sup.2C interfaces 60 may be implemented by way
of one or more integrated circuits, for example CMOS Integrated
Circuits (ICs) 40106 or 74HC14, which are hex inverting Schmitt
triggers.
[0045] The FPGA 56 is configured as a multi-channel duplex time
division multiplexer. In the exemplary application shown, the FPGA
56 is configured as an eight (8) channel duplex multiplexer. The
FPGA 56 is used to transmit commands and receive data to and from
the stepper motor drivers 26, 28, 30 and 32 by way of the reel
interfaces 54. As shown, an exemplary eight (8) reel interfaces are
shown which would require a three (3) bit interface from the CPU 48
to the FPGA 56. The three (3) bit interface would thus allow the
CPU 48 to address each of the eight (8) stepper motor drivers
attached to the reel interfaces 54. The FPGA 56 may also be used to
interface an EEPROM 62 to the CPU 48.
[0046] The EEPROM 62 may be used for storing software which stores
parameters for the instructions from the host controller 24 (FIG.
1) to each of the stepper motor drivers associated with the various
reel mechanisms 26, 28, 30 and 32. The EEPROM 62 may also be used
for initializing each of the reel mechanisms 26, 28, 30 and 32 on
power-up.
[0047] The IRD 22 also includes a non-volatile memory, for example
a read only memory (ROM) 50 for storing firmware associated with
the CPU 48. The ROM 50 may be external or on-chip with the CPU
48.
[0048] As mentioned above bi-directional communications between the
host controller 24 (FIG. 1) and the IRD 22 is by way of a RS-232
communication link 42. The RS-232 communication link is connected
to a RS-232 port 64 (FIG. 2) on the IRD 22. Bi-directional
communication between an external PC (not shown) and the IRD 22 may
by way of a USB bus 44 (FIG. 1). The USB bus 44 would be connected
to a USB port 66 on the IRD 22.
Data Flow Diagram
[0049] An exemplary data flow diagram is illustrated in FIG. 6. As
mentioned above, the host application 24 (FIG. 1) includes a random
number generator (FIG. 6), generally identified with the reference
numeral 49. All of the stop positions for each reel in the gaming
machine are stored in a non-volatile memory 51. As is known in the
art, such random number generators 49 are generally responsive to
player inputs 53, such as a lever pull, etc. In response to such a
player input 53, the random number generator 49 selects an address
for each reel stop position stored in the non-volatile memory 51
for each reel in the gaming machine. The randomly selected stop
positions are formulated into various reel control commands by an
Application Program Interface (API) 55. A simplified description of
the API 55 is provided for a complete understanding of the
system.
[0050] The reel control commands are sent to the IRD 22 (FIG. 1)
over a serial bus, for example the RS-232 bus 42 or the USB bus 44.
Exemplary Spin commands generated by the API 55 are provided
below.
[0051] Command--ReelControl:Spin:Forward:X=Y
[0052] Command--ReelControl:Spin:Backward:X=Y
[0053] Command--ReelControl:Spin:X=Y
[0054] Command--ReelControl:Spin:X=F,Y
[0055] Command--ReelControl:Spin:X=B,Y
[0056] These commands start one or more reels spinning. The X
parameter specifies which reel or reels to start. This can be a
single reel, e.g. "1", or a comma separated list of more than one
reel, e.g. "2,4". The Y parameter specifies the number of symbol
positions to spin the reel. This can be more than one complete
revolution of the reel if required. For small position adjustments,
a number of reel steps to spin can be specified, as opposed to
complete symbol positions. For example, Y=''5'' means spin five
symbols. Y="0.5" means spin 5 steps. The API 55 keeps track of the
symbol positions of each reel in the gaming machine and therefore
can calculate the number of steps, half steps, etc., to move the
stepper motor from the reel's current position to the newly
randomly selected position.
[0057] Exemplary Responses to the ReelControl command are provided
below.
[0058] Response-Reel Control: Spin command sent
[0059] Response-Reel Control: Failed to spin, reel N has timed
out
[0060] Response-Reel Control: Failed to spin, reel N already
spinning
[0061] Response-Reel Control: Failed to spin, command not sent
[0062] Response-Reel Control: Failed to spin, command not
acknowledged
[0063] Except for the Response "Reel Control: Spin command sent",
system control is based upon positive feedback from the IRD 22
within a predetermined time period. For example, if one of the
specified reels is already spinning when the API 55 issues the
command to the IRD 22, the API 55 will return the response: "Reel
Control: Failed to spin, reel N already spinning". In this case,
the IRD 22 is able to get the motion status of a reel in response
to a GetFullStaus command to the stepper motor driver. This data is
returned to the API 55. If the reel to which a command was sent
indicates motion at the end of a predetermined time period, the API
55 returns the response: "Reel Control: Failed to spin, reel N
already spinning."
[0064] The "Spin command sent" response indicates that the command
has been sent, but not necessarily that the reels have started
spinning. After this response one or more event messages should be
received. For example, a Response "Reel Control: Reel N started",
is generated confirming that each reel has started spinning, when
confirmation is received from the IRD 22.
[0065] Commands from the API 55 are transmitted to the IRD 22 by
way of one of the serial communication buses 42, 44. These commands
are translated to the proper format and syntax for the stepper
motor drivers by the IRD 22. The IRD 22 writes these commands
stepper motor drivers which controls the stepper motors according
to the received command. In particular, the ReelControl command
from the API 55 is translated, i.e formatted into a command
recognizable by the stepper motor driver. For example, the
ReelControl:Spin:Forward:X=Y command from the API 55 can be
translated by the CPU 48 (FIG. 2) to a "SetPosition" stepper motor
driver command for an AMIS-30625 stepper motor driver.
[0066] The SetPosition command is provided to drive the stepper
motor to a given absolute position. The format and syntax of the
SetPosition command is provided below. The entire command set for
the stepper motor drivers is set forth in Model No. AMIS-30625,
I.sup.2C micro-stepping motor driver, as manufactured by ON
Semiconductor, described in detail in Publication Order No. AMIS
30624D, Rev. 4, Copyright 2008, published by ON Semiconductor,
hereby incorporated by reference.
TABLE-US-00001 SetPosition Command corresponds to the following I2C
command frame: SetPosition Command Frame Byte Content Structure Bit
7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 Address 1 1 OTP OTP
OTP OTP HW 0 3 2 1 0 1 Command 1 0 0 0 1 0 1 1 2 Data 1 1 1 1 1 1 1
1 1 3 Data 1 1 1 1 1 1 1 1 2 4 Data Pos[15:8] 3 5 Data Pos[7:0]
4
[0067] A method for translating a ReelControl command from the API
55 by the IRD 22 is illustrated below. Other commands can be
translated in a similar manner. The IRD 22 may includes a look up
table in the EEPROM 62, which associates a ReelControl command from
the API 55 with a SetPosition command for the stepper motor driver.
Given the syntax and format of the SetPosition command as provided
above, the CPU 48 creates the SetPosition command by parsing the
data from the ReelControl command from the API 55. The data is
provided in two (2) bytes. Bits [15:8] of the data are provided by
byte 4 and bits [7:0] are provided by byte 5.
[0068] The CPU 48 uses the data to create the SetPosition command.
In particular, as set forth above, the SetPosition command is a
five (5) byte command. Byte 1 relates to the address of the stepper
motor drive. This address corresponds to the reel control mechanism
26, 28, 30 and 32. The next byte is the command byte. This byte
corresponds to the number of the "SetPosition" command. In this
case, this byte is 1001011. The next two bytes are for position
data. These two (2) bytes or sixteen (16) bits of data allow 1 of
65,536 positions to be specified.
[0069] The current position of the stepper motor is stored in
memory on board the stepper motor driver. The position may also be
provided by an encoder wheel attached to the gaming reel. The
position of the stepper motor for each gaming reel can be read from
the stepper motor driver by the IRD 22 by way of a "GetFullStatus2"
command. This command is configured with eight (8) bytes. Two
bytes, bytes 2 and 3, together provide the 16 bit actual position
of the stepper motor. This position may be used to enable the CPU
48 to calculate the number of steps to rotate the stepper motor in
order to get to the new symbol that corresponds to the position
determined by the random number generator.
[0070] A simplified exemplary flow diagram of the API 55 is
illustrated in FIG. 7. As shown, the system waits in step 57 for a
player input. Upon receipt of a player input, the host application
24 (FIG. 6) generates a random number by way of a random number
generator. The API 55 reads the random number in order to determine
the number of symbols to move each of the reels based upon the
output of the random number generator. These randomly selected
numbers are stored in step 59. The API 55 uses those numbers to
construct a command, such as the ReelControl command discussed
above in step 61. In step 63, the command is transmitted to the IRD
22 (FIG. 1) over a serial communication bus, such as the RS-232 bus
42 or the USB bus 44.
[0071] A position control command is generated for each reel. After
each command is sent to the IRD 22 in step 65, the API 55 checks if
commands have sent for all of the reels in the gaming machine. If
not, the system returns to step 61 and repeats steps 61, 63 and 65
until commands for all of the gaming reels have been sent to the
IRD 22. After all of the commands have been sent to the IRD 22, the
system returns to step 57 to await additional player input.
[0072] A simplified exemplary flow diagram for the IRD 22 is
illustrated in FIG. 8. Initially, the IRD 22 awaits a command from
the API 55 in step 67. Upon receipt of the command, the IRD 22
translates the command into a format and syntax, for example, as
described above. As mentioned above, the exemplary ReelControl
command is provided in terms of the number of symbol positions that
each reel is to move. In an exemplary embodiment, the stop
positions for all symbols on each reel are stored in the EEPROM 62
(FIG. 2). As discussed below, the current position of each reel is
returned by the stepper motor driver to the IRD 22. The CPU uses
this information to calculate the target position of the reel that
corresponds to the number of symbols that the reel is to be moved.
The IRD 22 uses this number to construct a SetPosition command, for
example, as discussed above in step 69. The command is then sent to
the stepper motor driver in step 71. Subsequently, the IRD 22 reads
various data from the stepper motor driver including the actual
position of the stepper motor after the command has been executed
in step 73. In step 75, the data from the stepper motor driver is
stored and the system returns to step 67 to await another command
from the API 55. Steps 69-71 are repeated until commands for all of
the reels have been received and processed.
Stepper Motor Driver
[0073] At the heart of the control system is the stepper motor
driver. The stepper motor driver is used to drive a bipolar stepper
motor in micro-stepping mode. The stepper motor driver is an
integrated circuit (IC), for example an AMIS 30624 IC, which acts
as a either slave or a master to the CPU 56 on the IRD 22 depending
on whether a command is being sent by the CPU 56 or data is being
received from the stepper motor driver. As mentioned above, each
pair of stepper motor drivers is interfaced; i.e connected, to the
IRD 22 by way of individual I.sup.2C buses 34, 36, 38 and 40. Each
stepper motor driver is connected to a stepper motor and an
electrical connector (not shown). As mentioned above, these
electrical connectors are connected to the reel interfaces 54,
located on the IRD 22.
[0074] The stepper motor driver provides many important functions
with respect to the control system in accordance with the present
invention. First, the stepper motor driver provides closed loop
control of the reel positions. In particular, The IC has built in
motor position reference. When the motor is rotated, the IC
automatically updates the physical position. More specifically, the
stepper motor driver monitors the back EMF in the stator coils of
the stepper motor to determine the actual rotor position. Whenever
a SW input on the stepper motor driver is triggered, the rotor
position of the stepper motor is saved in on-board memory on the
stepper motor driver. The host controller 24 can thus read back the
physical position of the stepper motor from the stepper motor
memory. As such, the host controller 24 does not need an external
optic device and encoder to monitor the symbol positions and keep a
log of reel positions.
[0075] A brief description of the operation of the stepper motor
driver, as provided below, will enable the present invention to be
better understood. Initialization of the reels is accomplished with
a single optical sensor (not shown) on each reel mechanism 26, 28,
30 and 32, located at a "home" position. The "home" position is
defined as that position, where the first symbol on a reel is
aligned to a pay-line, the optic sensor output is at a defined
state, and the motor step position is known. The "home" position
may be adjusted through 360 degrees of movement by means of
mechanical adjustment of motor, lamp array and optic device, on the
frame. On power up/reset condition, the motor is rotated, and the
optic device monitored. When the optic device is triggered by the
driven load, the output is fed into the SW input of the stepper
motor driver. The motor step position is then saved to memory
on-board the stepper motor driver as an absolute reference
point.
[0076] Among other things, the stepper motor driver can be used to
set various control parameters. For example, the stepper motor
driver enables master controller 24 (FIG. 1) to set the micro-step
resolution, run current and hold current of the stepper motor. With
the stepper motor driver as described above, there are two methods
for driving a reel to a new symbol position. In the first method,
when a new symbol position is required, the host controller 24
(FIG. 1) reads back the reel position from the stepper motor driver
memory and calculates the difference in steps and/or micro-steps
from the current reel position to the target symbol position. The
master controller 24 by way of the IRD 22, then commands the
stepper motor driver to the target symbol position. The host
controller can then check the physical position of the reel by
reading the memory on-board the stepper motor driver and correct if
required. This is similar to incremental positioning; the key
difference being the host can read the current reel position from
the load and not rely on a previous incremental position, thereby
avoiding positional errors. In a second method, when a new symbol
position is required, the host controller 24 drives the stepper
motor in the required direction and monitors the reel position from
the stepper motor on board memory. The stepper motor is then
stopped when the target reel position is achieved.
Phase Setting
[0077] As mentioned above, phase setting relates to the position of
the stepper motor shaft on power up. Since the reel is directly
connected to the stepper motor on power up, the zero position of
the rotor shaft is normally offset from a true zero position . . .
. More specifically, as discussed above, the zero position of a
stepper motor relates to the position of the rotor on power up.
This zero position is used for positioning the rotor to other
positions. When a load such as a reel is placed on the rotor at
power-up, the factory zero position may not correspond to the
centerline of a symbol. As such, heretofore, the stepper motor
housing was rotated to cause the centerline of the symbol to be
aligned with the payline on power up.
[0078] In accordance with the present invention, calibration of the
rotor shaft in an unloaded position is unnecessary. In order to
better understand the invention, previously known technique for
calibrating the rotor shaft position are briefly described below.
More particularly, the calibration of the rotor position was
previously done in full step mode. Thus for a four (4) winding
stepper motor in full step mode, 50 positions are known per
revolution for each winding. Thus, previously factory calibration
of the rotor position was used to locate a home position as close
as possible to a position in which the first symbol was aligned
with the payline. In order to fine tune the calibration and align
the first symbol with a payline, the motor housing was rotated
until the first symbol was aligned with the payline. The method in
accordance with the present invention greatly simplifies phase
calibration of the rotor shaft and eliminates the need to calibrate
the shaft position in an unloaded condition.
[0079] Rather than physically rotating the stepper motor housing as
is known in the prior art, the control circuit 20 in accordance
with the present invention allows the "home" position for each reel
to be adjusted under software control on initial power up in
micro-step mode. In particular, each reel includes an optical
encoder. Each optical encoder is formed as a wheel rigidly secured
to each reel. Each optical encoder includes a number of peripheral
slots which are positioned to correspond with various symbol
positions on the reel.
[0080] The "home" position is defined as the reel position in which
encoder corresponding to the first symbol is aligned with the
optical sensor, rigidly secured to the reel mechanism 26, 28, 30
and 32 Ideally, the home position is aligned with a payline on the
glass of a gaming machine. If not, the reel has to be rotated so
that the first symbol is aligned with the payline defining an
offset position.
[0081] The home and offset positions are normally stored in a
volatile memory on-board the stepper motor driver IC. On power
loss, this data is lost and the system has to be re-calibrated and
the home and offset positions have to be re-stored on the IC. In
accordance with one aspect of the invention, the system
automatically restores the home and offset in the IC and
re-positions the rotor to the correct position.
[0082] The process steps for factory calibration of the rotor
position is illustrated in FIG. 3A. Calibration is accomplished
electronically by way of an external PC connected to the USB port
36 on the IRD 22, as discussed above. During a calibration mode,
the external PC is connected to the IRD 22 by way of a USB bus 44
(FIG. 1). During the calibration mode, the stepper motor is
operated in micro-step mode, enabling the first symbol position to
be precisely aligned with the payline. With such a configuration,
the external PC functions as the master controller 24. As such, the
external PC can take advantage of the native commands of the
stepper motor driver for various purposes. For example, the
external PC can cause the stepper motor driver to micro-step the
reel to a position in which aligns the first symbol, for example,
the centerline of the first symbol, with a payline on power-up.
More particularly, the stepper motor driver includes a
"GotoSecurePosition" command which enables the stepper motor to be
micro-stepped. By way of the IRD 22, the external PC can be used to
micro-step the reel to a position in which the first symbol is
aligned with a payline on the gaming machine. Once the first symbol
is aligned with the payline, the offset from the aligned position
to the home position can then be added to the home position and
stored as the new home position. The stepper motor driver includes
a "ResetPosition" command for that purpose.
[0083] As illustrated in FIGS. 3A and 3B, phase setting of the
reels associated with the reel mechanisms 26, 28, 30 and 32 can be
accomplished either at the factory or in the field. FIG. 3A
illustrates the steps involved in phase setting at the factory.
FIG. 3B illustrates the steps involved in phase setting in the
field.
[0084] Referring first to FIG. 3A, phase setting is initiated at
the factory by applying power to the stepper motor. This may be
accomplished by applying power to the battery supply pin VBB on the
stepper motor driver, as indicated in step 68. On power-up the reel
will rotate to a home position under the control of the stepper
motor driver, as indicated by the step 70. After the reel rotates
to its initial home position, the position of the first symbol with
respect to the payline is checked in step 72. If the first symbol
is not aligned with the payline on the gaming machine. The reel is
micro-stepped forward or backward until the first symbol on the
reel is aligned with the payline, as discussed above, by way of an
external PC, as indicated in step 74. Once the first symbol is
aligned with the payline, the offset between the initial home
position and the aligned position is calculated by taking the
difference between the initial home position and the aligned
positions stored on the stepper motor driver. This difference or
offset is stored, as indicated above in step 76. In step 78, the
initial home position and the offset position are stored on board
the IRD 22 concluding the manufacturing calibration, as indicated
in step 80. Thus, on subsequent power-ups, the reel will rotate to
a position in which the first symbol position is aligned with the
payline.
[0085] FIG. 3B illustrates the process steps involved after a power
loss in the field. On power loss, the home and offset positions are
lost in the stepper motor driver IC. In accordance with an
important aspect of the invention, the home and offset positions
are automatically restored to the stepper motor driver IC on
subsequent power-ups Initially, power is applied to the stepper
motor as described above in step 82. On subsequent power-ups, the
system automatically retrieves the home and offset positions from
the IRD 22. Once those positions are retrieved, the reel is
automatically rotated to its home position, as indicated in step
84. Next the reel is automatically rotated to the offset position,
as indicated in step 86. In step 88, the home position and the
offset position are stored in the stepper motor driver IC. That
position is then set as a the reset position in step 90, by way of
a "ResetPosition Command", available on the stepper motor
driver.
Standstill Detection and Control
[0086] The control system 20 can also be used to manage the
monitoring of a standstill condition and the response to a
condition where the reel drifts from a stop position either due to
temporary power loss or a low power condition. In particular, the
stepper motor driver has a SW pin. Anytime the SW pin is triggered,
the actual position of the stepper motor rotor is stored in memory
aboard the stepper motor driver. The master controller 24 can thus
repeatedly request the actual position of the rotor by way of a
"GetFullStatus2" command. Should the master controller 24 determine
that the reel has drifted with respect to the standstill position,
the master controller 24 can drive the rotor back to its standstill
position by way of "SetPosition" command.
[0087] An exemplary flow chart is illustrated in FIG. 4. In
accordance with one aspect of the invention, the system response to
rotor movement from a standstill condition is user programmable.
More particularly, the response can be set as a "tilt" condition
and terminating a game in progress is terminated or simply
returning the reel to its correct position and allowing the game to
continue, as indicated in step 94. In response to random signals
generated by the master game controller, the reel motor is spun and
driven to a target position as determined by the master game
controller 24 (FIG. 1) and stopped, as indicated by the logic
blocks 96 and 98. Once the reel reaches its target position, the
motor current is reduced in step 100, defining a standstill mode.
In step 102, the reel position is read from the memory on board the
stepper motor driver by the master controller 24. This position is
stored as the standstill position in step 104. In step 106, the IRD
22 can compare the current position with stored standstill
position. If the current position does not correspond with the
stored standstill position, the IRD 22 will indicate a "tamper"
condition, as indicated in step 108. In accordance with another
aspect of the invention, the current reel position is determined in
two (2) ways. First, as discussed above, the current reel position
is determined by reading the reel position from the memory of the
stepper motor driver. Secondly, the current reel position is
determined by way of the encoder wheel, as discussed above. As
such, if the current position determined from the memory of the
stepper motor driver corresponds to stored standstill position, the
system next determines the current reel position by reading the
reel position, as indicated by the optical encoder, as discussed
above, in step 108. In step 110, the IRD 22 determines if the reel
position, as indicated in step 108, corresponds to the last stop
position generated by the master controller 24 (FIG. 1). If not,
the system proceeds to step 108 and indicates a tamper condition.
If the IRD 22 determines that the current reel position corresponds
to the last stop position generated by the master controller 24,
the system determines that the current reel position is correct and
to step 102 to monitor the current reel position. The system may
continuously monitor the current reel position until the game is
over, as indicated by the host controller 24, in which case, the
standstill mode is terminated, as indicated in step 112. Once the
standstill mode is terminated, the system loops back to step 96 and
awaits a motor spin.
[0088] If a tamper condition is detected, as indicated in step 108,
the IRD 22 can be placed in a lock mode or a tilt mode. As
mentioned above, the IRD 22 can be configured initially in either
mode. Thus, in step 114, the IRD 22 checks a configuration register
to determine whether it was initially configured in a lock mode or
a tilt mode.
[0089] In a lock mode, the IRD 22 simply drives the reel back to
the correct position. The system maintains that position by
repeatedly checking the reel position on the memory of the stepper
motor driver and driving the reel back to the correct position when
the reel moves by a predetermined amount. In the lock mode, the
game in progress may continue once the reel is returned to its
correct position.
[0090] In a tamper mode, the IRD 22 reports a tilt condition back
to the host controller 24. The IRD 22 may also provide an alarm
signal. In the tamper mode, any game in progress may be
terminated.
Variation in Symbol Type
[0091] `Symbol types` are variations in the number, and size of
symbols that are located on the periphery of the reel basket. A
reel basket is defined as a pair of spaced apart circular disks or
rings that are connected together with a number of rungs that are
juxtaposed around the periphery of the reels in a position
generally parallel to the axis of rotation of the reels.
[0092] Currently, reel mechanism designs require various components
to provide a solution. These components are designed for specific
symbol types. Most symbol types are directly related to the stepper
motor used to drive the reel. For example, a 200 step motor with
reels configured with 25 symbols will utilize 8 steps per symbol,
all equally displaced around the reel periphery.
[0093] Some known reel baskets include spacers at pre-defined
locations to allow correct symbol illumination. Other known reel
baskets include pre-defined optical encoders for specific symbol
types. The host software is also pre-defined for specific number of
symbols.
[0094] Multiple symbol types are illustrated in FIG. 5 and may be
accommodated within the design. This allows different symbol sizes
to be used on a common reel mechanism. It also allows the host to
change symbol type easily, if machines are rebuilt. The reel basket
design has no spacers that separate the spaced apart rings or
spacers. The symbol location may be in any position around the
periphery of the reel basket. Such a configuration allows
unrestricted backlight illumination.
[0095] The reel basket must have an encoder located in a known
position, relative to the symbol location. An optic flag is a
component that is used to trigger/interrupt an optic device. This
encoder may be fixed in that location for any symbol type. Maximum
symbol size is determined by the maximum viewable area on the game
machine cabinet. For example, a viewing area of 45 degrees, will
allow 8 symbols of 45 degrees height to be used. The minimum symbol
size is determined by the backlight components. For example an LED
component may be mounted so that it provides 5 degrees of
illumination spread. This limitation is due to the physical size of
the components. This configuration allows up to 72 symbols to be
used.
[0096] In accordance with one aspect of the invention, any number
of symbols may be used, between the minimum and maximum values, and
that all symbols may be stopped centrally about the pay line angle.
This is achieved by utilizing the micro step feature of the stepper
motor driver, as discussed above, and the ability to boost the
holding torque, on micro step positions.
[0097] FIG. 5 is a two dimensional representation of a symbol strip
with unequal symbol sizes, generally identified with the reference
numeral 118. For illustration, each symbol on the symbol strip 118
has a different length. Assuming a 200 step stepper motor, each
symbol on the symbol strip 118 can be correlated to a number of
steps. The total number of steps for all of the symbols preferably
adds up to 200.
[0098] Obviously, many modifications and variations of the present
invention are possible in light of the above teachings. Thus, it is
to be understood that, within the scope of the appended claims, the
invention may be practiced otherwise than as specifically described
above.
[0099] What is claimed and desired to be secured by a Letters
Patent of the United States is:
* * * * *