ti bisogna il phaserunner

Dependencies:   mbed PID mbed-rtos

Revision:
7:15e6fc689368
Child:
8:1655d27152e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Peripherien/Regler.h	Thu May 16 20:42:39 2019 +0000
@@ -0,0 +1,92 @@
+/**
+ * Steuert die 4 Phaserunner
+ */
+
+#ifndef PA_REGLER_H
+#define PA_REGLER_H
+
+#include "Phaserunner.h"
+#include "Encoder.h"
+
+class Regler{
+private:
+    //Alle Phaserunner
+    Phaserunner& vorderrad;
+    Phaserunner& hinterrad;
+    Phaserunner& linkspedal;
+    Phaserunner& rechtspedal;
+    
+    //Encoder
+    Encoder&     encoder;
+
+    //Drehmomentverhältnis
+    uint8_t torqueRatio;
+
+    //Verhältnis des Gegenmomentes
+    uint8_t recupRatio;
+    
+    //Zeitliche Berechnung der Werte
+    void ReglerCalculate();
+    
+    // Ticker
+    Ticker ticker;
+    
+    const static float PI = 3.14159265;
+
+
+public:
+    /**
+     * Erstellt einen Regler für alle Phaserunner
+     * @param vorderrad
+     * @param hinterrad
+     * @param linkspedal
+     * @param rechtspedal
+     * @param encoder
+     */
+    Regler(Phaserunner& vorderrad, Phaserunner& hinterrad, Phaserunner& linkspedal, Phaserunner& rechtspedal, Encoder& encoder);
+
+    /**
+     * Regelt die Phaserunner auf eine bestimmte Geschwindigkeit.
+     * @param speed Geschwindigkeit in km/h
+     */
+    void setSpeed(uint8_t speed);
+
+    /**
+     * Setzt das Drehmomentverhältnis zwischen Vorderrad und Hinterrad.
+     * @param torqueRatio: Drehmoment des Hinterrades in %. Das Drehmoment auf dem Vorderrad ist dann 100% - torqueRatio.
+     */
+    void setTorqueProportion(uint8_t torqueRatio);
+
+    /**
+     * Setzt das Verhältnis des Gegenmomentes zwischen Vorderrad und Hinterrad.
+     * @param torqueRatio: Gegenmoment des Hinterrades in %. Das Gegenmoment auf dem Vorderrad ist dann 100% - torqueRatio.
+     */
+    void setRecuperationProportion(uint8_t recupRatio);
+
+    /**
+     * Setzt das Drehmoment auf beide Phaserunner.
+     * @param torque Drehmoment in Prozent
+     */
+    void setTorqueMotors(uint8_t torque);
+
+    /**
+     * Setzt das Drehmoment auf beide Phaserunner.
+     * @param torque Drehmoment in Prozent
+     */
+    void setTorquePedals(uint8_t torque);
+
+    /**
+     * Setzt die Rekuperation der Motoren
+     * @param recuperation
+     */
+    void setRecuperationMotors(uint8_t recuperation);
+
+    /**
+     * Setzt die Rekuperation der Pedale
+     * @param recuperation
+     */
+    void setRecuperationPedals(uint8_t recuperation);
+};
+
+#endif //PA_REGLER_H
+