-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Abstand mit GP2D12 in cm ausgeben

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336

    Abstand mit GP2D12 in cm ausgeben

    Anzeige

    Hallo

    ich wollte für mein Atmegareferat ein kleines Board mit Sensoren aufbauen. doch wie kann ich den Analogwert des GP2D12 so umrechnen, dass ich eine Angabe in cm bekomme?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Du machts ne Messreihe oder liest die Werte aus dem Datenblatt ab. Dann hast du zwei Möglichkeiten:
    a) Du bastelst dir (zb mit Excel) eine Potenz-) Funktionsgleichung, die die Messkurve möglichst gut wiedergibt, und verwendest diese Gleichung zur Umrechnung.
    b) Du legst dir eine Tabelle an, die in 1cm-Schritten die dazugehörigen Messwerte enthält, und vergleichst den gemessenen Wert mit der Tabelle. Die Tabelle könnte man mit der Funktion aus a) erzeugen. Alternativ kann man auch weniger Messpunkte abspeichern und linear interpolieren.

    Lösung a) ist umkomlizierter umzusetzen (mit zehn Messungen bekommt nman schon ne sehr gute Näherung), der AVR braucht allerdings viel länger zum Umrechnen. Wenn sonst nichts zeitkritisches zu tun ist, sollte es aber kein Problem sein (sofern du in ner Hochsprache schreibst, in ASM wird ziemlich haarig..)

    Lösung b) lässt sich auch in ASM gut umsetzen, in Hochsprache ist es aber etwas mehr Arbeit. Dafür ist diese Lösung vergleichsweise schnell.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    ich wollte es in Bascom programmieren. das mit der potenz hört sich gut an. muss nur noch herausfinden wie das funktioniert.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Du schafft dir ne Möglichkeit, die Rohdaten vom ADC anzuzeigen (LCD, RS232 etc.). Dann misst du einige Entfernung aus und trägst die Werte in ne Tabelle ein. Davon lässt du dann ein xy-Diagramm erstellen und eine angenäherte Funktionsgleichung (in Excel "Trendlinie" vom Typ "Potenziell") errechnen und deren Gleichung ausgeben.

    Mit dieser Gleichung kann dann Bascom die Messwerte umrechnen....
    Angehängte Dateien Angehängte Dateien

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    11.01.2005
    Ort
    Bayern
    Alter
    29
    Beiträge
    161
    hallo uwegw.
    ich habe "leider" nur openoffice, kann aber die excel datei öffnen. nur sehe ich da keine gleichung (unter gleichung verstehe ich z.b. y=2x^2 oder sowas). wird bei mir die gleichung einfach nur nicht angezeigt oder was ist da los?

    mfg
    (-_-)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Klingt ja so als würdest Du erwarten, dass Dich die exakte Funktion zu jedem Plot gleich anspringt. Im Gegensatz zu Excel scheint Calc in der Tat keinen eingebauten Fitting-Algorithmus für nichtlineare Probleme zu haben. Die Methode der kleinsten Quadrate (verwendet Excel IMHO auch) kannst Du zu Fuss machen,Anleitung unter http://sourceforge.net/project/showf...kage_id=104423
    Oder Du installierst Dir ein entsprechendes Plugin von http://oooconv.free.fr/fitoo/fitoo_en.html
    Ausprobiert habe ich es allerdings nicht, da ich für sowas immer Matlab benutzt habe - polyfit() und gut.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Wie erstellt man eigentlich eine solche Gleichung?

    Wie gehe ich da vor. Ich weis das ich einen Sensor habe der die und die Werte liefert, ic hweis was für Variablen ich habe und ich weis was ich möchte

    Wie erstelle ich da nun die Funktion(en)?

    Würde mich mal interessieren

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    06.02.2006
    Ort
    Ingolstadt
    Alter
    29
    Beiträge
    32
    man könnte doch auch eine Näherung der Funktion implementieren
    wäre glaub ich das einfachste:
    mit der Formel:
    D = A/(X-B)
    wobei:
    D ist die Entfernung
    X ist der Ausgabewert des Sensors
    A ist die Steigung der Kurve A/X
    B ist der Offset der Kurve

    dann musst du nur noch 2 werte messen um A und B zu erhalten
    siehe:
    http://www.roboternetz.de/wissen/ind...rarten_gibt_es

    unter sharp GP2d150

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    @blackdevil:
    1. Möglichkeit: Du weisst aufgrund der physikalischen Eigenschaften Deines Sensors, wie sich die Grössen zueinander verhalten, kannst zB über die Materialzusammensetzung usw eines NTC sagen, dass es sich um ein Polynom zweiten Grades handelt und bestimmst dann die Koeffizienten; beim Sharp weiss man halt irgendwoher - einfachster Weise durch angucken der Kurve - dass es etwas logarithmisches sein muss.
    2. Möglichkeit: Approximation. Du weisst nicht so recht, was für eine Funktion es ist und es ist Dir auch irgendwie egal, oder die Funktion ist so kompliziert, dass Dein Controller mit der Berechnung überfordert wäre. Dann kannst Du mit verschiedenen mathematischen Methoden ein Polynom suchen, das Deine Funktion im interessierenden Bereich möglichst genau wiedergibt. Bei der logarithmischen Entfernungsfunktion des Sharp funktioniert das sch*e, bei einem PT-Temperatursensor sehr gut (<<0,1% Fehler von -50 bis 200 Grad C mit einem Polynom 2. Grades soweit ich weiss, hatte ich neulich gerade mal durchgekaspert, weil ich meinem uC die Fallunterscheidung und Berechnung mit bis zu 4 Graden nicht zumuten wollte und ausserdem gleich eine Abbildung meines ADC-Zahlenraumes auf Temperatur wollte, gut konditioniert sollte die Gleichung noch dazu sein)

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    08.04.2004
    Beiträge
    42
    Es ist viel einfacher als das ganze in Excel einzugeben oder sowas. Nimm diese Funktion:

    x in cm
    y ist der digitale Wert

    x = e^(ln(y/390/-0,866)

    Die Funktion hab ich anhand der Potenzfunktion der Sharp in einigen Nächten abgeleitet. War kein Spass, dafür funktioniert sie perfekt. (Natürlich nur ab 8cm, ist ja die Minimalreichweite)

    VG Phönix
    Glauben heißt nicht Wissen.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •