Projekt: Ameisenhaufen

Mindstorms im Unterricht. Ideen, Vorstellungen

Moderator: Moderatoren

Knallgasprobe
Neuer Schreiber
Neuer Schreiber
Beiträge: 2
Registriert: 5. Mai 2009 17:03

Projekt: Ameisenhaufen

Beitragvon Knallgasprobe » 6. Mai 2009 07:22

Hallo liebe Community,
wir haben seit knapp einer Woche ein Projekt names "Ameisenhaufen" in der Schule am Laufen. Wir haben 3er Gruppen und müssen mit BrixCC einen Roboter programmieren, der folgende Vorraussetzungen haben muss:

- Der Roboter darf das vorgegebene Feld nicht verlassen -> Lichtsensor
- Wenn eine Wand oder etwas anderes vor dem Roboter ist, soll er möglichst versuchen nicht dagegen zu fahren -> Ultraschallsensor
- Wenn er rückwärts fährt darf er auch gegen nichts fahren -> Berührungssensor

Nun zum Problem:
Wir haben versucht die Sensoren mittels Tasks anzusprechen, jedoch klappt dies nicht so recht. Im Hauptprogramm versuchen wir das mit

Code: Alles auswählen

Precedes(light, ultrasonic, touch);
zu machen, aber es funktioniert nicht. Jedoch zeigt BrixCC auch keine Fehler an.

Woran könnte das liegen?

Benutzeravatar
Naruto1310
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 577
Registriert: 13. Jul 2008 19:54
Kontaktdaten:

Beitragvon Naruto1310 » 6. Mai 2009 13:26

Willkommen im Forum!

Ich würde das ganz anders machen:

Code: Alles auswählen

if(Lichtsensor==OK  && Ultraschallsensor==OK && Berührungssensor==OK)
{
  //Fahren in irgedeine Richtigung
}
else
{
  //Bedingungen einzeln Abfragen und Probleme umgehen
}
Dieser Satz kein Verb.

Benutzeravatar
admin
Administrator
Administrator
Beiträge: 1408
Registriert: 14. Okt 2003 09:59
Wohnort: Salzbergen
Kontaktdaten:

Beitragvon admin » 6. Mai 2009 14:37

auch wenn es nicht bei dem eingentlichen Thema hilft, aber dennoch interessant:

http://antme.net/

AntMe! - Die Ameisensimulation

Programmieren lernen einmal anders: „AntMe!“ ist ein kleines, aber feines Spiel, bei dem die Programmierung von künstlicher Intelligenz (KI) das zentrale Spieleprinzip ist. Eine prima Möglichkeit, die Sprachen C# oder Visual Basic .NET zu lernen, nebenher etwas über die „eingebaute Intelligenz“ von Computerspielen zu erfahren und dabei jede Menge Spaß zu haben.
8 Bit = 1 Byte | 20 Bit = 1 Kiste
meine Homepage
RobotC.de
EV3 & NXT Wissen

Knallgasprobe
Neuer Schreiber
Neuer Schreiber
Beiträge: 2
Registriert: 5. Mai 2009 17:03

Beitragvon Knallgasprobe » 6. Mai 2009 17:43

Hallo, danke schonmal für die Hilfe :)

Aber leider verstehe ich das noch nicht so ganz.

Mein Programm sieht bisher so aus:

Code: Alles auswählen

#define THRESHOLD 40
#define NEAR 15 //cm
task Licht ()
{
  SetSensorLight(IN_3);
  OnFwd(OUT_AB, 75);
  while (true)
  {
   if (Sensor(IN_3) > THRESHOLD)
   {
    //Befehl
   }
  }
}

task Touch ()
{
  SetSensorTouch(IN_1);
  OnFwd(OUT_AB, 75);
  while (true);
  {
   if (SENSOR_1 == 1)
   {
    //Befehl
   }
  }
}

task Ultraschall ()
{
 SetSensorLowspeed(IN_2);
 while(true)
 {
  //Befehl
 }
}

task main ()
{
  SetSensorTouch(IN_1);
  SetSensorLowspeed(IN_2);
  SetSensorLight(IN_3);
 
}


Wie sieht das nun im Hauptprogramm aus?
Grüße

Benutzeravatar
Naruto1310
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 577
Registriert: 13. Jul 2008 19:54
Kontaktdaten:

Beitragvon Naruto1310 » 6. Mai 2009 17:59

Code: Alles auswählen

#define Ultraschall SensorUS(IN_2)<15
#define Licht Sensor(IN_3)<40
#define Touch Sensor(IN_1)==1

task main ()
{
  SetSensorTouch(IN_1);
  SetSensorLowspeed(IN_2);
  SetSensorLight(IN_3);
  while(true)
  {
    if(!Ultraschall &&  !Licht && !Touch)
    {
      //Befehl
    }
    else
    {
      if(!Ultraschall  && !Touch)
      {
        //wenn Lichtsensor
      }
      if(!Ultraschallsensor && !Licht)
      {
        //wenn Berührunssensor
      }
      if(!Touch && !Licht)
      {
        //wenn Ultraschallsensor
      }
    }
  }
}


Diesel Programm funktioniert nur wenn immer nur eine Bedingung erfüllt ist. Sind es mehrere gleichzeitig kommt es zu Fehler.
Dieser Satz kein Verb.


Zurück zu „Unterricht & AG“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss