Guten morgen,
die Schallgeschwindigkeit in der Luft beträgt 343 m/s bei 20 Grad Lufttemperatur . Um daraus die Entfernung berechnen zu können, muss die folgende Formel benutzt werden:
s = c[m/s] * t[s] / 2
Wobei s die Entfernung, c die Schallgeschwindigkeit und t die Zeit ist.
Ich gehe nun mal davon aus, dass ein Objekt in 1 Meter Entfernung gefunden wurde. Das ist bei mir der Schwellwert.
Durch Umstellung der Formel nach t ergibt sich für das empfangende Echosignal eine Zeit von 0,6 ms.
Der Sensor (Sender und Empfänger) hat eine Breite von 4 cm. Daraus ergibt sich der Radius von 2 cm. Nun berechne ich die Länge des Kreisausschnittes für 120 Grad.
b=(alpha/360°) *2 * r * Pi
alpha wäre hier 120 Grad und r sind die 2 cm
Daraus ergibt sich die Länge b=4,19cm
120 Grad entsprechen 60 Servoschritte (Servostellung von 70 bis 130)
Somit hat ein Servoschritt in diesem Kreisausschnitt eine Länge von 0,07 cm
Daraus folgt nun, dass die Zeit von Servoschritt zu Servoschritt den Wert von 0,6ms nicht unterschreiten darf. Ich setze nun nach jedem Servoschritt ein Waitms 10, dass heisst nun, dass der Servo auf die Position fährt, 10 ms wartet und dann die nächste Position anfährt.
Hierbei sehe ich aber übrhaupt kein Problem. Es gibt ein anderes, wesentlich grösseres Problem. Und zwar ist das die Geschwindigkeit des Robots. Aus diesem Grunde bleibt bei mir der Sensor auf dem gefundenen Hinderniss stehen und bewegt sich erst weiter, wenn das Hinderniss auf Grund der Gegenreaktion sich nicht mehr im momentanen Scanbereich befindet. Ich habe noch das Problem, welches ich noch nicht gelöst habe, wenn der Sensor auf dem Hinderniss stehen bleibt und gleichzeitig in der Gegenreaktion des Robots ein neues Hinderniss auftaucht, kann der Robot zur Zeit nicht drauf reagieren. Dann bummst es. Aber dafür werde ich auch noch eine Lösung finden.
Ich hoffe diese Erklärung reicht aus.

Peter