From 8d180debf7633d3a8ff86a588c00b199c0876225 Mon Sep 17 00:00:00 2001 From: Fisch Date: Fri, 2 Jun 2023 19:17:45 +0200 Subject: [PATCH] fix wheel direction for rpm feedback functions --- src/hoverboard-esc-serial-comm.cpp | 16 +++++++++------- src/hoverboard-esc-serial-comm.h | 2 ++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/hoverboard-esc-serial-comm.cpp b/src/hoverboard-esc-serial-comm.cpp index 0df9b9c..3f01476 100644 --- a/src/hoverboard-esc-serial-comm.cpp +++ b/src/hoverboard-esc-serial-comm.cpp @@ -34,17 +34,19 @@ bool ESCSerialComm::update(unsigned long loopmillis) //returns true if something updateMotorparams(loopmillis); } - #define TRIP_UPDATE_INTERVAL 100 - static unsigned long last_update_trip; + #define TRIP_UPDATE_INTERVAL 100 if ( loopmillis > last_update_trip+TRIP_UPDATE_INTERVAL) { - last_update_trip=loopmillis; + unsigned long trip_update_interval_real=loopmillis-last_update_trip; + last_update_trip=loopmillis; - double _meanRPM=(-Feedback.speedL_meas+Feedback.speedR_meas)/2.0; + //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)/1000.0); + trip+=abs(meanSpeedms)* ((trip_update_interval_real)/1000.0); + //mah consumed - currentConsumed += (Motorparams.filtered_curL+Motorparams.filtered_curR)* (TRIP_UPDATE_INTERVAL/1000.0)/3600.0; //amp hours + currentConsumed += (Motorparams.filtered_curL+Motorparams.filtered_curR)* (trip_update_interval_real/1000.0)/3600.0; //amp hours } @@ -229,7 +231,7 @@ int16_t ESCSerialComm::getFeedback_speedL_meas() { return Feedback.speedL_meas; } int16_t ESCSerialComm::getFeedback_speedR_meas() { - return Feedback.speedR_meas; + return -Feedback.speedR_meas; //negate rpm, so that positive rpm means driving forward } float ESCSerialComm::getFeedback_batVoltage() { return Feedback.batVoltage/100.0; diff --git a/src/hoverboard-esc-serial-comm.h b/src/hoverboard-esc-serial-comm.h index 79c7265..06b1f5f 100644 --- a/src/hoverboard-esc-serial-comm.h +++ b/src/hoverboard-esc-serial-comm.h @@ -142,6 +142,8 @@ class ESCSerialComm unsigned long feedback_interval_timed; + unsigned long last_update_trip; + SerialCommand Command; SerialRead SRead;