GPIO-Eingänge konfigurieren

Richte mit dem OpenMower-Eingabedienst GPIO-Eingänge für Not-Aus-Taster, Sensoren zum Erkennen angehobener Räder und weitere Taster ein.

Überblick

In OpenMower kannst du GPIO-Pins als digitale Eingänge konfigurieren, die einen Not-Aus oder andere Ereignisse auslösen. Typische Anwendungen sind:

  • Sensoren an den Rädern: erkennen, wenn der Mäher angehoben wird
  • Stopptasten: Not-Aus-Tasten am Mäher
  • Kollisionssensoren: erkennen, wenn der Mäher gegen ein Hindernis fährt

Schritt 1: Konfigurationsdatei für die Eingänge anlegen

Als Ausgangspunkt für deine inputs.yaml empfehlen wir eine fertige, hardwarespezifische Konfiguration, die du an deine Verkabelung anpasst. Vorlagen für deine Trägerplatine findest du hier:

https://github.com/ClemensElflein/open_mower_ros/tree/main/src/open_mower/params/hardware_specific

Lade die passende inputs.yaml herunter und speichere sie unter /home/openmower/params/inputs.yaml.

Hier ein einfaches Beispiel zur Orientierung:

gpio:
  - name: Front left wheel lift
    line: GPIO10
    active: low
    emergency:
      reason: lift
      delay: 2500

  - name: Front right wheel lift
    line: GPIO11
    active: low
    emergency:
      reason: lift
      delay: 2500

  - name: Top stop button 1
    line: GPIO12
    active: low
    emergency:
      reason: stop
      delay: 10

  - name: Top stop button 2
    line: GPIO13
    active: low
    emergency:
      reason: stop
      delay: 10

Konfigurationsfelder

FeldBeschreibung
nameLesbare Bezeichnung des Eingangs
lineName des GPIO-Pins, zum Beispiel GPIO10
activeLogikpegel, der das Ereignis auslöst: low oder high
emergency.reasonNot-Aus-Art: lift für angehobene Räder, stop für die Stopptaste, collision für Hinderniserkennung
emergency.delayEntprellzeit/Verzögerung in Millisekunden, bevor der Not-Aus ausgelöst wird

GPIO-Pinzuordnung

Das Beispiel oben verwendet GPIO10 bis GPIO13. So sind sie den physischen Anschlüssen der jeweiligen Platine zugeordnet.

OpenMower-YardForce-Platine ab v1.2.0

Ab dieser YardForce-Platinenversion kannst du zwischen den bisherigen OM-JST-XH-Anschlüssen und der Originalverkabelung über die CoverUI wählen. Die JST-XH-Anschlüsse sind vor allem für Umrüstungen von HWv1 gedacht, die Originalverkabelung für neue Umbauten. Dafür besitzt die Platine einen Hall-Multiplexer (MUX), den du in inputs.yaml so einstellst:

yf_cover_ui:
  # ---- Hall Inputs Source Selector ----
  # "om" when the hall sensors get connected to the XHST plugs of the OpenMower board
  #      (or the robot-adapter-pinheader)
  # "oem_idc" when the hall sensors get connected to the (non-modded) OEM CoverUI board
  #      (and CoverUI get connected via the 16pin IDC cable to the OpenMower board)
  - name: Hall Inputs Source Selector
    id: hall_mux
    value: oem_idc


Je nach Hall-MUX-Einstellung sind die GPIOs wie in diesem Bild zugeordnet: YF Hall-MUX GPIOs
Die grün markierten Stecker/GPIOs gehören zur Hall-MUX-Einstellung om, die orange markierten zu oem_idc.

OpenMower-YardForce-Platine bis v1.1.0-beta

Halte die Platine so, dass die Ethernet-Ports unten links liegen. Die Pins sind von oben nach unten aufgelistet.

PositionGPIO
1. (ganz oben)GPIO10
2.GPIO11
3.GPIO12
4.GPIO13

OpenMower-Universal-Board

Halte die Platine so, dass die Ethernet-Ports zu dir zeigen.

PositionGPIO
Oben linksGPIO13
Oben rechtsGPIO12
Unten rechtsGPIO11
Unten linksGPIO10

OpenMower-SABO-/John-Deere-Platine

Wenn du die Eingabekonfiguration der SABO-/John-Deere-Trägerplatine ändern möchtest, lade am besten die Standarddatei inputs.yaml herunter.

Schritt 2: Eingabedienst aktivieren

Ergänze Folgendes in deiner mower_params.yaml, bei Umbauten mit dem Universal-Board in custom_params.yaml:

ll:
  services:
    input:
      config_file: /data/params/inputs.yaml

So öffnest du die Datei zum Bearbeiten:

openmower configure ros

Schritt 3: OpenMower neu starten

Speichere beide Dateien und starte den Dienst neu, um die Änderungen zu übernehmen:

openmower restart

Die GPIO-Eingänge sind jetzt aktiv. Sobald der festgelegte Logikpegel erkannt wird, lösen sie die konfigurierten Not-Aus-Ereignisse aus.