{
drive( -80 ,0);
wait( 0.200000 );
stop();
drive( 0 , 80);
wait( 0.100000 );
stop();
}
}
}
return;
}
void SubRoutine_2( ) /*趋光*/
{
photo_1 =photo(1);
photo_2 =photo(2);
if(photo_1 < photo_2)
{
motor( 1 , 10 );
motor( 2 , 80 );
}
else
{
if(photo_2 < photo_1)
{
motor( 1 , 80 );
motor( 2 , 10 );
}
else
{
motor( 1 , 80 );
motor( 2 , 80 );
}
}
return; /*趋光的基本方法,靠两个传感器返回值的差判断机器人相对蜡烛的 方向,同样对两个传感器的位置要求较高*/
}
void SubRoutine_4( ) /*灭火*/
{
stop();
wait( 0.500000 );
motor( 1 , -100 );
motor( 2 , 100 );
motor( 3 , 100 );
wait( 5.000000 );
stop();
return; /*灭火后应有检测,避免蜡烛火焰未熄灭机器人便开始回家*/
}
void SubRoutine_5( ) /*右手走*/
{
ir_1 =ir_detector();
if( ir_1 == 4){
drive( 0 , -80);
wait( 0.100000 );
stop();
}
else
{
ir_1 =ir_detector();
if( ir_1 == 2)
{
drive( 0 , -80);
wait( 0.100000 );
stop();
}
else
{
motor( 1 , 100 );
motor( 2 , 20 );
}
}
bmp_1 = bumper();
if( bmp_1 != 0)
{
drive( -80 ,0);
wait( 0.200000 );
stop();
drive( 0 , -80);
wait( 0.100000 );
stop();
}
return;
} /*右手走用于回家,对避免撞墙的要求不高,可适当简化程序*/
/*这是一个最基本的灭火程序,但基本上实现了灭火比赛的一般要求,回家、避障、灭火等均可完成,一些细节完成的也很好。但如果要取得好成绩,这样的程序显然是不够的,而且稳定性不够好,一个环节出现失误会带来连锁反应,影响后面任务的完成,应加入一定的失误修补代码。同时如果要在比赛中取得好成绩,硬件也十分关键,不一定要非常好的配置,但位置、连接等因素也极为关键,需要多多调试,积累丰富的经验才可以。*/

【