创客渔机器人编程 :Lesson Four

网友投稿 2019-04-30 20:21

Lesson Four 

 机器人循迹

知识点:

1、灰度传感器工作原理;

2、数字输入函数使用;

3、选择结构程序设计;

4、程序流程图;

循迹程序设计视频教程

1、真值表

https://cdn.china-scratch.com/timg/190502/2021162429-0.jpg

2、算法流程图

https://cdn.china-scratch.com/timg/190502/20211A4A-1.jpg

3、程序源代码(仅供参考)

  /* Arduino管脚使用

   * 电机

   * 5、13控制左轮电机

   * 11、12控制右轮电机

   * 5、11做模拟输出使用

   */

   /*

    * 循迹传感器

    * 2 左传感器输入

    * 3 右传感器输入

    */

void setup() 

{

  pinMode(5,OUTPUT); 

  pinMode(13,OUTPUT);

  pinMode(11,OUTPUT);

  pinMode(12,OUTPUT);

  pinMode(2,INPUT);//左传感器

  pinMode(3,INPUT);//右传感器

}

void loop() 

{

  //变量L存储左传感器返回值

  int L = digitalRead(2);

  //变量R存储右传感器返回值

  int R = digitalRead(3);

  //根据左右传感器返回值做判断

  if(L==1 && R==1)//正常

  {

     qianJin();//前进

  }

  else if(L==1 && R==0)//偏左

  {

     youZhuan();//右转调整

  }

  else if(L==0 && R==1)//偏右

  {

    zuoZhuan();//左转调整

  }

  else if(L==0 && R==0)//同时压线

  {

    tingZhi();//停止

  }  

}

/*

 * 前进

 */

void  qianJin()

{

  analogWrite(5,200);

  digitalWrite(13,LOW);

  analogWrite(11,200);

  digitalWrite(12,LOW);

}

/*

 * 后退

 */

void  houTui()

{

  analogWrite(5,55);

  digitalWrite(13,HIGH);

  analogWrite(11,55);

  digitalWrite(12,HIGH);

}

/*

 * 左转

 * 左轮不转右轮转,

* 实现小车左转;

 */

 void  zuoZhuan()

{

  analogWrite(5,0);

  digitalWrite(13,LOW);

  analogWrite(11,200);

  digitalWrite(12,LOW);

}

/*

 * 右转

 * 右轮不转左轮转,

* 实现小车右转;

 */

 void  youZhuan()

{

  analogWrite(5,200);

  digitalWrite(13,LOW);

  analogWrite(11,0);

  digitalWrite(12,LOW);

}

/*

 * 停止

 */

 void  tingZhi()

{

  analogWrite(5,0);

  digitalWrite(13,LOW);

  analogWrite(11,0);

  digitalWrite(12,LOW);

}

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com