摘要:本文根据对目标金属物的非接触式探测定位和移动的具体要求,以STC89C52RC单片机为控制核心,结合驱动模块、三个电感模块(LDC1000电感数字传感器)、测速模块和显示模块,设计并实现了一种自动循迹小车。该小车能在规定的具有0.6-0.9mm细铁丝标识的平面跑道上自动循迹前进,且在行进过程中能够检测到硬币并报警,同时小车的运行时间、距离等信息可在显示屏上实时显示。经过多次测试表明,该循迹小车达到了预期的效果,自动循迹稳定,硬币识别准确,实时显示距离及时间效果好,抗干扰能力强。
1 方案论证
自动循迹小车包括STC89C52RC单片机主控器、驱动模块、电感模块、测速模块和显示模块等模块。该小车采用2个直流电机分别控制2个车轮,通过LDC1000传感器[1]判断铁丝的位置来引导小车行驶的方向。具体方案是:给小车提供5V的电压,传感器LDC1000对铁丝电感值(L)进行测量,再由单片机根据测量值判断小车的行进方向;在行进途中,传感器同时可以测得硬币的L值,并根据测量值判断经过硬币否,一旦遇到硬币蜂鸣器就会发出警报声。小车运动时,测速模块将数据传送给单片机,单片机按照算法计算出数据值并传到显示屏上实时显示小车运动的时间和距离。系统整体结构如图1所示:
图1 系统整体结构图
本设计制作的自动循迹智能小车,要求能够在规定的直径为 0.6-0.9mm 的细铁丝跑道上自动循迹前进,同时显示小车行驶的距离和时间,并对跑道上任意放置的硬币进行检测并发出提示音。跑道示意图如图2所示,图中所有圆弧的半径均为20cm±2cm。根据预设的目标要求,对系统各模块方案进行了详细的比较论证,具体如下:
图2 跑道示意图
1.1控制器模块选择方案及论证
方案一:采用普通51直插单片机。单片机只有P0、P1、P2、P3四个口以及16个引脚,2个定时器,内部RAM为128字节,对于自动循迹需要较多的功能无法满足,因此51单片机不合适。
方案二:用STC89C52RC单片机[2]做控制核心。52单片机同51单片机芯片内核(CPU)都是一样的,且有3个定时器,内部RAM为256字节,因此可以存储更多的程序。
方案三:采用STM32单片机。STM32单片机高性能、低成本、低功耗,程序都是模块化的,接口相对简单些,自身功能多,工作速度也快。而51的自身功能少,需要外围元件多。
综合以上方案,我们选择比较普通且更为熟悉的方案二:使用STC89C52RC单片机为我们整个系统的控制核心。为了保证系统的稳定性,本设计选择两片STC89C52RC单片机,一片STC89C52RC单片机实现两个LDC1000的数据读取、对电机的控制、显示时间、显示距离;另一块STC89C52RC单片机实现PWM控制电机速度、一个LDC1000的数据读取。
1.2 电机选择方案论证
方案一:选择步进电机。步进电机与其他设备进行接口方便, 它的精度较好, 在执行过程中没有累计误差, 且步进电机的步数是通过脉冲数量来控制的,因此它定位较精准,且转速较低时又不适于小车对速度的一定要求。
方案二:选择普通直流电机。其定位虽不及步进电机精准,但速度很容易控制,且反应快,很容易实现PWM调速。很方便的就可以实现通过单片机对直流减速电机前进、后退、停止、调速等操作。
因此,综合考虑选择方案二,但本次设计要求对小车行驶的时间、距离进行显示,如果选用普通直流电机,需结合测速模块实现时间和距离的测量。电机具体型号为双轴TT 1:120减速电机,驱动采用 L293D驱动芯片[3]实现。
1.3 传感器循迹模块方案论证
本次设计需要小车对铁丝轨道进行探测并循迹,同时还需要检测硬币,可以采用 TI 公司 LDC1314 或LDC1000 任意一款传感器。
方案一:采用LDC1000传感器[4]。据查资料了解到,LDC1000 是世界上第一个电感数字转换器,从而在一个低功耗、小封装尺寸解决方案内提供电感感测的优势。 此产品采用一个小外形尺寸无引线(SON)-16 封装,并且提供了几种运行模式。一个串行外设接口(SPI) 简化了到微控制器(MCU)的连接。其功耗低、灵敏度高、结构简单、成本低,且能满足系统检测要求。基于设计成本及设计者自身知识特点的考虑,最终设计选定了 LDC1000 传感器。
方案二:采用LDC1314传感器。该传感器是4-通道12位的电感-数字转换器(LDC),同LDC1000一样,以最低的成本与最小的功耗来获得电感感测的性能和可靠性。
但是基于设计成本及设计者自身知识特点的考虑,最终设计中选定方案一。
1.4 速度采集模块选择
为实时显示小车运行时间、距离,我们采用SM100K测速传感器,配合黑色码盘可以测量电机转速(所测电机的规格,和码盘有关),测速编码器检测电机转速,通过将编码器检测到的数据送至单片机进行具体计算得到距离值并加以显示。现在提供的码盘D型孔内径为4mm且为20栅格码盘。
1.5 显示模块方案论证
方案一:采用LED数码管显示,LED显示具有硬件电路结构简单、调试方便、软件实现相对容易等优点,但是计划要显示小车运行时间,LED数码管无法显示如此丰富的内容,因此我们放弃此方案。
方案二:采用LCD1602液晶显示。LCD液晶因具有功耗低、显示内容丰富、清晰,显示信息量大,显示速度较快,界面友好等特点而得到了广泛的应用,因此我们选择此方案。
2 循迹理论分析与计算
2.1 LDC1000传感器工作原理以及 RpMIN 和 RpMAX 值设定
2.1.1 LDC1000传感器工作原理
电感数字传感器 LDC1000 利用电磁感应原理 , 工作原理图如下图 3 所示。在传感器自身线圈中加一个交变电流 I1,则会有交变电磁场H1在其线圈周围产生,当金属物体进入此电磁场中,金属物体表面就会产生涡流H 2( 感应电流 I2 ),H2、I2的方向与 H1、I1向相反,该涡流的函数与金属物体种类、距离、大小相关。可把LDC1000 的线圈看作为初级线圈,涡流效应为次级线圈,