-
        

Ergebnis 1 bis 7 von 7

Thema: Richtung erkennen mit srf10

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2009
    Alter
    22
    Beiträge
    20

    Richtung erkennen mit srf10

    Anzeige

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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    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?

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    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.
    Code:
    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
    Viele Grüße, William
    -> http://william.thielicke.org/

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Und es geht sogar noch einfacher als bei Willa, wenn Du die Unterscheidung nach jeder Messung machst:

    Code:
    if(aktuellerMesswert > Maximum){
         Maximum = aktuellerMesswert
    }
    ..nächste Messung
    Maximum musst Du vor beginn der ersten Messung 0 setzen.
    Gruß

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    375
    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.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    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.
    Viele Grüße, William
    -> http://william.thielicke.org/

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2009
    Alter
    22
    Beiträge
    20
    alles klar vielen dank

Berechtigungen

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