- Akku Tests und Balkonkraftwerk Speicher         
Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte
Ergebnis 41 bis 50 von 56

Thema: Wie rechnet ihr Entfernung von Sharp IR-Sensoren um

  1. #41
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.138
    Anzeige

    E-Bike
    Ich habe schnell noch mal nachgemessen. Einen GP2D12 an 5V Labornetzteil über 50cm Krokodilklemmenkabel und 30cm Eigenkabel, ohne Kondensator.

    Er ist ca. 25cm vor einem 30cm Kunststofflineal aufgebaut das an einem Ende in einen Schraubstock eingespannt ist. Gemessen wird der Abstand zum Lineal. Das Lineal ist am freien Ende einer 50g schweren Kunststoffklemme beschwert damit es beim Anregen mit einer Frequenz von ca. 3,5Hz schwingt. Es schwingt auch bei der ersten Messung leicht.

    Im zweiten Bild schwingt das Lineal heftig. Die Einzelmessungen des Sensors haben eine Folgefrequenz von 25Hz.

    Das Bild zeigt vielleicht, dass selbst für Sensoren im Sanitärbereich mit hohen Qualitätsansprüchen gearbeitet wird.
    Manfred

    Zum Thema Automatisierung in unterschiedlichen Bereichen: http://www.washlet.com/quicktime1.html

  2. #42
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2005
    Beiträge
    16
    Hallo,

    ich bin auch ein absoluter Neuling in Dingen Roboter/Elektrotechnik/usw.
    Nun habe ich mir die Kurve von Mr.Burns angeschaut und genauso hatte ich mir das auch vorgestellt. Dann habe ich zum Vergleich mir die Kurve des GP2Y0A02YK (Sharp) angeschaut und war überrascht. Die Kurve besitzt zu einem Y-Wert zwei X-Werte. In dem Falle zum Analogenausgang (Spannung), zwei Entfernungen. Kommt man denn da nicht durcheinander ? Oder bin ich nur zu bl... ?

    Bye,
    ComCat

  3. #43
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Hallo

    Die Kurve besitzt zu einem Y-Wert zwei X-Werte. In dem Falle zum Analogenausgang (Spannung), zwei Entfernungen. Kommt man denn da nicht durcheinander ? Oder bin ich nur zu bl... ?
    Das siehst Du schon richtig. Wenn Du die Skalierung der X-Achsen ansiehst, wirst Du feststellen, dass die Datenblätter bei x=0cm zu messen beginnen, Mr.Burns beginnt aber erst bei x=40cm. Es ist in der Tat so, dass man im Prinzip nicht sagen kann, ob das Objekt nun 10cm oder 40cm (o.ä.) entfernt ist. Das ganze ist bauartbedingt.
    Deshalb montieren veiel ihre Sharp's auch nicht an den Rand ihres Roboters sondern ein wenig nach innen versetzt.

    Gruess
    Felix

  4. #44
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2004
    Ort
    Bremen
    Beiträge
    9
    Hallo,
    ich befasse mich auch gerade mit der Auswertung der Sharp GP2D12. Ich habe ebenfalls ein paar Kurven aufgenommen, und versucht eine Ausgleichfunktion zu bestimmen, um die Werte in einem Atmega32 möglichst annähernd zu berechnen. Natürlich funktioniert das nicht, da erst ein Polynom 6.(!) Grades den Bereich 10 - 100 cm einigermaßen genau abbildet.

    Bild hier  

    Bild hier  


    Um zu vermeiden, dass ich eine ganze Wertetabelle hinterlegen muss, habe ich ein bißchen im Netz gestöbert, und bin bei BalBots auf eine Funktion gestoßen, die einigermaßen (+/- 1cm) genau den Analogwert des Sensors in die Entfernung umrechnet. Das Problem ist, dass ich eine Operation nicht ganz verstehe.
    Code:
    uint16_t read_GP2D12(void) {
    	unsigned int tmp_sample;
    	
    	if(tmp_sample < 4)
    		tmp_sample = 4;
    	tmp_sample = adc; // acd ist der AD-Wandlerwert
    	printf("\n Wert:\t %d",tmp_sample);
    	tmp_sample -= 3; // Warum?
    	printf("\n Wert -=3:\t %d",tmp_sample);
    	tmp_sample = 6787/tmp_sample; // Warum 6787?
    	printf("\n Wert 6787/Wert:\t %d",tmp_sample);
    	tmp_sample -= 4; // Häh?
    	printf("\n Wert -=4:\t %d",tmp_sample);
    
    	if(tmp_sample > 90)
    		tmp_sample = 90; // Abstandsbegrenzung
    
    	return(tmp_sample);
    }
    Kann mir jemand erklären, warum hier vom Digitalwert erst 3 abgezogen, dann die krumme 6787 durch diesen Wert geteilt und dann wieder 4 substrahiert wird?
    Eigentlich ist die Funktion ganz i.O. - für mich und auf erstem Blick.

    Was meinen die Experten?

    Gruß!

  5. #45
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2004
    Ort
    Bremen
    Beiträge
    9
    Hallo,
    ich habe es mit 6787 verstanden. Das ist wahrscheinlich die Umschreibung für
    6787*AD_Wert^(-1,00xxx), wobei ja x^(-1) = 1/x entspricht. Jetzt Suche ich nur noch nach dem Sinn, warum substrahiert wird.
    Gruß!

  6. #46
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Hallo

    Um die Entfernung brauchbar umzurechnen benützt die grosse Mehrheit (das behaupt ich nun mal so) diesen Formeltyp. Das Prinzip beruht darauf, dass die Entfernung ab ca. 10cm proportional zu 1/Vout ist.
    Man hat also die allg. Formel:

    dist = a/(vout - offset) - c Das ergibt dann also die 1/x prop. Funkt.

    a, offset und c sind sensor- und systemspezifische Grössen, die von Exemplar zu Exemplar verschieden sind.

    Formel, Konstanten:
    http://www.barello.net/Papers/GP2D02/index.htm

    Gruess
    Fritzli

  7. #47
    Gast
    Methode der kleinsten Quadrate (least squares fit)

    Das läuft dann ja weder auf eine lineare lösung Herraus. Warum nicht einfach mit Werten auf dem Datenblatt oder Messungen ein Polynom anpassen?

  8. #48
    Zitat Zitat von merviux
    Kann mir jemand erklären, warum hier vom Digitalwert erst 3 abgezogen, dann die krumme 6787 durch diesen Wert geteilt und dann wieder 4 substrahiert wird?
    Sieht so aus, als ob die Funktion von http://www.acroname.com/robotics/inf.../irlinear.html abgeleitet ist.
    Auf jeden Fall passt es genau.

    Dort kommt R = (6787 / (V - 3)) - 4 fuer den GP2D12 heraus.
    und R = (2914 / (V + 5)) - 1 für den GP2D120.

    Gruss
    Frank

  9. #49
    Neuer Benutzer Öfters hier
    Registriert seit
    05.10.2004
    Beiträge
    21
    hey weiss jemand welche spannung ein gp2d12 ausgibt, wenn nichts im sensorbereich ist bzw nur ne decke in 2 m höhe? meine tabelle geht nur bis 120 cm.....
    vielen dank!

  10. #50
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2004
    Ort
    Bremen
    Beiträge
    9
    Hallo,

    also ich hatte ja damals die im Web gefundene Umkehrfunktion zur Auswertung des Sensoren verwendet.
    Ich habe die Parameter variiert und so Werte gefunden, mit denen ich den Kurvenverlauf des IR-Sensors recht gut approximieren konnte.

    Mit der Funktion:
    s[cm] = (6248 / AD-Wert) - 2.48

    erhält man relativ genaue Wert im Bereich 10 - 85 cm. Ab 90 cm wird es ungenauer und alles darüber ist ja auch nicht mehr im Arbeitsbereich laut Datenblatt.
    Bild hier  
    Vielleicht etwas ungewohnt, dass der Abstand auf der Ordinate und die Ausgangsspannung auf der X-Achse aufgetragen sind.

    Die Rote Kurve stellt die Ausgangsspannung des IR-Sensors bei Messung mit Reflektion auf eine weisse Fläche dar.
    Die Grüne Kurve ist eine Approximation mit einem Polynom 6. Grades, das aber mit einem Atmega nicht (einfach) zu programmieren ist, aufgrund der sehr kleinen Koeffizienten.
    Die blaue Kurve ist die angesprochene Umkehrfunktion.

    Ich habe drei Sensoren ausprobiert und die anderen beiden hatten wirklich nur minimale Abweichungen.

    @aromersohn
    Da der Sensor nur für den Bereich ca. 10 - 80 cm ausgelegt ist, verzichte ich auf die Werte jenseits von 85. Für meine o.a. Formel ergeben sich bei größeren Entfernungen exorbitante Angaben. Alles über 80 cm. werte ich mit einem analogen Ultraschall aus (SRF04), der hier genauer misst als z.B. der IR oder der US-Sensor SRF08.

    Gruß!

Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte

Berechtigungen

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

12V Akku bauen