Geschwindigkeitsmesser (nicht nur) für RC-Cars

Geschwindigkeitsmesser offen

Wer möchte nicht gerne wissen, wie schnell das getunte und mit alles Schikanen versehene RC Auto denn wirklich ist? Hat der neue Motor die Erwartungen erfüllt? Wie weit weichen die Angaben in der Werbung von der Wirklichkeit ab?

Antwort auf diese Fragen kann der mobil einsetzbare Geschwindigkeitsmesser geben.

Wie wird nun die Geschwindigkeit gemessen? Am einfachsten für den Hobbybereich wohl mittels 2 Lichtschranken, die in einer bekannten Entfernung zueinander aufgestellt sind. Beim durchfahren der Lichtschranken werden Impulse geliefert. Wird jetzt die Zeit zwischen dem durchfahren der ersten und zweiten Lichtschranke gemessen, kann dies in die gefahrene Geschwindigkeit umgerechnet werden.

Der Lichtschranke selbst kommt dabei in mehrfachem Sinn eine entscheidende Rolle zu:
    1. Sie muss eine ausreichend große Strecke überbrücken, damit man mit dem Auto in voller Fahrt auch die Lücke trifft ;-)
    2. Der Auslösebereich muss möglichst klein sein (also kein großer Lichtkegel), und vom Tageslicht nicht beeinflusst werden.
    3. Die Auslösung muss ausreichend schnell erfolgen
    4. Beide Lichtschranken sollten sich weitgehend identisch verhalten.

Als Ergebnis der obigen Punkte habe ich mich für eine Lösung mit profesionellen Infrarot Reflexlichtschranken entschieden. Die angegebenen Daten erschienen mir ausreichend, und der Preis war auch OK (erstanden bei Ebay). Angaben zum Typ bei der Bauteilebesprechung.

Nachdem dieser Punkt geklärt war, bleibt noch die Aufgabe die Zeit zwischen den Lichtschrankenimpulsen genügend genau zu messen, und unter Einbeziehung des gefahrenen Weges in Kilometer pro Stunde umzurechnen. Das Ergebnis muss dann nur noch angezeigt werden.

Da die Hardwareanforderungen nahezu identisch mit denen des mobilen Servosignaltesters sind, habe ich lediglich die dort benutzte Schaltung etwas angepasst und ergänzt. Ausserdem kam bei dieser Anwendung eine größere 7Segment Anzeige zum Einsatz.

Hier der Schaltplan des Geschwindigkeitsmessers
Schaltplan Servosignaltester

Funktionsweise
Über die beiden Darlington-Transistoren Tr4 und Tr5 werden die Signale der beiden Lichtschranken invertiert, auf TTL Pegel angepasst und an die Interrupts /INT0 und /INT1 geleitet. Die errechnete Geschwindigkeit wird an den 7 Segmentanzeigen sichtbar gemacht. In dem Layout verwendet wurden Anzeigen mit 20 mm Symbolhöhe. Da die Anzeigen gemultiplext werden, müssen zum erreichen der vollen Helligkeit gegebenenfalls die Vorwiderstände R1-R8 noch etwas geringer ausfallen. Allerdings sollte der maximale Strom, den der Mikrocontroller gegen Low liefern kann (20mA) nicht überschritten werden.
Der von mir verwendete Quarzoszillator soll für möglichst konstante und genaue Messergebnisse sorgen. Natürlich tut es auch ein Standard Quarz. Diese Variante ist im Schaltbild dargestellt, und auch im Platinenlayout vorhanden.

Achtung: seit ein paar Monaten liefert Reichelt bei den 24Mhz Standartquarzen nur noch Oberwellenquarze. Zur ordnungsgemässen Funktion in dieser Schaltung werden aber Grundwellenquarze benötigt. Also NICHT den 24-HC18 von Reichelt benutzen!

