PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschallmessung funktioniert nicht richtig



Bagpiper
14.05.2009, 22:27
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)

Besserwessi
15.05.2009, 10:08
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.

m.a.r.v.i.n
15.05.2009, 10:30
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):


...
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.

Bagpiper
09.06.2009, 18:03
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.