-
        

Ergebnis 1 bis 5 von 5

Thema: Asuro soll Teppich meiden..

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.05.2010
    Ort
    München
    Beiträge
    41

    Asuro soll Teppich meiden..

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Halli Hallo,
    Habe gleich noch eine Frage zu einem Code von mir.. Ich möchte ein Programm schreiben das dem Asuro verbietet auf den Teppich zu fahren.. klingt ja eigentlich ganz einfach.. Einen Linedata am Anfang setzen und dann durchgehend unterm fahren vergleichen wenn der (im fahrende) Linedata dunkler ist (dunkler Teppich) dann soll er rückwärts wegfahren..

    Hab so auch alles gemacht jedoch bleibt er bei mir einfach sturr stehen, die Status-LED leuchtet gelb und die BackLEDs glimmen.. mehr passiert nicht..
    Worin liegt mein Fehler?

    Hier der Code:

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    unsigned int L1[2], L2[2], left, right;
    
    
    Init();
    
    FrontLED(ON);
    LineData(L1);
    left = L1[0] - 10;
    right = L1[1] - 10;
    
    while(1){
    StatusLED(OFF);
    FrontLED(ON);
    BackLED(OFF,OFF);
    MotorDir(FWD,FWD);
    MotorSpeed(150,150);
    LineData(L2);
    if(left > L2[0] && right > L2[1]){ // Wenn er auf den Teppich fährt
    MotorSpeed(0,0);
    FrontLED(OFF);
    BackLED(ON,ON);
    MotorDir(RWD,RWD);
    MotorSpeed(220,220);
    Msleep(500);
    MotorSpeed(0,0);
    MotorDir(FWD,BREAK);
    MotorSpeed(200,0);
    Msleep(500);
    MotorSpeed(0,0);
    }
    }
    return 0;
    }

    MfG. mtzE

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    29
    Beiträge
    826
    Moin

    Vorweg: Benutze bitte immer die Möglichkeit Quellecode in einer code-Umgebuung zu posten. Das macht das lesen einfacher und den Thread kürzer!

    Probier doch generell mal aus, die Differenz die du ja zu 10 gewählt hast, oben größer zu machen.

    Wenn dein Asuro dann tatsächlich fährt, wirst du aber sicherlich auch Probleme mit Lampen bekommen. Deswegen würde ich dir dann dazu raten, dass du als "Helligkeitswert" eher eine Art Reflektionswert des Boden nimmst.

    Dazu misst du die Helligkeit mit FrontLED an und anschließend ohne. Die Differenz ist der Anteil des Lichtes der durch die FrontLED reflektiert wird. Dadurch hast du einigermaßen die Möglichkeit externe Lichteinflüsse zu reduzieren.

    Viele Grüße,
    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.05.2010
    Ort
    München
    Beiträge
    41
    Ok der Code ist jetzt in einer CodeUmgebung vllt. doch ne bessere Idee als ihn einfach so rein zu posten :P

    Ähm.. Ich glaube mein Problem wurde nicht ganz verstanden.. Der Asuro erkennt den Teppich doch!.. Fährt dann aber nicht rückwärts weg wie im Code steht sondern bleibt einfach nur stehen und die Status-LED leuchtet gelb??

    Worin liegt denn der Fehler?

    MfG. mtzE

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

    Vielleicht bricht die Bordspannung zusammen wenn der asuro direkt von vorwärts mit 150 auf rückwärts mit 220 umschaltet.

    Wenn die FrontLED eingeschaltet wird, dauert es etwas bis sie mit voller Helligkeit leuchtet. Außerdem ist die erste Lesung mit dem ADC etwas kritisch, weil es sein kann, dass man Schrott misst. Deshalb würde ich am Anfang beim Speichern der Referenzwerte für "kein Teppich" folgende Änderungen einbauen:

    FrontLED(ON);
    Sleep(50); // Zeit für Lampe
    LineData(L1); // Dummylesung
    LineData(L1);
    left = L1[0] - 10;
    right = L1[1] - 10;

    Gruß

    mic

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

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    02.05.2010
    Ort
    München
    Beiträge
    41
    Oohhh maaan -.- das war die Lösung xD
    Ich denk halt immer komplizierter als es ist :P Naja bin ja auch erst seit 1ner Woche in der Robotik dabei

    Vielen Dank! Hätte warscheinlich noch Stunden gegrübelt xD

    MfG. mtzE

Berechtigungen

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