Forum: Mikrocontroller und Digitale Elektronik Modellauto Geschwindigkeits- und Zeitmessung mit Lichtschranke und Funkübertragung


von Tobias (Gast)


Lesenswert?

Hi

Wir haben hier in der Uni einen kleinen Wettbewerb, bei dem die 
Studenten ein Modellauto modifizieren müssen. Am Ende werden dann in 
mehreren Disziplinen kleine Wettbewerbe gefahren.
Eine Disziplin ist das Beschleunigungsrennen. Bisher wurde das per Hand 
mit einer Stoppuhr gemessen - was natürlich entsprechend ungenau ist. 
Also messen schon drei Leute und man nimmt die Mitte. Naja, alles nicht 
optimal, also wollte ich (bin selbst Student und als HiWi an dem Projekt 
beteiligt) eine automatische Zeiterfassung bauen.

Daten der Strecke:
- ca. 2-3m breit
- ca. 15m lang

Anforderung an die Messerfassung:
- möglichst wenig Kabel ziehen, am besten aufstellen, ausrichten, läuft
- Messgenauigkeit von unter 50ms Pflicht, unter 10ms wäre schön, 1ms 
wäre top
- Zusätzlich eine grobe Messung der Geschwindigkeit bei Zieleinfahrt
- zuverlässige Erfassung des Fahrzeugs, soll ja niemand mehrfach fahren 
müssen, weil die Messung versagt hat.

Wie ich denke es zu lösen:
- 3 Infrarotsender bestehend aus IR-Diode (940nm, 30° Abstrahlwinkel) in 
einem kleinen Plastikrohr zum Abschirmen, einem "Frequenzgenerator" der 
die LED mit z.B. 30kHz pulst und einer kleinen Stromversorgung (3xAA 
Batterien)
- 3 Empfängerplatinen bestehend aus TSOP34830 als IR-Empfänger, 
beschaltet wie im Datenblatt und ebenfalls im Plastikrohr zum 
Abschirmen, einem Atmega Mikrocontroller und einem RFM70 Funkchip, 
wieder versorgt mit 3xAA Batterien
- 1 "Auswerter" mit RFM70 Funkchip, Atmega, MAX232 Pegelwandler, 3xAA, 
per serieller Schnittstelle mit dem PC verbunden

Dann die drei Sender links am Fahrbahnrand aufstellen, einen am Start, 
einen am Ziel und einen z.B. 1m vorm Ziel um die Geschwindigkeit auf dem 
letzten Meter messen/errechnen zu können. Die drei Empfänger jeweils auf 
der anderen Seite der Fahrbahn. Per Funk werden dann die drei 
Lichtschranken ihr Signal an den "Auswerter" schicken, über den ich die 
Daten in den PC bringe und dort auswerte.


So, habe ich dabei irgendwas ganz wichtiges übersehen? Oder könnte das 
so was werden?  Muss ich noch irgendwas wichtiges beachten?
Oder hat jemand 'ne bessere Idee?

von Karl H. (kbuchegg)


Lesenswert?

Klingt grundsätzlich nicht schlecht.

Ich würde am Mega selber noch ein LCD anbringen und auf den Funk würde 
ich verzichten (eh schon wissen: Wer Funk kennt nimmt Kabel).

15 Meter sind doch noch keine Distanz. Da ist ein Kabel genauso schnell 
ausgeworfen und an die Einzelbaugruppen angesteckt. Dafür gibts dann 
aber auch keine Probleme mit Funkstörungen.

Da du einen PC in der Nähe hast, hast du wahrscheinlich auch 230V 
Netzspannung. Womit für mich die Batterien raus sind und ein kleines 
Netzteil her muss. Per Trafo erst mal runter auf so um die 9V und dann 
mit einem 7805 auf den einen (!) Mega.
die 9V schick ich per Kabel raus zu den Lichtschranken, die über andere 
Adern ihre Pulse an den einen Mega zurückmelden. 9V deswegen, weil mich 
dann auch der Spannungsabfall nicht weiter interessiert (obwohl, bei 15m 
hast du da sowieso noch keinen nennenswerten Abfall).
Ein Kabel vom Mega zur ersten Lichtschranke, von dort ein Kabel zur 
2.ten und von dort zur 3.ten. Macht minimum 5 Adern, die einfach an 
jeder Lichtschrankenplatine vom Eingang zum Ausgang durchgeschleift 
werden bzw. die jeweilige Platine holt sich eine Ader für ihr eigenes 
Signal raus.

