Twentse studenten stoeien met 20-Sim

Author:

Marcel Groothuis is promovendus bij de vakgroep Regeltechniek van de Universiteit Twente. Hij houdt zich bezig met alle aspecten van realtime besturingssystemen en de toepassing ervan in embedded. Als vaste begeleider van het mechatronicapracticum is hij verantwoordelijk voor de daar toegepaste hardware en software.

Reading time: 5 minutes

In het mechatronicapracticum van de Universiteit Twente leren studenten hoe ze met automatische codegeneratie in korte tijd een werkende machinebesturing kunnen realiseren. Daarbij maken ze gebruik van het 20-Sim-modelleerpakket en binnenkort ook van de 4C-uitbreiding, beide ontwikkeld door Controllab Products uit Enschede. UT-promovendus en practicumbegeleider Marcel Groothuis vertelt over de ervaringen.

De vakgroep Regeltechniek van de Universiteit Twente werkt al meer dan twintig jaar aan het ontwerp en de besturing van mechatronische systemen. In het mechatronicapracticum probeert de UT de opgedane ervaring over te brengen op tweedejaarsstudenten. Het doel is om de kennis en vaardigheden die zij hebben opgedaan in vakken als Dynamische Systemen, Mechanica, Meettechniek, Regeltechniek en Transductietechniek te integreren in één praktijkcursus van twee weken.

De studenten krijgen de opdracht om een mechanisch systeem te ontwerpen dat is voorzien van sensoren, actuatoren en een embedded bord voor de aansturing. Het ontwerp moet ten minste één transducent bevatten. Dat is een component die tegelijk als actuator en als sensor fungeert. Als ze dat voor elkaar hebben, moeten ze de werking van hun ontwerp aantonen door een prototype te bouwen.

De twee weken die voor het practicum beschikbaar zijn, laten weinig ruimte voor het leren van nieuwe vaardigheden. We proberen de cursus daarom zo in te richten dat de studenten deze met een minimum aan onderricht kunnen doorlopen. De meeste deelnemers hebben nog geen programmeerervaring. De software die ze gebruiken, mag dan ook geen bijzondere voorkennis vereisen. Wij hebben gekozen voor 20-Sim van Controllab Products. Dit simulatiepakket is laagdrempelig en kan automatisch code genereren voor toepassing op embedded systemen.

Golfslagbad

De hardware voor het practicum bestaat uit diverse elektrische onderdelen, zoals versterkers, speakers en de kop van een harde schijf. Voor de mechanische onderdelen is er meccano beschikbaar. De besturing doen we met een ADSP-bord. We zijn enkele jaren geleden een ADSP-21992 van Analog Devices gaan gebruiken, omdat dit toen een van de goedkoopste oplossingen was. We doen dit practicum met tachtig studenten, en dan gaat er nog wel eens wat stuk.

Het bord bevat AD- en DA-omzetters, een encoder en een Pulse Width Modulation (PWM)-uitgang voor de verbinding met de vermogenselektronica. De rekeneenheid bestaat uit een 160 MHz DSP. Deze processor draait zonder besturingssysteem. De code die uit 20-Sim komt rollen, gaat rechtstreeks naar de ADSP. Aanzetten is starten en uitzetten is stoppen.

Het softwarepakket 20-Sim vormt het hart van het practicum. Met dit gereedschap kunnen studenten eenvoudig een dynamisch model maken van het systeem dat ze hebben ontworpen. Door simulaties van dit model kunnen ze nagaan of het gekozen werkingsprincipe ook daadwerkelijk klopt. Daarnaast kunnen ze in het pakket een besturing ontwerpen en via simulatie testen of deze naar behoren functioneert.

In het mechatronicapracticum bouwden de UT-studenten onder meer een plotter aangedreven door speakers. Foto: Job van Amerongen

