2024年04月26日   星期五   农历甲辰年(龙)   三月二十
当前位置: 网站首页 - 相关链接 - 机器人赛 >> 正文
2013年第六届湖南省青少年机器人竞赛现场竞技赛试题
更新日期:2013-7-4    作者:网络综合    编辑:admin    点击量:8620

 

第三题参考代码:      (程序名:program3)

#include  <LNDZ.h>

ground gro(23);

int ll,l,m,r,rr,n;

int t=0;

//这只是一个示范,代码可以其他的方法来写。这道题目没有得分上限。

//考验的主要是选手现场应变能力。

void check()

{

    ll=gro.getV(1);//获取眼睛1(灰度传感器)的值

    l=gro.getV(2);//获取眼睛2(灰度传感器)的值

    r=gro.getV(3);//获取眼睛3(灰度传感器)的值

    rr=gro.getV(4);//获取眼睛4(灰度传感器)的值

    m=gro.getV(5);//获取眼睛5(灰度传感器)的值

    n=ll+l+m+r+rr;

    if(ll==0) motor(-30,30);//看见黑线,向左大幅度调整

    else if(l==0) motor(0,30);//看见黑线,向左小幅度调整

    else if(r==0) motor(30,0);//看见黑线,向右小幅度调整

    else if(rr==0) motor(30,-30);//看见黑线,向右大幅度调整

    else if(m==0) motor(30,30);//看见黑线,向前走

}

 

void init()

{}

 

void repeat()

{

  check();//调用自定义函数

  if(n<4)//如果2个以上的眼睛看见黑线

  {

      t++;//记录路口数, 每次t+1

       //t等于以下情况时,向前走100毫秒;

      if(t==1||t==2||t==4||t==5||t==7||t==8||t==10||t==11||t==13||t==14||t==16||t==17||t==19)

      {       

        motor(30,30);

        beep(100);

      }

      if(t==3||t==6||t==9||t==12)//t等于以下情况时,向前走300毫秒,再右转;

      {

        motor(35,35);

        delay(300);

        motor(45,-45);

        delay(450);

      }

      if(t==15)//t等于以下情况时,机器人向右转,延时并鸣叫400毫秒;

      {

        motor(45,-45);

        beep(400);

      }

      if(t==18)//t等于以下情况时,机器人向左转,延时并鸣叫400毫秒;

      {

        motor(-45,45);

        beep(400);

      }

      if(t==20)//t等于以下情况时,结束程序

      {

        motor(0,0);

        while(1);

      }  

  }

  if(n==5) //5个眼睛都没有看见黑线时,向前走50毫秒。

  {

    motor(30,30);

    delay(50);

  }

}

 

注意以上代码的格式,包括“}”的位置。


  上一篇: 2013南京全国中小学机器人程序编辑试题
  下一篇: 机器人世界杯中国胜荷兰 中国足球终圆冠军梦
  [文章评论]       [发表评论]            评论需经管理员审核才能发表
  该文章暂时没有评论!
 
设为首页——
湖南省平江县第一中学张从军版权所有 ICP备案号:湘ICP备13001241号-1