Vorteil: Ich hab die Unterbrechungen der Lichtschranken direkt am 
Auswerte-Mega und muss mir da kein Multi-Prozessor System mit 
Kommunikation von 4 Megas überlegen. Und die 2 Minuten zum Ziehen bzw. 
Einholen der Kabel hab ich allemal bei einem Wettkampf.

Einziger Nachteil: Ich hab eine potentielle Stolperfalle.
Aber das hängt jetzt auch wieder vom Gelände ab, auf dem die Rennen 
stattfinden.

von Karl H. (kbuchegg)


Lesenswert?

Ach ja. Denk drann:
IR siehst du nicht. D.h. du brauchst eine optische Hilfe, wie du Sender 
und Empfängerröhrchen aufeinander ausrichtest. Und der Sender muss ja 
auch (da auf der anderen Seite der Bahn) mit Strom versorgt werden, 
womit die Batterien wieder im Spiel sind (ich mag Batterien nicht, weil 
sie dazu tendieren immer leer zu sein, wenn man sie braucht und keine 
Ersatzbatterien verfügbar sind :-)
Müsste man mal probieren, ob das geht, dass man Sender und Empfänger in 
ein gemeinsames Gehäuuse einbaut und auf die gegenüberliegende Seite 
sowas wie ein Katzenauge stellt. (d.h. 2 Lichtstrahlen quer über die 
Bahn).

von Jojo S. (Gast)


Lesenswert?

Radarmessung geht evtl. auch, es gibt kleine low cost Teile die trotzdem 
recht genau sein sollen, zB 
http://www.eurotronic.org/fileadmin/user_upload/eurotronic.org/Download-BAL-WB/Vmax/V-max-basic-BAL-de.pdf
Kostet so ca. 50€. Es gibt auch teurere Radarpistolen, vielleicht gibts 
auch was mit Schnittstelle für die automatische Aufzeichnung. Im 
Modellbau findet man solche Messgeräte auch.

von Route_66 (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> sowas wie ein Katzenauge stellt. (d.h. 2 Lichtstrahlen quer über die
>
> Bahn).

Das hast du Dir wohl bei den Bullen abgeschaut?

von Tobias (Gast)


Lesenswert?

@Jojo: Mit dem Radargerät messe ich aber doch erstmal nur die 
Geschwindigkeit, oder? Die Zeitmessung ist wichtiger, Geschwindigkeit 
ist nur ein netter Zusatz.

@Karl: Danke für deine Meinung dazu. Dann werde ich mal anfangen die 
Teile zu besorgen und zu basteln. Erstmal als Kabellösung und mal 
schauen, ob ich später nicht doch noch auf Funk ausbauen kann :)

von M. N. (Gast)


Lesenswert?

Für die ersten Versuche, könnte das hier reichen
Beitrag "Stoppuhr – Geschwindigkeit – Pulsweite mit Atmega88"

von Tobias (Gast)


Lesenswert?

So, ich habe gerade angefangen zu basteln. Erst einmal mit ein paar 
Testkomponenten, die ich gerade "rumfliegen" hatte bzw. auf die schnelle 
zum Testen besorgen konnte.

Prozessor: ATmega32
IR-Empfänger: TSOP31240 (40kHz Carrier)
IR-Diode: Osram LD 271 L (950 nm, +-25°)

Damit wollte ich erst einmal die Lichtschranke testen bzw. überhaupt die 
Reichweite ausprobieren.

Der ATmega32 läuft auf 8MHz, mit folgendem Code toggle ich den Ausgang 
OC0 80.000x pro Sekunde, so dass ein Signal mit 40kHz entsteht, bei 50% 
an und 50% aus.
1
  //Timer initialisieren
