ti bisogna il phaserunner
Dependencies: mbed PID mbed-rtos
Diff: Peripherien/Regler.h
- 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 +