[gelöst] Servo "Smooth" verfahren

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

[gelöst] Servo "Smooth" verfahren

Beitrag von fliegermichl »

Hallo zusammen,

ich bastel derzeit an einem kleinen Roboter. Die ServoSteuerung ist auch soweit fertig und funktioniert.
Jetzt möchte ich aber, daß die Servos nicht einfach nur von ihrer aktuellen Position zur Zielposition fahren, sondern dieses mit
einer Rampe beginnt und endet.
Ich habe eine Klasse TServo mit der Methode SetAbsolutePosition(pcnt : Single);
Dabei sind Wegbegrenzungen, Reverse und Trim bereits berücksichtigt.
pcnt=0 = Endausschlag eine Seite, pcnt=100 = Endausschlag andere Seite.

Ich bräuchte jetzt eine Funktion, die mir die Rampen berechnet. Wenn ich eine Parabelfunktion nehme, dann
wird der zurückzulegende Weg aber immer in der gleichen Zeit abgefahren.
Zuletzt geändert von fliegermichl am Mo 27. Apr 2020, 11:58, insgesamt 1-mal geändert.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Servo "Smooth" verfahren

Beitrag von fliegermichl »

Ich hab es gefunden. Man muss nur mit den richtigen Suchbegriffen googeln "servo easing"

Mathias
Beiträge: 4904
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Servo "Smooth" verfahren

Beitrag von Mathias »

Ich habe eine Klasse TServo mit der Methode SetAbsolutePosition(pcnt : Single);
Dabei sind Wegbegrenzungen, Reverse und Trim bereits berücksichtigt.
pcnt=0 = Endausschlag eine Seite, pcnt=100 = Endausschlag andere Seite.

Da wären Sourcen interessant.

Wen du eine fertige Servo-Steuerung hast, wäre dies einen Beitrag im AVR Wiki Tutorial wert. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: [gelöst] Servo "Smooth" verfahren

Beitrag von fliegermichl »

Sourcen stelle ich gerne zur Verfügung.
Ich habe das aber nicht mit dem AVR umgesetzt.

Ich habe diesen 12 Bit 16 Channel I2C Servo Treiber für den Raspberry Pi verwendet.

Mathias
Beiträge: 4904
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Servo "Smooth" verfahren

Beitrag von Mathias »

Danke,

Diese Karte kenne ich, die wird über I²C angesteuert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 598
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: [gelöst] Servo "Smooth" verfahren

Beitrag von fliegermichl »

Weisst du zufällig einen Schrittmotortreiber, der 2,8V Schrittmotoren ansteuern kann? Da konnte ich ausser in den USA nichts finden und USA fällt aus wegen exorbitant hoher Versandkosten.

Mathias
Beiträge: 4904
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Servo "Smooth" verfahren

Beitrag von Mathias »

Gucke mal unter H-Brücke.
Wieso von usa, gucke mal bei freundlichen Chinesen nach.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten