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.
A 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: