Ich nenne sie Zoe

NormanB

Member
Liebe Freunde des gepflegten Rasens,

ich teile mit Euch einige Notizen zu meinem Projekt. Möglicherweise findet das jemand nützlich. Jedenfalls haben mir die Fragen und Antworten, Projektberichte und Kommentare auf diesem Forum echt weitergeholfen. Danke an alle. Gerne beantworte ich Fragen zu meine Projekt.

Ich nenne sie Zoe, (Kennt ihr Zoe Graystone oder bin ich möglicherweise ein Serienjunkie?)

Plattform:
* Mainboard 1.4
* Arduino Due
* Azurit-Firmware

Antrieb, Chassis:
* BL-Adapter 1.1
* BL-Controller 1.1
* Brushless Motore
* 2021er Chassis, Frontantrieb

Sensoren:
* Bumper
* Sonar
* Drop
* Tilt
* Ultraschall

Navigation:
* Perimeterempfänger / Sender
* IMU-9250

Meine individuellen technischen Anpassungen:
* Akku: Fahrrad Akku 24V/10Ah auf dem Dach des Chassis
* Nextion Enhanced Display (anstatt PFOD)
* BLDC8015a für Mähmotor

Ladestation
* Garage: vidaXL WPC
* Ladekontakte: Stahlkugeln auf Biegefeder

Meine (wesentlichen) Hürden im Projekt:
1.) Buchsen P15 / P16 nicht vertauschsicher: Bei der Erstinbetriebnahme bin ich um einen Stift verrutscht und habe zwischen P15/P16 eingesteckt -> +/- Verplot und DRV8308-Controller abgeraucht.
2.) Zeit
3.) Problem mit dem Testprogramm für DRV8308: Hab ewig gebraucht, um zu merken, dass die SPI-Frequenz zu hoch ist.
4.) Azurit 1.10a hat 'ne Macke rund um die Konsole - hab ewig gebraucht, um das zu merken, hab mich dann gleich von PFOD getrennt
5.) zu wenig Platz auf dem Tisch
6.) Azurit-Software nicht für DRV8308 vorbereitet: habe lange gebraucht, um das mit der PWM-Frequenz auf die Reihe zu kriegen.
7.) Implementierung BLDC8015a für Mähmotor, nachdem ich mir einen der DRV8308 verbrannt hatte
8.) Habe lange gebracht, um den Perimeterempfänger zu implementieren: War dann aber ganz einfach: Mach es so, wie es im Wiki steht => Empfängerverstänker außen - dann geht es prima (innen sind zu viele Störungen)
9.) meine C++ Kenntnisse sind nicht die Besten und deshalb ist es mir schwergefallen, das Nextion Display in der Robot-Klasse zum Laufen zu kriegen. (Als "der Knoten dann aber geplatzt war", ging es aber einfach weiter)

Vorsorge
Am Mähmotor habe ich drei TVS Dioden 1.5KE33CA 1500W 33V DO-201AD (DO-27) in die Stromleitung eingebaut.(vgl. dieses Forum)

Alternative für defekten DRV8308 = BLDC8015a für Mähmotor (nur dafür)
Mir ist zum Glück nur ein (1) DRV8308 abgeraucht = noch zwei (2) übrig für die Fahrmotore.
* Azurit angepasst für BLDC8015a
* Nur On/Off-Betrieb über BL-Adapter EN-Signal
* Feste Drehzahl über RV-Regler
* Stromzufuhr am BL-Adapter vorbei direkt an dem Akku (mit Sicherung) zusätzlich - safety first
* Relais an Res9 trennt zusätzlich vom Strom - safety first
* Keine Drehzalmessung (sollte eigentlich funktionieren, habe ich aber noch nicht hingekriegt)
* Keine Strommessung (sollte über Mainboard funktionieren, habe ich aber auch nicht hingekriegt und würde ohnehin die EF2-Sicherung durchbrennen lassen)
* Einbauort: Die Stelle im Gehäuse, wo sonst der Akku sitzt. (Mein Akku ist ja ein Fahhradakku außen auf dem Dach und somit was da noch Platz.)

Meine Anpassungen an Azurit:
Rausgenommen, was ich nicht benötige:
* RC-Modus raus
* PFOD raus
* BT raus
* WLAN raus
* ROS raus
* GPS raus
* Arduino Mega raus
* Code-Formatierung. Ich tue mich total schwer damit, wenn bei Bedingungen die offene geschweifte Klammer in derselben Zeile steht, anstatt in der nächsten Zeile. Ich hab‘s viel lieber, wenn die offenen/geschlossenen geschweiften Klammern auf der gleichen vertikalen Ebene stehen. Auch das uneinheitliche vertikale Ausrichten von Kommentaren find ich nervig. Das ist alles mein persönlicher Geschmack - liegt vielleicht daran, dass ich nicht mehr so gut sehe, wie vor 30 Jahren..... Jedenfalls kann man sowas wunderbar im Notepad++ mit dem Pulgin "CodeAlignmentNpp" "geradeziehen".

