- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 52

Thema: "Hindernisfahrt"

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.12.2013
    Beiträge
    25
    Leider löst das mein Hauptproblem nicht. Der Robo dreht sich immer noch nur im Kreis...

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Kannst du mit deiner IDE simulieren? Da könntest du genau sehen wie das Programm funktioniert. Wenn du nicht simulieren kannst könntest du den Else Zweig auskommentieren und sehen was passiert.

    Das Programm sollte eigentlich passen (wenn die Limits passen).

    MfG Hannes

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.12.2013
    Beiträge
    25
    Komischerweise macht der Robo GAR nichts, wenn man den Else-Zweig auskommentiert. Das könnte das Problem sein, warum dem so ist, blick ich leider immer noch nicht. Weißt du vllt. woran es noch liegen könnte?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Das ist ganz einfach. Wenn der else Zweig nicht auskommentiert ist und der Robo dreht sich und wenn der else Zweig auskommentiert ist dreht er sich nicht. Was bedeutet das? Der Else Zweig wird ausgeführt.

    Ich weiß jedoch nicht warum. Das einzige was ich mir vorstellen kann ist das das Programm nicht dem entspricht das du gepostet hast.

    Kannst du das Programm simulieren?

    MfG Hannes

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.12.2013
    Beiträge
    25
    Aber eigentlich sollte der Robo doch geradeaus fahren, denn kein Hindernis ist in Sicht. Zudem ist das komische ja, dass er sich nun wieder nur vor und rückwärts bewegt(vorher war das noch anders). Warum er das tut, versteh ich immer noch nicht. Er dreht sich ja nicht mal, nein, er bewegt sich kosequent vor und zurück. Alles bisschen seltsam.

    Nein kann ich leider nicht...

    EDIT: Wenn ich das Infrarot rausnehme, dann dreht er sich wieder.

    Dieses Programm hab ich derzeit auf dem Robo:

    Code:
    #include "qfixMiniBoard.h"
    #include "qfixLCD.h"
    
    
    const    int SENSOR3 = 3;
            int SENSOR1 = 1;
            int SENSOR2 = 2;
            int SENSOR = 0;
    
    MiniBoard robot;
    LCD lcd;
    #define links		    0
    #define rechts          1
    
    #define hindernis        85
    #define freieSicht       150 // Wenn der Robo etwas nach links fährt, aber dann gegen das Hindernis, ist dieser Wert zu klein
    
    #define True            1
    #define False            0
    
    int main() 
    {
       
    	unsigned char Drehrichtung = links;
    	int abstand = robot.analog(1);
    	int infrarot = robot.analog(3);
      
        while(1)
    {
    unsigned char Hindernis = true; // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
    
    if (Hindernis == false)
    {
    abstand = robot.analog (1);
    robot.motors(250,250);
    if(abstand < 85)
    {
    Hindernis = true;
    }
    }
    else
    {
    if(Drehrichtung == links)
    {
    
    robot.motors (200, -200);
    Drehrichtung = rechts;
    }
    else
    {
    robot.motors(-100,-100);
    msleep(100);
    robot.motors (-200, 200);
    Drehrichtung = links;
    }
    
    infrarot = robot.analog (3);
    
    if ( infrarot < 85)
    {
    Hindernis = false;
    }
    }
    msleep(500);
    }
    }

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Liest du auch meine Posts genau durch? Ich habe im Post 6, 18, 24 geschrieben wo du die Variablen initialisieren musst.

    Beim Programmieren geht es um das verstehen. Du verstehst es aber nicht, du schreibst einfach das hin was ich schreibe und das noch nichteinmal richtig (z.B. den Codeausschnitt in Post 24).

    Das mit den Einrückungen ist auch extrem unübersichtlich. Schumi hat das schon geschrieben. Dann hat es funktioniert und seit Post 21 funktioniert es wieder nicht.

    Versuche die Posts genau durchzulesen und umzusetzen. Wenn es dann nicht funktioniert poste nocheinmal das Programm.

    MfG Hannes

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. Antworten: 2
    Letzter Beitrag: 15.06.2011, 21:18
  3. LPC1114 (Cortex M0): "sei()" und "cli()"
    Von Jaecko im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 1
    Letzter Beitrag: 02.07.2010, 12:25
  4. "Soft-Reset?" und "Finger-Interrupt?"
    Von trapperjohn im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 10.06.2008, 23:02
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 17:16

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress