Zombie

paddy

Active member
Hallo zusammen,

ich habe gerade die erste Testrunde mit dem neuen Mower absolviert. Verwendet wird das PCB 1.3 mit der letzten Azurit 1.0a10-dev.
Motoren sind die aus dem Shop, Chassis natürlich mein gedrucktes Arctic Hare.

Zuerst habe ich mich gefreut, wie er gefahren ist. Aber nach kurzer Zeit war schluss mit Lustig, der Mower reagiert auf nichts mehr. Kein Bluetooth, kein Perimeter, Bumper nichts. Der wäre einfach auf die Straße gefahren und bis die Batterie leer ist. So geht das natürlich nicht und das Verhalten kannte ich bisher nur mit meinem alten Chassis und den alten Motoren bei aktivierter Odometrie.

Die Odometrie hatte ich beim Test deaktiviert, aber angeschlossen. Der DUE sollte eigentlich mit den Ticks der Shop Motoren zurecht kommen. Der ODO Teiler ist entsprechend gesetzt, das Board lief auch letztes Jahr soweit fehlerfrei.

Jemand spontan eine Idee, was da los ist? Ich habe nun alles auf Werkseinstellungen zurück gesetzt und werde nochmal testen. Grundsätzlich finde ich es arg bedenklich dass es keinen Mechanismus gibt der einen Zombie erkennt. Ich habe gesehen, dass es in Raindancer Firmware einen Watchdog gibt. Ich habe mich damit noch nicht beschäftigt, aber einige von euch bestimmt schon. Bekommen wir den ohne großen Aufwand in Azurit eingebaut?

Gruß Patrick
 
Reset zu Factory settings brachte die Lösung, der Mower fährt nun.

Trotzdem ist es höchste Zeit, dass wir den Watchdog zu Azurit hinzufügen. Ich versuche mal die entsprechenden Codezeilen aus der Raindancer Firmware zu übernehmen, hier ist bereits ein Watchdog vorhanden, der hoffentlich funktioniert.
 
Hi.
Watchdog on due is good but maybe not 100% ok.
if you have a raspberry you can also stop the mower if due stop to communicate using a simple relay on the ARU
 
Hi Paddy
Did you write Something for the watchdog on Due.
I am going to try to add it in my code and find many thing on the Net but ?
By
 
That is very easy.

1. Create following function at the beginnen of xxx.ino
void watchdogSetup(void) {} // need to overwrite the original arduino function, because this disables the watchdog. And if disabled, you are not able to enable it.


2. In setup:
watchdogEnable(3000); // Watchdog triggerss after 3sec if not reseted.

3. In loop:
watchdogReset();


Thats all.
 
Thanks Roland
It is what i have seen in Raindancer but i don t understand the empty watchdogsetup.
I found some thread on variant.cpp on the net but nothing fof the last arduino ide.?

So i test and see.
 
In main.cpp watchdogSetup is called.
In watchdog.cpp the function is defined as weak and call by default _watchdogDefaultSetup() which disables the Watchdog.
 
Hi.
Perfect it's work on test prog. :)
But i suppose, if i understand correctly, Main.cpp and watchdog.cpp are particular file inside Arduino ide and not locate on the project file.
And they replace the one in variant.cpp
 
"main.cpp and watchdog.cpp are particular file inside Arduino ide and not locate on the project file."
Yes

In variant.cpp is no entry about watchdog.
Location:
C:Users...AppDataLocalArduino15packagesarduinohardwaresam1.6.12variantsarduino_due_x
 
Hey,
ich hatte heute auch einen Zombie,
meiner hat das Perimeterkabel zerhackt, danach fand ich ihn in der hintersten Ecke im Garten. Frag mich nur warum, eigentlich sollte er ja ohne Perimetersignal stoppen.
Ein Watchdog wäre nicht schlecht denk ich.

MfG
netlars
 
Code:
eigentlich sollte er ja ohne Perimetersignal stoppen.

Soviel ich weiss verwendet Azurit smoothMag für die Erkennung des fehlenden Signals. Das kann dann etwas dauern, bis das Fehlen des Signals erkannt wird.
// smoothed magnitude used for signal-off detection
smoothMag[idx] = 0.99 * smoothMag[idx] + 0.01 * ((float)abs(mag[idx]));

Bei Raindancer ist es implementiert. Hier muss dann aber das Signal über den ganzen Rasenbereich sauber empfangen werden. Wenn kein gültiges Signal innerhalb von 2 Sekunden empfangen wurde, bleibt der Mower stehen.

Ein Watchdog hilft nur wenn sich die Software aufgehängt hat. Das hat sie vermutlich aber nicht.
 
Hi.
To implement the watchdog into Azurit we need to take care about the save setting (The main loop is not call during 10 seconde when save).

Also a very important noise can make an Inside Outside detection with a smoothMag correct value.(I discover that with the RFID 125Khz reader). So the mower can roll out of the wire without stop when in tracking situation.
In all case a correct adjustment of the setting perimeter is better and the factory setting are not the correct value for all mowing area.
 
Oben