登录    |    注册
您好,欢迎来到五六电子!        客服电话:   023-58556299    |    023-58722688
登录    |    注册
    |    我的订单    |    购物车
联系我们
客服电话:023-58556299
技术支持:023-58722688
在线客服:
邮     箱:webmaster@56dz.com

基于C51单片机的智能循迹小车设计与实现
作者: admin    文章来源: 五六电子    点击:4403    更新时间:2015-01-25

0 .引言
      智能小车作为轮式机器人的一个重要分支,随着机器人研究的深入受到越来越多人的关注。国内很多高校和研究院所在机器人小车项目上都取得了成绩,也有多家公司在开发和研制教学及比赛用机器人小车。本设计以AT89S52单片机作为系统微控制器,循迹模块采用4组QTI红外传感器对路面黑色轨迹进行检测。单片机通过传感器检测到的不同信号,调用循迹程序,控制小车左右两个伺服舵机的转速和方向,从而改变小车的速度和方向,最终自助完成循迹功能。实践证明,此方案可行并且可靠。

l.系统总体设计
       小车车体结构俯视图如图1所示。循迹小车主要由控制电路板、电机、传感器模块、底盘部件等结构组成。

     

       系统总系统总体框图如图2所示。总体设计方案如下:
       (1)控制电路板以AT89S52为控制核心,外接红外循线传感器和控制电机信号;

       (2)电机采用伺服舵机驱动小车实现基本巡航动作(前进、后退、左转、右转、停止、掉头);

       (3)传感器选择QTI红外传感器探测黑白线,使用4个QTI传感器从左至右依次安装在小车车体下方,传感器信号依次连接至单片机4个引脚,单片机根据传感器检测信号控制小车沿黑色轨迹线行驶;

       (4)小车底盘部件包括了底盘本体、电池盒、左右轮子和尾轮等部件。选用三轮结构车体,车体前方两侧为驱动轮,后方中心装有尾轮,起支撑作用,这样可以保证小车能够灵活循迹。

2.系统硬件设计
   21伺服电机模块
       采用可以按照指令连续控制位置或速度的3600伺服舵机。外观如图3所示。舵机的输入线共有3条,红线是电源线,黑线是地线,自线是控制信号线。舵机的控制信号为周期是20ms的脉宽调制(PWM)信号。舵机内部有1个基准电路,产生周期20ms、宽度1.5ms的基准信号;有1个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。

 

       图4所示是高电平持续1.5ms、低电平持续20ms,不断重复的控制脉冲序列。该脉冲序列发给经过零点标定后的伺服电机,伺服电机不会旋转。如果此时电机旋转,表明电机需要标定。由图4~图6可知,控制电机运动转速的是高电平持续的时间:当高电平持续时间为1.3ms时,电机顺时针全速旋转;当高电平持续时间

1.7m/s时,电机逆时针全速旋转。

 

       选择P1.0专门控制右轮伺服电机,P1.1专门控制左轮伺服电机。电机与单片机的接口连接如图7所示。

 

