-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Asuro fährt nicht geradeaus

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71

    Asuro fährt nicht geradeaus

    Anzeige

    Hallo erstmal .
    Ich bin ganz neu, und steige erstmal langsam ein. Mein Asuro ist seit ein paar Tagen fertig. hat alles auf Anhieb geklappt. Sämtliche Selbsttest wunderbar durchlaufen.
    Und mit dem Programmieren---halt rumgespielt, und langsam erste Sachen verstanden.
    Wenn er jetzt aber mit der Odometrie geradeaus fahren soll, macht er das nicht.
    Motoren laufen, Odometriesensoren funktionieren bei´m Selbstest auch.
    Kann man vieleicht den Speicher au null setzen. Sorry für meine dumme Frage, aber wie gesagt --ganz neu hier.
    Gruß frank

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Welchen Speicher genau willse den auf null setzen?
    Und was versprichst du dir davon?
    Am besten du postest deinen Quellcode dann kann man dir am besten helfen.

    Gruß Thund3r

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Dachte den Speicher, wo er den Lichtwert speichert, Oder ist das Quatsch.
    Und was ist mein Quellcode und wie komm ich da drann?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Also ein Quelltext ist zB

    #include <asuro.h>
    int main (void)
    {
    while(1)
    {
    MotorDir(FWD,FWD);
    MotorSpeed(125,125);
    }
    return 0;
    }
    Und den von deinem Programm würd ich gerne mal sehen.

    --

    Jedesmal wenn du im Programm sagst dass der neue odometrie wert eingelesen wird verändert sich ja dieser .
    ...
    while(1)
    {
    int a,b;
    OdometrieData(data);
    data[0] =a;
    data[1] =b;
    }
    ...
    a ist dann zB im ersten Schleifendurchlauf 550 und b 856
    im 2ten durchkauf ändert sich dann aber der wert das zB a = 976 und b=467 ist usw. So brauchst du nichts zu löschen weil sich der wert permanent ändert(in jedem durchlauf)

    Gruß Thund3r

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    OK hier ist der Quelcode. den hab ich so im Netz gefunden, und beim ersten versuch hats ja auch geklappt.

    #include "asuro.h"

    // Schwellwert fr die Hell/Dunkel-Unterscheidung
    // Eventuell muss damit etwas variiert werden
    #define TRIGGERLEVEL 600
    #define HYSTERESIS 10
    #define LOW 0
    #define HIGH 1

    int main(void)
    {
    unsigned int data[2];
    signed int status[2]={0,0};
    signed int difference=0;
    Init();
    MotorDir(FWD, FWD);
    while(1) {
    // Helligkeitswerte der Lichtschranken auslesen
    OdometrieData(data);
    // Wechsel linker Sensor von niedrig auf hoch?
    if ((status[0]==LOW) && (data[0]>TRIGGERLEVEL+HYSTERESIS)) {
    status[0]=HIGH;
    difference++;
    }
    // Wechsel linker Sensor von hoch auf niedrig?
    if ((status[0]==HIGH) && (data[0]<TRIGGERLEVEL-HYSTERESIS)) {
    status[0]=LOW;
    difference++;
    }
    // Wechsel rechter Sensor von niedrig auf hoch?
    if ((status[1]==LOW) && (data[1]>TRIGGERLEVEL+HYSTERESIS)) {
    status[1]=HIGH;
    difference--;
    }
    // Wechsel rechter Sensor von hoch auf niedrig?
    if ((status[1]==HIGH) && (data[1]<TRIGGERLEVEL-HYSTERESIS)) {
    status[1]=LOW;
    difference--;
    }
    // zur Sicherheit: verhindern, dass der Differenzz�ler
    // den erlaubten Wertebereich verl�st
    if (difference<-255) difference=-255;
    if (difference>255) difference=255;

    // Status-LED noch entsprechend der erkannten Segmente
    // aufleuchten lassen, grn fr links, rot fr rechts
    StatusLED(status[0]+status[1]*2);

    // Z�ldifferenz passend auf die Motoren verteilen
    if (difference>0) MotorSpeed(255-difference,255);
    else MotorSpeed(255,255+difference);

    }
    return 0;
    }

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Auf den ersten Blick nicht so einfach...
    Funktioniert denn dieser Quellcode nicht so wie gewünscht?
    Und wo möchtest du welche Änderung vornehmen ( das mit dem löschen )


    Gruß Thund3r

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Also:
    Beim ersten Versuch hats wunderbar gklappt-- lief einwanfrei geradeaus.
    Dann hatte ich zwischendurch ein paar andere Programme geflascht, und als ich den Geradeaus wieder vorführen wollt-----geht´s nicht mehr. fährt nur noch im Kreis. Aber wie gesagt beim selbsttest fuknzt alles.
    Gruß frank

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Nein ich meinte das Programm wo du mir den Quellcode gezeigt hast das Programm hat beim ersten flashen funktioniert und dann nicht mehr?
    Hast du auch gespeichert und dann "make" gemacht?

    Gruß Thund3r

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    71
    Genau, nach dem ersten flaschen hat´s funktioniert. dann hab ich den Text gespeichert. Und später gings nicht mehr. Hab noch ein anders Programm ausprobiert, nennt sich"geradeausfahren und speichern". ging aich beim ersten versuch- jetzt aber auch nicht mehr. Fährt immer im Kreis, und der wird immer enger.
    Bei anderen Programmen, wo die Odometrie nicht zu sagen hatt läuft er aber gerade--na ja fast gerade.
    gruß Frank

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    Hallo

    Deck mal die Odometriesensoren mit Pappe oder so ab.
    ( http://www.asurowiki.de/pmwiki/uploa...n/mod_odo2.jpg )
    Und speicher den Quellcode, mach "make" und flash das Programm erneut dann müsste es eig. auf jeden Fall klappen. Schau auch mal ob bei den Odometriesensoren kein Wackelkontakt vorliegt.

    Gruß Thund3r

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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