Sonstige Anpassung Azurit:
* Hohe Baudrate für Konsole (und Nextion-Display) bringt mehr "Loops per sec", Konsole standardmäßig aus
* motorZeroSettleTime = 500;
* motorSpeedMaxRpm = 28;
* Sonar weniger träge:
o sonarTriggerBelow = 30;
o sonarSlowBelow = 95;
o nextTimeCheckSonar = 50; // .. dann gleich alle drei hintereinander
* "Schwänzeln" beim Perimeter tracking reduziert:
o perimeterPID.Kp = 16;
o perimeterPID.Ki = 8;
o perimeterPID.Kd = 0;
o trackingPerimeterTransitionTimeOut = 1800;
o perimeterTriggerTimeout = 300;

Anstatt PFOD: Nextion enhanced Touch-Display
Alles, was ich mir an Infos und Steuerungsmöglichkeiten hab einfallen lassen, kann man damit problemlos darstellen.
Am Anfang war das echt lahm, aber das ist lösbar: In Nextion-Lib "delay" bei nexLoop von 10 auf 5 ms angepasst und Baudrate von 9600 auf 115200.

sonstiges:
Fehlschlag: Habe versucht, ein DFC2-Modul einzubauen - klappt prima, aber nur, wenn der Roboter steht:-( , weil das sonst mit den Interrupts nicht klappt.

Meine to-dos - da muss ich noch dran arbeiten:
* rückwärts Ausfahrt aus der Garage funktioniert nicht immer - stößt an
* Zeitgesteuertes Mähen noch ungetestet
* Anstatt dem Ultraschall-Sonar (unzuverlässig und lahm) möchte ich ein Lidar einsetzen. Leider gibt es da nur wenige mit dem erforderlichen "Blickwinkel" (FOV) (solid state lidar) und Tageslichtverträglichkeit (TOF)
* Mähen in Bahnen per IMU funktioniert noch nicht - hab aber auch noch nicht viel getestet
* Drehrichtungs-Wechsel für Mähmotor, wenn ich mal viel Zeit habe
* Serielle DCF-Uhr (gibt's bei ELV), wenn ich mal ganz viel Zeit habe
* einfachen Buzzer durch einen aktiven Buzzer ersetzen = weniger Interrupts/Timer/weniger code
* Wenn ich mal total ganz viel Zeit habe, werde ich mal ein paar schönere Räder montieren

Was mir das Arbeiten erleichtert hat:
* Crimpzange zum Herstellen der passenden Kabel ist viel besser, als das ewige "anlöten und Schrumpfschlauchen"
* Habe mir einen fahrbaren Hocker für den Ardumower gebaut - einfach bei Amazon den billigsten fahrbaren Hocker genommen und anstatt dem Sitz eine Halterung für den Ardumower "gezimmert". Da kann ich den Ardumower gefahrlos bei offenem Deckel testen und habe mehr Platz auf dem Tisch - weniger Hantiererei (Gibt es das Wort überhaupt?) mit einem nicht ganz ungefährlichen Ardumower, unproblematisches Abstellen nach der Testfahrt.
* Für das USB-Kabel habe ich einen USB-Deviceserver Allnet ALL0804W angebaut (billig, kein Windows 11 support, Silex wäre entschieden besser). So kann ich nicht nur in der Werkstatt eine USB-Verbindung herstellen, sondern auch mal vom Büro aus auf die Konsole gucken. (WIFI ist bei mir "omnipräsent").

Zwischen-Fazit:
* Tolle Unterhaltung - work is playing
* Tolle Leistung aller Haupttreiber des Projektes
* Bei Weitem ist nicht alles so weit fertig, dass ein aktueller Bausatz freiwillig mit Azurit läuft - das hatte ich nicht erwartet
* Die Bauteilknappheit ist echt nervig - fördert aber die Kreativität!
* Das Forum ist klasse!

Beste Grüße, Rolf
 
Update:


Liebe Freunde des gepflegten Rasens,

die Gartenarbeit ist jetzt auf Null - Zeit für die Werkstatt und meine to-dos abarbeiten:

* rückwärts Ausfahrt aus der Garage funktioniert jetzt: Lösung gleichmäßiger Gripp auf beiden Antriebsrädern und das Timing entsprechend anpassen - ganz einfach

* Zeitgesteuertes Mähen klappt wie gewünscht

* Einfahrt klappt noch nicht, aber ich hab kapiert woran das liegt: Im Bereich der Einfahrt hat der Rasen einen Buckel und das bringt das "Entlagschlängeln" am Perimeterkabel aus dem Tritt und das beruhigt sich nicht mehr bis zur Garageneinfahrt. Das kann ich mit einem Sack Erde leicht richten - das war ohnehin fällig.

* Lidar hab ich heute angefangen: YDLIDAR TX8
Kaufgrund: TOF (Tageslichtverträglichkeit) und noch im Taschengeldbereich
Das zum Download verfügbare Programm LidarViewer funktioniert wie erwartet - alles eine Sache der Erwartungshaltung ;-)
Erstes "aha": das Teil kann nur Senden - eine RX-Leitung gibt es nicht - einfach anschließen und schon fängt das Ding an zu Senden bei 115200 Baud. Dementsprechend kann man sich im Develpoer Guide alles über das Senden von Befehlen oder das Abrufen der Systemdaten sparen - gibt es einfach nicht bei diesem Modell.
Zweites "aha": Die Leitung M_CTR ist in der jetzt ausgelieferten Version nicht mehr unterstützt - egal - dann eben mit fest eingestellter Drehzahl. Drei Pins genügen: 5V, GND, TX (aus Sicht des TX8 ist TX = RX aus Sicht des Arduino)
Die Doku des TS8 ist bemerkenswert dünn. Ich bin positiv überrascht: Deppl kann klasse chinesisch
Die auf Github verfügbare Arduino library ist unterirdisch. Da hatte ich mehr erwartet.
Mein Stand der Dinge: Das Teil liefert Daten, die Messwerte passen aber noch nicht - da liegt noch viel Arbeit vor mir.

Stand 30.12.2021 wird YDLIDAR TX8 nicht mehr hergestellt. Die anderen YDLIDARs sind nach meiner Einschätzung untereinander Daten-Kompatibel.

* Mähen in Bahnen per IMU funktioniert noch immer nicht - mit dem IMU-Teil komm ich nicht klar - das vertage ich, bis ich das Koordinatensystem auf die Reihe kriege.

* Räder: Zwischendurch hab ich mich mal mit der Montage der Sackkarrenräder beschäftigt.
Dabei hab ich endlich verstanden, warum der Ring vom Spannelement bei mir nie fest sitzt. Ganz einfach. Das ist so schlicht nicht vorgesehen. Die Spannelemente sind dazu bestimmt, eine Welle mit einem Rad zu verbinden. Die Montage des Rades ist jedoch nicht über die Schrauben an der Stirnseite des Spannelementes vorgesehen. Stattdessen klemmt das Spannelement in zwei Richtungen: zum einen nach innen auf die Welle des Motors, zum Zweiten auf ein auf gleicher Höhe befindliches Rad in entgegengesetzter Richtung zur Welle. Da das Rad aber bei unseren Ardumowern anders montiert wird - wir schrauben die Räder ja auf die Stirn des Spannelemenetes und nicht, wie vorgesehen auf die Außenseite des Spannbereichs. Der Ring ist nur als Zierelement gedacht.
Und jetzt? Ich hab versucht, die 3D-druckbaren Halter hier aus dem Forum zu verwenden. Das klappt aber nicht - das PETG-Druckmaterial hält dem Druck der Scharben nicht stand. Hat jemand eine Idee? Gibt es irgendwo Spannelemente mit Flansch, die zu Sackkarrenräder passen? Haben wir Leute im Forum, die sowas "drehen" können?

Danke fürs Lesen und bleibt gesund!

Bis zum nächsten Jahr & Beste Grüße


Rolf
 
Zuletzt bearbeitet:
Update:

Liebe Freunde des gepflegten Rasens,

nach gut 100 Stunden ist heute leider der zweite Brushless-Treiber (DRV8308) im Eimer - einfach so - ein Rad bleibt stehen bzw. dreht sich auf der Werkbank ohne Last nur noch ganz langsam. Super ärgerlich.
Ich wechsele nun auf die JYQD-Treiber

Danke fürs Lesen und bleibt gesund!

Rolf
 
Update:

Liebe Freunde des gepflegten Rasens,

nach gut 100 Stunden ist heute leider der zweite Brushless-Treiber (DRV8308) im Eimer - einfach so - ein Rad bleibt stehen bzw. dreht sich auf der Werkbank ohne Last nur noch ganz langsam. Super ärgerlich.
Ich wechsele nun auf die JYQD-Treiber

Danke fürs Lesen und bleibt gesund!

Rolf
verstehe ich das richtig? Ein Motortreiber vom Antrieb ist defekt? Hast Du Sicherung etc. geprüft?
Uiui das ist ärgerlich
 
Oben