22循迹传感器模块
       (1)传感器的选择QTI(quick track infrared)传感器是一种红外传感器,它利用光电接收管探测其所面对的表面反射光强度。当QTI传感器面对很暗的表面时,反射光强度很低;面对很亮的表面时,反射光的强度很高。因此不同强度的反射光导致传感器输出不同,即探测到不同颜色的物体输出不同的电平信号。QIT传感器原理图及接线图如图8和图9所示。


       接线图中w是白色线表示VCC引脚;R是红色线表示信号SIG引脚,接单片机I/O引脚;B是黑色线表示GND引脚。QTI通过1个发光二极管与1个光敏三极管耦合得到1个相当于光敏电阻的器件来控制信号灯的电平。当QTI传感器经过黑色表面,反射率较低,光敏三极管未导通,这时由电容与三极管组成的RC电路时间常数较大,充放电时间较长,以至于大部分电压降在三极管两端,R端输出高电平1。当QTI传感器经过亮的表面,反射率较高,光敏三极管导通,这时由电容与三极管组成的RC电路时间常数较小,充放电时间较短,以至于大部分电压降在电容两端,R端输出低电平0。

       (2)小车循迹策略将4组QTI传感器的SIG信号线连接至小车平台的相应I/O口,我们选定的是P2口中的P2.1,P2.2,P2.3,P2.4位。在连接相应的GND(黑色线)、VCC(白色线)、SIG(红色线)信号线时分别使用了与其颜色相同的跳线,这使得在排查错误时更简单、更方便。传感器与单片机接口设计如图10所示,传感器安装位置如图11所示。

 

       图11中循迹传感器全部在1条直线上。其中P2.2与P2.3引脚信号为第一级方向控制传感器信号,P2.1与P2.4引脚信号为第二级方向控制传感器信号。小车前进时,黑线始终保持在第一级传感器正下方。当小车偏离黑线时,第一级传感器就能检测到黑线,从而对小车轨迹予以纠正。第二级方向探测器实际是第一级的后备保护,它的存在是考虑到小车由于惯性过大会依旧偏离轨道,可再次对小车的运动进行纠正,从而提高小车循迹的可靠性。
      (3)电源模块采用2节3.7V可充电式锂电池串联共7.4v电源,经三端稳压器7805后经瓯、q滤波,在电源电路里起到抑制纹波电压、滤除高频干扰的作用。7.4V电压经7805的电压变换后输出稳定的5V直流电压给伺服舵机、单片机芯片以及传感器供电。电源系统的电路图如图12所示。

   

 3.系统软件设计
  31机器人基本动作实现
       小车向前走时,从小车的左边看,它的轮子是逆时针旋转的;从右边看另一个轮子则是顺时针旋转的。同理,小车其他动作时左右轮子的运动方向也可以分析出来。结合图4~图6电机控制时序图,可分析出小车运行方向和速度控制情况。如表1所示。

 

       在表1中,参数值越接近1500us,小车速度越低。因此,可通过改变参数大小实现小车的加减速控制。发给单片机控制引脚的高电平持续时间决定了伺服电机旋转的速度和方向。由于小车由两个轮子驱动,实际上两个轮子的不同速度组合控制着机器人的运动速度和方向,因此在C语言程序设计中,可以直接用两个车轮的速
度作为形式参数,定义left为左轮参数,定义right为右轮参数,这样可以将小车所有运动用1个函数(move)来实现。for循环的参数counter控制了发送给电机的脉冲数量。由于每个脉冲的时间是相同的,因而for循环的参数也控制了伺服电机运行的时间。函数体如下:

 void move(int left,int right,int counter)
 {
      int i;
       for(i_1;i<=counter;i++)
        {
           p1-1=l;
           delay—nus(1eft);
           pl一1=0;
           pl-o=l;
          delay—nu8(right);
          pl_o=0;
          delay—nms(20);
         }
 }。
  32循迹功能的实现

      13所示是4组QTI传感器自主寻迹的流程图,该流程图与表2所给出的循迹策略表相同。可以在表2给出的测试QTI传感器程序的基础上,调用move函数完成基于QTI传感器的自主寻迹程序。小车循迹路线和运动情况可在此程序思路基础上进行修改即可扩展小车不同循迹功能,如沿黑线走N个脉冲、走到白线区域停止、由一条黑线跨线至另一条黑线等功能。

 

4.结束语
       实际测试证明,该系统控制下的小车具有很好的识别能力,且运行灵活、稳定、可靠。

       (1)传感器高度对机器人有影响:当传感器装得过高时,可能会导致无法巡线;过低时,会导致机器人太过敏感,抖动厉害。经过多次测试,确定传感器离地面最佳距离为5mm。

       (2)小车全速行驶突然停下时,小车会有翻车或向前冲的可能,导致后续动作出现偏差。这个问题的解决有两个方法:①加大尾轮质量;②停止程序后执行1个停顿脉冲和200ms的延时。这样就增加了机器人的稳定性,使上述问题出现的概率几乎为零。
       (3)用来做轨迹引导小车的线必须足够黑,以便能吸收传感器发出的红外光。建议使用黑色电工胶布。

 

 

上一篇:如何上好电子技能训练课
下一篇:精选电子制作项目,全面提高学生的综合能力
热点推荐
  • 制作LED摇字光棒

    [2015-07-30]

  • 三极管知识简介

    [2015-03-25]

  • 开关知识简介

    [2015-03-23]

  • 电位器知识简介

    [2015-03-21]

  • 在线客服
    在线咨询
    023-58556299
    技术支持
    023-58722688
    返回顶部"