Difference between revisions of "Dopredu dozadu.nxc"
From RoboWiki
| Line 1: | Line 1: | ||
| − | + | [[Krúžok Robotiky]] | |
/* dopredu_dozadu.nxc | /* dopredu_dozadu.nxc | ||
Latest revision as of 10:20, 26 March 2008
/* dopredu_dozadu.nxc
Robot ma dva senzory: ultrazvukovy vpredu, na porte 2 a dotykovy vzadu, na porte 1.
Vykonava jednuchu funkciu: ide vpred a 30 cm pred stenou sa vrati spat az dovtedy, kym nenarazi na prekazku, vtedy
sa cyklus opakuje.
Autor: Matej Kurilla, MatejKurilla (no spam) zoznam.sk
*/
task ultrazvuk()
{
int vzdialenost= 30; //cm
SetSensorLowspeed(IN_2);
while (true) //nekonečná sľučka (true = pravda)
{
if (SensorUS(IN_2)<vzdialenost) //podmienka dokým vzdialenosť nebude menšia ako 30 cm.
{
OnRev(OUT_AC,50); //dozadu
Wait(200000); //čakaj 200 sekúnd
}
}
}
task senzor()
{
SetSensorTouch(IN_1); //dotykový sezor
while (true) //nekonečná sľučka (true = pravda)
{
if (SENSOR_1 == 1) //podmienka pokým sa senzor nezopne
{
OnFwd(OUT_AC,50); //doperdu
Wait(200000); //čakaj 200 sekúnd
}
}
}
task main()
{
start senzor; //štartovanie tasku SENZOR
start ultrazvuk; //štartovanie tasku ULTRAZVUK
Off(OUT_AC); //vypni motory
}