实验室

我又一次走进实验室,这里还是像往常一样乱,就像我第一次看到一样。我第一次看到实验室是在高一,那时的实验室人很多,正在不知在研究什么,有人做在地上,注视着机器人的一举一动,有人在高声争论着什么。这氛围一下子吸引了我。我很想进实验室,我当时这么想。我永远也不会忘记被录取时我有多兴奋。对着电脑傻笑了半天。

走进实验室,有一张桌子,我就是在这里锯板、打孔、焊接传感器、拼装、编程……许多时间,放学一直留到很晚,一边做机器人,一边说笑,一起度过了很多快乐的时光,因为我们为了同一个梦想而努力。所以,虽然幸苦,但是享受。

桌子上洒着数不胜数的螺丝和小零件。还有几块早已不用的板,是的!这就是第一次比赛用的板,第一次比赛时我和一个学长搭档去的。那块伤痕累累板已不知被我打磨了多少时间,有一次在锯板的时候不小心锯掉了一个角,我心痛了很多时候。在市赛中,我的机器人是唯一一台只有两只轮子的,差点就败北了,最后还是以第一名的成绩出了线。为了加大动力,我不得不锯它,以便装四个轮子。

四个轮子的动力还是不能把我们推出省赛。我们无助,茫然的走出了赛场,他请我喝了一杯奶茶。休息时,我说下次再努力,可是我的搭档却说他没有机会了。我心头一震,是的,他再也没有机会了,他高二下了,没有精力在来对付机器人了。以后再也不能像以前一样一起搭档、一起嬉闹、一起工作、一起讨论机器人……

之后他真的不来了,实验室还是那么乱,只是高二没有在来过。

现在在实验室的是几个新来的高一。我知道,我已经高二下了,我也要退役了,就像上届高二一样,以后我再也不是机器人实验室的一员了。我记念那块和我一起战斗过的主板,记念那把怎么关都关不住的胶枪,记念实验室中那粒最好的传感器,记念所有实验室的成员。

虽然我早已知要离开,但悲伤还是不断,因为这里有我两年的点点滴滴,因为这里有我汗水和努力,因为这里有太多的回忆,

因为,我爱着实验室爱得深沉。

2008年5月31日晚 记

这是我第一次比赛的程序:

#include "HardwareInfo.c"
#include <SetTenthS.h>
#include <GetPhoto.h>
#include <SetMotor.h>
#include <GetCompassB.h>
#include <GetCompoI.h>
#include <GetTouch.h>
int main(void)
{//括号------------1
  int f,d,k,tz,ty,z;
  while(1)
  {//括号------------2
    k=js();
    f=GetCompoI( _COMPOUNDEYE_f_,8);//复眼读到球的编号
    d=GetCompoI( _COMPOUNDEYE_f_ ,9);//最大值
    tz=GetTouch( _TOUCH_左边_)+GetTouch( _TOUCH_左边_);//左边的碰撞
    ty=GetTouch( _TOUCH_右边_)+GetTouch( _TOUCH_右边_);//左边的碰撞
    z=GetCompassB( _COMPASS_z_);//指南针
    if(tz+ty!=0&&(z>=270||z<=90))//机器人对着要攻打的门 且撞了墙
    {//----------3
      if(tz!=0)//左边碰壁了
      {
        SetMotor( _MOTOR_l_,0,100);//左马达
        SetMotor( _MOTOR_r_,2,100);//右马达      向右转
        continue; //转下一次循环
      }
      if(ty!=0)//右边碰壁了
      {
        SetMotor( _MOTOR_l_,2,100);//左马达
        SetMotor( _MOTOR_r_,0,100);//右马达      向左转
        continue; //转下一次循环
      }
    }//----------3
    else
    {//括号------------5
      if(d<30)//当读不到球的时候
      {
        SetMotor( _MOTOR_l_,0 ,100);
        SetMotor( _MOTOR_r_,2 ,100);//向 右 转,速度100 也就是打转 
      }
      if(d>=30)//读到球了
      {//括号----------4
        if(f==k)//球在前面
        {
          SetMotor( _MOTOR_l_,0 ,100);
          SetMotor( _MOTOR_r_,0 ,100);//向前冲
        }
        else
        {//括号----------6
          if(f==k+1)//球在右边一点点,向 右 微转
          {
            SetMotor( _MOTOR_l_,怎样转,这里是微调数据);//左马达
            SetMotor( _MOTOR_r_,怎样转,这里是微调数据);//右马达
          }
          if(f==k-1)//球在左边一点点,向 右 微转
          {
            SetMotor( _MOTOR_l_,怎样转,这里是微调数据);//左马达
            SetMotor( _MOTOR_r_,怎样转,这里是微调数据);//右马达
          }
          if(f>k+1)//球在右边
          {
            SetMotor( _MOTOR_l_,怎样转,这里是数据);//左马达
            SetMotor( _MOTOR_r_,怎样转,这里是数据);//右马达
          }
          if(f<k-1)//球在左边
          {
            SetMotor( _MOTOR_l_,怎样转,这里是数据);//左马达
            SetMotor( _MOTOR_r_,怎样转,这里是数据);//右马达
          }

        }//括号----------6

      }//括号-----------4

    }//括号------------5

  }//括号------------2

}//括号--------------1

