Azurit - Mähen mit Perimeterschleife. Einrichtung und Betrieb.

SefanH

Active member
Ich denke es wird Zeit für eine Anleitung zu Azurit. Ich musste mir vieles zusammenlesen und vieles nachfragen. Vieles habe ich auch von meinen Anfängen mit dem Ardumower Mini mitgenommen.
Ich hoffe dass ich in den nächsten Tagen oder Wochen Zeit finde um hier alles aufzuschreiben. Alles was nötig ist um alles korrekt einzustellen und den Mower in Betrieb zu nehmen.
Falls jemand andere Komponenten verbaut haben sollte und seine Erfahrungen diesbezüglich einbringen möchte... Ich freue mich!

Bis die Tage, Stefan
 
Hallo Stefan,
Das wäre in Ordnung, ich bin ein bisschen verloren mit den IMU-801-Anschlüssen und der Kalibrierung.
Freundliche Grüße
Juan Manuel Cuesta
 
Für das PCB 1.3 gibt es ja eine recht gute Aufbauanleitung. Für Azurit dann leider nur verstreute Infos. Ich hoffe das ich das hier gebündelt einmal zusammenfassen kann.

Zuerst benötigt man die Arduino IDE - bekommt man auf Arduino.cc oder im Microsoft-Store (für Windows 10).
Nach erfolgreicher Installation muss man noch sein Board auswählen. Die Boards findet man unter Werkzeuge/Board.
Dann muss noch der passende Port ausgewählt werden.
Nachdem das abgeschlossen ist, kann die Aktuelle Azurit heruntergeladen werden. Es gibt die offizielle Version 1.10a und den Master branch.
In der Beschreibung steht das man die offizielle Version nehmen sollte - Ich habe jedoch immer den Master Branch gewählt - die 1.10a Version ist jedoch zu empfehlen!

Nachdem die Firmware heruntergeladen wurde (ZIP-Datei) muss diese entpackt werden. Diese ZIP-Datei enthält eine ganze menge Infos, Pläne und natürlich auch die Azurit Firmware.
Die Firmware findet Ihr unter ../code. Dort bitte den Ordner "ardumower" herauskopieren (entpacken). Der Ordner muss immer den gleichen Namen haben wie die Hauptdatei. Bei uns ist das "ardumower", passend zu "ardumower.ino". - Dies ist bei allen Arduino-Projekten so.
Nachdem Ihr die Firmware in der Arduino IDE geöffnet habt, seht Ihr eine Vielzahl an Tabs mit einer Menge an code. Rechts neben den Tabs findet Ihr einen kleinen Pfeil/Dreieck. Nachdem Ihr hier drauf geklickt habt, seht Ihr alle einzelnen Dateien/Tabs der Firmware. Wichtig für uns ist jetzt zuerst einmal die "mower.h" Ab der Zeile 24 bis ca. Zeile 34 findet Ihr die ersten 4 Möglichkeiten der Einstellungen.
1. Wählt euer Board aus - Meist ist dass das PCB1.3. Die beiden Schrägstriche "//" sagen dem Programm das dieser Punkt nicht gewählt ist.
2. Welchen Mower baut Ihr? den "normalen" oder den Ardumower mini?
3. Welchen Motortreiber benutzt Ihr? Beim normalen Ardumower ist das zur Zeit der MC33926. Für den MINI ist es der L298N.
4. Welchen Gyro nutzt Ihr? Den GY801 oder den MPU9250?

Das sind nun die ersten Einstellungen. Als nächstes öffnen wir die "mower.cpp"

Guckt Euch die Zeilen einmal genau an und versucht zu verstehen was hier gemacht wird. Ab Zeile 89 fangen die ersten Wahlmöglichkeiten an (Freewheel).
Wählt alles das aus was Ihr verbaut habt und nutzen möchtet.
Ich habe bei Bluetooth und bei WLAN bei beide Möglichkeiten auf 1 gestellt. Somit kann ich beides nutzen - Nicht Zeitgleich, aber nacheinander. Bei mir jedenfalls klappt es! (Nachtrag: WLAN habe ich zur Zeit deaktiviert, da ich viele Probleme hatte überhaupt eine Verbindung herzustellen. Es scheint sehr viele nicht richtig funktionierende Bluetooth Module zu geben!)

Nun sollte es soweit sein. Klickt auf das Upload-Symbol (Das 2. Symbol von links - Sieht aus wie ein kleiner Pfeil nach rechts) und die Firmware wird kompiliert und im Anschluss auf euren Mower hochgeladen. (Das Board muss natürlich mit einem USB-Kabel verbunden sein.)
Nun hat euer Mower schonmal seinen Code erhalten.

Soweit wird es Wohl jeder geschafft haben... Bei Fragen - fragt einfach. Falls ich etwas vergessen habe oder Fehler gemacht habe schreibt bitte!

