Hallo allerseits,
ich möchte bei einem Projekt Daten über einen Sensor einlesen,
berechnen und Ergebnisse über ein 16x2 LCD ausgeben. Das Ganze soll so
um die 100 Messungen pro Sekunde umfassen. Jetzt habe ich aber bei
sämtlichen Ansteuerprogrammen für LCD's gesehen, das immer
Delay-Schleifen eingebaut werden bei der Ausgabe. Habe ich überhaupt
eine Chance max. 32 Zeichen 100 mal pro Sekunde auf das Display zu
schreiben ? Bringt es was das LCD im 8-bit Modus anzuschließen, Ausgänge
sind noch genug da? Oder wo liegen hier realistische Werte für die max.
Ausgabe von Zeichen an das LCD ? Danke schonmal für die Antworten.
Thomas
Hallo Thomas,
die typische Zeichenausgabe braucht ca. 40µS bei den 16x2 Displays;
8-bit Ausgabe bringt es nicht, da der Displaycontroller die Bremse ist.
Zeit sparen kann man dadurch, das man nur geänderte Zeichen ausgibt.
Letzlich ist es meines Erachtens aber unsinnig, ein LC-Display mit 100Hz
'aufzufrischen', da niemand es so schnell ablesen kann. Die meisten
LC-Module werden ohnehin nicht die neuen Zeichen so schnell anzeigen
können (die flüssigen Kristalle brauchen auch ihre Zeit).
Michael
Ok, habe mir die Sache nochmal durchdacht. Es würde genügen, wenn intern
der Sensor 100 mal pro Sekunde erfaßt wird und die Daten berechnet
werden. Eine Ausgabe könnte dann auch auf 5x pro Sekunde beschränkt
werden bei 16 Zeichen (Änderung nur in einer Zeile) Das sollte dann
reichen denke ich. Die Berechnungen an sich stellen bei 8 MHz und ASM
kein Zeitproblem dar.
Thomas
Bist du in der Lage 5 Werte/s im Kopf zu verarbeiten? Ich nehme an, daß
du so viele Werte ausgeben willst, um eine Tendenz ablesen zu können.
Da wäre es sinnvoll, wenn du zusätzlich noch eine Tendenzanzeige
programmierst. Dann reicht auch <5mal pro Sekunde. Nur so als weitere
Idee.
Schmittchen.
Hallo Thomas,
Schmittchen hat Recht. Numerische Werte kannst Du gar nicht so schnell
verarbeiten. Wenn Du eine Balkenanzeige machst, mag das angehen. Die
Geschwindigkeit des Fluids spielt natürlich auch eine Rolle. Ich würde
die Messung von einem Timer interruptgesteuert durchführen und die
Rohdaten irgendwo ablegen. Das Hauptprogramm macht dann die Umrechnung
für die Anzeige, ebenfalls timergesteuert. Ein anderer Teil des
Hauptprogramms übernimmt nur die Ausgabe auf das Display, inklusive
Formatierung. Damit hast Du z.B. folgende Möglichkeiten (Zahlen nur als
Beispiel!):
1. Messung und Speicherung alle 10 ms
2. Umrechnung und Mittelwertbildung im Hauptprogramm alle 100ms
3. Formatierung und Ausgabe alle 500ms
Gruß, Rudolf.
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de
Hallo,
also ich möchte die Beschleunigung messen (mittels Sensor). Ausgegeben
werden soll (ermittelt oder daraus errechnet) der zurückgelegte Weg,
die vergangene Zeit sowie die aktuelle Geschwindigkeit. Nebenbei sollen
ein Maximalwertspeicher sowie Schlüsselwerte (400m Zeit, 1000m Zeit
etc.) gespeichert werden und bei Bedarf per Tastendruck nach Messende
aufgerufen werden können.
Ich müßte also nur den Weg und die Geschwindigkeit zeitkritisch
berechnen für die Ausgabe. Zeit und Beschleunigung liegen ja direkt vor
und müssen nur formatiert werden. Sollte doch zu machen sein ?!?!?
Ach ja, die Messgenauigkeit sollte schon nicht zu schlecht sein, also
bei der Bestimmung der 400m Zeit maximal 0,1 sek Abweichung ! Sonst kann
ich auch 2 Lichtschranken und ne Stopuhr nehmen und das Projekt wäre
sinnlos :-)
> Sollte doch zu machen sein ?!?!?> die Messgenauigkeit sollte schon nicht zu schlecht sein
Ich bin da sehr skeptisch. Ich gehe davon aus, daß du zu Fuß unterwegs
bist. Da gibts jede Menge Stöße, die viel stärker sind als die
tatsächlich interessierende Größe (Beschleunigung in Bewegungsrichtung)
- auch wenn du einen Sensor nimmst, der 2 Beschleunigungsrichtungen
messen kann (und evtl. Störungen rausrechnen/minimieren kannst...?).
Je nachdem wo du die Sensoren am Köper anbringen willst, treten
unterschiedliche Störungen auf.
Am Fuß/Bein: Starke Erschütterungen in Hochrichtung -> Verfälschung
der zu messenden Werte in Laufrichtung (u.a. da der Fuß sich "dreht" und
dadurch die Sensoren mitdreht).
Brustgurt: weniger Erschütterungen als am Fuß, aber auch fast keine
Beschleunigungsänderungen in Laufrichtung. Oberkörper bewegt sich ja
ziemlich gleichförmig.
Du kannst mit dem Sensor aber nur Beschleunigungen messen, also
Geschwindigkeits_änderungen_.
Die Auswertung der sauberen Signale (wenns die nur gäbe) würde nicht so
schwer ausfallen. Um die Geschwindigkeit zu ermitteln mußt du 1x
integrieren, für den Weg mußt du 2fach integrieren. Die Zeit kannst du
mitzählen.
Eine GPS-Auswertung würde ich als genauer einschätzen als die
Beschleunigungsmessergeschichte.
Du hast also ganz andere Probleme, als 5 Werte/s visuell zu erfassen.
Schmittchen "hoffentlich nicht am Thema vorbei".
Hallo,
nein, das ganze wird in einem Auto/Motorrad mitgeführt. Aber du hast
recht, ich hatte auch zur Fehlerkorrektur vor den 2. Ausgang des Sensors
(ADXL202 von Analog Devices) auszulesen.
Ich weiß, das es prinzipiell funktioniert, habe das schonmal am Notebook
erfaßt (mit AD Wandler). Nun möchte ich das Ganze in ein kompaktes Gerät
bauen. Ich versteife mich jetzt nicht unbedingt auf eine hohe Anzahl an
Ausgaben von Werten pro Sekunde, mich interessiert ja eigentlich nur was
technisch mit AVR und LCD machbar ist :-)
> das ganze wird in einem Auto/Motorrad mitgeführt
Aha. Da kann ich mir das schon eher vorstellen. Durch die Angabe
400m/1000m habe ich auf Läufer/Leichtathletik getippt.
Idee: Wenn du den Sensor nur schwach mechanisch mit dem Auto in
Stoßrichtung (Hochachse) koppelst (also dem Sensor quasi extra
Stoßdämpfer verpaßt), dann wären die Erschütterungen zumindest etwas
gedämpft. Aber das bringt dann deine Meßreihe ans Licht (deren
Ergebnisse du hier sicher bekannt gibst?!).
Für das Auto/Moped-Projekt sehe ich deutlich bessere Chancen auf eine
höhere Genauigkeit als beim LäuferModell.
Aber nochmal: Du kannst nur Geschwindigkeits_änderungen_ messen.
Konstante Geschwindkeit kannst du direkt nicht von Stillstand
unterscheiden. Also ein Boardcomputer im herkömlichen Sinne wird daraus
nicht (aber das willst du ja auch nicht).
Analog hat einige interessante Appnotes auf der Webseite. U.a. auch ein
Pedometer (hier wird aber nur erkannt, wann der Fuß aufsetzt und mit der
durchschnittlichen Schrittlänge multipliziert).
Wenn du deinen Sensor dann um 90° drehst, dann kannst du auch noch die
Kurvenbeschleunigung messen - oder die Kurvenlage (tilt).
Zur Auswertung: Du schreibst, daß du die Werte mit einem AD-Wandler
eingelesen hast. Der ADXL202 bietet aber auch einen "duty cycle output",
den könntest du per ICP und Timer auch Auslesen, evtl. wird das genauer,
da die DA-AD-Wandlung entfällt.
Halte uns auf dem Laufenden.
Schmittchen.
Hallo Thomas,
irgendwie verstehe ich nicht, warum Du die Streckenfunktionen über einen
Beschleuingungssensor erfassen willst. Einfacher ist doch, irgendwo an
Deinem Fahrzeug ein Wegsignal abzugreifen. Dann hast Du die Zeit (von
Deiner AVR-Zeitbasis) und den Weg (von Deinem Weggeber).
Deine Größen bestimmst Du wie folgt:
- zurückgelegter Weg: Zahl der Wegimpulse durch Wegkonstante (Impulse
pro Strecke)
- vergangene Zeit: AVR-Zeitbasis
- aktuelle Geschwindigkeit: Delta Strecke durch Delta Zeit
- Maximalwertspeicher: trivial
- Schlüsselwerte (400m Zeit, 1000m Zeit etc.): trivial
Oder hab ich Dein Problem nicht verstanden?
Gruß, Rudolf.
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de
Hi Thomas,
ich würde auch die Idee von Rudolf verwirklichen - ich hab' mich mal ein
wenig mit Beschleunigungsmessung und Berechnung der Strecke daraus
beschäftigt. Ich weiß nicht, welche Erfolge du bereits mit deinem Laptop
hattest, aber ich kann mir fast nicht vorstellen, dass es dir gelungen
ist damit eine Strecke zu messen!!
Problem:
die Erdbeschleunigungs wird mitgemessen - du musst also das ganze
absolut waagrecht halten um die Erdbeschleunigung weglassen zu können -
dabei hilft dir auch dein 2. Beschleunigungssensor nicht, da er nicht
zwischen Winkeländerung und tatstächlich zu messender Beschleunigung
unterscheiden kann.
2. Prob:
Bias: - die Genauigkeit ist glaub ich 2mg oder 4mg - setz doch mal in
deine Formel ein Rauschen von 2mg über 60sek ein und sag' mir welche
Geschwindigeit du dann hast - bei Streckenmesssung ist der Fehler durch
2x integrieren noch viel viel größer!!!!
3.Prob:
der digitalport ist möglicherweise aufgrund der Vibrationen im Fahrzeug
unbrauchbar - Abhilfe: Analogausgang nutzen und filtern!! Bsp:
http://autopilot.sourceforge.net/rev2.2.html mitte
Das angesprochene Problem mit der nicht vorhandenen Beschleunigung bei
konst. Geschwindigkeit wäre eigentlich gar kein Problem - dafür gibt es
schon Formeln...
Ich hab' keine Ahnung wie gut du bereits informiert bistoder nicht, aber
folgende Suchworte könnten dir bei google weiterhelfen: "integration
beschleunigung" INS .....
Interessante Links:
http://www.electronic-engineering.ch/study/ins/ins.html (ganz unten auf
der Seite gibts ne deutsche Version!!!!) Lies dir das auf jeden Fall
durch - da steht drin warums nicht geht (ich war auch enttäuscht weil
ich meine Idee anfangs auch großartig fand)
http://www.genesys-offenburg.de/archiv/iss/inertial.htmhttp://www.media.mit.edu/resenv/imu/
mfg
Christian
Hallo,
ich danke allen erst einmal für die Beiträge. Also an der mathematischen
Umsetzung wirds nicht hapern. Ich denke nach ein paar Semestern
Physik-Vorlesung sollte das Grundwissen da sein :-). Um die Mess-Fehler
zu korrigieren, muss ich ein paar Versuchsreihen durchführen, ist auch
klar.
Ich habe mir übrigens von Analog Devices ein paar PDF-Dokumente zu dem
ADXL202 heruntergeladen. Unter anderem werden hier die Punkte
Fehlerreduzierung, Kalibrierung und mathematische Operationen intensiv
abgehandelt. @Christian: Es sind nach diesen Unterlagen von AD wohl auch
Messungen mit Auflösungen von 1 mg möglich ! Von dem ADXL202 gibt es
mittlerweile 2 Ausführungen, eine verbesserte mit höherer Genauigkeit
ist verfügbar.
Auf jeden Fall wird es hier einen Link geben mit meinem Projekt,
versprochen !
Hallo nochmal,
zu allen anderen Vorschlägen einen Wegimpuls einfließen zu lassen: Das
funktioniert nicht, zumindest nicht mit der Genauigkeit wie bei der
Beschleunigung. Es gibt hier noch viel schlimmere Störgrößen, z.B.
Schlupf an den Rädern oder z.B. die Ausdehnung von Reifen bei hohen
Geschwindigkeiten durch die Fliehkraft u.s.w. Das Gerät soll bei
(legalen!) Beschleunigungsrennen ins Auto gebaut werden. Und bei solchen
Rennen hab ich schon Fahrzeuge gesehen, die auf fast 400m 2 schwarze
Linien gezogen haben. Deren km-Zähler wird da wohl 800m angezeigt haben
:-) Die Eingangsgröße Beschleunigung scheint mir nach reiflicher
Überlegung ideal.
Nochmal zum Thema Einfluß von Stößen etc. auf die Genauigkeit: Es sind
natürlich nur entsprechende Straßen für Messungen geeignet, logisch. Das
auf Kopfsteinpflaster nur Müll rauskommt ist schon klar :-))
Hallo Thomas,
hättest Du uns diese Randbedingungen von Anfang an mitgeteilt, hätten
wir hier nicht herumorakeln müssen...
Interessant war die Diskussion trotzdem.
Gruß, Rudolf.
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de
und wenn Du die Geschwindigkeit an den antriebslosen Rädern abgreifst?
Sofern Du natürlich kein Allrad betriebenes fahrezug verwendest...
Im TV bei den Testberichten (Motorvision oder Auto-Motor-Sport-TV) sieht
man häufig, daß die für Ihre Tests ein Zusätzliches Speichenrad ähnlich
wie vom Fahrrad außen an der Karosse befestigen und mitführen, ich nehme
mal an, daß das bei Beschleunigungsrennen wohl nicht so cool kommt,
oder? ;-)
Ich wäre auf jeden Fall mal neugierig, was bei Deinem Projekt bei
rauskommt. Wäre klasse, wenn Du das irgendwo im Netz veröffentlichen
würdest.
ciao,
Andi
Hallöchen nochmal...
Ich hab grad noch was interessantes im netz gefunden, während ich auf
der Suche nach Radarsensoren für Alarmanlagen war... man findet halt
allen Mist nur nicht was man sucht... ;-)
Sieh mal hier:
http://www.mso-technik.de/precisionfarm.html#tgss
Es handelt sich um eine Geschwindigkeitserfassung per Radarsensor,
könnte genau das richtige für Dein Projekt sein... Auf der Seite geht es
zwar eigentlich um Landwirtschaftliche Technik, aber
theoretisch.........
ciao,
Andi