2
  TCCR0 |=  (1<<WGM01) | (1<<COM00) | (1<<CS00); //Timer bei Compare Match zurücksetzen, OC0 bei Compare Match togglen, Vorteiler auf 1
3
  OCR0 = 99; //Bei jedem 100. Schritt togglen
Das funktioniert auch. Wenn ich die IR-Diode auf den Empfänger richte, 
fällt dessen Ausgangsspannung auf ca. 0V, wenn ich die Diode "zuhalte", 
steigt die Spannung sofort wieder auf ~5V (=Eingangsspannung). Genau so 
soll es ja auch sein.

Dann habe ich die Reichweite getestet. Im Fernseher o.ä. hat eine solche 
Kombination ja durchaus einige Meter. Ich komme maximal auf ca. 30cm. 
Bei ca. 28-30cm ist die Ausrichtung schon ziemlich empfindlich, ab 30cm 
kommt dann auch bei guter Ausrichtung nichts mehr an und die 
Ausgangsspannung vom TSOP liegt wieder bei 5V. Mache ich noch irgendwas 
falsch? Oder brauche ich so leistungsfähige Dioden als Sender? Ich 
betreibe sie derzeit an einem 150Ohm Widerstand bei 5V 
Versorgungsspannung. Gemessen fließen dann ca. 21mA, wenn sie dauerhaft 
an ist und ca. 9,6mA wenn sie bei 40kHz in 50% Zyklen betrieben wird. 
Fernbedienungen ziehen doch nicht so viel Strom und senden mit >100mA 
Strom an der Diode, um solche Reichweiten zu erzielen - oder doch? Was 
mache ich falsch?

von Tobias (Gast)


Lesenswert?

Ergänzung: halber Vorwiderstand, knapp 16mA Strom fließen nun effektiv 
durch die Diode. Jetzt komme ich ca. 60cm weit. Muss der Diodenstrom 
also wirklich so enorm hoch liegen, um am Ende Reichweiten von ein paar 
Metern wie beim Fernseher zu erreichen bzw. die ca. 2m, die für meine 
Anwendung nötig sind?

von Wolfgang (Gast)


Lesenswert?

Tobias schrieb:
> Was mache ich falsch?
Du hast das Datenblatt des TSOP34830 nicht beachtet. Der Empfänger hat 
eine AGC und verträgt keine Dauer-40kHz-Signal, weil er dann 
runterregelt. Probier es mal mit 50% Duty Cycle, d.h. z.B. 600µs lang 
40kHz Rechteck, dann 600µs aus (cf Fig.3 Output Function im Datenblatt)

von Tobias (Gast)


Lesenswert?

Stimmt, kurz vorm Schlafengehen war ich via Google auch noch drauf 
gestoßen und hab die letzte Seite im Datenblatt endlich "begriffen".

Damit lässt sich die Reichweite schon mal deutlich erhöhen. Leider wird 
die Übertragung gleichzeitig instabiler. Bei Reichweiten größer als ein 
paar Dutzend Zentimeter scheint mir die AGC trotzdem wieder einen Strich 
durch die Rechnung zu machen. Es ist, als würde die Übertragung 
abbrechen. Dann muss ich erst einmal tatsächlich den optischen Weg 
unterbrechen oder wieder einmal kuz nah ran gehen, um wieder eine 
Verbindung hinzubekommen.
Je länger ich die Pausen wähle, desto stabiler wirds. Sende derzeit 50 
Pulse, dann folgt eine Pause. Wirklich stabil wird es aber erst, wenn 
ich die Pausen auf ca. 100ms (!) verlängere. Für den Tastendruck einer 
Fernbedienung mag das ok sein, für die Detektion eines Modellautos aber 
wohl eher nicht ;)

Gibt es noch Alternativen zu den TSOPs, die sich auch für Dauerfeuer 
eignen oder zumindest Pausen von max. 10ms für einde stabile Übertragung 
brauchen?

von Schlumpf (Gast)


Lesenswert?

