-         

Ergebnis 1 bis 4 von 4

Thema: Sensoren auslesen und Werte an Servos weitergeben

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.07.2005
    Ort
    Oberwil
    Alter
    36
    Beiträge
    131

    Sensoren auslesen und Werte an Servos weitergeben

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute

    Ich bräuchte von euch ein paar Ideen bezüglich meiner Programm-Struktur von den Roboter.

    Ich verwende drei Sharp GP2D12 Distanzsensoren für links, rechts und nach vorne. Weiter verwende ich eine AVR Atmega32 Controller der die Daten aus den Sensoren ausliest. Diese werden anschliessend einerseits an den Lenkservo und andererseits an den Fahrtregler ausgegeben.

    Nun zu meinem Problemchen:

    Wie soll ich mein Programm strukturen (auslesen, dann ausgeben)?

    Zuerst Sensor links, dann entscheiden ob lenken.
    Dann Sensor nach vorne, entscheiden Bremsen oder Gas geben.
    Dann Sensor rechts, entscheiden ob lenken.

    So war mal meine erste Idee.

    Hat jemand eine bessere oder "intelligentere" Lösung?

    Danke für eure Hilfe

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    22.09.2005
    Beiträge
    30
    Wie ist denn deine Vorstellung von der zeitlichen Dimension?

    Der Sensor arbeitet doch instantan.. dh. die Totzeit deines Systems sind nur durch die jeweiligen Wartezeiten für das A/D-Wandeln gegeben.
    Wenn ich mal 10Bit Wandlung annehme als genauestes (mit zB. bei 16MHz ADC-Prescaler: 128, bei 1MHz ADC-PS: 8 ) dann kommt man auf 125kHz Clock für den AD-Wandler.
    Bei ner einzelnen Wandlung braucht man maximal 25 AD Clocks, also 0,2ms..

    Wenn Du die AD-Wandlung in dein Main Programm packst, kannst Du minimal alle 0,2ms einen Sensor auslesen..
    Wenn Du die Wandlungen nicht single machst, gehts fast doppelt so schnell.
    Wenn du nur 8Bit nimmst (den AD-Wert Left-Orientated und nur oberes Byte auslesen) kannst Du nochmal ein bisschen schneller machen..

    Insofern ist der gepostete Ablauf..
    Zuerst Sensor links, dann entscheiden ob lenken.
    Dann Sensor nach vorne, entscheiden Bremsen oder Gas geben.
    Dann Sensor rechts, entscheiden ob lenken.
    .. ein wenig "daneben"

    Ich würde erst alle 3 Sensoren abfragen und dann ne Richtungs-/Geschwindigkeitsentscheidung treffen.

    Grüße
    0tes_Gesetz

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.07.2005
    Ort
    Oberwil
    Alter
    36
    Beiträge
    131
    Ok, ich glaube der Flaschenhals liegt eher an der Geschwindigkeit der Distanzsensoren. Die arbeiten ja nur mit 40ms. Deshalb denke ich, dass ich mit er A/D Wandlung genügend Zeit habe. Oder was meinst du??

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    28.06.2006
    Beiträge
    7
    Oh, dachte die gehen instantan.. im schlimmsten Fall also 54ms pro Sensor..

    hm..

    Dh. für 3 Sensoren rund 150ms, dann ne Rechnung und "do it again, sam".

    Wenn ne Entscheidung alle 150ms schnell genug ist (wie schnell fährt dein Robbi?), würd ich erst alle drei abfragen und dann weitermachen..

    Btw. der Sensor gibt doch PWM aus, oder?
    Dh. man könnte auch per rising/falling Edge mit nem Timer die Werte abholen.. das nur so als Idee, falls dir die AD's ausgehen sollten

    Grüße
    0tes-Gesetz

Berechtigungen

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