www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Gyrosensor implementieren, brauche Hilfe!


Autor: chmbw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bräuchte ein wenig Hilfe beim implementieren eines Gyrosensors in 
ein bestehendes Projekt (mit SPS gesteuert). Der Sensor ist leider schon 
installiert, es geht primär um die softwaretechnische bzw. rechnerische 
Seite:

Datenblatt zum Sensor:

http://www.sensor-technik.de/dbdownload/downger_105_1.pdf

Ich soll mit dem Sensor Richtungsänderungen in der Ebene messen, sprich 
um welchen Winkel hat sich innerhalb eines Abtastschrittes die 
Orientierung verändert. Momentan ist die Zykluszeit noch 3,5ms. Der 
Ausgang vom Gyro wird in einen vorzeichenbehafteten Integerwert 
umgewandelt und steht so im Programm zur Verfügung. Ich Rechne bisher:

winkel_wert = 0.0035 * (winkel_integer + offset) * 50 / 32767

winkel = winkel + winkel_wert

winkel_integer ist der digitalisierte Ausgang vom Gyrosensor, also mein 
"Rohwert". Der Offset ist notwendig, weil wenn der Sensor komplett in 
Ruhe liegt er um -4000 leicht schwankt und ich ihn somit auf 0 lege. Ich 
habe jetzt zwei Probleme: Zum einen die starke Drift des Sensors, zum 
anderen, je nachdem wie schnell ich den Sensor drehe unterschiedliche 
Winkelwerte kriege. Z.B:
ich drehe den Sensor LANGSAM um 45° ich kriege etwas mit 20° ausgegeben. 
Ich drehen ihn SCHNELL um 45° ich komme in den Bereich um 75°-85°.

Ich wollte versuchen mal die Zykluszeit zu verlängern, da der Sensor nur 
40 mal pro Sekunde misst. Aber welche Lösungsstrategien könnte ich noch 
verfolgen? Ich bin ein wenig ratlos und hoffe auf eure Hilfe! Sollte ich 
irgendwelche Infos vergessen haben zu erwähnen, bitte unbedingt sagen!

Vielen Grüße und vielen Dank im Voraus!
chmbw

Autor: Matze Niemand (hupe123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Allg. haben Winkelsensoren eine enorme Drift (ich habe ein 
ähnliches Teil auch mal in den Fingern gehabt, war schlimm!). Es heißt 
eigentlich, wenn man mit so einem Teil dyn. messen will nimmt man einen 
Beschl.Sensor zur Hilfe. Mit dem kann man einen 0-Grad durchgang gut 
erkennen und den Neigungssensor von seiner Drift befreien (Nullen).
Ich habe damals das Problem anders gelöst:
Ich habe mit einen drei-achsigen Beschl. Sensor besorgt (du hast ja 
schon einen) und den ausgelesen. Mit ein bißchen Geometrie kann man 
damit auch herlich die Winkel messen (es dürfen eben nur keine achsialen 
Beschl. auftreten (aber selbst die lassen sich rausrechnen)!
Für ein 2D Problem bedient man sich z.B. einfach Pytagoras und der 
Trigonomie:
Winkel=cot([Beschl.Y]/[Beschl.X])
Der Trick ist, daß die Erdbeschl. immer 1g ist (eben keine Beschl. des 
Sensors in X oder Y Richtung). Demnach ist deine Hypothenuse auch immer 
1g "lang". X und Y sind min. immer kleiner. Der Rest ist Mathematik.

(keine Garantie auf math. Richtigkeit (is auch schon spät); zudem: wer 
Rechtscheibfehler findet, kann sie behalten ;)

Autor: Denk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wer Rechtscheibfehler findet, kann sie behalten

Und wer denkt, dass man Rechtschreibfehler besitzen kann, mag seine 
Gedanken für sich behalten ;-)

Autor: Matze Niemand (hupe123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig is es doch Ideen zu teilen nicht im Rechtschreibkurs eine 1 zu 
haben. Warten wir ab und fragen den Fragesteller nach seiner Meinung. 
Wenn er meine Rechtschreibfehler nicht mag, dann lösche ich meinen 
Beitrag wieder. Wenn es aber nich so ist, dann würde ich mir wünschen, 
wenn der Herr Deutschlehrer das nächste mal nen Beitrag zum Thema 
schreibt!

Autor: Sebastian Enz (senz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matze Niemand:
Erklär bitte nochmal wie Du die Drehrate um Z mit dem linearen 
Beschleunigungsmesser ermitteln willst, wenn das Schwerefeld ebenfalls 
in Z-Richtung liegt?
Um X oder Y ist das statisch möglich.

Autor: Matze Niemand (hupe123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm.. ich versteh das Problem nicht. Was ist eine Drehrate? Ist das die 
Winkelgeschwindigkeit? Noch nie im Maschinenbaustudium gehört.
Es ist mit meiner Methode nur möglich den aktuellen Winkel zum 
Erdmittelpunkt (und für Klugscheißer: Erdschwerepunkt) zu errechnen.
Im 3D-Raum wird das natürlich ein bißchen anspruchsvoller.

Um die Winkelgeschw. zu bekommen müsste man nur einmal differenzieren. 
Jedoch tritt da mit zunehmender Dauer ein Problem auf: die Rechenzeit, 
da es dadurch nicht kontinuierlich gemessen wird... Aber auch das 
Problem bekommt schon irgendwie durch geschicktes Nullen wieder hin.

Autor: Thomas K. (thkusch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sebastian Enz: wozu die DrehRATE? Dafür nehmt man die Gyrowerte direkt. 
Das Problem ist daraus den Winkel zu errechnen, da aufgrund des nötigen 
Integrals der Fehler sehr schnell wächst. Die Drehrate war noch nie ein 
Problem (Ausgangssignal des Gyros = Drehrate)

Gruss
Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.