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

Thema: SRF02 Fehlerhafte Messwerte unterhalb 15cm

  1. #1

    SRF02 Fehlerhafte Messwerte unterhalb 15cm

    Anzeige

    Hallo zusammen,

    erstmal wünsche ich allen schonmal ein erholsames Wochenende. Nun zu meinem Problem. Ich benutze auf meinem Bot den US SRF02 und kommuniziere mit diesem per I2C. Die Messwerte sind soweit in Ordnung, aber sobald der Abstand zwischen Sensor und Objekt unter 15 cm liegt, bekomme ich total falsche Werte, zwischen 0 und 255 kann jeder Wert auftreten. Dann habe ich mir die Messwerte in µS schicken lassen, gleiches Problem. Ich denke das ist ein Problem vom Sensor. Ich weiß das der Sensor nicht weniger als 15cm messen kann, aber normalerweise sollte in solchen Fällen eine 0 verschickt werden, damit man auch erkennnen kann dass die Entfernung kleiner 15 cm beträgt.
    Ist das bei euch auch so und gibt es eine Möglichkeit dieses Problem zu lösen?

    Hier mal meine Funktion (ich benötige nur das lowbyte)
    Code:
    uint8_t get_distance(void)
    {
    	uint8_t highbyte,lowbyte;
    	i2c_start_wait(SRF02_ADRESSE+I2C_WRITE);
    	i2c_write(0);
       	i2c_write(81);
       	i2c_stop();
    	uint8_t temp=255;
    	while(temp==255)
    	{
    		i2c_start_wait(SRF02_ADRESSE+I2C_WRITE);
    		i2c_write(0);
    		i2c_stop();		
    		
    	   	i2c_rep_start(SRF02_ADRESSE+I2C_READ);
       		temp = i2c_readNak();
    		i2c_stop();		
    	}
    	i2c_start_wait(SRF02_ADRESSE+I2C_WRITE);
       	i2c_write(2);
       	i2c_stop();
    	
       	i2c_rep_start(SRF02_ADRESSE+I2C_READ);
       	highbyte = i2c_readAck();
       	lowbyte = i2c_readNak();
    	i2c_stop();		
    	return lowbyte;
    }
    Habe bereits gegoogelt aber konnte nichts hilfsreiches finden.
    Bin gespannt auf eure Vorschläge. Danke.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    55
    Beiträge
    198
    Das wird wohl an den Mehrfachreflexionen liegen:

    Der Puls durchläuft die Strecke zwischen Sensor und Objekt mehrmals hin und zurück. Dadurch erhälst Du typischerweise ein Vielfaches des tatsächlichen Abstandes.

    Sind die Werte wirklich so zufällig? Oder sind sie ein Mehrfaches?

  3. #3
    das könnte gut sein, das es Reflexionen sind. Ich habe auch gemerkt, das dieses Verhalten auch dadurch beeinflußt wird, wie lange man beim Messen wartet. Also im Datenblatt wird ja ca. 65ms Wartezeit wärend der Messung empfohlen. Im Datenblatt steht aber noch, dass man auch statt 65ms auch solange die Firmwareversion abfrägt, bis nicht mehr 255 geantwortet wird, dies bedeutet ja das das Modul fertig ist mit der Messung. Und so habe ich das auch bei mir gemacht, aber die kleinste Entfernung die ich angezeigt bekomme ist ca. 24cm. Woran liagt das?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Wernn Du einmal die Anleitung zum Sensor zur Hand nimmst, kannst Du lesen das der Sensor nur "ab" 15 cm bis ca. 6m arbeitet. der kann halt nicht unter 15 cm ordentlich arbeiten.

    Gruß Richard

  5. #5
    @Richard
    Ich weiß das der Sensor erst ab 15cm arbeitet. Es kann immer mal vorkommen, das man beim Fahren die 15 cm nicht immer einhalten kann. Und wenn dann mal ein Hindernis weniger 15cm entfernt ist mir aber der Sensor 100cm schickt, dann kann ich diesen Zustand nich einfach hinnehmen. Ich dachte, das man diese Messfehler vielleicht irgendwie hintergehen kann, das man zumindest nicht zu große Werte bekommt, obwohl die Distanz weniger 15cm beträgt.

    Ich spiele mit dem Gedanken ein Kunstoffrohr (ca. 20cm) vor den Sensor zu montieren und den Sensor ebenweiter hinten auf meinem Bot platziere. So könnte ich rein theoretisch bis vor den Bot messen. Nachteil wäre ich vermutlich das ich nicht die volle Breite des Bots abdecken könnte.

    Gruß
    Cetin

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Dann vielleicht noch nen GP2D120 oder einen anderen optischen für den Nahbereich.

  7. #7
    habe leider keinen adc mehr frei. gibt es die ir-entfernungssensoren auch mit i2c?

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von steveLB
    Registriert seit
    24.10.2005
    Beiträge
    481
    nimm dir einen kleinen Atmel mit ADC und I²C und schon hast du wieder 8 pins und musst keine speziellen I²C Sensoren suchen
    [X] <-- Nail here for new Monitor

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von exaware
    @Richard
    Ich weiß das der Sensor erst ab 15cm arbeitet.
    Das wäre genauso als wenn Du mit nen Trabbi versuchst 380 km/h zu erreichen. Nehme wie auch schon erwähnt wurde, einen Optischen Sensor zusätzlich die eignen sich für kurze Entfernungen.

    Gruß Richard

  10. #10
    Ein optischer Sensor kommt nicht mehr in Frage, da die Hardware bereits steht und ich aus zeitlichen Gründen nicht mehr viele Änderungen bzw. Neuerungen durchführen kann.
    Aber eine Lösung wären vielleicht der srf08 oder der srf10. Was haltet ihr von diesem Sensoren und was für Erfahrungen habt ihr mit diesen Sensoren?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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