Hallo Alexander,
void Robot::motorMowControl() {
//bber60
if (millis() < nextTimeMotorMowControl) return;
nextTimeMotorMowControl = millis() + 100;
if (motorMowForceOff) motorMowEnable = false;
//Auto adjust the motor speed according to cutting power (The goal is On high grass the motor rotate faster)
//A runningmedian process is used to check each seconde the power value of mow motor
//if power is low the speed is reduce to have a longer mowing duration and less noise.
if (motorMowEnable) {
motorMowPowerMedian.add(motorMowPower);
if (motorMowPowerMedian.getCount() > 10) { //check each 1 secondes
int prevcoeff = motorMowPwmCoeff;
motorMowPwmCoeff = int((100 * motorMowPowerMedian.getAverage(4)) / (0.5 * motorMowPowerMax));
if (motorMowPwmCoeff < prevcoeff) {
//filter on speed reduce to keep the mow speed high for longuer duration
motorMowPwmCoeff = int((0.1) * motorMowPwmCoeff + (0.9) * prevcoeff);// use only 10% of the new value
}
if ((statusCurr == WIRE_MOWING) || (statusCurr == SPIRALE_MOWING)) motorMowPwmCoeff = 100;
if (motorMowPwmCoeff > 100) motorMowPwmCoeff = 100;
if (motorMowEnable) {
motorMowSpeedPWMSet = motorMowSpeedMinPwm + ((double)(motorMowSpeedMaxPwm - motorMowSpeedMinPwm)) * (((double)motorMowPwmCoeff) / 100.0);
}
if (motorMowSpeedPWMSet < motorMowSpeedMinPwm) motorMowSpeedPWMSet = motorMowSpeedMinPwm;
if (motorMowSpeedPWMSet > motorMowSpeedMaxPwm) motorMowSpeedPWMSet = motorMowSpeedMaxPwm;
//max speed on wire and spirale
motorMowPowerMedian.clear();
}
}
else
{
motorMowSpeedPWMSet = 0;
}
if (stateCurr == STATE_ERROR) {
setMotorMowPWM(0, false); //stop immediatly on error (tilt etc....)
}
else
{
setMotorMowPWM(motorMowSpeedPWMSet, true);
}
}
Hallo Alexander,
A ’transit’ function/area would be very valuable. An important feature is that the mower does not drive in the exact same line every time during transit. The exact same path could make permanent marks if the transit ground is soft. A few cm random difference in the path every time would solve the problem with marks.A waypoint function with the mow motor switched off. It could be called a ‘transit’. This would enable the mower to traverse a non grass path safely between mowing areas. In my case I have two lawn areas with a gravel/stone path between them on which a rotating mower blade could kick stones.
und wie geht das denn?nicht eine 90° knick, sondern 2x45