Arduino: Zeit- und Geschwindigkeitsmessung im Eigenbau

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Nach einigen Vorfällen in der jüngsten Vergangenheit möchten wir eindringlichst darauf hinweisen keine Bilder zu posten für die keine Rechte bestehen, siehe auch Punkt 9.2 der Boardregeln.

    • 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
    • New

      Zwiebelring wrote:

      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 ;)
    • New

      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.
      Files
    • New

      quotschmacher wrote:

      Zwiebelring wrote:

      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 ;)
      "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.
    • New

      Zwiebelring wrote:

      was ja der Arduinosprache
      sie nennen sie auch "c++"

      Zwiebelring wrote:

      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)

      Zwiebelring wrote:

      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 ;)
    • New

      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 -> amazon.de/clouddrive/share/3Kp…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 ...
      Files
    • Werbung
    • New

      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:

      1. Aktuell gemessene Geschwindigkeit (m/s)
      2. Höchste gemessene Geschwindigkeit (m/s)
      3. Aktuelle Rundenzeit (s)
      4. 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 ... :)
      Files

      The post was edited 1 time, last by Zwiebelring ().

    • New

      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.
      Files
    • New

      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 ...
      Files
    • New

      ... 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.

      amazon.de/clouddrive/share/hDv…IH3tTKLN3ck4vOxN75jv9rHG0

      Live lassen sich die Anzeigen übrigens einwandfrei lesen
      Files