Het laatste is een cruciaal onderdeel van het practicum. De eerste week sluiten we af met een presentatie. De studenten moeten dan uitleggen wat ze hebben ontworpen en met een simulatie laten zien hoe het functioneert. Aan het 20-Sim-model is direct te zien of ze het in de vingers hebben of niet. Pas als ze goedkeuring hebben gekregen van de practicumleiding, mogen ze gaan bouwen. Zodra de hardware klaar is, kunnen ze vanuit 20-Sim code genereren voor de besturing en testen of alles werkt. De resultaten zijn opzienbarend. Van tevoren is niet te voorspellen wat de studenten gaan bouwen. Zo hebben ze ooit een V6-motor gemaakt met zes harde schijven, een mini-Segway en een golfslagbad.

De codegeneratie is hierbij zeer waardevol. Zonder veel hulp van de begeleiders zijn de meeste studenten in staat om vanuit 20-Sim code te genereren en een werkend prototype te bouwen. 20-Sim is ook voor docenten een prettig softwarepakket. Het maakt bij de codegeneratie gebruik van templates die eenvoudig zijn aan te passen aan de gekozen hardware. We hoeven maar één keer een goede template te maken, waarna we deze aan alle studenten kunnen uitdelen.

De boel opblazen

Er zijn ook nadelen. In de praktijk liepen we tegen een aantal beperkingen aan van het ADSP-bord. Door het ontbreken van een besturingssysteem, zijn er slechts beperkte mogelijkheden om data te loggen of parameters te veranderen. Iedere keer moet je opnieuw code genereren en exporteren naar het bord. Dit is weinig flexibel en tijdrovend. Bovendien konden we niet voldoen aan wensen van studenten met programmeerervaring die zelf code wilden toevoegen.

Daarom zijn we op zoek gegaan naar andere mogelijkheden. Bij die speurtocht hebben we veel hulp gekregen van Controllab. Daar bleken ze te werken aan nieuwe software voor de ondersteuning van codegeneratie. Dit zogeheten 4C-gereedschap maakt het mogelijk om C-code in te zetten op een doelsysteem. Als demonstratietarget gebruikt Controllab het Arm9-bord van Technologic Systems. Dit bevat een Arm-processor waarop realtime Linux draait. Daarnaast zit er een FPGA op die flexibel is te configureren om diverse I/O-taken uit te voeren. Daarmee biedt het veel meer mogelijkheden voor dezelfde lage kosten als ons oude ADSP-bordje.

De 4C-software is als het ware een commandocentrum. Je kunt C-code inladen en exporteren naar een target. Ook kun je allerhande taken uitvoeren zoals starten en stoppen, variabelen monitoren en parameters veranderen. Daarnaast kun je eenvoudig data loggen en exporteren.

Met behulp van het 20-Sim-gereedschap leren studenten van de Universiteit Twente hoe ze in korte tijd een werkende machinebesturing kunnen realiseren. Foto: Job van Amerongen

Een bijzonder waardevolle eigenschap van 4C is de mogelijkheid om I/O te koppelen aan in- en uitgangen van het model. In de praktijk maak je een model van een machine inclusief besturing om te testen of het werkt. Als je daar dan code van wilt genereren, moet je de besturing eerst opslaan als een los model. Daarin moet je dan aangeven hoe de in- en uitgangen zijn verbonden met de hardware-I/O. Daarna kun je pas code genereren. Dit is een belangrijke oorzaak van problemen. Vaak vergeten studenten wijzigingen in het model door te voeren in de besturing of wijzigt de hardware-I/O. In het beste geval werkt de gegenereerde code dan niet meer en in het slechtste geval blaas je de boel op. Met 4C is deze omweg niet meer nodig. Je kunt in 20-Sim van een compleet model de besturing selecteren en daar direct code van genereren. 4C importeert deze code en herkent de in- en uitgangen. Vervolgens biedt de software voor het gekozen target een lijst met hardware-I/O om te verbinden met de code.

Onze verwachtingen van de nieuwe hardware en software zijn hooggespannen. De prijs van minder dan 500 euro per groep studenten is zeer aantrekkelijk. In maart starten we met een nieuw practicum waarbij we voor het eerst de Arm-bordjes gaan gebruiken in combinatie met 4C. We zijn nu bezig met het testen van de combinatie en dat gaat vlekkeloos. Dat wil zeggen, voor de mogelijkheden die wij hebben voorzien. Gegarandeerd dat er weer studenten bij zitten die het onmogelijke bouwen.