24.6.21 - NEU
Auf den Perimetersender müsst ihr, auf die gleiche Weise wie eurem Mower, das Programm aufspielen. Den passenden Code findet ihr auch im Azurit 1.10a Paket dass ihr heruntergeladen habt.

Nun war es an der Zeit die Perimeterschleife zu verlegen. Wie viel Abstand braucht man zu Rasenkantensteinen? Wie viel zu Hauswänden? Welche Radien dürfen die Kurven haben? Kann man auch Ecken realisieren? - Viele Fragen...

Nun: Zu allererst möchte ich Mal feststellen das 90grad Bögen, die Ecken gleichen, nicht funktionieren! Wenn der Mower seinen Weg nach Hause sucht, kommt er an solchen stellen vom Weg ab und geht stiften! Als guter Radius hat sich ein Maurer- oder Mörteleimer bewährt!
Bei der Verlegung der restlichen Schleife muss man einiges bedenken. Je enger eine Passage ist, desto geringer ist die Wahrscheinlichkeit das der mower auch hindurch fährt. Bei mir gibt es eine Engstelle von ca. 60cm Breite und 1,6m Länge - das klappt bei mir noch ganz gut!
Bei der Überlegung wie weit das Kabel nun von Gegenständen entfernt verlegt wird, sollte man sich immer vorstellen dass der Mower auch in einem spitzen Winkel über das Kabel fahren kann. Nach dem er dann wieder zurück gefahren ist, steht der Mower immer noch fast parallel zum Kabel. Dreht der Mower jetzt mit dem Heck nach außen, benötigt er je nach Begebenheit viel Platz. An einer Terrasse mit Rasen und Platten auf gleichem Niveau kann das Kabel direkt neben den Platten verlegt werden. Wenn die Platten etwas höher liegen sollte man ca. 25cm Abstand wählen, dann fährt der Mower mit seinen Rädern beim Tracking auf dem Rasen und fährt nicht auf die Platten. Wenn der Mower nun direkt an einem hohen Hinderniss mäht (Hauswand, Sandkasten), muss der Abstand vergrößert werden. Mindestens auf 35cm.
Diesen Abstand habe ich so gemessen: von die Achse der Antriebsräder zur Mitte des Freewheels. Ca 35cm. Das Kunststoff des Mowers hinter dem Stützrad habe ich außer acht gelassen... Es lebe das Restrisiko!

Daten für die Verschiedenen Motoren (Ticks per revolution):
// choose ticks per wheel revolution :
// ...for the 36mm diameter motor (blue cap) https://www.marotronics.de/2-x-36er-DC-Planeten-Getriebemotor-24-Volt-mit-HallIC-30-33-RPM-8mm-Welle
//#define TICKS_PER_REVOLUTION 1310 / 2 // odometry ticks per wheel revolution

// ...for the 36mm diameter motor (black cap) https://www.marotronics.de/MA36-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
// #define TICKS_PER_REVOLUTION 975 / 2

// ...for the newer 42mm diameter motor (green connector) https://www.marotronics.de/MA42-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
// #define TICKS_PER_REVOLUTION 696 / 2 // odometry ticks per wheel revolution

// ...for the older 42mm diameter motor (white connector) https://wiki.ardumower.de/images/d/d6/Ardumower_chassis_inside_ready.jpg
//#define TICKS_PER_REVOLUTION 1050 / 2 // odometry ticks per wheel revolution

// ...for the brushless motor april 2021 https://wiki.ardumower.de/index.php?title=Datei:BLUnit.JPG
#define TICKS_PER_REVOLUTION 1300 / 2 // 1194/2 odometry ticks per wheel revolution

// #define TICKS_PER_REVOLUTION 304 // odometry ticks per wheel revolution (RM18)

Für heute muss das jetzt erstmal reichen... Es ist garnicht so einfach alles in "Reih und Glied" zu bringen.
 
Zuletzt bearbeitet:

Thread wurde aktualisiert am 23.06.2021.
 
Ich habe oft das Problem dass das Laden des Mowers nicht klappt. Das Relais zieht nicht an! Das liegt wohl daran dass die Spannung an der Batterie zu schnell steigt und daher das Relais nicht den Befehl zum anziehen bekommt, da ja scheinbar alle Werte im Grünen sind...

In der robot.cpp müsste folgendes geändert werden: ca. Zeile 630

// low-pass filter
double accel = 0.05;
//double accel = 1.0;
if (abs(batVoltage-batvolt)>8) batVoltage = batvolt; else batVoltage = (1.0-accel) * batVoltage + accel * batvolt;


