Stap 8: controle
Nu dat je je delta robot kunt u laten doen iets.
Zoals ik al eerder zei zul je waarschijnlijk uw eigen voorkeuren over de vraag welke microcontroller wilt u gebruiken; in mijn geval was het een STM32 Discovery boord.
Het bijgevoegde blokdiagram toont de verschillende modules ik heb gemaakt voor dit project en die randapparatuur die zij controleren.
Ik denk dat de verschillende modules vrij zelf toelichting en hopelijk u ze goed vindt commentaar zijn als u probeert om hen te volgen.
Misschien wel is de meest interessante module de robot-controlemodule (robot.c). De code vertaalt een X, Y, Z in drie bijbehorende servo hoeken coördineren.
De bron van de XYZ-coördinaten kan worden
Een computer via RS232/USB.
Een joystick, Wii-controller of Kinect-systeem (dat zou wel heel gaaf).
Een vaste volgorde van posities.
Een berekende positie gebaseerd op enkele andere input (bijvoorbeeld klok (mijn geval), camera).
In de code vindt u een aantal parameters die worden gebruikt voor de berekeningen. Het maakt niet uit welke lineaire meetsysteem u gebruiken zolang u stroken. Hoeken zijn in radialen.
Lagere arm lengte - de lengte van de servo control hoorn vanuit het midden naar het midden van de twee bal gezamenlijke hengsten.
Bovenarm lengte - de lengte tussen de middelpunten van de twee bal gezamenlijke sockets.
Basis offset: de afstand van het centrum van de basis naar een punt direct onder de servo hoorn-centrum.
Einde actuator offset: de afstand van het centrum van de bedieningssleutel einde de het midden van de gewrichten van de twee bal op elke arm.
De XYZ-coördinaat wordt gedefinieerd als
X de afstand naar servo 1 vanaf het midden van de base.
Y de afstand loodrecht op X in het vliegtuig van de basis.
Hiermee centreert u Z de afstand vanaf het vlak gevormd door de drie servo-hoorn.
Er is één meer ding; het is niet mogelijk om de onderste takken zodanig dat het neutrale punt van elke servo correspondeert met precies een hoek van 90 graden. U moet voeren van een kalibratie-parameter voor elk servo. In mijn geval ik gebruikte drie trimpots en een hoek van de kalibratie op basis van de waarde van de ADC gemeten voor elke berekend.