Archiv verlassen und diese Seite im Standarddesign anzeigen : Richtung erkennen mit srf10
honighamster
01.05.2009, 20:45
Hallo,
ich habe eine Frage zu einem Allroundscan.
Ich besitze ein SRF10 Modul und habe damit Allroundscans durchzuführen.
1.Kann ich 360 mal pro umdrehen messen?(Also pro Grad 1 Messung)
2.Wie vergleiche ich die Messwerte damit ich den besten weg bestimme?
(Oder muss ich 360 mal z.B.
if(Grad[0]>Grad[1]&&Grad[2]...Grad[359])
ich weiß das es einen thread gibt der "durch umgebungsscan neue zielrichtung finden " gibt und ich habe mir den programm code angeguckt aber ich kann nichts sinnvolles daraus entnehmen.
liebe grüße honighamster
So eine hohe Winkelauflösung ist nicht sinnvoll, weil der SRF10 einen ziemlich breiten Messwinkel hat, und auch einige zeit für die Messung braucht. 45° zwischen zwei Messungen sollte vollkommen reichen.
Was willst du als "besten Weg" ermitteln? Die Richtung, wo die Entfernung am größten ist?
Das ist zwar BASCOM code, aber der sollte sich doch leicht übersetzen lassen. Ich denke die Funktionsweise ist klar. Der Code findet das Maximum von einer Reihe von Messwerten die in einem Array gespeichert sind.
Dim Maximum As Word
Dim Maximumpos As Byte
Dim Messung(10) As Word ' so werden in BASCOM Arrays definiert
Dim I As Byte
messung( 1 )= 1
Messung( 2 )= 2
messung( 3 )= 3
Messung( 4 )= 100
messung( 5 )= 70
Messung( 6 )= 50
messung( 7 )= 90
Messung( 8 )= 66
messung( 9 )= 45
Messung( 10 )= 64
Do
For I = 1 To 9
If Messung(i) > Maximum Then
Maximum = Messung(i)
Maximumpos = I
End If
Next
Print "Maximum: " ; Maximum ; " Index:" ; Maximumpos
Loop
End
Und es geht sogar noch einfacher als bei Willa, wenn Du die Unterscheidung nach jeder Messung machst:
if(aktuellerMesswert > Maximum){
Maximum = aktuellerMesswert
}
..nächste Messung
Maximum musst Du vor beginn der ersten Messung 0 setzen.
Gruß
RP6conrad
02.05.2009, 22:45
Da soll ich eher Willa seines Algoritmus beforzugen. Die Frage ist doch welche Richtung von alle ist die beste ? Darfur braucht men bestimmt alle Richtungen erst zu messen und nach 360° die Beste finden.
Bei Gocks Code müsstest du auch eine Zählervariable mitlaufen lassen damit du weisst welche Messung denn nun die größte war. Funktioniert aber genauso wie mein Code, nur einen Tick einfacher.
honighamster
03.05.2009, 19:18
alles klar vielen dank
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.