Der Schaltungsteil, der mit der gestrichelten Linie gekennzeichnet ist, befindet sich auf einer kleinen Zusatzplatine. Rund um das IC2, das als Taktgeber geschaltet ist, befindet sich ein Spannungsverdoppler, wie er auch schon als Ladungspumpe bei meinen RC-Fahrtreglern verwendet wird. Genutzt habe ich ihn hier, um die für die Lichtschranken benötigten ca. 12Volt (10mA) zu erhalten. Natürlich hätte ich auch eine größere Anzahl Akkus vorsehen können, ich wollte jedoch meine Senderakkus (8 Zellen) dafür benutzen. Ausserdem passen die 8 Akkus gerade so schön in das vorhandene Gehäuse. Je nach verwendeten Stromquellen und Lichtschranken kann dieser Schaltungsteil wegfallen oder anders ausfallen.

Folgende Funktionen sind in der Software implementiert:


Noch ein Wort zu den 7 Segmentanzeigen: Da der Geschwindigkeitsmesser typischerweise im Freien verwendet wird, ist es zu empfehlen sehr lichtstarke Anzeigen zu wählen (21000 mcd o.ä.) Die sind nicht wesentlich teurer als normale und man kann sie besser sehen. Zu erhalten wie alle anderen Bauteile z.B. bei Reichelt oder Conrad. (siehe auch die Linkliste)

Messaufbau
Um ein einigermaßen genaues Ergebnis der Messungen zu erhalten, darf die Messstrecke nicht zu kurz sein, eine zu lange Messstrecke hat wiederum Nachteile, da Fehler z.B. durch schräges durchfahren entstehen. Getestet habe ich den Geschwindigkeitsmesser mit 50cm Messstrecke.
Mehr als 1m dürfte nicht sinnvoll sein. Für eine kurze Messstrecke sind die Verzögerung der Lichtschranke (1ms) und die kleinste messbare Zeit (100µS = 0,0001S) ausschlaggebend.  Hierzu ein Beispiel: Ein Auto das mit 100Km/h fährt, legt pro Sekunde 27,77 Meter, pro ms also eine Strecke von 2,77 cm zurück. Ist die kleinste messbare Einheit, wie in dieser Software realisiert 0,1ms, so ändert das letzte "Digit" der Messung bei einem Messweg von 2,77 cm also 10%, bei einem Messweg von 27,77 cm nur 1%. Sinnvolle Längen des Messweges starten also ab etwa 27 cm. Die Ungenauigkeiten betreffen übrigens auch z.B. unterschiedliche Auslöseverzögerungen der beiden Lichtschranken durch Fertigungstoleranzen.

Die genaue (gemessene) Länge wird als einziger einzustellender Parameter in den Assembler Sourcecode eingegeben. (Variable "Messweg", Eingabe in mm)

Software
Wie berechnet die Software jetzt die Geschwindigkeit?

Es gilt immer die Formel Geschwindigkeit=Weg/Zeit. Da wir die Geschwindigkeit in Km/h angezeigt haben möchten, die Wegstrecke aber in mm eingeben, und die Zeit in 0,1ms messen, können wir schon mal folgendes vorrechnen:

Km/h= Strecke in Km / Stunden
Km/h= Strecke in Km *3600 / Sekunden
Km/h=Strecke in m * 3600 / Sekunden *1000
Km/h=Strecke in mm * 3600/ Sekunden *1000 *1000
Km/h=Strecke in mm * 3600/ milliSekunden *1000
Km/h=Strecke in mm * 3600/ 0.1milliSekunden *100
Km/h=Strecke in mm * 36/ 0.1milliSekunden

Da 0.1 ms genau unserer minimalem Messzeit entspricht, ergibt sich für die Errechnung mit dem Mikrocontroller also:
Die Variable Messweg * 36. Dieses Ergebnis bleibt für alle Rechnungen gültig, solange der Messweg nicht verändert wird.
Dieses Ergebnis wird dann durch den gemessen Zählerstand, der in 0.1 ms Schritten misst, dividiert. Die Anzeige erfolgt danach in Km/h.

Die Matheroutinen habe ich aus der Mathematiklibrary von Dr. W.G.Marshall der Loughborough University entnommen, gefunden habe ich sie bei www.8052.com/codelib.phtml

Die Software selbst sorgt im Normalbetrieb ausschließlich für das Multiplexen der Anzeige, alle Aktionen zum Messen werden durch Interrupts ausgelöst und in den Interruptroutinen bearbeitet.

