-         

Ergebnis 1 bis 4 von 4

Thema: Ultraschallmessung funktioniert nicht richtig

  1. #1

    Ultraschallmessung funktioniert nicht richtig

    Anzeige

    Hallo,

    kann mir jemand weiter helfen? Die Ultraschallmessung funktioniert nicht richtig.


    Ich habe das Beispielprogramm USTest aus der Bibliothek ,,AsuroLib-v280rc1" auf den Roboter übertragen. Mit diesem Programm kann ich den Abstand des Ultraschalls von einem Hindernis messen. Der Abstand wird in HyperTerminal ausgegeben.
    Jedoch ist es so, dass der Roboter nur manchmal den Abstand an den PC sendet. Der Roboter hört einfach auf zu senden. Seltsamerweise kann man den Roboter mit klirrenden Schraubenziehern wieder zum Senden bewegen. Der erste zurück-gelieferte Wert ist danach sehr hoch, aber die anderen Werte sind wieder normal. Nach einiger Zeit hört er wieder auf zu senden.

    Er hört auch auf zu Senden, wenn man das Hindernis sehr schnell wegzieht.

    Auf der Ultraschall Platine sind die Bauteile drauf, die auch in der Stückliste enthalten sind. Es werden lediglich andere Sensoren verwendet.

    Die Sensoren heißen:
    400ST (8 16)
    400SR (8 47)

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Ohne den Sensor zu kennen, hört sich das danach an, das gelegentlich keine Echo erkannt wird und dann unbegrenzt lange gewartet wird.
    Die anderen US -Wandler könnten weniger empfindlich sein, sodass der effekt sonst nicht oder nur selten auftritt.

    Das lange warten würde ich als Fehler im Programm werten:
    Wenn nach einer Zeit von etwa 100 ms (ggf. auch weniger) kein Echo kommt, sollte einfach eine neue Messung gestartet werden, denn dann kommt auch kein Echo mehr.

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Bagpiper,

    der Fehler liegt an der Asuro Lib und wird mit der nächsten Version behoben sein.
    Du kannst das auch selber ändern (am Ende der ChirpFunktion):
    Code:
    ...		
    		ACSR |= _BV(ACI);
    		
    		if(sleeptime > 3500) {     // kein Echo empfangen?
     	                RestoreAsuro();      // reaktiviere serielle Schnitstelle
    			return -1;
    		}
    	}
    	
    	RestoreAsuro();
    	return dist;
    Es muß nur die Zeile RestoreAsuro(); hinzugefügt werden. Damit schaltet der Asuro die serielle Schnittstelle wieder aktiv, auch wenn kein Echo empfangen wurde.

    BTW. es würde mich mal interessieren bis zu welcher Entfernung dein Sensor arbeitet (d.h. Hindernisse erkennt). Bei mir klappt es mit Finetuning höchstens bis 30cm.

  4. #4
    Danke für eure Tipps,
    die Antwort kommt zwar sehr spät, aber immerhin besser als gar nicht.
    Der Fehler lag an nicht verlöteten Kontakten zwischen ASURO-Platine und der U-Schall Platine.

    Dieser Roboter misst die Entfernung auch nur bis ca. 30cm.

Berechtigungen

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