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
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