Tut´s da nicht auch einfach eine simple IR-Fotodiode?
Die Sendediode mit kurzen, kräftigen Stromstößen befeuern, dass du 
Reichweite erzielst. Die Empfängerseite triggert dann mit diesen Pulsen 
ein Monoflop nach, welches dann bei Unterbrechung der Lichtschranke 
abfällt.

von amateur (Gast)


Lesenswert?

@Tobias

Was machst Du eigentlich, wenn zwei "Fahrzeuge" fast gleichzeitig 
ankommen?

Sind die ordentlich auseinander, so kann man ja, via Augenmaßlehre, 
festlegen, wer denn vorne war. Es bleibt aber die Tatsache, dass dann 
zwei "Autos" nur eine Unterbrechung, von was auch immer, liefern.
Ist das Ergebnis noch knapper, musst Du den Dienstwürfel rausholen oder 
ein Zielfoto machen.

von Icke ®. (49636b65)


Lesenswert?

Tobias schrieb:
> Messgenauigkeit von unter 50ms Pflicht, unter 10ms wäre schön

Die gängigen, bezahlbaren Zeitmeßanlagen im Motorsport schaffen 1/100 
Sekunde und die sind schon recht ausgefeilt. Lichtschranken eignen sich 
ohnehin nur für Einzelfahrzeuge, im Rennbetrieb kommst du um Transponder 
nicht herum. Die Frage nach Selbstbau solcher Systeme kam hier schon 
öfters, aber m.W.n. hat es noch keiner zufriedenstellend hinbekommen. 
Ich würde mich nach einer gebrauchten Zeitmeßanlage von AMB umsehen. 
Gelegentlich sind die -relativ- günstig zu haben, wenn wieder eine 
Kartbahn Pleite ist.

von Tobias (Gast)


Lesenswert?

Es ist immer nur ein Auto auf der Bahn. Das kann ich also ausschließen. 
So ein Transpondersystem habe ich auch noch da, aber noch nicht mal 
ausgepackt. Habe auch nur einen Transponder, aber da ja nur ein Auto zur 
Zeit auf der Bahn ist, reicht das ja. Für den Rundkurs alles wunderbar 
(naja wobei hab es noch nicht getestet, aber als Fertigprodukt wird das 
wohl klappen). Da kann ich Rundenzeiten und Rundenzeiten wohl zählen.

Was mir fehlt, sind halt die Zeiten für ein Beschleunigungsrennen. 
Startzeit, Geschwindigkeit, Zielzeit.
Aber wie gesagt, immer nur ein Auto pro Bahn.

von Tobias (Gast)


Lesenswert?

Was ich jetzt getan habe:
- meine 40kHz Modulationssignal habe ich jetzt von 50/50 auf 25% on und 
75% off umgestellt, um kürzere aber stärkere Peaks auf die Diode geben 
zu können. Dafür steuere ich die PWM jetzt selbst mit einer 
Interruptroutine.
- Taktfrequenz auf 16MHz erhöht, da sonst die Länge der Interruptroutine 
kritisch war (bei 8MHz nur 50 Taktzyklen Zeit für die Abarbeitung)
- "Verstärker" mit einem BC337-40 in Emitterschaltung, um den 
Diodenstrom weiter zu erhöhen
- Basiswiderstand am BC337 von 220 Ohm. Bei Konstant-Ein direkt an 5V 
fließen dann 18mA, hatte auch mit 20mA kalkuliet, bei meiner 25/75-PWM 
fließen interessanterweise nur knapp 1mA durch den µC. Evtl. aber auch 
ein Messfehler, da nur mit Multimeter gemessen. Egal - so lange es 
funktioniert :)
- Widerstand vor der LED am Collector: 6,8 Ohm. Damit hatte ich 
eigentlich ganz grob Peaks von ca. 520mA erwartet, so dass ich die LED 
im Mittel eben mit ihrem Maximum von 130mA betreibe. Effektiv erreiche 
ich ca. 82mA. Vielleicht durch den knappen Basisstrom, wobei der 
Verstärkungsfaktor eigentlich deutlich höher ist, vielleicht auch weil 
die Diode nun mal kein lineares Bauteil ist. Evtl. auch durch den 
höheren Widerstand von meinem mehrfach verlängerten Kabel und dem schon 
etwas älteren Steckbrett. Da kommt mindestens 1 Ohm dazu. Naja, immerhin 
eine mehr als Vervierfachung des Stroms gegenüber meinen Werten vorher 
bzw. dem, was ich direkt aus dem µC bekam
- 600µs Pulse schicken, so wie im Datenblatt als Beispiel beschrieben. 
Entspricht 24 Pulsen.
- 9,4ms nichts tun, Pause. Entspricht 376 Pulsen.

