-         

Ergebnis 1 bis 5 von 5

Thema: Linienprogramm --> geht es besser als so:

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163

    Linienprogramm --> geht es besser als so:

    Anzeige

    Hallo Leute,

    ich habe hier mal ein Leitlinienprogramm geschrieben.
    Leider bin ich mit dem Ergebniss garnicht zufrieden.

    Er foldt der Linie nicht zuverlässig oder garnicht.
    Ich habe 5 x CNY70 Sensoren nebeneinander.

    Meine frage:

    was würdet ihr anders machen damit er stabiler der Linie folgt?
    Ich weiss, dass der Code ziemlich trivial ist aber ich bin neuling auf dem Gebiet.

    Bitte um Hilfe.


    Hier mal mein der entscheidende Teil des Codes:
    An PortA hängen die Sensoren,
    an PortB die Motoransteuerung.

    Code:
    
    If Pina.5 = 0 And Pina.6 = 0 And Pina.7 = 0 Then
          Waitms 100
          Portb.4 = 0                                 'beide Motoren vor
          Portb.5 = 1
          Portb.6 = 0
          Portb.7 = 1
    
    Elseif Pina.5 = 0 And Pina.6 = 0 And Pina.7 = 1 Then
          Waitms 100
          Portb.4 = 1                                  'Motor links vor, rechts zurück
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 1
    
    Elseif Pina.5 = 0 And Pina.6 = 1 And Pina.7 = 0 Then
          Waitms 100
          Portb.4 = 0                                  'beide Motoren zurück
          Portb.5 = 1
          Portb.6 = 0
          Portb.7 = 1
    
    Elseif Pina.5 = 0 And Pina.6 = 1 And Pina.7 = 1 Then
          Waitms 100
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 0
          Portb.7 = 1
    
    Elseif Pina.5 = 1 And Pina.6 = 0 And Pina.7 = 0 Then
          Waitms 100      
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 1
          Portb.7 = 0
    
    Elseif Pina.5 = 1 And Pina.6 = 0 And Pina.7 = 1 Then
          Waitms 100     
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 1
          Portb.7 = 0
    
    Elseif Pina.5 = 1 And Pina.6 = 1 And Pina.7 = 0 Then
          Waitms 100      
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 1
          Portb.7 = 0
    
    Elseif Pina.5 = 1 And Pina.6 = 1 And Pina.7 = 1 Then
          Waitms 100      
          Portb.4 = 1
          Portb.5 = 0
          Portb.6 = 1
          Portb.7 = 0
    
    
    Else
         
          Portb.4 = 0
          Portb.5 = 1
          Portb.6 = 0
          Portb.7 = 1
          Waitms 100
    End If
    MfG Ich

    -------------------------------------------------------------
    http://www.lorenzschulz.de/Roboter.html

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163
    Hat wirklich keiner schon mal damit zu tun gehabt? Wie programiert ihr denn euere Lilienabtastung?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Also ich würde das ganz anders machen.

    Erstmal sollten die Motoren über PWM geschwindigkeits-geregelt werden.
    Weiterhin halte ich von Rückwärst fahren (oder auch ein Rad drehen) garnix; außer die Geometrie des Roboters/der Bahn lässt es nciht anders zu.
    Dann würde ich aus den 5 Sensoren die mittlere Bahnposition ermitteln.
    Also z.B. durchzählen wieviele nebeneinander liegende Sensoren 1 (true, wahr) sind. Dann noch den ersten mit 1 von irgend einer Seite ermitteln und die Hälfte der Anzahl der 1-er Sensoren dazurechnen. Jetzt noch - 2,5 Rechnen, und du hast schonmal nen Wert von -2,5 bis +2,5 in 0,5er Schritten. Jetzt kann man entweder nen linearen regler ansetzen, oder gleich nen PD-Regler. Ob letzterer mit den wenigen Sensordaten gut zurechtkommt, müsste man ausprobieren.

    Hoffe mal du hast was verstanden und es geht so; viele Ansätze sind auch über die SuFo zu finden!

    MfG; MK

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    nimm 3 sensoren. aus der mitte raus bis rechtsberührung oder aus der mitte raus bis linksberührung.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.04.2005
    Ort
    Pforzheim
    Alter
    36
    Beiträge
    163
    Danke für eure tips, ich habe das inzwischen so wie pebisoft vorgeschlagen hat gemacht jedoch mit 5 sensoren. das hat nun funktioniert.
    Nur bei starken Kurven fährt er manchmal noch gerade aus. Aber das ist eine frage der Programierung, feinjustage...

    Danke nochmal.
    MfG Ich

    -------------------------------------------------------------
    http://www.lorenzschulz.de/Roboter.html

Berechtigungen

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