Előre programozott mozgás

A tanulók most először kaptak önállóan megoldandó feladatot. Az eddig elkészült kódokat együtt raktuk össze, és a tesztelésnél is sok segítséget kaptak.

cikk.jpgA feladat:

A telefonon egy gomb lenyomására a robotautó menjen előre, majd 3x ismételje meg a balra-jobbra kanyarodó hullámzó mozgást. Először egy rajzos vázlatot kértem a probléma megoldására, majd önállóan kellet a kódolást is megoldaniuk, a meglévő eljárások felhasználásával.

 

A következő eljárásokat lehet használni:

motor(x)  

A hátsó motor vezérlésére használható. Ha az x pozitív, akkor előre megy, ha negatív, akkor hátra megy, illetve 0 esetén áll. A sebesség minden autónál más, mivel nem egyforma a három autó. A telefonról beállítható a sebesség értéke, így lehet próbálkozni különböző értékekkel.

kormány(’x’)

Az első kormány vezérlésére használható eljárás. Csak a következő karaktereket fogadja el paraméterként:

’e’ egyenesbe állítja a kormányt
’b’ balra állítja a kormányt
’j’ jobbra állítja a kormányt

Az RGB ledeket vezérlik a következő eljárások:

fekete()
feher()
piros()
zold()
kek()
lila()

A feladatot hatékonyan egy ciklus alkalmazásával lehetett megoldani.

Tamás, és Vencel programja:

motor(MOTOR_seb);
     delay(1000);
     zold();
     kormany('b');
     delay(ido_y/2);

     for (int i=0; i < 3; i++){  

      kormany('j');
      lila();
      delay(ido_y);

      kormany('b');
      feher();
      delay(ido_y);

   }

kormany('e');
motor(0);
piros();

 

A kód két változót is használ: A MOTOR_seb nevű változót a telefonon egy csúszka segítségével tutják állítani. Az ido_y nevű változót eredetileg egy Y alakú megforduláshoz raktuk fel a telefon kijelzőjére, de itt most a fordulások közötti időre használtuk.

Először az ido_y idő felével balra fordul az autó, majd 3x ismételve megcsinálja a jobbra, balra fordulást ido_y idővel.

 Itt az eredmény:

Az algoritmusok:
cikk-cakk_algoritmus.jpg