The RACING Gabi (Gabelstapler)

Mindstorms im Unterricht. Ideen, Vorstellungen

Moderator: Moderatoren

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 5. Mai 2009 16:44

Hm. Das ist echt schwer. Dürft ihr nicht noch irgend eine Markierung hinmachen damit er weiß wenn er an der Kreuzung ist?

Benutzeravatar
WvBRobotikTeam5
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 16
Registriert: 19. Feb 2009 10:05

Beitragvon WvBRobotikTeam5 » 7. Mai 2009 08:37

Wie ist das gemeint? Könntest du uns vielleicht mal ein Paint-Bild malen und dann hier posten?

:D :D :D :D Vielen Dank

MfG WvBRobotikTeam5

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 8. Mai 2009 12:32

Also du hast doch diese Kreuzung. Könntet ihr nicht 1 cm vor die Kreuzung einen blaun klebebandstreifen machen der dann vom LS erkannt wird?

Benutzeravatar
WvBRobotikTeam5
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 16
Registriert: 19. Feb 2009 10:05

Beitragvon WvBRobotikTeam5 » 14. Mai 2009 08:50

So wir haben jetzt einen Bild von unserem Vorhaben hochgeladen. Hier könnt ihr unseren Ablaufplan für unser Projekt sehn.

http://www.bilder-space.de/show.php?file=14.05IFpaGDx9bnbNI5D.JPG

Ich glaube wir haben jetzt auch solangsam den dreh raus wie es gehen könnte.

Hier unser Quellcode:

Code: Alles auswählen

task main ()
{

SetSensorTouch (IN_1);
SetSensorTouch (IN_2);
SetSensorLight (IN_3);
SetSensorLight (IN_4);

ClearScreen ()
Wait (50);
TextOut (0, LCD_LINE1, "Racing Gaby");
TextOut (0, LCD_LINE2, "V.");
NumOut (15, LCD_LINE2, 1);
Wait (2000);

// Linienfolgen bis Kugel

          while (SENSOR_4 >= 40 && SENSOR_4  <= 50)

          {
          if (SENSOR_3 <= 60)
           {
           Off (OUT_C);
           OnFwd (OUT_A, 80);
           }

          if (SENSOR_3 >= 60 )
           {
           Off (OUT_A);
           OnFwd (OUT_C, 80);
           }
           }

Off (OUT_ABC);

// Gabel heben

PlayTone(200,2000);
Wait(1000);
OnFwd (OUT_B, 55);
until (SENSOR_1 == 1);
Off (OUT_ABC);


// Kugel erkennen & Weg einschlagen

if (SENSOR_4 >= 50)
{
TextOut (0, LCD_LINE3, "rot");
Wait (2000);
OnFwd (OUT_A, 60);
until (SENSOR_3 <= 50);
Off (OUT_ABC);
}

if (SENSOR_4 <= 40)
{
TextOut (0, LCD_LINE3, "blau");
Wait (2000);
OnFwd (OUT_C, 60);
until (SENSOR_3 <= 50);
Off (OUT_ABC);
}

// Linienfolgen bis zum Ende der Linie

while (SENSOR_3 >= 42)

{
          if (SENSOR_3 <= 60)
           {
           Off(OUT_C);
           OnFwd (OUT_A, 80);
           }

          if (SENSOR_3 >= 60 )
           {
           Off (OUT_A);
           OnFwd (OUT_C, 80);
           }
}
Off (OUT_ABC);
// Gabel senken

PlayTone(200,2000);
Wait(1000);
OnRev (OUT_B, 55);
until (SENSOR_2 == 1);
Off (OUT_ABC);
ClearScreen ()
Wait (50);
TextOut (0, LCD_LINE1, "Last abgeliefert");
Wait (2000);

}


Vielleicht könnt ihr uns ja jetzt besser helfen =)

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 14. Mai 2009 15:49

LOL!

WvBRobotikTeam5 hat geschrieben:

Code: Alles auswählen

ClearScreen ()
Wait (50);
TextOut (0, LCD_LINE1, "Racing Gaby");
TextOut (0, LCD_LINE2, "V.");
NumOut (15, LCD_LINE2, 1);
Wait (2000);





Also so wie ihr das auf der Zeichnung abt ist das schlichtweg unmöglich. Ihr müsst irgendwas auf euren Plan machne dass der bott weiß wann er vor der Kreuzung ist.

Benutzeravatar
WvBRobotikTeam5
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 16
Registriert: 19. Feb 2009 10:05

Beitragvon WvBRobotikTeam5 » 19. Mai 2009 08:44

Unsere Idee war es eigentlich, dass der Roboter eine Kugel erkennt bevor er auf die Kreuzung zufährt. Daraufhin soll er entscheiden ob er die rote oder die blaue Kugel auf der Gabel hat.

Damit müssten wir nicht in das Programm schreiben das sich der Lichtwert vor der Kreuzung ändert.

Allerdings kommt da wieder ein Problem auf. Wie ihr in der Galerie erkennen könnt, soll der Lichtsensor, der über der Gabel sitzt, die Kugel erkennen. ABER der Lichtsensor erkennt vorzeitig eine Farbe die dem Kugellichtwert fast ähnelt. Er erkennt den Grauwert und denkt es wäre die Farbe der Kugel.

Wir wissen allerdings nicht, wie wir dem Roboter sagen sollen wie er bis zur Kugel fahren soll.

Wir hoffen das ihr uns helfen könnt. =)

Ansonsten ist das Programm ok?

MFG RobotikTeam5

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 19. Mai 2009 16:11

Hallo^^

Erkennt er diesen wert denn immer? Weil wenn ja könnte man machen dass er den Grauwert beim ersten mal ignoriert.

Benutzeravatar
WvBRobotikTeam5
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 16
Registriert: 19. Feb 2009 10:05

Beitragvon WvBRobotikTeam5 » 26. Mai 2009 09:09

Hi,

diese Idee hatten wir auch schon, aber wir wissen nicht, wie wir das Ganze umsetzen sollen.

Wenn du vielleicht uns ein bisschen unter die Arme greifen könntest und vielleicht mal so ein kleines Programm hier posten würdest. Oder per PN...

Es liegt im Endeffeckt ja nur noch an den Lichtwerten und der Erkennung dieser.

Mfg WvbRobotikTeam5

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 26. Mai 2009 15:20

Hi

Also ich hab jetzt mal gemacht, dass der bot aufeinen lichtwert über 30 reagiert. (Bitte lest die kommentare im Programm)

Code: Alles auswählen

int variable=0; //Dazu unten mehr
task main()
{
SetSensorLight(IN_3);   //Port 3!
while (true)
{
if (Sensor(IN_3)>30) //So: Hier ist also die Abfrage
{
if (vari==1)
{
//hier hat er den Lichtwert bereits einmal ignoriert => er sieht den ball
}
else
{
Vari=1;
}
}
else
{
//Hier Kommt euer Linienverfolgen rein
}



So jetzt Kommt die erklärung: Wenn er den Lichtwert hiat überprüft er ob den Wert schon mal gesehen hat, das macht er indem er schaut welchen wert eine Variable hat.Wenn der wert 0 ist hat er den Wert noch nicht gesehen, aber da er ihn im moment dass erste mal gesehen hat schreibt er die Variable auf 1. wenn er den Wert dann nochmal sieht ist der variablen wert ja 1 und nun weiß er dass er den Wert das 2. mal sieht und weiß dass er jetzt den ball sehen muss.


Zurück zu „Unterricht & AG“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss