...
Tässä
...
esimerkissä
...
ajellaan
...
teipin
...
päästä
...
päähän
...
ja
...
käännytään
...
takaisin
...
teipoin
...
päässä.
...
Ohjelman
...
toiminnot,
...
ajo
...
suoraan
...
ja
...
kääntyminen
...
esitetään
...
askelilla.
...
Tällä
...
tavalla
...
suurenkin
...
sekvenssin
...
toiminnot
...
on
...
helppo
...
jakaa
...
osiin.
Code Block |
---|
} #pragma config(Sensor, S4, RGB, sensorCOLORFULL) #pragma config(Sensor, S2, kosketus1, sensorTouch) //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// //esitellaan funktio, jolla kysellaan halusta ajella robotilla int FlipFlopToiminto();//tämä funktio on esitelty wikissä muualla //paaohjelma task main() { int suunnanToistojenMaaraValkoisella=0; int suunnanToistojenMaaraMustalla=0; int askel=1;//1 = aja suoraan, 2 = kaanny teipin paassa while(1) { wait1Msec(10);//odotellaan 10 millisekuntia if(FlipFlopToiminto())//testataan koko ajan kayttajan halua ajaa robottia { if(askel==1) { if(SensorValue(RGB)== 6) //WHITECOLOR) valkoinen havaittu, yritetaan takaisin mustalle { suunnanToistojenMaaraMustalla=0;//nollataan toisen suunnan laskuri motor[motorC] = 0; motor[motorB] = 80; suunnanToistojenMaaraValkoisella++;//lisataan taman suunnan laskuriin yksi } if(SensorValue(RGB) == 1) //BLACKCOLOR) musta havaittu, yritetaan takaisin valkoiselle { suunnanToistojenMaaraValkoisella=0; motor[motorC] = 80; motor[motorB] = 0; suunnanToistojenMaaraMustalla++; } //testataan: paattyiko teippi eli jos maaraaikaan mennessa ei loytynyt teipin paa niin vaihdetaan askeleelle kaksi if(suunnanToistojenMaaraValkoisella>50||suunnanToistojenMaaraMustalla>50) { suunnanToistojenMaaraMustalla=0; suunnanToistojenMaaraValkoisella=0; askel=2; } } if(askel==2) { //kaannytaan paikoillaan ympari motor[motorC] = -40; motor[motorB] = 40;//moottori peruuttaa if(SensorValue(RGB) == 1) //BLACKCOLOR) { askel=1;//kun teippi loytyi vaihdetaan takaisin askeleelle yksi } } } else//pysaytetaan robotti, jos painetaan toisen kerran kosketusanturia { motor[motorC] = 0; motor[motorB] = 0; } } } {code} |