[0001] This patent application is a continuation-in-part application of patent application
Serial No. 766,913, filed August 16, 1985 for Apparatus For Accelerated Reaction Training.
[0002] The present invention relates generally to a Sports Technique And Reaction Training
(START) system which is a highly sophisticated training system with programming capabilities
designed particularly for improving, progressing, and testing the development pattern
of skilled motor functions-(engrams) in sports, rehabilitation, and health and fitness.
In the field of rehabilitation in particular, the subject invention should prove valuable
and have particular utility in providing measured objective evidence of recovery from
an injury. This is particularly useful in professional sports in gauging the ability
of an injured player to perform under competitive situations, and also has utility
in legal situations involving compensation, for example, in cases involving an injured
employee or worker.
[0003] In the fields of sports, rehabilitation, health and fitness, a person frequently
performs particular motor movements to achieve a specific purpose, such as for example
the motor movements performed during execution of a backhand stroke in tennis. It
is primarily in the sensory and sensory association areas that the athlete experiences
the effects of such motor movements and records "memories" of the different patterns
of motor movements, which are. called sensory engrams of the motor movements. When
the athlete wishes to perform a specific act, he presumably calls forth one of these
engrams, and then sets the motor system of the brain into action to reproduce the
sensory pattern that is engrained in the engram.
[0004] Even a highly skilled motor activity can be performed the very first time if it is
performed extemely slowly, slowly enough for sensory feedback to guide the movements
through each step. However, to be really useful, many skilled motor activities must
be performed rapidly. This is capable of being achieved by successive performance
of the skilled activity at game speed using the START system of the present invention
until finally an engram of the skilled activity is engrained in the motor system as
well as in the sensory system. This motor engram causes a precise set of muscles to
perform a specific sequence of movements required for the skilled activity.
[0005] Most types of Inter partes competitive athletic performance involve predetermined
patterns of sequenced muscle performance, usually in response to an act of an opponent,
and the proficiency level of such performance is usually dependent, at least in large
part, upon the reaction time required to initiate a predetermined pattern of sequenced
muscle performance in response to an opponent's act and the rapidity with which such
predetermined pattern is carried out. A corollary ot the foregoing is the physical
conditioning of the various muscles and other interrelated body com- pbnents involved
in each such predetermined pattern of muscle performance to minimize, if not substantially
avoid, injury in the performance thereof.
[0006] The following U.S. patents are considered somewhat pertinent to the present invention
as disclosing concepts related in some respects to the subject START system. However,
none of the cited prior art discloses a system having the versatile attributes of
the sports technique and reaction training system as disclosed herein.
[0007] Goldfarb et al. U.S. Patent 3,933,354 discloses a marshall arts amusement device
having a picture, such as a display of a combatant, which is adapted to be struck
by a participant, a series of lights mounted behind the picture, preferably each located
at a different key attack or defensive position on the body of the combatant. The
display detects when the picture is struck in the vicinity of a light, and is responsive
to the detection for illuminating one of the lights and for controlling which light
in the series is next illuminated when the picture is hit. In order to demonstrate
high performance or win against an opponent, the participant must rapidly extinguish
each light in the series by touching or hitting the picture at the illuminated light.
The lights are illuminated in a pseudo-random order which the participant cannot anticipate,
and therefore his relaxation, coordination, balance and speed are tested much the
same as they would be in combat in determining the quality of his performance.
[0008] Hurley U.S. Patent 4,027,875 discloses a reaction training device which includes
a pair of spaced apart, electrically connected stands, each being provided with electrical
switch boxes. Each of the switch boxes is provided with an external plunger, with
the plunger being connected to electrical circuitry and acting as a switch. A timer
is connected to the electrical circuitry, such that that the time required for a person
to activate the timer by, touching the plunger on one switch box and stop the timer
by touching the plunger on the other switch box is recorded.
[0009] Groff U.S. Patent 4,493,6555 discloses a radio controlled teaching system in which
a portable, self-powered, radio-controlled teaching device is provided for each student
of a classroom, such that the teacher maintains a high level of student alertness
by remaining in radio contact with each and every student during selected periods
of the classroom day. A teaching device electronically transmits teacher-selected
data to each student which, in turn, requires individual student responses to the
data without the necessity of wired connections between the teacher and students.
The teaching device is used to instantly and extemporaneously test'the students in
the class on a selected subject area.
[0010] Bigelow el al. U.S. Patent 4,534,557 discloses a reaction time and applied force
feedback training system for sports which includes at least one sports training device,
and a stimulus indicator located near and associated with the sports training device.
The stimulus indicator generates a plurality of ready signals at random time intervals,
and a sensor in the sports training device is receptive of a force applied to the
sports training device for generating an electrical signal having a magnitude proportional
to the magnitude of the applied force. A control unit controls the emanation of the
ready signals, and determines and displays the reaction time from emanation of the
ready signal to sensing the applied force, along with the magnitude of the applied
force.
[0011] in summary, none of the aforementioned prior art provides an integrated system for
technique and accelerated reaction training having the general applicability and versatility
of the subject invention with its many significant attributes as described in greater
detail hereinbelow.
[0012] Accordingly, it is a primary object of the present invention to provide a training
system which will enhance and improve the reflex capabilities of amateur and professional
athletes with a unique training program that advances the state of the art in athletic
training.
[0013] The START system of the present invention trains an individual in actual game situations
using the identical movements that are necessary and at the same speed required by
the sport. By training the actual movements necessary for the sport, the specificity
of training is tremendously improved in the following areas: quicker reaction to outside
stimulus and response with proper technique; aerobic-anaerobic fitness; strength;
power; agility; balance and endurance. The specificity of training is very high because
the athlete is motivated by competing against an audible feedback at the end of a
measured period of time to perform at maximum levels on each movement in order to
perform within the measured time period, which is analag- ous to a victory over an
opponent.
[0014] The present invention may be briefly described as an improved method and apparatus
for improving predetermined patterns of sequenced muscle performance, and in reducing
the reaction time for the initiation thereof. In its broader aspects, the subject
method includes the provision of a plurality of individually available external stimuli
in the form of a cyclically repetitive sequence of available action signals, each
of which requires a particular pattern of sequenced muscle performance in response
thereto, in association with what normally appears to the participant to be a random
energization of a single stimulus or action signal from the available plurality thereof.
However, in some applications of the present invention, such as in physical therapy
and rehabilitation, the order of energization of the external stimuli is repetitive
and is known to the person undertaking the program. In its narrower aspects, the subject
invention includes effecting the apparent random energization of particular stimuli
signals by the act or sensed position of the performer and the provision of a performance
rating signal indicative of the nature of the participants time and/or spatial response
to the stimulus.
[0015] In accordance with a preferred commercial embodiment which has been designed, the
subject invention provides a system for technique and accelerated reaction training
of a person by a training program in which an array of lights is positioned visibly
in front of the person, with each light signifying a different particular movement
pattern to be executed by the person in a given amount of time. A control system selectively
energizes one light of the array at a time, signifying a particular movement pattern
to be executed, in a sequence of lighting of the array of lights unknown to the person
undertaking the training program. In this program, the sequence of lighting of the
array appears to be random, such that the person waits for an unknown light to be
energized, and must then react in a measured time period with the particular movement
pattern to be executed in response to that particular light, and the person then waits
for the next unknown light to be energized, and must then react in a measured time
period with the particular given movement pattern to be executed in response to that
particular light. Moreover, the control system is programmable to enter a different
individual time period of response for each different light, and then times each individual
time period of response. Additionally, an audible feedback is supplied to the person
by an acoustic transducer which is activated by the control system at the end of each
individual time period of response to audibly signal, as by a beep, to the person
the end thereof, such that the person in the program works to complete the particular
movement pattern to be executed prior to hearing the audible signal or beep.
[0016] In a preferred embodiment, the array of lights comprises an array of six lights arranged
in top and bottom horizontal rows of three lights, with the top and bottom rows being
aligned vertically with respect to each other. The array of lights can represent movements
in 360°, forward lateral and backward movements as they pertain to upper and lower
body movements. Moreover, the START system is preferably constructed and provided
in a portable carrying case, wherein the array of lights is mounted in the top portion
of the carrying case, and the control system therefor is located in the bottom portion.
[0017] A preferred embodiment of the present invention has been developed wherein the control
system is a microprocessor programmed and operated control system. In this embodiment,
the microprocessor is coupled to an address bus, a control bus, and a data bus, and
each of the array of lights, as well as additional controlled features, is coupled
to and controlled by the microprocessor by signals issued on the address bus, the
control bus, and the data bus.
[0018] The training program is stored in an external memory mounted in a cartridge which
is insertable into a port in the bottom portion of the carrying case. The cartridge
has stored in memory a sequence of lighting of the particular lights in the array,
along with different individual time periods of response for each light, and the pause
duration time period between the end of one individual time period of response. and
the beginning of the next individual time period of response, such that different
training programs can be used in the system merely by changing program cartridges.
Moreover, each cartridge preferably contains several different training programs stored
in memory with different sequences of lights and different individual time periods
of response. For instance, a cartridge can have stored in memory at least a beginner
training program, an intermediate training program, and an advanced training program.
[0019] Advantageously, a cartridge can be programmed with a weakness drill program wherein
at least one particular light in the array of lights is energized more frequently
than other lights, with that particular light signifying a weakness movement pattern
to be executed by the person, such that the program works on strenthening a particular
weakness movement pattern. The system is also preferably programmed to provide a warm-up
program which is run prior to the training program and a cool-down program which is
run after the training program.
[0020] Moreover, in a preferred embodiment the microprocessor operated control system is
programmable by a keypad entry array of keys in the bottom portion of the carrying
case, which includes a keypad entry display for displaying the entries being made
into the system. In this system, the individual time periods of response for each
light stored in memory are changeable and reprogrammable by operation of the keypad
entry array, particularly to suit the development and training of the person undertaking
the training program. Advantageously, a percentage faster key is provided on the keypad
entry array to actuate a routine to change the time periods of response in the program
to make them a given percentage of time faster, and a percentage slower key is also
provided to actuate a routine to change the time periods of response in the program
to make them a given percentage. of time slower.
[0021] In a preferred embodiment, at least one transducer is coupled to the control system
which is activated by the person at the end of the particular movement pattern being
executed, and the control system measures the actual period of time taken by the person
to activate the transducer, and stores each measured time period of actual response
in memory. Moreover, preferably a separate pressure touch pad transducer is provided
for each light to be energized in the training program, and the control system measures
the actual period of time taken by the person to touch each pressure pad, and stores
each measured time period of actual response in memory.
[0022] One advantageous feature of the present invention is the ability to obtain a print
out from the computer memory of the performance of the person in the program. The
print out can include the individual measured response times, averages thereof, plotted
curves thereof, and additional displays of the response data stored in memory.
[0023] A preferred embodiment of the subject invention also incorporates therein voice synthesizer
circuits for instructing the person on correct operation of the system, and also during
the training program.
[0024] The present invention also provides a training mat which has been developed particularly
for use in conjunction with the START system, particularly for rehabilitation programs
and in the measurement of timed responses. The training mat has on the upper surface
thereof marked areas of position and marked areas of response. The training mat is
generally rectangular in shape, and the marked areas of response are arranged in a
pattern around the periphery thereof, with the marked areas of position being marked
integrally with the marked areas of response. In this design, the pressure touch pads
can be positioned at different marked areas of response on the mat or constructed
integrally therein, such that a person orients himself with respect to a marked area
of position, and then reacts to input stimulus signals to execute particular movement
patterns, at the end of which the person touches a marked area of response on the
training mat. Moreover, in a preferred embodiment the training mat preferably has
a generally. square shape, and the marked areas of response include a plurality of
contiguous square areas positioned around the periphery thereof. Each side of the
training mat is preferably between four and ten feet in length, most preferably six
feet, and includes six square areas of response arranged contiguously along the length
thereof. A central square area is thereby delineated on the central area of the training
mat inside the square marked areas of response, and is adapted to receive one of several
different central mat sections to be selectively placed centrally on the training
mat.
[0025] among the advantages of the subject invention is the provision of an improved method
for accelerated reaction training to improve predetermined patterns of sequenced muscle
performance and the reaction times therefor that can be utilized in diverse enviroments
within the broad field of physical bionics, such as, for example, in basic aerobic
and anerobic training exercises, and in the obtaining of enhanced reaction time performances,
and also in specific athletic training for enhancement of performance in sports such
as tennis, football, basketball, hockey, baseball and the like.
[0026] Another advantage of the subject invention is the enhancement of performance and
results obtainable in a physical therapy program designed particularly for athletes
desirous of returning to competitive activity following an injury or other physical
disablement, as well as for enhanced general physical conditioning. Still other advantages
of the practice of the subject invention are the development of improved cardio-vascular
fitness, improved reaction times, improved balance, agility and speed, as well as
an enhanced resistance to injury in the performance of athletic functions, and enhanced
recovery from injury resulting from athletic or related physical endeavors.
[0027] The foregoing objects and advantages of the present invention for a sports technique
and training system may be more readily understood by one skilled in the art, with
reference being had to the following detailed description of several preferred embodiments
thereof, taken in conjunction with the accompanying drawings wherein like elements
are designated by identical reference numerals throughout the several views, and in
which:
Figure I is a schematic perspective view illustrating the employment of the methods
of the subject invention in the training of tennis players;
Figure 2 is a schematic circuit diagram for the stimuli battery depicted in Figure
I;
Figure 3 is an elevational view of a stimuli battery for providing a visual indication
of a desired type of movement by a subject;
Figure 4 is a- schematic perspective view illustrating the employment of the programs
of the present invention in the training of more advanced tennis players;
Figure 5 is a side elevational view of a photosensor assembly;
Figure 6 is a side elevational view of a light source for use with the photosensors
of Figure 5;
Figure 7 is a schematic circuit diagram for a stimuli battery of the type illustrated
in Figure 3;
Figures 8 and 9 illustrate a preferred commercial embodiment of the present invention
designed as a portable unit the size of a small carrying case, with Figure 8 illustrating
a display panel of six high intensity lamps mounted on the inside of the top portion
of the portable case, and Figure 9 illustrating the control keypad and control display
panel mounted on the inside of the bottom portion of the portable case;
Figure 10 is a plan view of a preferred embodiment of an exercise mat developed for
use in association with the START system;
Figure II is a block diagram of the major components of a preferred embodiment of
a microprocessor controlled START system;
Figures 12 through 33 are Jogic flow diagrams illustrating the primary logic flow
steps of the program for the microprocessor, in which:
Figures 12 through 16 illustrate the programming steps involved in the initialization
of the unit after it is initially turned on;
Figure 17 illustrates the programming sequence of the main operational running loop
which allows an operator to select a drill and set up the parameters governing the
operation thereof, and the middle of Figure 17 refers to the four state routines of
the system, the three more complicated of which are illustrated in Figures 25 through
27, and the right side of Figure 7 refers to thirty-one different routines, the more
complicated of which are illustrated in Figures 28 through 35;
Figure 18 illustrates handling of the interrupt and backgrount routines which are
performed ever .01 seconds;
Figures 19 through 24 illustrate the interrelated logic flow diagrams of the interrupt
and background routines performed every .01 seconds; in which
Figure 19 illustrates the logic flow diagram of the input and output subroutine which
keeps track of all inputs and outputs of the system;
Figures 20 and 21 are logic flow diagrams of the timing functions and counters of
the processor; Figure 22 is a logic flow diagram of the LED display drive and keyboard
matrix scanner operations;
Figures 23 and 24 illustrate the logic flow diagrams of the key detection and debouncing
routines;
Figures 25 through 27 illustrate the logic flow diagrams of the three state routines
of the system, including the numeric display routine of Figure 25, the modify display
routine of Figure 26, and the drill running routine of Figure 27, which state routines
are illustrated in the central portion of the main operational loop of Figure 17;
and
Figures 28 through 35 illustrate the logic flow diagrams of the more complicated of
the thirty-one routines shown on the right portion of the main operational loop of
Figure 17, including the start routine of Figure 28, the program routine of Figure
29, the beginner routine of Figure 30, the number of routine of Figure 31, the modify
routine of Figure 32, the duration routine of Figure 33, the cancel warm-up routine
of Figure 34, and the enter routine of Figure 35.
[0028] Most competitive atheletic performances against an opponent, such as for example
in tennis, football, soccer, basketball, hockey and baseball involve a specific repertoire
of a relatively few basic patterns of movement, the rapidity of initiation and performance
of which are significant factors in an athlete's competitive effectiveness. Each such
pattern of movement normally involves a predetermined pattern of sequenced muscle
performance to attain the desired result. For example, it has been observed that successful
tennis players have developed a specific repertoire of movement patterns, each comprised
of a few basic and very rapid movements and shots which place the player and the ball
precisely where they can be most competitively effective. It has been observed further
that the basic movement patterns are remarkably similar among the top successful tennis
players. Similar movement patterns are also ascertainable for particular participants
in other competitive sports endeavors. Instances where pronounced patterns of movement
are readily ascertainable include football players, and particularly defensive backs,
goalies and defensemen in hockey, basketball players, and baseball players, where
good fielders have always been recognized as those who "get a good jump on the ball".
[0029] The methods hereinafter described are generally directed to accelerated reaction
training, and in particular to the training of athletes to adopt and become increasingly
proficient in such basic movement patterns through the utilization of randomly generated
stimuli signals coupled with movement pattern responsive indicia to provide immediate
positive-or negative reinforcement for properly or improperly executed movements or
patterns thereof.
[0030] Figure I is illustrative of the practice of the present invention in enhancing the
performance of an athlete in a basic side to side movement pattern such as is commonly
employed in tennis. Such side to side movement involves a predetermined pattern of
sequenced muscle performance. In order to enhance both a player's reaction time and
the rapidity of performance, there is provided a stimuli battery, generally designated
10, positioned on the court center line and in view of the player 12. The stimuli
battery 10 contains three lamps 14, 16 and 18 mounted in horizontal array on a support
20. As shown in Figure 2, the lamps 14, 16 and 18 are adapted to be sequentially and
repetitively individually energized by a continuously operating cyclic switch 22 included
in the energized circuits therefor. However, such lamps will remain in an unlit condition
due to the presence of a normally open and remotely operable switch 24 in the power
circuit.
[0031] In the practice of the present invention, an athlete 30 positions himself on the
baseline 32 in generally straddle relationship with the center line 34. In a simple
version thereof, the athlete 30 may initiate the drill by manual operation of a trigger
transmitter of the type conventionally employed to trigger garage door opening devices.
A receiver element 40 is associated with the switch 24 and, upon receipt of a signal
from the trigger transmitter, operates to close the switch 24. Upon such remotely
initiated closure of the switch 24, the power circuit is completed and the particular
lamp whose energizing circuit is then closed or is the next to be closed by the operation
of the cyclically operable switch 22 will light. As will now be apparent, however,
activation by the trigger transmitter by the player 30. will result in a purely random
selection of one particular lamp to be lit, thus precluding conscious or subconscious
anticipation of a movement direction by the player.
[0032] In the above described example, the athlete 30 initiates the drill by activation
of the transmitter trigger. The stimuli battery 10 responds immediately to the trigger
signal by illuminating a randomly selected one of the plurality of lights 14, 16 or
18. The outermost lights, for example 14 and 18, correspond to different movement
pattern directions, for example, movement pattern to the left and movement pattern
to the right. There is preplaced in each such direction a mark 42 and 44 upon a ground
surface located a finite distance from the centerline starting position 34, When,
for example, light 18 illuminates, the athlete 30 moves through a predetermined pattern
of movement to mark 44 and upon there arriving, immediately reverses direction and
returns to the starting position. If desired, the lamp energizing circuits may be
designed to maintain lamp iitumination for a predetermined but selectable period of
time within which the particular movement pattern should be completed.
[0033] As will now be apparent, use of the transmitter trigger by the athlete 30, although
providing for random light selection, permits the athlete to-train at his own pace.
On the other hand, the transmitter trigger could also be held by an instructor, who
can then control the pace of the drill as well as observe, and correct where necessary,
the movement patterns being employed by the player during the drill. Repetitive drills
in accord with the foregoing will improve both the athlete's reaction time and rapidity
of performance by the particular movement pattern through enhanced sequenced muscle
performance and, in addition, will function to condition the muscles involved therein.
[0034] If desired, the transmitter trigger may be dispensed with and the stimuli battery
10 actuated by a photosensor unit 46. Such photosensor unit 46 may be placed behind
the baseline 32 coaxially with the centerline 34. In this instance, the athlete 30
initiates the drill by physical interposition in the path of the photocell sensor
beam. Operation is as described hereinabove except that the system automatically recycles
each time the athlete 30 returns to the base line starting position.
[0035] Referring now to Figure 4, there is illustratively provided a preferred multipurpose
stimuli battery, generally designated 110, in the form of a plurality of lamps 112,
114, 116, 118, 120 and 122 mounted in a generally rectangular array on a support structure
124 above a base 126. Included within the base 126 is a power supply 128 connectable
to any convenient source of electricity, not shown, through a line plug 130. Also
included within the base 126 is a normally open and remotely operable switch 132 disposed
intermediate the power supply 127 and a continuously operating cyclic switch 134 which
sequentially completes individual energizing circuits for the lamps 112, 114, 116,
118, 120 and 122. In the operation of the described unit, the continuously operating
cyclic switch 134 selectively and sequentially completes the energizing circuits for
the lamps. However, such lamps will remain in an unlit condition due to the presence
of the normally open and remotely operable switch 132. Activation of the switch 132
may be effected, for example, by a manually operable trigger transmitter 136, such
as a transmitter of the type conventionally employed to trigger garage door opening
devices or by a photocell response or the like. Upon such remotely initiated operation
of the switch 132, a power circuit is completed between the power supply 128 and the
particular lamp whose energizing circuit is either then closed or is the next to be
closed by the operation of the cyclically operable switch )34. As will be apparent,
activation of the trigger transmitter 136 results in a purely random selection of
one particular lamp to be lit, dependent upon the status of the cyclic switch 134
at the time of transmitter activation.
[0036] As will now be apparent, the stimuli battery illustrated in -Figure 4 can provide
a plurality of randomly selected action signals. For example, and assuming the user
is facing the battery 110, ignition of lamp 116 can initiate a predetermined movement
pattern to the right as indicated by the arrow 116a, Figure 3. Similarly, selective
ignition of lamps 118 and 122 can be employed to initiate diagonal movement patterns,
while selective ignition of lamps 114 and 120 can be employed to initiate backward
and forward movement patterns respectively. As will now also be apparent, elevation
or jumping patterns could also be initiated by single or combinational lamp energization.
[0037] Figure 4 illustrates another and more complicated tennis drill employing the stimuli
battery shown in Figure 3 and described above. In this drill, the stimulis battery
means 110 comprises the previously described. six lights 112, 114, 116, 118, 120 and
122, again placed within view of the athlete on the far side of the court. Stimuli
battery means 110 is here electronically coupled to a plurality of photosensor means
220, 222, 224, 226, and 228, and to an electronic clock 232. The athlete 30 can initiate
the drill by serving the ball and moving netward through the zone of focus 229 of
a first photosensor means 220, with the zone of focus 229 being proximate to and substantially
parallel to the usual location of the tennis court service line 293 along the central
segment thereof. The stimuli battery 110 responds to the movement of the athlete through
the second zone of focus 234 by selecting and illuminating one light of the available
plurality thereof. In this embodiment lamps 118 and 122 would direct movement toward
additional focus zones 236 and 238, respectively. Each light corresponds to one of
a plurarity of additional zones of focus, i.e., light 120 for moving forward, light
114 for moving back, etc. Each of such additional zones of focus 236, 238, and 239
is located in a different direction from each other with respect to the second zone
234. The athlete responds to the stimuli battery 110, for example, the illumination
of lamp 118, by moving rapidly towards and through the zone corresponding to the illuminated
light, for example 238. When the athlete moves through the zone, for example 238,
his motion causes the digital clock to stop and display the time elapsed from his
motion through the first zone.
[0038] Figure 5 is a side elevation of a photosensor assembly 240 such as is used in the
drills described in Figures 12 and 13. It includes a photosensor 241, a support means
242, and a tripod base 244. Photosensor means 241 is a conventional photocell with
appropriate means to provide a signal in response to a change in marginal light thereon.
Connector 246 electrically connects photosensor means 241 to a remotely located control
unit not shown.
[0039] Figure 6 shows a light source designed to provide illumination for photosensor 241
of Figure 5 in marginal light conditions. This light source, generally designated
247, comprises a lamp 248, a support 250, a tripod base 252, and a power cord 254
leading to a power source, not shown.
[0040] Figure 7 schematically depicts an electrical control circuit for use with the stimuli
battery means 110 of the type shown in Figure 3. As shown, a signal from a trigger
transmitter 136 is received by a resistor 137 and transmitted to a cyclic switch 134.
The cyclic switch 134 can be in the form of a cyclic generator providing six discrete
output signals at a frequency of approximately 10 KHz. The cyclic switch 134 is connected
through lines 140 to individual one shot trigger circuits 142, 144, 146, 148, 150
and 152, each of which is adapted to provide an output signal of predetermined duration
when triggered by a signal from the cyclic switch 134. The output signals are utilized
to effect ignition of the lamps 112, 114, 116, 118, 120 and 122, respectively. Each
of the one shot trigger circuits includes means, such as the illustrated adjustable
resistor, to provide for user control of the time duration of the output signals from
the one shot triggers, and hence the duration of lamp ignition. The termination of
the output signal from the one shot trigger circuits is utilized to activate an audio
signal, indicating that the period during which a predetermined movement pattern should
have been completed has expired. Desirably the circuit also includes means such as
logic circuit 156 to provide for user controlled disablement of particular lamps in
accord with the nature of the movement patterns being utilized for training.
[0041] A preferred commercial embodiment of the present invention has been designed to have
general applicability to many training programs in different sports, or in rehabilitation
and general health and fitness. The preferred embodiment is designed as a portable
unit which unfolds, similar to a traveling case, into an upper section 300, Figure
8, having a top display panel, which may or may not be separable from the bottom section
302, Figure 9, of the unit with appropriate electrical connections thereto. The unit
is microprocessor controlled and programmable, as described in greater detail hereinbelow.
The top display panel provides an array of six (6) high intensity lamps 304 that are
strobed on/off in a pre-programmed sequence as dictated by the program number indicated
by the documentation, and selected via a numeric data entry keypad, and a loudspeaker
306. The time that each lamp is illuminated, as well as the pause time between lamp
strobes is also a pre-programmed parameter set for the selected program number, but
these parameters can be changed and reprogrammed as described in greater detail hereinbelow.
[0042] The control system, which is microprocessor controlled and programmable is mounted
in the bottom section 302, Figure 9, along with a control and programming keypad 308
of control keys, three (alternative embodiments might incorporate four or more) LED
seven segment digit displays 310, an external ROM (XROM) memory cartridge port 312,
a microprocessor expansion port 314, a volume control 316, an external speaker (horn)
switch 318, a remote advance unit and pocket therefor 320, a battery charger unit
and pocket therefor 322, an XROM cartrdige storage pocket 324 wherein several XROM
program cartridges can be stored, and a screwdriver 326 for assistance in servicing
the unit, such as in changing fuses or bulbs.
[0043] The keypad 308 allows the user to vary the on/off times as -well as the pause times
in any selected program drill for any individual or multiple numbers of lamps by simply
entering the desired times. This feature allows the user to custom tailor each pre-programmed
training drill to the individual talents/progress of the person in training.
[0044] The design of the unit accomodates the development environment as well as the end
user environment. The development environment is enhanced by allowing the system training
program developers to set the various sequences of drills as well as default timing
periods that are used to generate the final programs that are contained in response
training drill cartridges. The user environment allows the selection of these program
sequences via the keypad, and allows for selective alteration and reprogramming of
the default lamp/pause timing periods by the user.
[0045] The base system is equipped with the basic response training programs in an external
ROM (XROM) memory memory cartridge plugged into port 312, and is also designed with
an expansion port 314 that allows the user to plug in subsequently developed program
and/or feature enhancements as offered by the manufacturer. These subsequent programs
and/or feature enhancements will be available in cartridge type devices that will
simply plug into the expansion port 314.
[0046] Some of the programs and/or feature enhancements that can be made available through
the expansion port include the following:
I. Drill sequence cartridges-drill cartridges that contain pre-programmed drill sequences
that are specifically designed for a particular sport, function within a sport, weakness
correction, rehabilitation exercise, etc. For example, individual cartridges may be
offered that offer specific movements to improve a weakness in a particular type of
commonly required movement for a sport, such as a deep baseline backhand in tennis,
etc.
2. Timing measurement and plotting-a slave microprocessor controlled device may be
added via the plug-in expansion port. Pressure sensitive mats, photoelectric beams,
motion detection sensors, etc., measure the actual time that an athlete takes to perform
the required movement. These reaction times are stored for subsequent retrieval, computer
analysis, charting, etc. to enhance and/or revise a training program based upon the
available performance analysis.
3. Voice enhanced coaching-voice synthesis, in addition to the basic voice systhesis
that is part of the base system, can be added via the expansion port to provide prompting,
tutoring, coaching, etc. to the user during the execution of the drill sequences.
For example, if a common mistake during the performance of a particular movement is
the incomplete turning of the hips to properly prepare for a tennis backhand, the
start system could remind the user (much the same way as a personal coach would) to
perform the movement using the correct technique. This feature would be implemented
via the voice synthesis module, under program control.
[0047] The manufacturer developed sequences, as well as the applications software are stored
in volatile memory, and allow for over-writing in the operation of the microprocessor.
[0048] All user interaction with the system is by the keypad/display module illustrated
in detail in Figure 9. The elements of the unit, which are primarily elements of this
module and their major functions are as follows.
[0049] I. Numeric display 310-this is a three or four digit display that indicates the numeric
entries as entered by the control keys on the keypad.
[0050]
a) The selected preprogrammed drill sequence number (00-99) that is presently being
run by the unit.
b) The drill duration time, which includes the warm-up, exercise, and cool-down times.
c) The timing associated with the lamp strobe-on time, or the lamp strobe off (pause)
time. The pause time is a global parameter that is valid for all pauses, and is not
individually selectable per lamp.
[0051] . 2. START/STOP-This key alternately initiates and terminates the automatic pre-programmed
or user modified drill sequence.
[0052] 3. LAMP-This key allows the user to select the lamp or lamps whose strobe time is
to be modified via the TIMER key and the numeric data entry keys, or via the 5% faster/5%
slower keys, the lamp(s) selected for timing modification are indicated by the numeric
display.
[0053] 4. PROG (program)-This key allows the user to select the pre-programmed sequence
in the XROM that is to entered via the numeric date entry keys. Each XROM cartridge
contains approximately thirty separate sequence drills in memory.
[0054] 5. PAUSE-This key allows the user to set the global pause time (the off time of each
lamp in a sequence).
[0055] TIMER-This key when used in the proper sequence with the lamp select (LAMP) key allows
the user to alter the on (strobe) time of the lamp(s) selected for modification, when
used with the DUR key allows the selection of duration time, and when used with the
PAUSE key allows selection of the global pause time. The times are entered via the
numeric data entry keypad. The least significant digit provides resolution to 1/100th
of a second.
[0056] 8. ENTER-This key is used subsequent to any numeric entry to confirm the entry into
the microprocessor.
[0057] 9. CLEAR-This key is used to erase any numeric data entry (prior to entry) and/or
to edit an erroneous selection.
[0058] 10. Lamp Field-The lamp array provides six (6) high intensity lamps 304 that will
blink as indicated by the program drill selected for training.
[0059] II. Audio Output-The volume control 316 controls an internally located speech/sound
synthesis system including an amplifier, a speaker 306, a speech synthesis processor,
and speech/sound PROM containing digitally encoded speech/sound data, with the circuit
chips being connected together in a standard fashion as is well known and developed
in the voice synthesizer arts to provide the following functions.
[0060]
a) Generation of a tone in synchronism with the off (pause) time of each sequenced
lamp, thereby providing the user with instant audible feedback to determine if the
particular movement was performed within the program alloted time. It has been observed
that an additional benefit to the tone feedback is the stimulation of game situation
reactions. The user, tending to positive feedback and reinforcement, is challenged
by the system in much the same way as in an actual game situation.
b) Speech synthesized prompting of the user to indicate, for example:
(I) System status, diagnostic failures;
(2) Operator error in selecting or entering the parameters for setting up or running
a drill sequence;
(3) Next expected key entry;
(4) Notification of the start or completion time of various program segments that
comprise a complete drill.
12. 5%F (5% faster)-This key causes either all of the lamps in a sequence, the selected
lamp-(s), or the pause timer to run at a five (5) percent faster rate. Multiple operations
of this key will increment the timing reduction by 5% for each key operation.
13. 5%S (5% slower)-The same as above (#12) except that the sequence will run slower.
14. DUR (duration)-This key allows the user to specify the time duration of the particular
training program drill selected by the user.
15. MOD (modify)-This key is used in conjunction with several other keys to alert
the system that the user wishes to modify certain parameters of the training program.
16. FO (BEG) (beginner)-This is a function key which initially sets the selected training
program from the XROM memory to the beginner level.
17. F1 (INT) (intermediate)-This is a function key which initially sets the selected
training program to the intermediate level.
18. F2 (ADV) (advanced)-This is a function key which initially. sets the selected
training program to the advanced level.
19. All LAMPS-This key allows the user to specify all lamps for timing modification,
as opposed to individual lamps via the LAMP key.
20. CANCEL WARM UP-This key allows the user to cancel the warm up period for timing
modification/entry.
21. POWER ON-This switch applies power to the circuitry of the unit, after which the
processor then maintains control over power to the system.
22. POWER OFF-This switch terminates power to the unit, and is a separate switch because
of the processor control over the power.
23. REMOTE-This switch allows the user to step the selected program via the wireless
remote advance coaches module or a wire connected foot switch.
[0061] The START system provides the following basic features in an external ROM (XROM)
module plugged into port 312:
I. Seven random lamp sequences that can be selected as pre-programmed sequence drill
numbers 01-10. The number of lamps used in each sequence will correspond to the sequence
number with the exception of 07 e.g. Seq. #02 will use two lamps that will flash in
a random pattern. The 07 drill number will be an alternate five lamp pattern.
2. Forty four or more preprogrammed sequences that are selected by entering the numbers
via the numeric keypad. The program drill corresponds to those nomenclated on the
training documentation and will run from II to 50.
3. A preprogrammed time period (approx. 15 secs.) that delays the start of any user
selected drill until the timer has expired, thereby affording the user the opportunity
to position him/herself prior to the start of the drill.
4. A preprogrammed warm-up and cool- . down sequence that precedes and follows, respectively,
each selected .sequence..As noted above, the warm-up period is cancellable by the
user. The warm-up and cool-down durations are automatically set by the system in direct
relationship to the drill duration (DUR) time set for the particular selected program.
[0062] Figure 10 is a plan view of a preferred embodiment of an exercise mat 340 developed
for use in association with the START system, particularly for rehabilitation programs
and in the measurement of timed responses. The training mat has the upper surface
thereof marked with areas of position 342 and areas of response 344. The training
mat is generally rectangular io shape, and is prefereably square, and the marked areas
of response 344 are arranged in a pattern around the periphery thereof, with the marked
areas of position 342, being marked integrally therein. In this design, touch pads
345 can be positioned beneath different marked areas of response on the mat, or can
be integrally constructed therein, such that a person orients himself with respect
to a marked area of position, and then reacts to input stimulis signals to execute
particular movement patterns, at the end of which the person touches a marked area
of response on the training mat. Moreover, in a preferred embodiment each side of
the training mat is preferably between four and ten feet in length, most preferably
six feet, and includes a minimum of four, a maximum of sixteen, and in one preferred
embodiment six square areas of response 344 arranged contiguously along the length
thereof. A central square area 346 is thereby delineated on the central area of the
training mat inside the square marked areas of response, and is adapted to receive
one of several different central mat sections, with one mat section being illustrated
in phantom in the drawing, to be selectively placed centrally on or in the training
mat.
[0063] Figure II is a block diagram of the major components of a preferred embodiment of
a microprocessor controlled START system. Referring thereto, the START system includes
the following major functional elements, a power supply 350, a microprocessor 352
with address 354, control 356, and data 358 busses, a remote advance and coaches module
360, lamp drivers 362 and lamps 364, speech synthesis chips including a processor
chip 366 and a speech PROM chip 368. a keyboard 308 and LED digit displays 310, an
external ROM cartridge 370 and an expansion port 372, decoder/latches 374 and bus
interfaces 376.
GENERAL ARCHITECTURE
[0064] The microprocessor contains both PROM memory that provides the program execution
instructions as well as certain data constants, and RAM memory that contains variables,
registers, etc. that enable various processing steps and modifications.
[0065] the various system devices (lamps, speech processor, keyboard and displays, etc.)
are peripherals to the microprocessor, whose selection are controlled by the microprocessor
address bus and control bus. Each peripheral has its own unique address, stored as
permanent data in the microprocessor memory. The control bus maintains a read (RD)
function, which is used by the microprocessor to transfer data to a peripheral device.
The data bus 358 is a bidirectional bus which contains, under program control, the
data that is read from or written to a selected peripheral device.
[0066] To enable a particular function to be energized, the microprocessor determines the
address of the device, and configures the address bus, which includes placing the
proper address thereon, to perform the device selection. The data that is to be placed
on the data bus is provided by the microprocessor for a write function and by a peripheral
for a read function. A read or write strobe then causes the data to be accepted by
the appropriate device (microprocessor or peripheral). In this manner, a number of
bits equal to the data bus size (8) is transferred between the microprocessor and
the peripheral.
[0067] Some devices require all eight (8) bits of data (e.g. speech synthesis phrase selection),
while some require less than eight (8) bits (e.g. lamps require one bit for on/off.)
OPERATION
[0068] The microprocessor, via the stored program control logic as described hereinbelow,
determines the functions to be performed, the timing requirements, the processing
required, etc.
LAMP CONTROL
[0069] When the microprocessor program determines that a lamp is to be turned on for a specific
period of time, it determines the address of the particular lamp required, configures
the address but 354, places the appropriate data on the data bus 358, and issues a
write command. The data is then latched in the decoder latch 374, which turns on the
lamp driver 362 and lamp 364. The microprocessor then performs the timing function
required to accurately time the lamp on state. When the time expires, the microprocessor
re-addresses the lamp, but now configures different data on the data bus, which causes
the lamp driver/lamp to enter the opposite, off, state..
SPEECH SYNTHESIS CONTROL
[0070] When the microprocessor program determines that the speech processor is to output
a tone, a word, or a phrase, it determines the location in memory of the word(s) required,
configures the address bus 354 to select the speech processor, places the word location
on the data bus 358, and then issues a write command. The speech processor 366 receives
and stores the selected word(s) location, and intereacts with the speech memory PROM
368 to provide an analog output that represents the speech data. The PROM 368 contains
the Linear Predictive Coded (LPC) speech data as well as the frequency and the amplitude
data required for each speech output. The filter and amplifier section of the circuit
provides a frequency response over the audio spectrum that produces a quality voice
synthesis over the loudspeaker 306 and possibly over a remote speaker (HORN).
[0071] In one designed embodiment the speech synthesis technology utilized well known designs
incorporating the National Semiconductor MM54104 DIGITALKER speech synthesis processor
and INTEL CORP 2764 EPROMS for speech memory storage.
KEYBOARD SCAN AND DISPLAY INTERFACE
[0072] The displays 310 are common cathode seven segment LED displays that are driven by
a decoder driver. The decoder driver takes a BCD input, and provides an appropriate
output configuration to translate this input to the proper segment drives to display
the required character. These outputs apply a high current drive to all necessary
segments, and the circuit is completed (and displays lit) by pulling the common cathode
to ground.
[0073] The keyboard is an XY matrix, which allows a particular crosspoint to be made when
that position on the matrix is depressed by the operator. The microprocessor combines
the energizing of the displays with the scanning of the keyboard for operator input.
The displays and keyboard are constantly scanned by the microprocessor to provide
a power saving multiplexing of the displays and a continuing scanning of the keyboard
for operator input.
[0074] The common cathode of the display is provided with the same address as the X (row)
location of the keyboard matrix. Therefore, energizing a display member also results
in energizing the X (row) number of the keyboard.
[0075] For any particular scan, the microprocessor determines the address of the display
to be energized (which is the same X (row) on the keyboard), and determines the data
to be written on that display. The common display decoder driver latch address is
determined, the address placed on the address bus 354 , and the data to be displayed
is placed on the data bus 358. A write (WR) strobe is then issued which causes this
data to be written and stored in the latch. To energize the LED displays (complete
the circuit), the microprocessor determines which digit display is to be energized,
places that address on the address bus, places the data to be writen on the data bus,
and issues a write strobe. This causes the selected common cathode to be energized
and latched, as well as the scan input to the selected X (row) of the keyboard.
[0076] To determine if a key has been depressed, the microprocessor reads the column (Y)
output of the keyboard via the bus interface and places this on the address bus 354.
This is decoded and the column data selected for application to the bidirectional
data bus 358. The microprocessor 352 then issues a read (RD) command which causes
this data to be stored in a bus memory location. analysis of this bit pattern allows
the microprocessor to determine if a keyboard crosspoint was made, corresponding to
an operator selector. This scanning operation is performed at a sufficiently high
rate to detect normal keystrokes as well as to provide a multiplexed output that is
bright and appears non- flickering to the human eye.
EXTERNAL ROM
[0077] The external ROM (XROM) contains the preprogrammed drill sequence data used to run
an operator selected drill. This design approach provides great flexibility in setting
up drills while using
[0078] the resources of the microprocessor controlled peripheral devices. The XROM is programmed
with data, in sequence, that allows the microprocessor to perform the following tasks:
(I) select a lamp;
(2) select a speech synthesizer word/phrase;
(3) select a tone output. The XROM also contains default timing data for the following
which is used in the exercise program when the operator does not select and enter
alternative times:
(I) lamp-on time; and
(2) pause time.
[0079] It can be readily seen that by properly encoding the XROM data, the microprocessor
can execute numerous types of drill sequences which can combine the above mentioned
parameters. It can also be observed that the use of plug-in cartridge XROMS allows
a variety of sequence drills to be developed, equipped and executed with little if
any programming by the user. A variety of plug-in cartridges can be developed for
specific sports, weakness drills, rehabilitation programs, etc.
[0080] When the microprocessor 352 determines that the user has selected the START/END key,
and is thereby requesting the initiation of a drill sequence, it obtains the address
of the present step to be executed in the XROM, and places this address on the system
address bus 354. The XROM is then activated, and places the selected data on the data
bus 358. The microprocessor 352 then issues a read command, which causes this data
to be stored in the microprocessor register for interpretation and processing. The
XROM storage formats are fixed, so that if a lamp-on command is read from the XROM,
the microprocessor knows that the next sequential address contains the lamp-on operation
time.
[0081] The microprocessor continues the execution of the XROM instructed drill sequence
until the drill operation time has expired, or until the user stops the drill manually.
It should be noted that each drill sequence is comprised of a limited finite number
of steps (locations) in the XROM memory. The microprocessor continually cycles through
the steps to perform the drill. However, to achieve a truly random nature for a drill,
the microprocessor does not always start each sequence at the initial step (location),
but rather starts at some randomly indexed namable location, as explained further
hereinbelow with reference to figure 18.
[0082] The START system preferably is controlled and run by a single chip microprocessor,
and in one embodiment the particular microprocessor used was the P8749H type chip
from the Intel Corporation which contains an 8-bit Central Processing Unit, 2K
X8 EPROM Program Memory, 128
x8 RAM Data Memory, 27 I/0 lines, and an 8- bit Timer/Event Counter. Details of the
architecture and use of this chip are described in detail in numerous publications
by the manufacturer, including a manual entitle INTEL MCS-48 FAMILY. OF SINGLE CHIP
MICROCOMPUTERS USER'S MANUAL.
PROGRAM OVERVIEW
[0083] Referring to Figures. 12 through 33, the logic flow charts illustrated therein reveal
the major steps of the program, which is stored in the microprocessor non-volatile
memory, for controlling the operation of the processor. A program listing of the instruction
for the control of the particular instrument being described herein is attached to
this patent application as an EXHIBIT and forms a part thereof.
[0084] The resident firmware that controls the operation of the unit can, for the purposes
of explanation, be divided into four major categories. These are: the foreground task,
the background task, the utility subroutines, and the data tables. It should be noted
that although the word "task" is intermixed throughout this firmware description with
the word "program", indeed no true task structure associated mechanism (i.e. task
switching/scheduling) has been implemented.
[0085] The foreground task has as its responsibilities, hardware and software initialization,
start-up device diagnostics, user interaction (including input error checking and
feedback), drill selection and modification, drill execution, and overall device state
control (e.g. running/paused/idle). This portion of the program performs its duties
by both interacting with the free-running background task to interface with the hardware
environment, the tracks all time dependent functions as well as calling upon the various
subroutines that exist to carry out their predetermined assignments.
[0086] The functions of these subroutines include: reseeding of the pseude-random drill
index, fetching and executing selected drill data from the external ROM (XROM), general
purpose muliplication by ten, binary to decimal conversion, speech processor invocation,
computation of "warm-up" and "cool-down". times, user preparation prompting, crosspage
jump execution, service SVC request flag manipulation (both setting and checking for
completion), and local/remote mode determination. As these routines are called solely
by the foreground program, they can be thought of as an extension thereof which have
been demarcated for the purpose of saving Program Memory as well as to allow for their
independent development/testing.
[0087] The background task, which is functionally described in greater detail hereinbelow,
has as its responsibilities, event timer control, I/O execution/timing control, LED
display refreshing, and keyboard scanning and debouncing.
[0088] The data tables, which are located on a special "page" of Program Memory to maximize
look-up speed and efficiency, supply sythesized speech address and script information,
keyboard matrix translation information, present-to-next state transition data, and
warm-up/cool-down duration ratios.
OVERALL OPERATION
[0089] In operation, the foreground program is activated upon power-up, at which time it
initializes (Figures 12 through 16) both hardware and software environments to a known
condition. A diagnostic test of the device (LED display, XROM interface, clock circuitry,
speech synthesizer ans associated filtersiamplifier/speaker) is then performed. Any
detected failure causes the user to be notified and the device to be powered-off barring
further unpredictable operation. If all is operating properly, the program enters
a loop awaiting either the expiration of a watchdog timer that serves to preserve
battery power if the device is left unattended, or the inputting of drill selection/modification
commands by the user via the front panel mounted keyboard. Once a selected drill is
running, the foreground task retrieves the drill steps from the XROM, formulates the
necessary SVC requests, and passes them to the background task for execution.
[0090] At a frequency of IkHz, an interrupt is generated by the timer/counter circuitry
causing suspension of the foreground program and activation of the background program
to check for outstanding or in progress I/O requests, event timer expiration, keyboard
entry, and updating of the LED displays. Coordination of the two programs is achieved
through the use of the service (SVC) request flags and shared buffers.
[0091] The detection of any event (an expired timer, keystroke, etc.) by the background
task results in the examination of the current machine state by the foreground program
and the subsequent table- driven change to the next appropriate state. Referring to
Figure 17, the four possible machine states are 0 IDLE, I ENTRY, 2 MODIFY, and 3 DRILL,
which together with the three drill state definition of WARM-UP, NORMAL, and COOL-DOWN
and the five entry mode classifications of PROGRAM, MODIFY, DURATION, LAMP and TIMER
serve to keep the foreground program informed at all times of the ongoing activity
as well as the correct next- state progression.
[0092] This entire process is repeated for each step of the active drill. In addition, the
EXECUTE subroutine will not, if Remote Operation has been selected, return to the
caller until detection of a Remote Advance signal from the wireless transmitter/receiver
pair:
Modification of the drill duration, lamp (either individually or all) on-time duration
or inter-lamp pause duration on either an absolute (as entered via the numeric keypad)
or percentage (+/- 5%) basis is handled by the foreground task by the manipulation
of RAM-based timer registers.
INTERRUPT CLOCK
[0093] Referring to Figure 18, the interrupt clock is managed by two routines: the clock
initialization and the interrupt handler. The initialization code sets the clock interrupt
interval and starts the clock. This function is performed only upon power- up/restart.
The clock interrupt routine is called each time an interrupt is generated by the real-time
clock. The interrupt handler immediately (after context switching from foreground
background) reinitializes the clock to allow for the generation of the next clock
pulse. The interrupt handler then passes control to the background program via a call
to the SYSTEM subroutine.
BACKGROUND TASK - EVENT TIMING
[0094] Referring to Figures 19 and 20, once activated by the interrupt handler, the background
program starts its time management duties by checking the SVC control word for an
outstanding 30 second multiple timing request (e.g. drill warm-up duration timer).
If found, an additional check is made to determine if this is an initial or a subsequent
request. In the case of the former, the associated first pass flag is cleared in the
SVC control word, and the .01, 1.0 and 30 second cascaded timers are initialized.
In the case of the latter, the .01, 1.0, and 30 second prescalers are updated (in
modulo-N manner) and a check is made for overall timer expiration. If detected, the
associated request flag is cleared in the SVC control word, signalling to the foreground
program that the event timer has expired and appropriated action should be taken.
BACKGROUND TASK - I/0 CONTROL
[0095] Referring to Figures 19 and 21, the background program then assess what (if any)
I/0 control is required by checking the SVC control word for an outstanding pause,
beep, or lamp request. If one (they are mutually exclusive) is found, an additional
check is made to determine if this is an initial or a subsequent request. In the case
of the former, the associated first pass flag is cleared in the SVC control word and
the .01 second I/0 prescaler is initialized. A further test is made to determine if
the request was for a pause which, although treated in a identical manner up to this
point as a beep or lamp request, requires no actual hardware manipulation and would
free the background task to perform its display and keyboard scanning functions. A
beep or lamp request would instead cause the background task to interface to the appropriate
decoders to turn the requested device on, skipping the display/keyboard scanning function
in this pass. In the case of the latter (subsequent request), the .01 second I/0 prescaler
is updated and checked for expiration. If not yet expired, no further I/0 control
is perfomed, and the background program continues with its display/keyboard duties.
Upon expiration, the associated request flag is cleared in the SVC control word as
a signal to the foreground program that the I/0 is completed. In addition, if the
request was for a beep or lamp, the background program simultaneously interfaces to
the appropriate decoders to turn off the requested device. In any case (pause/beep/lamp),
the background task advances to the display/keyboard scanning function.
BACKGROUND TASK - DISPLAY CONTROL
[0096] Referring to Figure 22, the algorithm for driving the display uses a block of internal
RAM as display registers, with one byte corresponding to each character of the display.
The rapid modifications to the display are made under the control of the microprocessor.
At each periodic interval the CPU quickly turns off the display segment driver, disables
the character currently being displayed, and enables the next character. This sequence
is performed fast enough to ensure that the display characters seem to be on constantly,
with no appearance of flashing or flickering. A global hardware flag is employed as
a "blank all digits" controller, while individual digits may be blanked by the writing
of a special control code into the corresponding display register.
BACKGROUND TASK - KEYBOARD SCANNING
[0097] Referring to Figure 22, as each character of the display is turned on, the same signal
is used to enable one row of the keyboard matrix. Any keys in that row which are being
pressed at the time will pass the signal on to one of several return lines, one corresponding
to each column of the matrix. By reading the state of these control lines and knowing
which row is enabled, it determines which (if any) keys are down. The scanning algorithm
employed requires a key be down for some number of complete display scans to be acknowledged.
Since the device has been designed for "one fin- ' ger" operation, two-key rollever/N-key
lockout has been implemented. When a debounced key has been detected, its encoded
position in the matrix is placed into RAM location "KEYIN". Thereafter the foreground
program need only read this shared location repeatedly to determine when a key has
been pressed. The foreground program then frees the buffer by writing therein a special
release code.
MORE DETAILED EXPLANATION OF FIGURES 12-35
[0098] Referring to Figure 12, the hardware initialization as set forth in the top block
is performed automatically upon power-up reset. The system components in the second
block are then initialized. The third block represents a pause of 500 milliseconds.
The last block on Figure 12 and the top of Figure 13 represents a routine to light
each of the six lamps in turn for 50 milliseconds. After that, the LED displays are
initialized to display a 9, and the speech synthesizer simultaneously voices "nine"
for .5 seconds. The lower section of Figure 13 represents a routine wherein that same
function is repeated for 8, 7, etc. until the digit 0 is reached.
[0099] Referring to Figure 14, the LED displays are then disabled, and the byte at a given
set location in the XRON cartridge is read out, which byte should correspond to a
test byte pattern. If so, the location in XROM is incremented for a second test byte
pattern. If both test patterns match, the logic flow continues to Figure 15. If either
of the test patterns do not match, a speech subroutine is called to vocalize "error",
and the system power is shut off.
[0100] Referring to Figurel5, the top blocks therein represent a routine for proceeding
through fourteen sequential XROM test instructions, after which the remote input is
checked to determine if remote control is indicated. If local control is indicated
by the switch on the control panel, the blink counter is set to 10, and if remote
control is indicated, the blink counter is set to II.
[0101] The routine at the top of Figure 16 causes a blinking of the LED displays for 250
milliseconds and the successive decrementing of the blink counter to 0. At that time,
the speech synthesizer is invoked to voice "START is ready", and the diagnostics are
now completed. The system is then prepared for operation by initializing all flags
and starting the idle counter, which is a power-saving counter to shut the system
off after 10 minutes if no input commands, such as pressing the START key, are received.
[0102] The system then enters the main program loop of Figure 17, which allows an operator
to select a particular drill and set up all selected parameters of the drill, after
which the operator presses the START key. The top of Figure 17 represents the speech.
synthesizer being invoked to enable a key "click" to be heard after each entry, and
the idle counter is reset after each entry.
[0103] The right portion of Figure 17 represents 32 different routines corresponding to
the possible keystrokes, the more complicated of which routines are illustrated in
Figures 28 through 35. The middle left of Figure 17 represents four state routines
of the system, the l, 2 and 3 states of which are illustrated in Figures 25, 26 and
27. The 0 state routine is an idle state, during which the idle counter is running.
The I_ state routine, Figure 25, is a numeric state routine in which a selected numeric
mode is displayed in accordance with each key entry. The 2 state routine, Figure 26,
is a time modify display routine, and the 3 state routine .Figure 27, is a drill running
routine. After completing one of the four state routines, the routine of Figure 17-is
repeated.
[0104] Figure 18 is a high level overview of the background tacks, and represents the background
clock interrupt routine which serves as the entry and exit mechanism to the background
tasks. Upon receipt of the real-time clock interrupt (every millisecond) the present
state of the system is stored in memory for later restoration by selecting alternating
sets of registers. The clock is reloaded with the necessary divisor for subsequent
interrupt generation, and a call is made to the "system" subroutine to perform all
timekeeping functions, keyboard scanning, LED refreshing and any outstanding I/O.
[0105] Upon return from the "system" subroutine, the clock interrupt routine re-seeds the
psudo-random number generator for use as the starting drill index into the XROM, effectively
giving the drill program its random nature.
[0106] The state of the system is then restored to the same state as prior to executing
the clock interrupt routine, and the program then returns from the background tasks
of Figure 18, to the main loop of Figure 17.
[0107] Figures 19 through 24 represent background tasks which are performed approximately
once every millisecond, and the logic flow diagrams. of Figures 19 through 24 are
all interconnected as shown throughout those Figures, such that the actual operation
of the logic flow is dependent entirely on the state of the overall system.
[0108] Referring to Figure 19, if a timer is on, the system proceeds to the timing routine
of Figure 20, arid then returns back to Figure 19 on input B3 to the same logic point
in Figure 19 as when no timer is on. The routine then checks if any pause, beep or
lamp has been requested, and if not, proceeds to the keyboard scanning function and
LED display refresh routine of Figure 22. If a request was present, a check is made
as to whether this a first request, and if not, it proceeds to the Input/Output (I/O)
pass routine of Figure 21. If the request is a first request, a first pass flag of
the requested I/0 is cleared so that subsequent passes merely decrement the associated
timer until time expires. If the I/0 request was for a pause, the routine proceeds
to the keyboard scanning and LED refresh routine of Figure 22, and if not, the data
bus is configured to activate the lamp or beep as requested, and the routine then
exits from the background task routine.
[0109] Figure 20 represents the logic flow diagram for a .01 second counter, a 1.0 second
counter, and a 30 second counter. The microprocessor described herein is an eight
bit machine, and accordingly contiguous bytes are utilized to obtain the necessary
timing resolution. In this routine, if this is a first pass for the timing request,
the first pass flag is cleared and the .01 sec., 1.0 sec., and 30 sec. prescalers
are initialized. The prescalers are then incremented as shown in this routine, which
is fairly standard in the art.
[0110] Figure 21 represents an I/O pass routine for generally checking the state of the
light times, and more particularly on resetting the I/O prescalers, clearing the I/0
request flags, and configuring the data bus to turn off a lamp or beep as requested,
and also is a straight forward routine.
[0111] Figure 22 represents the LED display refresh and keyboard matrix scanner which are
interdependent as described hereinabove. In this routine, the n digit display data
is initially obtained, and the inhibit display flag is then checked. If it is set
(i.e. inhibit requested), the digit segement display data is replaced by a special
"null data" code which forces the LED decoder driver to turn all segments off on the
selected digit. If not set, the address bus, control bus and data bus are configured
to drive the LED digit cathode and keyboard row, and then read and interpret the output
from that row of the keyboard. If a key was depressed, the program proceeds to the
key detect and debouncing routine of Figures 23 and 24, which again is a fairly standard
routine in the art. If a key was depressed, the key row and column are encoded and
a scan flag is set as an indicator that the debounce counter should be reinitialized
upon exit from the background task.
[0112] The routine then proceeds to the key detect and debouncing routine of Figures 23
and 24, depending upon whether the same key had been previously detected as being
pressed on either inputs G3 or E3 as shown. The key detecting and debouncing routine
of Figures 23 and 24 is a fairly standard routine, and accordingly is not described
in detail herein. At the end of the routine of Figure 24, the background routines
of Figures 19 through 24 is exited. As noted hereinabove, these background routines
are repeated every .001 seconds.
[0113] Figures 25, 26 and 27 represent the 01 numeric display routine, the 02 modify display
routine, and the 03 drill running state routines of Figure 17. In the 01 numeric display
routine, the number to be displayed is converted into 3 bit decimal numbers, which
are then decoded and drive the LED displays. In the 02 modify display routine, the
modify byte at the modify index is mulitplied by five, the resultant number is converted
into 3 bit decimal numbers which are then decoded and drive the LED displays. In the
03 drill running state routine, the status of a run flag is checked, if it is not
set to run, the routine exits. In review, each XROM cartridge contains a number of
drills, each of which consists of a number of sequential commands to the end. At the
end, a new random command . (Figure 18) is selected, so the drill starts at some random
state in the middle thereof and then proceeds to the end, after which a new random
command is entered, etc., until the expiration of the drill time period.
[0114] Referring to Figures 28 to 38 which represent the processing of the corresponding
keystrokes, an example will serve to illustrate how the users' re- questes to select,
modify, run, pause, and stop a drill are satisfied.
[0115] Upon system initialization (Figures 12-16) the following default parameters exist:
mode-idle, run flag = running, drill state = warm up, skill level = beginner, drill
duration = I minute, and drill # = I. The user presses the "advanced" key which is
detected, debounced, and passed to the foreground program main loop (Figure 17) by
the background task (Figures 19-24) . A key-jump table "KEYJTB" causes program execution
to resume at "ADV" which merely changes the skill level to "advanced" (=2). It can
readily be seen that all of the skill level modifers - beginner/intermediate/advanced
- cause similar re- assignments of the skill level flag "skill", which serves to change
the SROM index at run time.
[0116] The user then decides to forfeit the warm-up period and does so by pressing the CANCEL
WARM-UP KEY causing the main loop (Figure 17) to direct the program to cancel the
warm-up. (Figure 29, case #19). A test is then made for the valid modes, idle or drill,
which permit the cancellation of the warm-up drill by changing the drill state from
"warm-up" to "normal".
[0117] Next the user decides to select drill #4 from the XROM which he does by first depressing
the "program" key forcing an exit from the main program loop to the "prog" routine
. A test is then made for the valid current mode of "idle", which permits the "prog"
routine to prepare for subsequent entry of the drill # as follows. The minimum and
maximum drill # limits are set, the program mode is changed from "idle" to "entry",
the entry type flag is set to "program", and the temporary digit entry number is set
to 0. The user then enters the digit 4 from the keyboard, causing execution to resume
at the numeric processor "four", which like its counterparts "zero...nine", change
the temporary digit entry number and test for the valid mode of "entry". Numeric entries
of more than one digit would simply cause the previous entry to be adjusted through
multiplication by ten and the result added to the entered digit. In this manner a
maximum of three digits may be processed, with a digit counter incremented upon receipt
of each digit, and the background task displaying the running total (in the example
"004") via the routine in Figure 22.
[0118] The user must then terminate his numeric entry by depressing the "enter" key, forcing
the main loop to pass control to the "enter" program. A test is made for the valid
"entry" mode, which if satisfied causes an additional limit check of the entered value
as per the minimum and maximum numbers mentioned above. Finally, the "enter" program
decides which field (drill/lamp/ duration/timer) is to be replaced with the entered
value based on the flag previously set to "program". The mode is then reset to "idle.",
and the LED inhibit flag set before the main program loop is re-entered. Note that
at any time prior to pressing the "enter" key the user can delete the current numeric
entry by pressing the "clear" key which invokes the "clear" routine to reset the temporary
digit entry number to zero.
[0119] Next the user decides he would like to extend the "on time" of all the lamps in the
selected drill by 10%. This is done by first pressing the "modify" key, causing the
main loop to transfer control to the "modify" routine. This routine checks that the
current mode is "idle" and changes it to "modify". Depressing the "all lamps" key
transfers control to the all lamps routine, which points the modify index to the "all
lamps" field. It can be seen that the time/pause/lamp modifier keys work in similar
manner... manipulating the modify index appropriately. The 10% adjustment can then
be made by successive depressions of the "+5%" key. A test is made for the valid "modify"
mode and, if passed, the "all lamps" field pointed to by the modify index is incremented
twice for later adjustment of the lamp-on times. The "-5%" mechanism is identical,
except that it succesively decrements the addressed field.
[0120] . Continuing our hypothetical example, the user then decides to start the selected
drill (#4) by pressing the "start/stop" key causing the main loop to branch to the
"start" routine. Here a test is made to see if the mode is already set to "drill"
in which case the request would have been interrpreted as "stop" and the mode changed
to "idle". Since it is not, the "start" routine computes the XROM drill pointers based
upon drill # and skill level and adjusts the starting step index based upon the random
number seed. The mode is then changed to "drill" and the run/pause flag is set to
"run". The system commands contained in the XROM are then executed to allow for introductory
speech, instructions, etc. and the user is given an opportunity to position him/herself
by virtue of an audible countdown followed by the words "ready, set, go". The selected
drill is now executed, step by step, as shown in Figure 27. The user may elect to
temporarily suspend the drill by pressing the "pause" key, invoking the "pause" routine
causing the run flag to be toggled from "run" to "pause" (and subsequently back to
"run"), which informs the drill running routine of Figure 27 to forego execution of
the next drill step. The drill then continues running in this manner until stopped
by the user as mentioned above, or upon expiration of the timer as shown in Figure
17.
[0121] While several embodiments and variations of the present invention for a system for
technique and accelerated reaction training are described in detail herein, it should
be apparent that the disclosure and teachings of the present invention will suggest
many alternative designs to those skilled in the art.