-         

Ergebnis 1 bis 5 von 5

Thema: Odometrie Querempfindlichkeit links-rechts

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2010
    Beiträge
    8

    Odometrie Querempfindlichkeit links-rechts

    Anzeige

    Hallo,

    ich habe ein verrücktes Problem mit den Odometrie-Daten.
    Die Daten des rechten Sensors scheinen ok, die Daten des linken Sensors hängen vom Zustand beider Sensoren ab.
    Testmethode: Ich lasse die Odometrie-Daten über die LEDs anzeigen, also z.B. 256..511: Linke LED, 512..768 rechte LED, darüber beie LEDs etc., analog mit der Statuslampe für den anderen Sensor.
    Wenn ich am linken Rad drehe, blinken die zugeordneten LEDs entsprechen.
    Wenn ich am rechten Rad drehe, blinken die LEDs für beide Sensoren, so als ob der übergebene Wert für den linken Sensor in Wahrheit die Summe der beiden Sensorwerte ist.
    Ist es ein Softwareproblem? Oder habe ich irgendwo eine Brücke auf der Leiterplatine? Wo muss ich nachsehen?

    Martin

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Wenn du eine Brücke hättest, würden sich beide Seiten gegenseitig beeinflussten.
    Ist ein Programmierfehler deinerseits ausgeschlossen? Sieh dir doch Mal die erfassten Messwerte über die IR-Schnittstelle an!

    Wenn du dann immer noch nicht weiter bist, wäre es am sinnvollsten, den kompletten Schaltungsteil zur Odometrie-Auswertung noch einmal genauer unter die Lupe zu nehmen. Das Betrifft die Back-LEDs, die beiden Phototransistoren + IR-LEDs und zugehörigen Widerstände.

    mfG
    Markus

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2010
    Beiträge
    8
    Kann man denn da viel falsch machen im Programm?

    Code:
      unsigned int OdoData[2];
      OdometrieData(OdoData);
     if (OdoData[1]<256) BackLED(OFF,OFF);
      else if (OdoData[1]<512) BackLED(OFF,ON);
      else if (OdoData[1]<768) BackLED(ON,OFF);
      else BackLED(ON,ON);
      
      if (OdoData[0]<256) StatusLED(OFF);
      else if (OdoData[0]<512) StatusLED(RED);
      else if (OdoData[0]<768) StatusLED(GREEN);
      else StatusLED(YELLOW);
    Mit diesem Code verhalten sich die LEDs so als würde die StatusLed die Summe der beiden Signale anzeigen und die BackLEDS richtig funktionieren.

    Nach Sichtprüfung sehen alle Lötstellen ok aus..

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Odometrie und BackLEDs sollte bzw. darf man nicht zusammen verwenden!

    Sie teilen sich dieselben Kontrollerpins und stören sich deshalb gegenseitig. Verwende testweise mal den Anzeigecode mit der Statusled jeweils für links und drehe rechts, bzw. für rechts und drehe links. Dann wird die Abhängigkeit nicht mehr auftreten. Denn Code mit den BackLEDs musst du bei diesem Test natürlich entfernen.

    Wenn ich am rechten Rad drehe, blinken die LEDs für beide Sensoren,...
    ... weil der Wert der rechten Odowerte in OdoData[1] gespeichert ist und mit den BackLEDs angezeigt wird.

    Gruß

    mic

    P.S.: Eigentlich recht pfiffig wie du dir die Werte anzeigen läßt. Kleines Lob dafür von mir ;)

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2010
    Beiträge
    8
    Tatsache, genau das war's. Jetzt läuft's. Vielen Dank.

Berechtigungen

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