- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 67

Thema: Regelung fürs Geradeausfahren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    ja klar, an sich hast du schn recht. allerdings: bis sich eine ernsthafte auswirkung zeigt, müsste der asuro schonmal recht weit geradeausfahren. naja, und bis dahin ist die kleine abweichung glaub ich relativ irrelevant. in meiner wohnung ist überall kantenfreies laminat, und sooo viel lass ich ihn gar nicht fahren. =)

    davon abgesehen: ein paar neue sensoren, ein komplexeres regelsystem, dafür ist der kleine prozessor glaube ich nicht ausgelegt...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2012
    Beiträge
    7
    Hallo,


    Ich selbst beschäftige mich zur zeit mit der überwältigung eines labyrinths. ich habe dazu ein kleines programm geschrieben.
    Der Roboter soll also zunächst immer gerade aus fahren bis er auf eine wand trifft. Sobald dies geschehen ist, soll er ein kleines stück rückwarts fahren und sich um 90 ° in die eine richtung drehen. ist dort keine wand soll er seine fahrt fortsetzten. Ansonsten soll er sich um 180° in die andere Richtung drehen und dann weiterfahren.

    Das Programm selbst klappt auch soweit. Mein Problem liegt aber eigentlich eher daran, dass der asuro auf den geraden strecken nicht gerade fährt. Da ich aber eher anfänger beim programmieren bin tue ich mich sehr schwer.

    Hat von euch jemand vielleicht eine Idee wie man das Programm von mir und das von waste kombinieren kann?


    Mein Programm sieht folgendermaßen aus:


    #include "asuro.h"

    int main(void) {
    Init();
    int i;
    int grad=0;
    while(1) {

    if(PollSwitch()==0) {
    MotorDir(FWD,FWD);
    MotorSpeed(130,117);

    }

    else if(PollSwitch()!=0) {

    if (grad==0){

    MotorDir(BREAK,BREAK);
    MotorDir(RWD,RWD);
    MotorSpeed(100,100);
    for ( i=0 ; i<=220 ; i++)
    { Sleep (5000); }
    MotorDir(RWD,FWD);
    MotorSpeed(110,110);

    for ( i=0 ; i<=150 ; i++ )
    { Sleep ( 5000 ); }
    grad = 1;
    }


    else if (grad==1) {
    MotorDir(BREAK,BREAK);
    MotorDir(RWD,RWD);
    MotorSpeed(100,100);
    for ( i=0 ; i<=220 ; i++)
    { Sleep (5000); }
    MotorDir(FWD,RWD);
    MotorSpeed(110,110);

    for ( i=0 ; i<=340 ; i++ )
    { Sleep ( 5000 ); }
    grad = 0;
    }

    }




    }
    return 0;
    }
    Geändert von Philipp2195 (03.10.2012 um 16:29 Uhr)

Berechtigungen

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

Labornetzteil AliExpress