|
为了让问题比较清楚,现在解释如下.
这个课题实际上是要我用NXC写个程序.
是的,我的任务呢,就是写出一个这样的程序.
在没有任何指示的情况下,机器人只会在白线上行走,走出白线的时候会自动转弯.
1.机器人出出发点出发,也就是最下面靠右边那里,开始走.在没有任何指示的情况下,只会在白线上行走,走出白线的时候会自动转弯.也就是说,机器人的光感输入端在感应到黑线的时候,会自动转回到白线上来.
2.走到左边那个地方,将会有个烂瓶子挡路,我的机器人将会在离瓶子15厘米处感应到前方物体,
然后右转直走到中间一边转圈一边唱歌,转啊转.
3.转到我拍巴掌的时候,机器人会停止转圈和唱歌,然后转弯回到白线的轨迹行走.
很简单对吧?就是这简单的课题搞得头都大了,
光感,lowspeed(抱歉,这个控制我真不知道中文怎么说),声感.我以为都写完了
但是和目标简直是惨不忍睹...
1. 首先一个最最主要的问题是,如何把我写好光控,lowspeed和声控的程序联系在一起?
问题是我现在只能单独用光控,单独用lowspeed,单独用声音控制.要是把它们放在一起,
这机器人就跟疯子一样转啊转...所以如何让机器人同时受到这三个信号控制.
2.第二步,怎么让机器人一边转一边唱歌,我可以让它转,但是这个唱歌(就发音可以了)
的程序不知道如何写才能让它在转圈的同时唱歌...
3.第三步,怎么让机器人听到我声音的时候回到白线...试了几次都没成功,结果过都跑到白线外面去了..
附上写上的一些程序,请懂的大人指点.
task main()
{
SetSensorLight (IN_1);
SetSensorLowspeed (IN_2);
SetSensorSound (IN_3);
while (true)
{
Wait(1000);
if (SENSOR_1>30) {OnFwd (OUT_AC,45);}
else until(SENSOR_1>30)
{OnRev (OUT_A,30);
Wait (10);OnFwd (OUT_AC,40);
}
while (true)
{OnFwd(OUT_AC,40);
while (SensorUS (IN_2)>30);
{OnRev(OUT_AC,40);Wait (1000);
RotateMotor(OUT_C, 75, 45);
OnFwd(OUT_AC,40);Wait(2000);
}
}
}
while(SENSOR_3>50)
{OnRev (OUT_A,40); Wait (100);}
OnFwd (OUT_AC,40);
}
}
|
|