Damit kann ich Modellautos von ca. 30cm Länge detektieren, so lange sie 
nicht schneller als 115kmh sind. Evtl. muss ich die Pausen aber noch 
runtersetzen, schließlich detektiere ich ja evtl. nur die Räder, die 
deutlich kleiner sind. Bei dem jetzt hohen Diodenstrom scheint aber auch 
die im Datenblatt beschriebene 600µs-Pause noch zu einigermaßen stabilen 
Ergebnissen zu führen, das sollte dann locker reichen.

Die Verbindung ist jetzt einigermaßen stabil. Wenn sie abbricht, weil 
der Empfänger mich "rausfiltert", hilft nur einmal die Übertragung 
komplett zu beenden bzw. kurz abzudunkeln. Das muss auch für mind. 100ms 
erfolgen, daher kann ich es nicht dauerhaft im Signal einbinden. Mit den 
aktuellen Einstellungen und dem deutlich höheren Diodenstrom scheint das 
ganze aber einigermaßen stabil zu sein. Abbrüche habe ich eigentlich 
nur, wenn ich die Ausrichtung komplett verdrehe und dann zurück auf den 
Empfänger ausrichte.

Werde das also mal weiter testen, aber das könnte funktionieren so!

von Amateur (Gast)


Lesenswert?

@Tobias

- Wie wär’s mit einem Laser?
- Die gibt's für 'nen Appel und 'nen Ei.
- Lassen sich auch bei Tageslicht recht gut ausrichten.
- Den Empfänger am Boden eines kleinen Röhrchens und das Umgebungslicht
  ist abgeharkt.
- Waagerecht, maximal tief und nur die harmlose Gefahrenklasse und das
  Ganze ist fast Narrensicher. Es sei denn, es liegt jemand auf der
  Ziellinie.
- Ein paar Zentimeter vor dem Ziel eine zweite Lichtschranke und Du
  kannst sogar recht einfach die Geschwindigkeit, beim Zieleinlauf,
  messen. Koppelst Du die zwei Laser und Empfänger noch mechanisch, so
  erhöhst Du gleichzeitig die Genauigkeit und kannst die Messstrecke an
  die maximale Fahrzeug- und Prozessorgeschwindigkeit anpassen.
- Da Du ja sowieso senden willst, kannst Du die Emitter sogar
  zwischenzeitlich per Funk ausschalten um Strom zu sparen. So das ein
  Problem ist.

von Blackbird (Gast)


Lesenswert?

Den Vorschlag von Karl-Heinz, Triple-Spiegel ("Katzenauge") auf der 
einen Seite aufzustellen, um Sender und Empfänger nur auf einer Seite zu 
haben, wäre die einfachste Lösung. Da braucht dann gar nichts mehr 
ausgerichtet zu werden! Nur hinstellen und fertig.
Auswertung, Spannungsversorgung vereinfacht sich auch noch (alles auf 
einer Seite). Wenn die beiden Sender (Laser ist eine gute Idee) nur 
wenige Zentimeter auseinander sind, so hat man eine ziemlich präzise 
Ziel- UND Geschwindigkeitsanzeige. Die gesamte Auswertung erfolgt dann 
in diesem Teil, die Start-Lichtschranke ist abgesetzt und sendet (per 
Funk oder Kabel) nur den Startpunkt.

Am Ziel spielt das Leben, nicht am Start.

Blackbird

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.