Ambrogio L50 Hacks (Arduino)

Diese Seite beschreibt den internen Aufbau des Rasenmähroboters “Ambrogio L50” sowie einige “Arduino-Hacks” für diesen Roboter. Nach dem Rasenmähroboter “Tianchen TC-G158” habe ich mir inzwischen zwei gebrauchte Rasenmähroboter Ambrogio L50 der Firma “Zucchetti Centro Sistemi” zugelegt (auch bekannt als Wiper Blitz).

Ambrogio L50 Top   Ambrogio L50 Bottom

Mechanik:

  1. Antriebsmotoren:  2 x 24V, Bürsten (Allrad umgesetzt über Zahnriemen)
    l50_rad_zusammenbau3 l50_rad_zusammenbau2  l50_rad_zusammenbau   l50_gehäuse3  l50_gehäuse2   l50_zahnriemen1   l50_zahnriemen2l50_zahnriemen3  l50_gehäuse   l50_motor_befestigung2   l50_motor_befestigung3  l50_motor_befestigung4  l50_motor_befestigung   l50_rad_befestigung    l50_motor_befestigung7  l50_motor_befestigung5     l50_rad_befestigung5   l50_rad_befestigung4  l50_rad_befestigung6   l50_rad_befestigung3 l50_rad_befestigung2  l50_motor_zahnriemen_rad3 l50_motor_zahnriemen_rad2 l50_motor_zahnriemen_rad l50_radlager3         l50_radlager2     l50_rad_lager
  2. Mähmotor: 24V, 120W, 4000 rpm, Bürsten (FISE M5930C04004), Motorstrom etwa 3A mit Messer

Elektronik:

  1. Ambrogio L50 Motorplatine
    L50 motor

    • Motortreiber L6201
    • U1: 74HC00 (Quad NAND, Ausgang ist Motortreiber)
    • U3: A04A/LM7301  (OPAMP, Eingang ist Spannungsabfall am 0.025 Ohm Widerstand zum Motorstrom)
  2. Ambrogio L50 Mähmotor Steckerbelegung (JP3)
    Pin6 (dünnes braunes Kabel/zum Platinenrand) – Hallsensor VCC
    Pin5 (grün) – Hallsensor Signal
    Pin4 (weiss) – Hallsensor Masse/GND
    Pin3 nicht belegt
    Pin2 (dickes schwarzes Kabel) – Motor (-)
    Pin1 blau – Motor (+)
  3. Ambrogio L50 Hauptplatine
    L50 cpu

    • 2 x Motorrelais: 24V, 12A (1500 Ohm)
    • 1 x Relais JTN1S-PA-F-DC24V (Ein-/Ausschaltung für gesamte Platine ?)
    • MCU: M30843FHFP (Renesas M32C, 384K Flash, 24K RAM, CISC)
    • U1: L5970D (ST) (Schaltregler)
    • U7:  OP291G (OPAMP)
    • U8: STE9721  (Lademanagement 9721 von Fairchild ??)
    • U13: 818 302D  ??
    • U3: 431AI (Adjustable Precision Zener Shunt Regulator)
    • U19, U24: 14011BG (Quad 2-input NAND)
    • U17: 202ECBNZ (RS232- Treiber)
    • U1: ST432WP ??
    • U18, U30: ??
  4. Mikrocontroller-Pinout:
    U15.28 Motor B PWM
    U15.30 Motor A PWM
    U15.31 (TX) -U17.10 (T2_IN)
    U15.32 (RX) -U17.9 (R2_OUT)
    U15.51 Motor A Direction
    U15.52 Motor B Direction
    U15.93 Motor B Sense
    U15.95 Motor A Sense A
  5. Tasterbelegung
    L50 Keys
  6. 6 x Rasensensor über Kapazitätsmessung
  7. Akku: LI-ION Akku, 25.2V, 6.9Ah (7S3P, Laden mit 29.3V)
    Platine im Akku (“E-LAWN-MOWER-7S3P-LOW-COST_2C  (G.H)”):
    L50 Akku Platine
    7 x S6201 (AUK Semiconductor Battery Protection IC for 1-cell pack)
    2 x T430 Thryistor

Rasensensor:

Jeder der 6 Rasensensoren ist (offensichtl.) ein Metalldraht welcher sich jeweils in einem Kunststoffgehäuse befindet. Um nun herauszufinden, ob das Sensorgehäuse Kontakt mit Rasen hat, mißt der L50  die elektr. Kapazität zwischen jeweils zwei dieser Sensoren. Setzt man den Roboter auf Rasen (Rasen ist quasi Dielektrikum), steigt die gemessene Kapazität leicht (um wenige pF) an.

Ambrogio L50 capacity measurement

kein Rasen: ~0 pF
auf Rasen: 1-4 pF

Umsetzung mit Mikrocontroller (noch nicht getestet):

MCU Pin 1 ---- R2M ----x----------------------------o Rasen

MCU Pin 2 ---- R200 ---|

Der Sensor besteht aus einem Kabel welches üben den Rasen geführt wird. Zunächst wird das Kabel über den Mikrocontroller-Ausgangs Pin 1 entladen (auf “Low” gezogen). Dann wird Pin1 auf “High” umgestellt, über einen Widerstand (z.B. 2Megaohm) wird das Kabel jetzt langsam aufgeladen. Über den Mikrocontroller Eingangs-Pin 2 wird die Zeit gemessen, bis dieser auf “High” liegt. Da Mikrocontroller sehr schnell und zuverlässig in Zeitmessungen sind, kann man hiermit noch geringste Kapazitäten nachweisen!

Erweiterung mit Ultraschallsensor (HC-SR04 / Arduino Hack):

Ultrasonic Sensor

Manchmal versagen die Rasensensoren und der L50 rast in Gebiete hinein, die er gar nicht mähen soll. Praktisch wäre es, wenn man ihn mit einem Ultraschallsensor ausrüsten könnte, der ihn rechtzeitig zur Umkehr zwingt! (So ein Sensor hat sich in meinen Tests im Tianchen als äußerst wirkungsvoll erwiesen).

Was man noch braucht ist ein Pin, womit man den L50 zur Umkehr zwingt. Da der L50 über keine Bumper verfügt und nur Hindernisse über den Motorstrom erkennt, kann man z.B. den Pin zur Strommessung / Ausgang des LM7301-OPAMP auf der Motorplatine verwenden (Pins 15 am 22-poligen Steckpfosten der Motorplatine), welche über einen 10k Widerstand zur MCU geht:

LM7301 OUT ----R10k----Pin15 Motorplatine----o------------- MCU MOTOR SENSE

(Siehe auch Schaltbild Motorplatine oben weiter)

Ein kurzer High-Impuls an Pin15 simuliert hohen Motorstrom (Hinderniss) und der L50 kehrt um!

Download des Arduino-Codes

Weitere verwandte Themen:

Eine Mähroboter-Simulation (für diesen und ähnliche Roboter) findet man hier.

Eine neue Steuerung (“Ardumower”) für diesen Roboter findet man hier.

Leave a Reply

Your email address will not be published. Required fields are marked *

IMPORTANT! To be able to proceed, please enter the magic word 'edgaan' so we know hat you are a human)

Enter the magic word:
Please leave these two fields as-is:

A blog on projects with robotics, computer vision, 3D printing, microcontrollers, car diagnostics, localization & mapping, digital filters, LiDAR and more