Ablaufsteuerung

Im ersten Schritt ging es um das Auslesen der OBD2-Werte und der Ansteuerung des Displays. Später werden noch weitere Quellen hinzukommen, deren Daten permanent abgefragt werden müssen.

Dazu gehören:

  • Temperatursensoren
  • GPS-Daten
  • Echtzeituhr
  • Taster

All diese Informationen müssen permanent verarbeitet werden um zum Beispiel den Durchschnittsverbrauch zu ermitteln. Im Anschluss wird das Display aktualisiert.

Wie sieht die Ablaufsteuerung eines solchen Systems aus? Ich habe mich bei der Überlegung dazu an eine Spielerei von vor 14-15 Jahren erinnert. Damals habe ich mich ein paar Wochen mit der 3D-Spieleentwicklung befasst.

Es geht nicht die 3D-Entwicklung, sondern um die Art wie Computerspiele an sich umgesetzt sind.
Dort gibt es eine Game-Loop, das ist eine Endlosschleife die nacheinander alle Daten abfragt, auswertet und die Bildschirmausgabe aktualisiert.

Man kann sich das so vorstellen:

while (gameIsRunning) {
  handleUserInput();
  calculateGameState();
  updateDisplay();
}

Je öfter die Schleife pro Sekunde durchlaufen wird, desto öfter kann der Spielstand aktualisiert werden und desto öfter wird die Bildschirmausgabe aktualisiert. Das entscheidet dann maßgeblich über die FPS und über die Reaktionsfähigkeit des Systems.

Dieses Prinzip nutze ich 1:1 auch (was anhand der Hauptschleife meines Skriptes sichtbar wird):

Bei jedem Schleifendurchlauf werden die gedrückten Tasten, OBD-Werte und sonstige Daten (Temperatur, …) abgefragt.

Die Funktion obd_reader.get_obd_values() macht mehr als der Name verspricht. Denn diese Methode ermittelt alle Werte (Temperatur, Echtzeituhr, …) und führt verschiedene Berechnungen (z.B.: den Durchschnittsverbrauch) durch.

Comments

  • Ole

    Juni 14, 2023 at 8:18 pm

    Hallo Klaus,
    auch ich fahre auch einen älteren Ford (Fiesta 2004) und würde gerne als erstes Temperaturen und Verbräuche mit dem Raspberry auslesen und speicherm. Im Idealfall in die InfluxDB schreiben und auf einem alten VW Display ausgeben.
    Wie sollte ich da starten? Welches Interface OBD 2 USB würdest du 2023 empfehlen? I.d.R würde ich mir die Signale mit CANape über eine Vector 1610 holen aber ich denke die Lösung mit dem Raspberry wird deutlich günstiger werden 😉

  • Klaus

    Juni 20, 2023 at 12:54 pm

    Hallo Ole,

    das klingt zunächst einmal recht aufwendig 🙈
    Ich hab jetzt mit InfluxDB und CANape keine Erfahrung, klingt aber doch danach, dass da am Ende ein kompletter PC mitlaufen muss oder?

    Ich werde mich zu dem Thema am Besten mal per Mail melden.

    Grüße,
    Klaus

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert