Vandaag is de belangrijkste "live-test" goed verlopen; ons idee werkt dus, en daarom bij deze maar een eigen topic
De directe aanleiding om zelf een traction control project te ontwerpen en bouwen is de motorupgrade die m'n MR2 binnenkort krijgt. MR2's zijn listige auto's en met 400pk of meer al helemaal. Oorspronkelijk wilde ik een RaceLogic traction control voor m'n project kopen, maar die apparaten zijn erg duur, en bovendien leek het me een leuk project om zelf te doen (hier heb ik tenslotte voor gestudeerd

Helaas bleek dat, hoewel de werking in principe simpel is, er nog wel wat aan onderdeeltjes bij komt kijken om dat ook allemaal daadwerkelijk correct te laten werken

Het systeem bestaat grofweg uit 3 delen:
- Een deel dat de ABS sensoren (die de rotatiesnelheid van de individuele wielen meten) uitleest. Dit noemen we het VSS (vehicle speed sensors) subsysteem, en het geeft enkel inputs aan de controller.
- Een deel dat interfacet met de injectors. Dit noemen we het EFI subsysteem (electronic fuel injection). Het EFI systeem heeft zowel inputs (injector timing, waarmee dingen als RPM en duty cycle berekend kunnen worden) als outputs (injector cut, om het vermogen van de motor te limiteren en zo tractie te herwinnen, of een toerenbegrenzer te implementeren).
- Een deel logica dat de traction control implementeert met behulp van de VSS en EFI systemen. Dit subsysteem heeft de toepasselijke naam TRC. Het TRC systeem houdt de wielsnelheden die het VSS systeem aangeeft in de gaten, en wanneer het slip detecteert, kan het opdracht geven aan het EFI systeem om een bepaald injector cut patroon te gaan volgen.
Eind 2008 was het VSS systeem reeds geïmplementeerd en getest op de auto. Daartoe hebben we ingehaakt op de kabels van de ABS sensors bij de ABS ECU:

... en het signaal eerst bekeken met een oscilloscoop:
[youtube]0o7QUnvqgQw[/youtube]
... om vervolgens de passende onderdelen op het bordje te plaatsen zodat we de gewenste maximale wielsnelheid kunnen detecteren. Het bordje kan op mijn MR2 tot ca. 260 km/h meten, met een nauwkeurigheid van 1 km/h. De nauwkeurigheid van een enkele sample is groter, maar omdat de samples vanwege ruis op de kabel onderling ietwat kunnen verschillen, pakken we het gemiddelde van een paar samples.
Daarna is het lang stil gebleven rond het project - in 2009 hebben we er niet veel aan gedaan, maar begin dit jaar zijn we weer verder gegaan met de EFI kant van het systeem. Dit is het meest kritische deel, omdat we, als we het niet goed doen, we in principe ons bordje, de ECU, of beide kunnen laten doorbranden. Daarom wilde ik dit ook op m'n huidige motor testen en niet op de dure nieuwe motor die erin komt

... heb ik het vandaag voor het eerst "live" getest:

En jawel, de motor startte nog met het bordje eraan, en liep verder normaal. Ik heb dan ook nog geen injector pulsen onderbroken; dat is de volgende stap (ik ga er een soft-revlimit mee implementeren). Het test-LEDje op injectorkanaal #1, dat we bij de droogtesten gebruikten, knipperde dan ook vrolijk mee met de injectorpulsen die de stock ECU gaf:
[youtube]13cXRpvSXC0[/youtube]
Met de laptop aangesloten zien we de debugging data voorbij komen in een terminal:
[youtube]76IR0c53LA8[/youtube]
Zoals je ziet worden alle vier de injectors netjes gedetecteerd. Eentje (de eerste die het bordje detecteert) wordt gebruikt als referentie om het toerental te berekenen. Drie van de zes kanalen hebben ook de mogelijkheid om duty cycle te bepalen; als er minimaal eentje van wordt aangesloten heb je dus ook injector duty cycle (is niet verplicht voor de werking van de TRC, maar kan interessant zijn om te weten). Het maakt verder niet uit welke kanalen gebruikt worden of in welke volgorde ze worden aangesloten; het EFI systeem detecteert vanzelf de ontstekingsvolgorde.
De bedoeling is om de injector cut nog te testen met het huidige ontwikkelbordje. Als dat ook goed gaat (en daar heb ik na de test vandaag alle vertrouwen in; het cutten hebben we namelijk ook al lang en breed drooggetest) dan zijn de volgende stappen:
- Een PCB ontwerpen en laten maken.
- Een geschikte behuizing vinden.
- Een geschikte connector en stekker vinden die op het PCB en in de behuizing past, zodat we zelf een stukje kabelboom kunnen maken.
Het systeem is generiek en moet in principe werken op iedere motor met sequentiële poort-injectie. Directe injectie (zoals diesels en sommige moderne benzinemotoren) wordt niet ondersteund, omdat bij dat systeem meerdere injectorpulsen per cycle worden gebruikt - ons systeem kan individuele pulsen blokkeren, maar weet van zo'n groep pulsen niet welke bij elkaar horen, en dus zou er kans op arm lopen ontstaan bij die systemen.
Als alles getest is en we een mooie behuizing met nette connector en kabelboom hebben, willen we ons systeem dus ook voor anderen gaan maken, en dan uiteraard voor een stuk minder dan wat een RaceLogic set kost
Kunnen we misschien ook wat MR2's mee sparen als het vaker zulk weer wordt als de afgelopen maanden
De specs zijn/worden:
- 20 MHz 8-bit RISC microcontroller.
- 1 t/m 6 cilinder sequential EFI support.
- Magnetic reluctor (passive / 2-wire zoals de MR2 gebruikt) en Hall-effect (active / 3-4-wire, zoals in veel moderne auto's) ABS sensor support.
- Configureerbare niveaus van antislip-vermogensreductie.
- Windows software voor configuratie, status en logging.
- ABS sensor calibratie.
Maar er zijn al enkele ideeën voor uitbreidingen:
1. Een losse adjuster (klein kastje dat je ergens op je dash monteert) die op de seriële poort wordt aangesloten zodat je ook zonder laptop makkelijk van antislip-niveau kunt wisselen.
2. Launch control d.m.v. 2-step revlimiter (maken we de PCB direct al geschikt voor, da's namelijk maar 1 simpele extra input voor een switch onder je koppeling).
3. Extra ADC-kanalen voor meer logging.
4. PWM output voor aansturing van servo's.
5. Combinatie van 3 en 4 om een boost controller te implementeren (boost sensor input en solenoid klep output).
6. Variabele revlimiter en/of boost control aan de hand van een input kanaal (zoals koelvloeistoftemperatuur).
Vanaf nu zal ik de voortgang hier posten en niet meer in m'n eigen projecttopic.

