PerimeterOutReverseTime

flyfast

Active member
Guten Abend in die Runde,

Kaum vergehen drei Jahre und schon fällt mir auf das sich mit der ArduRemote die PerimeterOutReverseTime nicht einstellen läßt.
Auf dem Telefon kann ich den Wert bis 10000 hochregeln aber es ändert nichts am der Reversebewegung.
Ich habe in der Vergangenheit den Schleifensender ohne Vorwiderstand betrieben.....bis gestern. Dann hat der Stepdown aufgegeben und ich habe nun einen zweiten Schleifensender
mit einem Vorwiderstand in Betrieb.
Ohne Vorwiderstand hat der Mower ca. 10cm vor der Schleife gestoppt und hat entsprechend viel Platz mit dem Heck bei einem 180° Turn.
Habe ich nun eben nicht mehr und möchte ihn weiter zurück fahren lassen bevor er dreht.
Hat jemand eine Idee wie ich es angehen soll oder lösen kann?

Gruß aus der Oberpfalz

UWE
 
Hi,

das ist mir auch schon aufgefallen. Jetzt hab ich mal nachgeschaut.
Der Wert wird geändert, hat aber eigentlich keine Auswirkungen.
Siehe folgende Zeilen in der robot.cpp:

case STATE_PERI_OUT_REV:
checkPerimeterBoundary();
// if (millis() >= stateEndTime) setNextState(STATE_PERI_OUT_ROLL, rollDir);
if (perimeterInside || (millis() >= stateEndTime)) setNextState (STATE_PERI_OUT_ROLL, rollDir);
break;

Sobald der Roboter sich wieder in der Schleife befindet, wird das Rückwärtsfahren beendet, auch wenn die Zeit noch nicht abgelaufen ist. Die Zeile ohne perimeterInside wurde auskommentiert. Warum kann uns wohl nur ein SW Entwickler sagen, aber ich schätze mal es machte Probleme.

Grüße Jürgen
 
Bedauerlich. Wäre nämlich extrem hilfreich.

Aber vielen Dank für das nachschauen!

Habe im Forum alles durchgesuchte, dazu aber nichts gefunden.
Alternative wäre für mich nur, wieder ohne Vorwiderstand den Sender zu betreiben und einen kleinen Lüfter vom PC über dem Step Down zu montieren damit er halbwegs kühl bleibt.
Leider habe ich vom programmieren keinen Plan und traue mich nicht in dem laufenden System etwas zu ändern.

Wer hat noch eine Idee?

Grüße. UWE
 
Hallo Uwe,
wir haben ja gerade telefoniert.
Ich habe noch keine Lösung aber im Ardumower Skype Channel sind wir dran.
Ich hätte ein Bitte an Dich, ich fand Deine Einsatzumgebung sehr Interessant.
Kannst Du hier mal bitte schreiben welche Fläche Du mähst.
Grashöhe, Neigung, Größe, Stundenzahl am Tag.....
Vielleicht auch ein Bild, das verdeutlicht wie Anspruchsvoll Dein Garten ist? :)
Danke Markus
 
Hi.
I Don't remember where but already answer to this in the forum.
When the mower reverse you have 2 possibility:
Original code :
Code:
// if (millis() >= stateEndTime) setNextState(STATE_PERI_OUT_ROLL, rollDir); 
      if (perimeterInside || (millis() >= stateEndTime)) setNextState (STATE_PERI_OUT_ROLL, rollDir);
The mower cross over the wire and is outside -->The mower start to reverse and immediatly after detect Inside the roll start so you can put 10000 on the delay it change nothing.

If you change the code uncomment the first and comment the second line
Code:
 if (millis() >= stateEndTime) setNextState(STATE_PERI_OUT_ROLL, rollDir); 
    //  if (perimeterInside || (millis() >= stateEndTime)) setNextState (STATE_PERI_OUT_ROLL, rollDir);

Now the mower cross over the wire and is outside -->The mower start to reverse and continue until PFOD setting 10000 for example and the roll start .






EDIT.
Sorry i am going to see the skype channel .
 
Zuletzt bearbeitet:
Bernhard,
Thank you for your response.
Your Statement make Sense to me.......BUT..........I`m getting nervous for thinking about to touch something in the code.
May as you know: Never touch a Running System.
On the other hand, there is no other solution available.
Okay, I will read the manual again how to change the code and to Transfer it into my Mower.
Again, Thank you for your response.

UWE

@ Markus: Give me some days and I will descibe my property and the Mower modification in detail.
 
Hallo Uwe,

dieses Problem ist hier im alten Forum schon mal beleuchtet worden.
Ich bin kein Sofware Spezi, aber habe in der robot.cpp folgende Anpassungen durchgeführt:

case STATE_PERI_OUT_REV:
checkPerimeterBoundary();
if (perimeterInside && (millis() >= stateEndTime)) setNextState (STATE_PERI_OUT_ROLL, rollDir); // both statements should be fullfilled
break;

also statt perimeterInside || (millis() -> perimeterInside && (millis()

Das funktioniert bei mir ohne Probleme.

Viel Glück dabei.

Gruss
Wolfgang
 
Hallo Uwe,

dieses Problem ist hier im alten Forum schon mal beleuchtet worden.
Ich bin kein Sofware Spezi, aber habe in der robot.cpp folgende Anpassungen durchgeführt:

case STATE_PERI_OUT_REV:
checkPerimeterBoundary();
if (perimeterInside && (millis() >= stateEndTime)) setNextState (STATE_PERI_OUT_ROLL, rollDir); // both statements should be fullfilled
break;

also statt perimeterInside || (millis() -> perimeterInside && (millis()

Das funktioniert bei mir ohne Probleme.

Viel Glück dabei.

Gruss
Wolfgang

Achtung, mit deiner Version funktioniert der Perimeter Timout nicht, da der Roboter nie aus dem State rauskommt, wenn er nicht innerhalb des Perimeters ist.
Gerade getestet und micht gewundet, dass der Mäher irgendwo ausserhalb rumfährt.

Gruß Jürgen
 
Vielen Dank für den Hinweis. Die Situation ist bei mir komischerweise noch nicht vorgekommen, aber ich kann das nachvollziehen.

Gruss Wolfgang
 
Ich werde, sobald Zeit ist, beide Versionen probieren. Im Moment funktioniert ja alles.

Viele Grüße UWE
 
Good morning Bernard,
I already changed the code as recommended.......and you know what...! My test platform runs since 30min without any issues.
The command "Perimeter out revers time" is now adjustable from 0 up to 10000.
It seems the comment letter was a mishap from the programmer. Who knows....?

Thank you very much from my side to you because it is a big improvment on my system.

UWE


PS: I also flashed my secound DUE and installed it into my real mower.
Same here. It works as it should be. SUPER!
 
Zuletzt bearbeitet:
Hallo Uwe,
wir haben ja gerade telefoniert.
Ich habe noch keine Lösung aber im Ardumower Skype Channel sind wir dran.
Ich hätte ein Bitte an Dich, ich fand Deine Einsatzumgebung sehr Interessant.
Kannst Du hier mal bitte schreiben welche Fläche Du mähst.
Grashöhe, Neigung, Größe, Stundenzahl am Tag.....
Vielleicht auch ein Bild, das verdeutlicht wie Anspruchsvoll Dein Garten ist? :)
Danke Markus


Hallo Markus,

habe einen Linke über meinen Mower.

Stelle ich einmal bei den "Mitglieder und ihre Mower" ein.

Gruß UWE
 
Oben