FietsCross Klok en Administratie
[FietsCross Clock and Administration]

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:]

Het Programma [The Program]

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 Externe Display [The External Display]

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).]