In 1993 vroeg de technische man van FietsCross Club F.C.C. De Heideclub of het mogelijk
was om de gereden tijden met de computer te meten en te laten zien. Toen ben ik
begonnen met de voorloper van het FietsCross programma, LPT Timer.
[In 1993, the technician of the BMX racing club F.C.C. De Heideclub asked whether it
was possible to measure the racing times with a computer and also to display
them. I started working on the predecessor of the FietsCross program, LPT Timer.]
Dit was een simpel DOS programma en omdat muisbesturing was toch wel fijn is
(Windows 95 bestond nog niet!), heb ik een nieuw programma in het Turbo Vision
framework van Borland gemaakt. Dit programma, FietsCross, heeft de volgende
onderdelen:
[This was a simple DOS program and because mouse control would be really
useful (Windows 95 did not exist yet!), I wrote a new program in the Borland's
Turbo Vision framework. This program, FietsCross, has the following
features:]
FietsCross is geschreven in het jarenlang populaire Turbo Vision van Borland.
Inmiddels is FietsCross versie 4.1.
[FietsCross has been written in the popular Turbo Vision environment from
Borland. Currently FietsCross is at version 4.1.]
Binnen het programma is een Status-window met daarin het geheugengebruik en de
status van de gekozen printer-poort. Ook is er een klok met de actuele tijd
(Hierbij is een truc gebruikt om analoge wijzers op een tekst scherm te
tonen.)
[Within the program, there is a Status-window with the memory usage and the
status of the chosen printer-port. Also a clock with actual wall time is
present (A trick is used to display the analog hands of the clock on text
screen.)]
Binnen FietsCross bestaan er tien timers (in tegenstelling tot het eerder LPT Timer, die er maar één had).
Niet-gebruikte timers kunnen worden verborgen. Ook kunnen de timers met de hand
worden bestuurd.
[FietsCross contains ten timers (as opposed to its predecessor LPT Timer, that had only one). Unused timers can be hidden. The timers can also be controlled by hand.]
Interessant wordt het natuurlijk door de timers met de printer-poort aan te
sturen. Omdat een standaard printer-poort maar vijf ingangen heeft, zijn de
functies per pin instelbaar.
[It gets interesting when the timers are controlled by the printer-port.
Because a standard printer-port only has five inputs, the functions are
assignable per pin.]
Aan de printer-poort ingangen zitten sensoren (zoals lichtsluizen), die het
passeren van een rijder detecteren en dan de bijbehorende timer(s)
stoppen.
[The printer-port inputs are connected to sensors (like light beams), that
detect the passing of a rider and stop the associated timer(s).]
Naast de timers zit er ook een gegevensbank in FietsCross. Hierin kunnen alle
rijders worden opgeslagen. Tijdens de wedstrijd komen de gereden tijd hier ook
bij door een rijder aan een meting te koppelen. Na de wedstrijd is een
wedstrijdoverzicht meteen beschikbaar om uit te printen.
[Besides the timers, there is also a database in FietsCross. This is where
all the riders are stored. During the race, times are added to each rider.
After the race, an overview is immediately available for printing.]
Als een timer gestopt wordt, is de meting beschikbaar om aan een rijder in de
gegevensbank te koppelen.
[When a timer is stopped, the measurement is available to add to a rider in
the database.]
Op de printer-poort kan ook een Extern Display
worden aangesloten. Op de uitgangen van de printer-poort staat het
(gemultiplexte) signaal om acht 7-segmenten displays aan te sturen. Vanuit
FietsCross kan elke specifieke timer op dit Externe Display getoond worden. Ook
is er een test-mode om alle segmenten afzonderlijk te kunnen testen.
[The printer-port can also be used to connect an External Display to. On the outputs of the
printer-port is the multiplexed signal to control eight 7-segment displays.
From within FietsCross, any timer can be displayed on the External Display.
There is also a test-mode to test each individual segment.]
Naast de timers en het Externe Display kan er ook een baanselectie en een alarm
aangestuurd worden. Op de startheuvel hangt boven elke baan een lamp en
halverwege de startheuvel zit een grote knop. Als er op die knop gedrukt wordt,
gaat een willekeurige lamp branden. Op deze manier hoeven de rijders niet meer
te loten wie waar moet starten, maar gebeurt dit geheel gecomputeriseerd.
[Besides the timers and the External Display, there is also a starting
position selection and an alarm. On the starting hill is a lamp above each
starting position and halfway the hill is a big button. If the button is
pushed, a lamp is randomly chosen to switch on. This way, the riders don't have
to participate in a lottery anymore, but this is all automated.]
Het Alarm is een klok, die terugloopt. Als hij 0 bereikt, kan de computer iets
aanzetten, bijvoorbeeld een geluidssignaal.
[The Alarm is a clock that counts down. When it reaches 0, the computer can
switch something on, like a sound signal.]
Het eerste Externe Display werkte met vijf gloeilampjes per segment. De
aansturing was een eenvoudig shift-register met uitgangstransistoren. Alle
intelligentie zat in de FietsCross PC applicatie.
[The first External Display just had five light bulbs per segment. The
signals were demultiplexed by simple shift-registers with output transistors.
All intelligence was in the FietsCross PC application.]
Dit display had toch wel het nadeel dat het moeilijk leesbaar was als de zon er
op scheen. We hebben toen besloten een nieuw display te maken.
[The disadvantage of this display was that it was hard to read in the
sunshine. We then decided to make a new display.]
De nieuwe 7-segmenten displays waren lastiger aan te sturen omdat er specifieke
pulsen op de juiste ingangen gezet moesten worden. Om dit de PC applicatie te
laten doen zou waarschijnlijk lastig worden, omdat het een non-multitasking
applicatie voor DOS is. Hierom heb ik een speciale display controller gebouwd
met een microcontroller, die alle intelligentie bevat.
[The new 7-segment displays were a bit harder to control, because it needed
specifically timed pulses on its specific inputs. To let the PC application do
this timing would become a burden, because it was still a non-multitasking DOS
program. Therefore, I made a special display controller with a microcontroller
with all the necessary intelligence for it.]
De signalen vanuit de printer-poort zijn nog steeds hetzelfde als die voor het
oude display, maar nu moet de display controller de juiste aanstuur signalen en
de juiste timing bepalen voor alle 8x7 segmenten. Ook worden te snel wijzigende
cijfers automatisch verborgen totdat ze weer stabiel zijn.
[The signals from the printer-port were still the same as with the old
display, but now the display controller had to derive the proper signals and
timing for all the 8x7 segments. Also fast changing segments are blanked out
until they are stable again.]
Hier zie je de display controller met drie van de acht cijfers. Op de tafel
ligt ook de uitgeprinte firmware code, die op de microcontroller draait.
[This is the display controller with three of the eight displays. On the
table is also the printed firmware code that runs on the microcontroller.]
Het systeem in gebruik. Links bij de fietscross wedstrijd, rechts bij een
hardloop estafette.
[The system in use. Left at a BMX race, right at a running relay
race.]
In het rode busje zit de computer en daar gaan de draden van de sensoren
(valhek en finish) heen. Ook het Externe Display wordt van daaruit aangestuurd.
Vlak voor de rijders van de volgende manche zit de knop, waarmee de baan
geselecteerd wordt. De lichten van de baanselectie hangen boven de banen (niet
zichtbaar in de foto).
[In the red van is the computer where all the wires from the sensors
(drop gate and finish) are connected. Also the External Display gets its
signals from there. Just in front of the riders of the next race is a button
that randomly selects the next starting position. The indication lights are
above the starting positions (not visible in the photograph).]