Arduino: Zeit- und Geschwindigkeitsmessung im Eigenbau

  • Hier will ich euch über mein Projekt zum Eigenbau einer Zeit- und Geschwindigkeitsmessung informieren.


    Vorneweg: Meine Fähigkeiten im Elektronikbereich liegen irgendwo zwischen "kaum vorhanden" und "mäßig".
    Trotzdem war und bin ich mir sicher, dass man sich heutzutage auch eine Zeitnahme mit Geschwindigkeitsmessung selbst bauen kann. Das Zauberwort heisst Arduino. mit diesen kleinen Dingern kommt man unter Verwendung der entsprechenden Module fast völlig ohne Elektronikkenntnisse aus. Das reduziert sich auf das richtige Zusammenstecken von Kabeln.


    Allerdings muss man den Arduino auch noch programmieren. Wobei das für jemanden, der überhaupt schonmal eine Programmiersprache gesehen hat, kein großes Problem darstellen sollte.


    Okay - mein Projekt hat diese Komponenten zum Ziel:


    - die Zeit- bzw. Geschwindigkeitsmessung soll auf einer analogen Strecke erfolgen. mir schwebt dafür meine Sechsspurbahn vor. Im Gegensatz zu meiner Kellerbahn, hat die nämlich auch eine ordentlich lange Gerade, so dass sich auch eine Geschwindigkeitsmessung loht.


    - die Sensoren für die Zeitnahme sollen Gabellichtschranken sein. Die haben den Vorteil, dass es passend für den Arduino Module gibt, die für Carrerabahnen gut den Slot überbrücken. Diese Module sind vor allem fertig konfektioniert, das heisst dass man da einfach nur drei Dräht dran- und in den Arduino reinstecken muss.


    - die Ausgabe soll über 7-Segmentmodule erfolgen, die es auch schon fix und fertig für den Arduino gibt. Dranstecken und los kann das Programmieren gehen.


    - Hintenraus schwebt mir dann auch noch die Anbindung an PC Lap Counter vor. Das ist die Zeitnahme, die ich bisher in Benutzung habe. Dem kann man über die USB Schnittstelle dann sehr simpel die entsprechende Information übergeben.



    Jetzt muss ich aber erstmal raus. Mehr dazu im nächsten Posting ...


    Viele Grüße


    Gerald

  • ebay Werbung
  • kein großes Problem darstellen sollte.

    darfst trotzdem gerne fragen dazu stellen und bekommst in der regel auch (irgendwann) eine antwort.


    die 7 segmentanzeigen sind dann vermutlich über i2c oder sowas angeschlossen? sonst wird es mit den pins ja etwas schwierig...
    und die gabellichtschranken: interrupts können auch ihre tücken haben - pass da auf ;)

  • Dann will ich euch mal ein paar Details und anschließend Bilder vom ersten Laboraufbau liefern


    Im ersten Testschritt habe ich zwei der Gabellichtschranken ganz ohne Schienen hinterander gelegt und beide an den Arduino angepinnt. Die Lichtschranken benötigen drei Anschlüsse. Masse, 5V und eine Signalleitung.
    Dazu kommt das erste Anzeigemodul, das mit 5 Leitungen angepinnt wird. Masse, 5V und drei Signalleitungen. Diese 7Segmentanzeigen (Typ max7219) können aber in Serie geschaltet werden, so dass für insgesamt 8 Anzeigen auch nur 5 Anschlussleitungen auf dem Arduinoboard benötigt werden. Jeder der 7Segmentanzeigen verfügt über 8 Ziffern - Jeder der Ziffern kann mit einem Dezimalpunkt versehen werden.
    Mehr als vier Stellen werden zur Anzeige der Geschwindigkeit sicherlich nicht benötigt, sodass man mit je einem Modul pro Spur sowohl die aktuell gemessene Geschwindigkeit anzeigen kann als auch die höchste bisher gemessene.


    Wenn ich oben angepinnt oder angeschlossen geschrieben habe, bedeuted das tatsächlich nur, einen Stecker auf einen Stift zu stecken - kein Löten, keine zusätzlichen Bausteine - nichts. Mit einer winzig kleinen Einschränkung allerdings: In der Lieferung meiner 7Segmentanzeigen waren die Stifte noch nicht an die Module angelötet - das war tatsächlich noch zu tun.


    Schließlich noch die erste rudimentäre Version des Sketches (so heißen Arduinoprogramme) programmiert und hochgeladen - und so sah das dann aus. Die angezeigten Werte (bisher übrigens immer in m/s) sind noch nicht realisisch, da dieser Aufbau den programmierten Distanzen der Sensoren nichtmal andeutungsweise nahe kam.

  • darfst trotzdem gerne fragen dazu stellen und bekommst in der regel auch (irgendwann) eine antwort.
    die 7 segmentanzeigen sind dann vermutlich über i2c oder sowas angeschlossen? sonst wird es mit den pins ja etwas schwierig...
    und die gabellichtschranken: interrupts können auch ihre tücken haben - pass da auf ;)

    "kein großes Problem darstellen sollte." bezog sich ja auf das Programmieren. Das kann ich schon ein bisschen ;) Was man halt so im Laufe seines Lebens als Mathematiker benutzt. Unter anderem spreche ich einigermaßen bis mittelmäig C, was ja der Arduinosprache sehr nahe kommt. Meine schwache Seite in diesem Projekt liegt eindeutig im Bereich der Elektronik. Und hier staune ich immer wieder, wenn die Experten hier noch einen Widerstand oder da noch einen Kondensator reinhauen, und dabei anscheinend völlig klar ist, welche Größe da zu nehmen ist ...


    Die maxx7219 7segmentanzeigen benutzen SPI - was immer das genau heißen mag. Meiner Recherche zufolge, kann man da bis zu 4x8 Teile anschließen und braucht maximal 4*3 Output Pins am Arduino. In meinem Fall ist das Ziel 2*6 Module anzuschließen. Geschwindigkeit und Rundenzeit jeweils für 6 Spuren, wofür 2*3 Output Pins am Arduino benötigt werden.


    Aber der Einwand mit der Anzahl der Pins am Arduino war berechtig. Rechnen wir das mal grob durch:


    12 Gabellichtschranken mit je einem Input Pin -> 12 Pins
    2*6 7Segmentanzeigen -> 6 Pins
    optional Buzzer oder Lautsprecher -> 1 Pin


    Das sind insgesamt schon 19 Pins - also schon zu viel für einen Arduino Uno, wenn man nur die Digitalpins zählt. Ich habe keine halben Sachen gemacht und mir für etwas mehr Geld gleich einen Arduino Mega besorgt - wer weiss was da noch alles dran kommt.

  • was ja der Arduinosprache

    sie nennen sie auch "c++"

    bezog sich ja auf das Programmieren

    ich weiß. das ist mir schon klar. aber bei einem microcontroller programmiert man mitunter ziemlich dicht an der hardware. bei den arduino libs wird das wieder ein wenig abstrahiert, aber ganz befreit ist man davon auch nicht ("warum funktioniert denn das hier nicht mehr, wenn ich die lib nutze - weil beide den selben timer verwenden" - so in die richtung)

    wofür 2*3 Output Pins am Arduino benötigt werden

    wenn es wirklich spi ist, können sich alle module den daten- und clockpin teilen und du hast eine chip select leitung, über die du auswählst, welcher chip gerade angesprochen wird.



    aber das geht alles schon sehr ins detail - fang mal erstmal an ;)

  • Und damit sind wir fast schon beim aktuellen Stand.


    • Gabellichtschranken in Carreraschiene eingepasst
      In der MItte der 124er Standardgeraden befindet sich eine Doppelbefestigung der Leiter. Von unten betrachtet sind das quasi vier quadratische Ausschnitte.Zwei gegenüber liegende habe ich missbraucht, etwas zusätzlichen Platz geschaffen und die Gabellichschranken eingeklebt. Dieser Schritt ist etwas fummelig, da die Sender und Empfänger sich möglichst nahe an der Schiene befinden müssen. Tatsächlich habe ich mit dem Dremel noch etwas Schienenmaterial weggenommen und die Gabellichtschranken mit einem Teppichmesser etwas kürzen müssen.
    • Auf einer Spur Gabellichtschranken wieder mit Arduino verdrahtet
    • Test
      Die eine Spur funktioniert noch immer, nur werden jetzt schonmal realistische Geschwindigkeiten angezeigt. Ich habe wieder Bilder angehängt und ein kurzes Video gibt es auch schon -> https://www.amazon.de/clouddri…wlOcxK5NFCP0jw92TLpE6iwQz


    Tatsächlich bin ich schon einen Schritt weiter. Aber gestern war es spät, ich war müde und ich habe keine Aufnahmen mehr gemacht. Mehr also heute Abend oder morgen ...

  • ebay Werbung
  • Sodele - in der Mittagspause mal schnell einen provisorischen Galgen zusammengezimmert, damit die zu erwartetenden 12 Anzeigen kein heilloses Durcheinander hervorrufen.


    Der gestrige Fortschritt bezog sich darauf, dass nun mithilfe derselben Lichtschranken auch noch die Zeitdifferenz zweier aufeinander folgender Durchgänge gebildet und damit die Rundenzeit ermittelt wird.Die Anzeigen von links nach rechts sind nun:


    • Aktuell gemessene Geschwindigkeit (m/s)
    • Höchste gemessene Geschwindigkeit (m/s)
    • Aktuelle Rundenzeit (s)
    • Beste gemessene Rundenzeit (s)


    Im Prinzip ist damit der Bau einer Rundenzeit- und Geschwindigkeitsmessung bereits abgeschlossen. Jetzt gilt es noch, das Ganze auf sechs Spuren aufzuboren und anschließend in einen sicheren und in transportablen Zustand zu bringen. Dafür brauche ich jetzt aber erstmal noch Material. Achja - eine schönere Gesamtpräsentation soll es auch noch geben ... :)

  • Inzwischen sind auch die Anzeigen für die Spuren 2-6 angebracht und der Signaleingang am Stecker verdrahtet. Ich hoffe jetzt, dass das fehlende Material bald kommt. Sonst muss ich in eine Zwangspause gehen.

  • In den letzten Tagen hat es Fortschritte gegeben und es wurden ein paar kleinere Rückschläge überwunden. Letztere sind vermutlich darauf zurückzuführen, dass ich das Projekt in der Konzeptionsphase nicht in allen Einzelheiten überblickt hatte. Doch der Reihe nach:


    • die komplette Zeitnahmeanlage ist ja in drei Modulen konzipiert:
      1) Recheneinheit mit Arduino
      2) Sensoreinheit, die die insgesamt 2x6 Gabellichtschranken an den Schienen umfasst
      3) Anzeigeeinheit, die die gemessenen Werte sichtbar über die 7Segmenteinheiten ausgibt
      Die einzelnen Einheiten sollen per Parallelkabel verbunden werden - also nur Stecker und Kabel werden benutzt, aber kein Anschluss an einen Computer.
      Das ist im Laboraufbau jetzt komplett verdrahtet
    • Beim Anschluss von mehr als zwei Modulen auf jeder Seite (GEschwindigkeit und Rundenzeit), funktionierten die weiteren Module nicht mehr. Znächst zur Erklärung des Aufbaues:
      Die jeweils 2 Spannungs- und 3 Signalleitungen sollen angeblich von einem zum nächsten Modul durchgeschleift werden können. Sprich - man verbindet die Ausgänge des einen Moduls mit den Eingängen des nächsten. Soweit das Werbeversprechen.
      Tatsächlich verlieren die Dinger vom Eingang bis zum Ausgang 0.7V an Spannung, was vermutlich mit einer verbauten Diode zusammenhängt. Damit ist eigentlich von vornerein klar, dass sehr bald Schluss sein muss mit der kaskadierten Schaltung, weil einfach nicht mehr genug Spannung ankommt.
      Ich habe also an der Anzeigeeinheit entsprechend umgebaut und die 5V Eingangsspannung jeweils zentral geholt.
    • Tja - und dann hatte ich durchgerechnet, was die 7Segmentanzeigen so an Strom ziehen - VIEL zu viel, um das über den Arduino zu ziehen. Der wäre vermutlich geschmolzen oder so. Ich habe den Anzeigen also auch noch ein eigenes Netzteil verordnet. Der Arduino bleibt also kühl und die Anzeigen nehmen sich, was sie brauchen




    Das angehängte Bild zeigt den aktuellen Stand in der "Bootphase". Die Sensoren sind ja noch nicht komplett verdrahtet, so dass ich momentan nicht mehr zeigen kann. Das kommt dann hoffentlich beim nächsten Mal ...

  • ... ich hoffe, dass überhaupt noch jemand mitliest ... ;)


    Zwecks besser Lesbarkeit habe ich nun die Anzeigen etwas umsortiert in


    Aktuelle Rundenzeit (s) - aktuelle Geschwindigkeit (m/s) - Beste Rundenzeit (s) - Höchste Geschwindigkeit (m/s)


    Ein Foto davon gibt es unten.


    Außerdem habe ich mal flugs einen Simulationsmodus eingebaut, so dass ich in Abwesenheit hinreichend vieler Fahrer auch so sehen kann, ob das Programm zuverlässig läuft.
    Das könnte ihr euch in diesem Videoschnipsel anschauen, simuliert wurden Geschwindigkeiten um die 3.5m/s und Rundenzeiten von ca. 10s. Letzteres damit man einen Eindruck gewinnt, wie die Anzeige mit einer bzw. Zweivorkommastellen aussieht.


    https://www.amazon.de/clouddri…IH3tTKLN3ck4vOxN75jv9rHG0


    Live lassen sich die Anzeigen übrigens einwandfrei lesen

  • Hallo Gerald,


    tolle Sache.


    Hast du evtl. auch eine Kostenzusammenstellung bspw. Pro Spur oder für Anzeige, LS und Auswertung?


    Plane grade eine Dragsterstrecke, da wäre logisch Zeit und Geschwindigkeit , d.h. vier Anzeigen.
    entsprechend wohl 4 LS nötig?


    Wäre cool wenn wir uns da etwas austauschen könnten.


    Danke Grüße Thomas

  • ebay Werbung
  • ... ich hoffe, dass überhaupt noch jemand mitliest ...

    ...mach Dir keine Gedanken, ich lese schon mit (mit Begeisterung). Ich warte jetzt bloss für die Kosten für ein Gesamtpaket für eine EINSPURIGE Rallyebahn, bei der könnte ich auch auf Anzeige der Geschwindigkeit verzichten, also nur Zeitenjagd. Das ganze bitte als Gesamtpaket :D ...falls Du sowas anbieten würdest :P


    Martin

    Slotheimi

  • Vorneweg: Meine Fähigkeiten im Elektronikbereich liegen irgendwo zwischen "kaum vorhanden" und "mäßig".

    ...also dann beschränken sich meine Fähigkeiten, nach dem ich das alles gelesen habe, im Elektronik- / Elektrobereich aus LICHT EIN / AUSSCHALTEN :D:D:D

    Slotheimi


  • ...mach Dir keine Gedanken, ich lese schon mit (mit Begeisterung). Ich warte jetzt bloss für die Kosten für ein Gesamtpaket für eine EINSPURIGE Rallyebahn, bei der könnte ich auch auf Anzeige der Geschwindigkeit verzichten, also nur Zeitenjagd. Das ganze bitte als Gesamtpaket :D ...falls Du sowas anbieten würdest :P
    Martin

    Genau so ein Gesamtpaket für eine einspurige Rallye-Strecke würde ich auch gerne nehmen.

    Abarth Historic Driver

  • Was ist denn das fuer eine Sensoreinheit? Ich wuerde Dir empfehlen, die Zeitmessung an einen eigenen Arduino zu delegieren. Die Kleinen kriegt man ja guenstig. Der kann dann sich dann auf die latenzfreie, parallele Messung aller Spuren konzentrieren.

  • ebay Werbung
  • Wow - da haben sich ja einige Antworten angesammelt.


    Ich war für zwei Wochen raus - da ich unter anderem ein Corona Video fertig gestellt habe. -> https://youtu.be/57hbPEsEWyw
    Ich bin übrigens der oben rechts ;)


    In den Antworten, die in der Zwischenzeit eingegangen sind, scheint es mir vor allem um die Kosten zu gehen. Nun - ganz billig ist das nicht, vor allem, wenn es viele Spuren zu "versorgen" gilt. Mir ging es ja i.w. darum, das Projekt trotz geringer Elektronikkenntnisse durchzuziehen. Ich stelle die Kosten gerne zusammen und poste es in den nächsten Tagen - morgen oder übermorgen.


    Bis dann ...

  • Tut mir leid - jetzt hat es leider doch nochmal ein paar Tage länger gedauert, bis die Antwort nach den ungefähren Kosten kommt.


    Da ja vermutlich jeder für sich ein etwas Projekt erstellen wird habe ich das mal i.w. in zwei Teile geteilt: Kosten für die zentrale Recheneinheit plus Verteilung und Kosten pro Spur. Letztere sind dann entsprechend zu multiplizieren


    Kosten für die zentrale Recheneinheit plus Verteilung


    EUR 37: Arduino Mega
    EUR 5: Arduino Netzteil 9V 0.5A
    EUR 33: 3x jeweils Breakout M+F Parallelkabel (insgesamt sechs Bauteile)
    EUR 15: 3x Parallelkabel
    EUR 17: Netzteil 5V 4A für die Anzeigeneinheit
    =======
    EUR 107



    Kosten pro Spur bei zwei 7-Segmentanzeigen pro Spur


    EUR 7: 2x achtstellige max7219 7Segmentanzeigen
    EUR 3: 2x Gabellichtschranke
    =======
    EUR 10



    Kosten pro Spur bei drei 7-Segmentanzeigen pro Spur


    EUR 11: 2x achtstellige max7219 tube 7Segmentanzeigen
    EUR 3: 2x Gabellichtschranke
    =======
    EUR 14

    Die letzte Aufstellung wird bei mir im Moment aufgebaut. Ich will jetzt auch noch die Runden zählen ;)



    Dazu kommen dann noch Kosten für die Steckkabel und etlichen Kleinkram, die so in der Größenordnung von EUR 20-30 liegen.
    Und ihr müsst euch Gedanken machen, in welchen Boxen ihr die Einheiten unterbringt.
    Schließlich sollten die Schienen auch noch einen Boden bekommen, damit sie nicht so zerbrechlich auf den Gabellichtschranken stehen.


    Insgesamt ist das nicht wirklich billig. Aber man lernt dabei so einiges und kann das Ding letzlich genau so gestalten, wie man das möchte.

  • ...mach Dir keine Gedanken, ich lese schon mit (mit Begeisterung). Ich warte jetzt bloss für die Kosten für ein Gesamtpaket für eine EINSPURIGE Rallyebahn, bei der könnte ich auch auf Anzeige der Geschwindigkeit verzichten, also nur Zeitenjagd. Das ganze bitte als Gesamtpaket :D ...falls Du sowas anbieten würdest :P
    Martin


    Nein - anbieten will ich das nicht.
    Das muss dann schon jeder selbst bauen. Meine Software würde ich freilich zur Verfügung stellen - nicht dass die besonders empfehlenswert wäre. Aber sie sollte schonmal die wesentlichen Funktionalitäten enthalten.


    Für eine einspurige Bahn ohne Geschwindigkeitsmessung, wird das natürlich deutlich günstiger, weil man quasi alles in einer Einheit unterbringen kann - auch ein Arduino Mega ist da nicht nötig. Ob ein Nano reicht, weiss ich jetzt nicht, aber ein Uno ist bestimmt ausreichen.
    So in dieser preislichen Größenordnung würde ich das dann erwarten:



    EUR 20: Arduino Uno
    EUR 5: Arduino Netzteil 9V 0.5A
    EUR 4: 1x achtstellige max7219 7Segmentanzeigen
    EUR 2: 1x Gabellichtschranke


    EUR ?? Kleinteile
    EUR ?? Porto
    EUR ?? Box für Rechner und Anzeige


  • Wie geschrieben bin ich jetzt sogar bei drei 7-Segmentanzeigen pro Spur.


    Nach wie vor werden in je zwei Anzeigen, Rundenzeiten und Geschwindigkeiten angezeigt, jeweils die Aktuelle und die Beste. Insgesamt war ich aber mit den Möglichkeiten, die mein Aufbau und mein Programm soweit schon boten ganz dicht an einem "vollwertigen" Rundenzähler dran. Deshalb habe ich noch drei Angaben auf jeweils einem zusätzlichen Display ergänzt:


    - Aktuelle Position
    - Aktuelle Anzahl der Runden
    - Aktueller Abstand zum Führenden


    Hier gibt es im Schnelldurflauf eine einstündige Rennsimulation


    https://www.amazon.de/clouddri…pBajVN5GHH2wU0vkM9t8AbiK1


    Viel Spaß dabei


    Gerald

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!