Der Sourcecode für den 89c2051, wie immer im RAD51 Format, ist ausführlich dokumentiert. Dazu wird noch das Definitionsfile mod51.h benötigt. Die Software und alles andere gibt es im Downloadbereich nochmals.

Bauteile und Aufbau
Als Gehäuse hatte ich ein vorhandenes Messgerätegehäuse mit Batteriefach zur Verfügung, die Abmessungen der Platine sind jedoch so, dass auch Handelsübliche Gehäuse ohne Probleme passen. Der Signalpegel der Lichtschranke wird über zwei Darlington Transistoren auf TTL Level gebracht. Diese habe ich wegen der höheren Stromverstärkung, eingesetzt. Beim eventuellen Austausch gegen normale Transistoren die Pinbelegung beachten!

Die Anschlüsse der Lichtschranken sind über 6,3mm Klinkenstecker nach außen geführt. Für die Lichtschranken selbst habe ich mir höhenverstellbare Aluminiumhalter aus einem Aluwinkel gebaut, die Reflektoren sind auf zwei im Winkel verschraubten Spanplatten befestigt. Es ergibt sich eine maximale Distanz von Lichtschranke und Reflektor von gut 3 Meter, was absolut brauchbar ist.

Es handelt sich bei der Lichtschranke um den Typ Visolux Serie 18 (R18-6-3000), aber es gibt bestimmt mehrere geeignete Artikel, die immer mal wieder z.B. bei eBay günstig angeboten werden. Achten sollte man auf kurze Auslöseverzögerungen (bei diesem Typ 1ms), und eine hohe Reichweite.

Hier ein Foto der bestückten Platinen. Die bei der 7 Segmentanzeige mehrfach vorhandenen Anode Anschlüsse habe ich abgezwickt, um eine günstigere Leiterbahnführung zu erreichen. Den linken Dezimalpunkt habe ich übrigens nicht zum leuchten gebracht, er ist allerdings auch nicht wirklich erforderlich. Im Bild noch nicht zu sehen ist der Summer. Es handelt sich dabei um einen Schallwandler, der mit einer Rechteckfrequenz angesteuert werden muss. Diese Frequenz wird per Software erzeugt und ist im Source entsprechend dokumentiert.
 
 




Bestückungsplan und Stückliste

 
 
Platinen bestückt
Widerstände:
R1-R8,R18     = 220 
R19                 = 1K
R17                 = 470
R9-R11           = 2,2K
R13,R14,R20  = 4,7K
R12,R15,R16  = 10K
Kondensatoren:
C1 = 470µF Elko 25V
C2 = 220µF Elko
C3 = 100nF Kondensator
C4 = 10&microF Elko
C7 = 4,7nF Kondensator
C5,C6 = 22µF Elko 25V
Halbleiter:
IC1        = AT89C2051
IC2        = NE555
UR1      = 7805 Spannungsregler 1A
Tr1-Tr3 = BC560 PNP-Transistor
Tr4,Tr5  = BC875 NPN-Darlington
LED1     = LED 5mm rot
D1,D2    = 1N4148
Sonstiges:
OSC1 = 24Mhz Quarz Oszillator
K1 = Akku Anschluss
K2,K3 = Klinkenstecker 6,3mm
7Seg. = SA 08-11 gem. Anode
T1 = Taster
Su1 = Summer 
Achtung: seit ein paar Monaten liefert Reichelt bei den 24Mhz Standartquarzen nur noch Oberwellenquarze. Zur ordnungsgemässen Funktion in dieser Schaltung werden aber Grundwellenquarze benötigt. Also NICHT den 24-HC18 von Reichelt benutzen!

Download

Hier noch einmal gesammelt alle Files. Zum einzeldownload Shift+rechte Maustaste, oder das komplette File: TachoV10.zip
Sourcecode, die kompilierten Files im Intel Hex und Binärformat, der Bestückungsplan und die Stückliste. Das Platinenlayout folgt demnächst.

 nach oben

Letzter Update: 07.10.2001
Diese Seite ist Teil eines Framesets. Kein Inhaltsverzeichnis? Mit Home gelangen Sie zum Index.