From 150ce61f9f8d8c013f2fca424ec2976c3582d403 Mon Sep 17 00:00:00 2001 From: Fisch Date: Sun, 18 Jun 2023 02:09:41 +0200 Subject: [PATCH] modify trip measurement --- src/hoverboard-esc-serial-comm.cpp | 12 +++++++++--- src/hoverboard-esc-serial-comm.h | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/hoverboard-esc-serial-comm.cpp b/src/hoverboard-esc-serial-comm.cpp index 3f01476..5c6e894 100644 --- a/src/hoverboard-esc-serial-comm.cpp +++ b/src/hoverboard-esc-serial-comm.cpp @@ -37,14 +37,13 @@ bool ESCSerialComm::update(unsigned long loopmillis) //returns true if something #define TRIP_UPDATE_INTERVAL 100 if ( loopmillis > last_update_trip+TRIP_UPDATE_INTERVAL) { unsigned long trip_update_interval_real=loopmillis-last_update_trip; - last_update_trip=loopmillis; + last_update_trip=loopmillis; //double _meanRPM=(-Feedback.speedL_meas+Feedback.speedR_meas)/2.0; double _meanRPM=(getFeedback_speedL_meas()+getFeedback_speedR_meas())/2.0; meanSpeedms=_meanRPM*wheelcircumference/60.0; // Units: 1/min * m / 60s - trip+=abs(meanSpeedms)* ((trip_update_interval_real)/1000.0); + trip+=abs(meanSpeedms)* ((trip_update_interval_real)/1000.0); - //mah consumed currentConsumed += (Motorparams.filtered_curL+Motorparams.filtered_curR)* (trip_update_interval_real/1000.0)/3600.0; //amp hours } @@ -309,4 +308,11 @@ unsigned long ESCSerialComm::getFeedbackInterval() { bool ESCSerialComm::getControllerConnected() { return controller_connected; +} + +float ESCSerialComm::getWheelspeed_L() { + return getFeedback_speedL_meas()*wheelcircumference/60.0; // Units: 1/min * m / 60s +} +float ESCSerialComm::getWheelspeed_R() { + return getFeedback_speedR_meas()*wheelcircumference/60.0; // Units: 1/min * m / 60s } \ No newline at end of file diff --git a/src/hoverboard-esc-serial-comm.h b/src/hoverboard-esc-serial-comm.h index 06b1f5f..fe16b43 100644 --- a/src/hoverboard-esc-serial-comm.h +++ b/src/hoverboard-esc-serial-comm.h @@ -109,6 +109,11 @@ class ESCSerialComm void resetStatistics(); + float getWheelspeed_L(); + float getWheelspeed_R(); + + + private: long _millis_lastinput; //declare private variable @@ -161,6 +166,8 @@ class ESCSerialComm float filterMedian(int16_t* values); + + }; #endif