Het opschalen van een looplichtje door alleen meer led's aan de microcontroller te hangen is voor zo'n toepassing niet meer toereikend: 8000 led's kunnen gewoon niet meer direct worden aangesloten op een microcontroller en ook de 8001 draden en 400 meter afstand die daar bij komen kijken vormen een uitdaging.
Om die problemen op te lossen, is OptiTrainer opgebouwd uit 80 losse modules van 5 meter lengte waar 100 led's in zitten die via twee RS485-bussen aangestuurd worden vanuit een centrale server. Door de 400 meter lengte op te splitsen in twee stukken van 200 meter, kon de datarate op de RS485-bus verdubbeld worden. Ieder segment van 5 meter bestaat verder uit twintig modules die in elkaar haken waarbij de eerste module voorzien is van een microcontroller die alle led's op die module kan aansturen. Door deze korte modules kan het systeem niet alleen rechtuit maar ook in bochten worden gelegd. Deze architectuur is weergegeven in figuur 1.
De interface van OptiTrainer is een website waarmee trainingssets worden gekozen en pacers worden gestart. Deze website breekt de gekozen trainingsset vervolgens op in verschillende elementen (zoals 4 x 100 meter of 150 meter op 9 km/h gevolgd door 50 meter op 12 km/h) en stuurt die informatie in JSON-formaat door optiserver.
Optiserver rekent real-time uit wanneer welke led welke kleur moet krijgen en rendert alle led's naar een interne framebuffer. Daarna wordt deze framebuffer via verschillende backends geconverteerd naar diverse output systemen, zoals een GUI voor test- en debugdoeleinden en een dual RS485 backend waaraan de ledmodules gekoppeld zijn.
De backend die de RS485-communicatie verzorgt, vertaalt het framebuffer dataformaat naar een zeer compact formaat dat beschrijft welke led welke kleur moet krijgen. Verder is deze backend speciaal geschreven voor een zo hoog mogelijke datarate met zo laag mogelijke latency om aan de real-time latency eisen van het systeem te voldoen.
De 80 nodes luisteren continu op de RS485-bus naar data die relevant is voor het segment dat zij beheren. De data die voor hen relevant zijn, worden vervolgens omgezet in een kleine interne framebuffer voor dat segment, waarna de node de framebuffer via SPI verstuurt naar de schuifregisters die de leddrivers aansturen.
Met OptiTrainer kunnen nu al duurlopen en trainingssets voor individuen en groepen afgewerkt worden, maar er zijn nog veel meer uitbreidingen denkbaar, zoals andere trainingsvormen en koppelingen met sensoren voor hartslag of stappentellers.
De ontwikkelaars bij Metatronics hopen dat sporters en coaches met dit systeem trainingen leuker en effectiever kunnen maken zodat dit XXL looplichtje uiteindelijk zal zorgen voor XXL prestaties!
OptiTrainer is ontwikkeld met subsidies van Agentschap NL, Gemeente Eindhoven, Sportcomplex Eindhoven Noord en Zwemcentrum De Tongelreep.
De behuizing van OptiTrainer is ontwikkeld in samenwerking met ACE ingenieursbureau.
Admar Schoonen, Metatronics
.