//----主程序到此------

int js()//这是一个计算的程序
{
  int f,z,a,p;
  f=GetCompoI( _COMPOUNDEYE_f_,8);//复眼读到球的编号
  z=GetCompassB( _COMPASS_z_);//指南针
  a=GetCompoI( _COMPOUNDEYE_f_ ,9);//最大值
  p=jisuan();//获取距离标准
  if((z>=270||z<=90)||a<30)//面向敌人的球门 或 没读到球的时候
  {
    return 4;//用复眼4号去判断
  }
  if(z<270&&z>90)//面对自己的球门时
  {//括号------------7
    if(a<p)//如果距离大于 距离标准 时,冲
    {
      return 4;//用复眼4号去判断
    }
    else
    {//括号-----------8
      if(f>4)//球在机器人的右边
      {
        return 6;//用复眼6号去判断
      }
      if(f<4)//球在机器人的左边
      {
        return 2;//用复眼2号去判断
      }
      if(f==4)//球在机器人的前面 就判断在左半边 还是在右半边
      {//括号----------9
        if(z>=180)//在右
        {
          return 6;//用复眼6号去判断
        }
        if(z<180)
        {
          return 2;//用复眼2号去判断
        }
      }//括号----------9

    }//括号-----------8

  }//括号------------7
}

int jisuan()
{
  int p;
  if(GetCompoI( _COMPOUNDEYE_f_ ,9)=<200)
  {
    return 210;
    p=1;
  }
  if(GetCompoI( _COMPOUNDEYE_f_ ,9)>=210)
  {
    return 200;
    p=2;
  }
  if(GetCompoI( _COMPOUNDEYE_f_ ,9)>200&&GetCompoI( _COMPOUNDEYE_f_ ,9)<210)
  {
    if(p==2)
    {
      return 200;
    }
    if(p==1)
    {
      return 210;
    }
  }
}

这是我在实验室的最后一个程序以此纪念在实验室的日子(无技术含量,无学术价值,无版权,仅作留念)

#include "HardwareInfo.c"
#include <GetTouch.h>
#include <GetUltrasound.h>
#include <GetCompoI.h>
#include <GetCompassB.h>
#include <SetMotor.h>
#include <SetLCD3Char.h>
#include <SetLCDBack.h>
#include <GetSysTime.h>
#include <SetSysTime.h>
#include <SetTenthS.h>
int main(void)
{
  int f,d,z,j,dp,dm,p,l,r,sl,sr,k,x,a,cz,cy,t;
  while(1)
  {
    if(a-z>4||z-a>=4)
    {
      a=z;
      SetSysTime(0);
    }
    else
    {
      if(GetSysTime()>90)
      {
        l=(z>=0&&z<=180)?2:0;
        r=(l==2)?0:2;
        SetMotor( _MOTOR_l_,l,100);
        SetMotor( _MOTOR_r_,r,100);
        SetLCDBack(0);
        SetTenthS(5);
        SetSysTime(0);
      }
    }
    f=GetCompoI( _COMPOUNDEYE_f_,8);//复眼读到球的编号
    d=GetCompoI( _COMPOUNDEYE_f_ ,9);//最大值
    z=GetCompassB( _COMPASS_z_);//指南针
    cz=GetUltrasound( _ULTRASOUND_z_);
    cy=GetUltrasound( _ULTRASOUND_y_);
    SetLCDBack(1);
    SetLCD3Char(1,t);
    dp=(f<7)?GetCompoI( _COMPOUNDEYE_f_,(f+1)):0;
    dm=(f>1)?GetCompoI( _COMPOUNDEYE_f_,(f-1)):0;
    j=(d>10)?(((dm>dp)?(f+f-1):((dp>dm)?(f+f):0))-1):0;
    p=(j>7)?(13-j):((j<6)?j:0);
    k=((z<=90||z>=270)||d<x)?4:((f>4)?6:((f<4)?2:((z>180)?6:2)));//((z<=90||z>=270)||d<x)?4:((k==4)?((cz>cy)?6:2):k);
    x=(k==4)?130:50;
    //l=(k==4)?((t==0)?((j<6)?2:0):((cz>cy&&z>0&&z<90)?1:0)):((f>=k)?0:1);
    //r=(k==4)?((t==0)?((j>7)?2:0):((cz<cy&&z>270&&z<360)?1:0)):((f<=k)?0:1);
    l=(k==4)?((j<6)?2:0):((f>=k)?0:1);
    r=(k==4)?((j>7)?2:0):((f<=k)?0:1);
    sl=(k==4)?((p>0)?(110-p*10):((j<6)?95:100)):100;
    sr=(k==4)?((p>0)?(110-p*10):((j>7)?95:100)):100;
    SetMotor( _MOTOR_l_,l,sl);
    SetMotor( _MOTOR_r_,r,sr);
  }
}