Ich habe eine Dashcam mit Abstandssensor (Dashcam+Sensor+LiveApp)

liebe Community, ich verfolge euer Projekt schon lange und bin wirklich begeistert und beeindruckt, was ihr hier auf die Beine gestellt habt.
Ich pendle täglich 14km mit dem Rad zur Arbeit und erlebe regelmäßig kritische Situationen und rücksichtslose Autofahrer*Innen (auch sehr vorbildliche Autofahrer, das sei der Vollständigkeit wegen erwähnt :). Ich hatte mir dann nach einer beinahe Kollision Dashcams für vorn und hinten besorgt, allerdings fehlte mir dort immer der Abstand als sichtbarer Parameter. Neben dem leider gescheiterten Projekt Dashbike bin ich bei der Recherche auch auf euren Open Bike Sensor gestoßen, der mich dazu motiviert hat ein experiment zu starten, das nun tatsächlich ziemlich weit gekommen ist. Von hier aus würde ich das Projekt nun gerne mit anderen Interessierte zusammen weiter entwickeln. Und da liegt eure Community für mich sehr nah, da ihr schon viele Diskussionen geführt und euch sehr viel Erfahrung erarbeitet habt.

Das Prinzip ist eine Dashcam, die im Overlay auf dem Video live den aktuellen Seitenabstand, sowie den letzten Überholvorgang anzeigt. Die Überholabstände werden zusammen mit der aktuellen GPS Position in eine csv Datei zur späteren Auswertung geschrieben. Das Video läuft mit 30fps bei 720p. Trigger zum Sichern des aktuellen Videosegmentes ist ein Unterschreiten des Sicherheitsabstandes während der Aufnahmezeit. Im Prinzip gibts also zwei Einsatzzwecke. Der eine ist die Dashcam, die kritische Situationen möglichst gerichtsfest sichern soll. Darum habe ich mich auch dafür entschieden alle Informationen live ins Bild zu schreiben und nicht im Nachhinein Frames und Overlay über eine Dateimanipulation zu kombinieren. Der Zweite Einsatzzweck ist eher das Aufdecken grundsätzlicher Problemstellen über die CSV-Datei. Also die Ergänzung des OBS Projektes.

Basis ist ein Raspberry Pi 5, an den ein Radarsensor angeschlossen ist. Die Kamera guckt schräg zur Seite über die Straße, sodass man links im Bild die rückwärtige Straße und rechts in die „Blickrichtung“ des Radarsensors guckt und das seitliche Überholmaneuver erkennen kann. Es werden clips im Loop-Prinzip mit einer einstellbaren Länge, vorerst im RAM temporär aufgenommen. Wenn während der Aufnahme der zulässige Überholabstand von 150cm unterschritten wurde, wird das Video auf einem USB Stick zusammen mit der CSV-Datei gesichert.

Die Daten des Sensors (1 Messwert pro Frame) werden in eine csv Datei geschrieben. Die könnte so formatiert werden, dass das System optimalerweise den OBS ergänzen kann und in eure Datenbank integrierbar ist.

Das GPS Signal und die aktuelle Geschwindigkeit hole ich mir vom Smartphone. Auf dem Raspberry läuft dann eine kleine WebApp, die auf dem Smartphone am Lenker den letzten Überholabstand, sowie die aktuelle Geschwindigkeit und auch den aktuellen Videostatus (also ob der zulässige Abstand unterschritten und das Video gesichert wird) anzeigt.

unten noch ein Screenshot des Videos und der Web App. Das Video verlinke ich euch darunter.

Die Stromversorgung kommt aktuell noch von einer Power Bank. Und als Gehäuse dient mir bisher ein kleiner Versandkarton, den ich je nach Entwicklungsstadium leicht modifizieren konnte. Es besteht also noch sehr viel Entwicklungspotenzial. Als Arbeitstitel habe ich erstmal Open Bike Dashcam genommen. Das erschien mir sehr treffend :slight_smile:

Screenshot:

Video:

3 „Gefällt mir“

wow. sehr interessant.
was genau is denn das für hard- und software?

als Hardware habe ich einen raspberry Pi CM5 (also das kleine compute module ohne Anschlüsse und dadurch sehr viel kleiner als der standard Pi) und als IO-Board ein waveshare Nano-IO Board A. Daran angeschlossen ist dann ein Raspberry Pi Camera Module 3 wide und der Radarsensor XM125 von Sparkfun. Programmiert habe ich das alles in Python in vielen Stunden trial and error mit der Hilfe von Perplexity.

1 „Gefällt mir“

Würdest du auch den Code und weitere Destails teilen?

Und warum ein Radar- und nicht ein Ultraschall-Sensor?

Den Code kann ich gerne teilen. Aber besteht denn generell Interesse an einer Dashcam in eure Community und das Portal zu integrieren und bei der Optimierung zu unterstützen?

Den Radarsensor habe ich wegen der Unabhängigkeit gegen Umgebungseinflüsse gewählt. Beim Ultraschallsensor ist die mir der Temperatureinfluss mit mehreren cm zwischen Sommer und Winter einfach zu groß. Die Ergebnisse der Dashcam sollen ja möglichst gerichtsfest sein, und da ist mir eine Toleranz im mm-Bereich lieber. Zumal es schon genug Bewegung von Rad und Auto zueinander gibt, da möchte ich jegliche Toleranz so gering wie möglich halten.
Der Radarsensor ist wirklich grandios, wenn es um schnelle, zuverlässige Messungen geht.
Ein weiterer Pluspunkt ist, dass er sehr gut auf metallische Oberflächen misst, aber Bäume, Fußgänger, etc. bei den richtigen Einstellungen praktisch ignoriert. Somit entfallen schon sehr viele Fehlmessungen, die ich mit Ultraschall- oder TOF-Lasersensor vorher hatte.

Ich kann nur für mich sprechen. Ich möchte es gerne nachbauen.

Hast du dieses Board samt XM125-Sensor verwendet?

ja genau, das ist das Board. Dann schreib ich die Tage mal eine Einrichtanleitung. Wie kann ich hier den Code und die Dateien am besten hochladen? Eine Python Datei oder ein Archiv scheine ich nicht anhängen zu können.

Hier schonmal die Komponenten:
Hardware:

  1. Raspberry Pi cm5 (das computer module, wegen der Baugröße). ich hab die 8GB RAM mit 32GB festplatte, aber ein kleineres sollte auch reichen.
  2. Waveshare CM5 Nano-IO Board (A) - (also nur USB-C und USB-A anschluss)
  3. raspberry pi camera module 3 wide
  4. 2 x rgb led modul für die Status- und Rücklicht LED (ich hab ky-016 FZ0455 verwendet)
  5. Sparkfun XM125 A121
  6. USB Stick (möglichst USB 3)
  7. ggf. Powerbank mit mind. 5V, 5A oder ein passendes Netzteil

Zubehör:

  1. qwiic kabel (qwiic stecker female auf Dupont stecker female)
  2. 6 jumper Kabel (female)
  3. USB Kabel für die Powerbank
  4. Kamerakabel ( 22-polig/0,5 mm Pitch zu 15-polig/1,0 mm Pitch)

das einzige, das man löten muss, ist die GPIO Leiste auf dem IO-Board, sonst wird alles gesteckt. Oder du verwendest erstmal nur einen „klassischen“ raspberry pi 5.