Also accel von 0.1 auf 0.05 und if (abs(batVoltage-batvolt)> von 5 auf 8 setzen.
Somit soll die Batteriespannung langsamer ansteigen, ist akkurat und das Relais zieht auch an!


Dazu sollte noch folgendes geändert werden:

ca. Zeile 610

if (millis() >= nextTimeBattery){
// read battery
nextTimeBattery = millis() + 500;

Also von 100 auf 500.


ca. Zeile 1315

if (stateNew == STATE_STATION){
nextTimeBattery = millis(); //read immediatly the battery
setMotorPWM(0,0,false);
setActuator(ACT_CHGRELAY, 0);
setDefaults();
statsMowTimeTotalStart = false; // stop stats mowTime counter
loadSaveRobotStats(false);

Das ist der Vorschlag von Thorsten_AC

Ich hoffe das hilft einigen weiter!
Gruß Stefan
 
Hallo Stefan,
das mit der Anleitung ist eine gute Idee und Dein Einsatz sehr löblich.
Leider ist Azurit nicht mehr im Interesse der Forumsbetreiber, weil man an Sunray halt mehr verdienen kann. Hier wiederholt sich denn dann auch meine Kritik an der kommerziellen Ausrichtung des Forums.
Oben schreibst Du „..müsste folgendes geändert werden.. , …sollte noch folgendes geändert…“ -> Azurit könnte deutlich mehr Funktionsumfang haben und auch auf dem letzten Stand sein, wenn es im Forum besser positioniert wäre und sich jemand um die Belange kümmern würde.
Gruß Fürst Ruprecht
 
Ja, da hast du Recht! Azurit wird sehr stiefmütterlich behandelt. Aber was machen die Leute die nicht mit GPS arbeiten können?
Die Azurit-Alternative sollte man jedermann verständlich näherbringen, das versuche ich ja auch.
 
Ich bin gern bereit, soweit es meine Zeit zu lässt, den Code ins Github einzuarbeiten.
Ich kann leider nicht alles immer testen, da ich kein eigenes PCB besitze, sondern mir selbst eins gebaut habe.
Einige Anpassungen und Änderungswünsche hatte ich ja schon eingepflegt.
Wenn jemand von euch bereit ist, den Code zu testen, können wir das gern in Angriff nehmen, wenn Zeit ist.
 
Zuletzt bearbeitet:
Der Code läuft vielfach bereits störungsfrei! Ich würde mich freuen wenn das einmal eingepflegt wird.
 
Hallo zusammen,

ich muss euch recht geben, seit dem es die RTK Version gibt, scheint Azurit in Vergessenheit geraten zu sein (obwohl sehr viel Potential)

Ich würde mich freuen und auch mit arbeiten. Wenn es mit Azurit weitergehen würde..

Ich für meinen Teil kann nur die Änderungen die ich erarbeite hier dokumentieren. in der Hoffnung das es auch einen interessiert ;)

VG
Thorsten
 
Leider ist Azurit nicht mehr im Interesse der Forumsbetreiber, weil man an Sunray halt mehr verdienen kann. Hier wiederholt sich denn dann auch meine Kritik an der kommerziellen Ausrichtung des Forums.
Gruß Fürst Ruprecht
Ich finde das ziemlich einseitig gedacht ...
Wenn nun mal die Masse der Leute hier RTK fahren möchte ist es doch klar das die Beiträge zu Sunray mittlerweile überwiegen, das Interesse an den verschiedenen Versionen gibt ja nicht der Forumsbetreiber vor.
Aber das nur am Rande und gehört hier auch gar nicht her.
 
An was machst Du denn das fest, daß „die Masse der Leute hier RTK fahren möchte“ ? Wenn Du nur Sunray pflegst, dann wird über die Zeit auch nur Sunray nachgefragt.
 
Können wir mal probieren. Dazu brauchen wir aber einen Plan. Meine Variante, ebenso Deine Thorsten, haben sich ja schon etwas vom Standard wegentwickelt. Aus meiner Sicht müßte zunächst ein „ggf. neuer“ Standard beschrieben werden.
Gruß Fürst Ruprecht
 
Hehe, tolle Idee. Ich bin auch schon fast an Azurit verzweifelt. Obwohl es recht ordentlich läuft, ist da noch ganz viel Luft nach oben.
Und an die Zweifler: wenn die Basisversion Azurit ordentlich läuft, möchte man dann vielleicht doch auch mal auf sunray updaten. Aber so denke ich immer, dass ich mit RTK zuviel Geld in den Sand setze.(y)(y)
Edit: Ich hab da auch noch gleich ne kleine Anmerkung: Es sieht einfach nur doof aus, wenn der Mower 3 Sekunden in der Ecke steht, bevor er sein nächstes Manöver ausführt: In der mower.cpp hab ich daher noch den Wert für motorzerosettletime von 3000 auf 800 gesenkt und motoraccel auf 500
 
Oben