-         

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

Thema: Programmierung Bodensensor Crash Bobby

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Hamburg
    Beiträge
    165

    Programmierung Bodensensor Crash Bobby

    Anzeige

    Hallo!

    Ich möchte den Bodensensor am crash bobby so programmieren, dass an einer ersten weißen Linie gestoppt wird und danach weitere weiße Linien überfahren werden können.
    Da dies mit einem einfachen If-Befehl nicht möglich ist, Suche ich nach einem anderen Befehl.

    Wer kann mir helfen!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2006
    Alter
    31
    Beiträge
    18
    Hallo!

    Warum sollte das mit einem If-Befehl nicht möglich sein? Kommst du zu einer Linie zählst du eine Zählvariable mit, ist diese 1 (also erste Linie), so soll dein crash bobby stoppen, ansonsten soll er weiterfahren.

    Edit: alternativ könnte man das ganze auch mit einer Boolean-Variable erreichen, welche mit 0 initialisiert wird (dann hält der Bot), und nach der ersten Linie auf 1 gesetzt wird (Bot hält nicht mehr).

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Hamburg
    Beiträge
    165
    Hallo!

    Ich habe schon viel mit Variablen rumprobiert (auch schon vorher). Aber es hat noch nie geklappt
    Kannst du bitte mal auf mein Programm gucken?

    #include "qfixBobbyBoard.h"
    #include "qfixSlaveBoard.h"

    BobbyBoard links;
    SlaveBoard rechts;

    int main()
    {

    int white = links.analog(3);

    links.motor(0, -255);
    rechts.motor(0, 255);

    sleep(1);

    links.motor(0, 0);
    rechts.motor(0, 0);

    int black = links.analog(3);

    int ground = int((white+black)*0.55);

    sleep(10);



    while (true) {

    int blub = 0;

    if (links.analog(3) > ground){

    links.motor(0, -255);
    rechts.motor(0, 255);

    }

    else {

    if (blub = 0){
    links.motor(0, 0);
    rechts.motor(0, 0);
    blub + 1;
    }

    else {
    links.motor(0, -255);
    rechts.motor(0, 255);
    }
    }
    }
    }

    Mein BOT hält an keiner Linie an.
    Er fährt einfach geradeaus mit
    links.motor(0, -255);
    rechts.motor(0, 255);

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2006
    Alter
    31
    Beiträge
    18
    Hallo

    Die Überprüfung darf nicht if (blub = 0), sondern if (blub == 0) lauten (Ersteres ist eine Zuweisung, keine Überprüfung).

    Und bei blub + 1; würde ich persönlich blub=blub+1; verwenden, da ich mir nicht sicher bin ob es mit deiner Methode in die Variable blub geschrieben wird.

    Sollte es das nich gewesen sein schau ich mir den Quellcode nochmal genauer an und eventuell zu einer anderen Tageszeit
    lg Matthias

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Hamburg
    Beiträge
    165
    Danke für die Antwort. Auf dass mit der Zuweisung hätte ich auch selber kommen können Nun hällt er aber an jeder Linie an

    #include "qfixBobbyBoard.h"
    #include "qfixSlaveBoard.h"

    BobbyBoard links;
    SlaveBoard rechts;

    int main()
    {

    int white = links.analog(3);

    links.motor(0, -255);
    rechts.motor(0, 255);

    sleep(1);

    links.motor(0, 0);
    rechts.motor(0, 0);

    int black = links.analog(3);

    int ground = int((white+black)*0.55);

    sleep(10);



    while (true) {

    int blub = 0;

    if (links.analog(3) > ground){

    links.motor(0, -255);
    rechts.motor(0, 255);

    }

    else {

    if (blub == 0){
    links.motor(0, 0);
    rechts.motor(0, 0);
    blub = blub + 1;
    }

    else {
    links.motor(0, -255);
    rechts.motor(0, 255);
    }
    }
    }
    }

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2006
    Alter
    31
    Beiträge
    18
    int blub = 0; aus der schleife raus
    lg Matthias

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    24
    Beiträge
    1.641
    (ich kenn jetzt den "Dialekt" vom Crash Bobby net, is c, oder? ich glaub init blub = 0 dürfte blub wieder auf null gesetzt werden - weshalb an jder Linie ne 0 steht.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2006
    Alter
    31
    Beiträge
    18
    meinte ich eh... nur die erklärung fehlte :P
    lg Matthias

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    24
    Beiträge
    1.641
    ah. naja - jetzt hab ich se ergänzt.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Hamburg
    Beiträge
    165
    Danke für eure Hilfe. Aber egal wo ich int blub = 0; hinschreibe er weigert sich meistens an irgendeiner Linie anzuhalten

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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