基于LDC1000铁丝轨道检测的循迹小车

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

I基于LDC1000铁丝轨道检测的循迹小车严天华赵飞艳王顺吴小康重庆工程学院,重庆,400056摘要:本文是以LDC1000电感/数字转换器为核心,设计并制作了一个可自动根据铁丝形状循迹小车。系统的主要功能模块包括:主控模块、金属信号探测模块、速度检测模块,电机驱动模块及电源模块。系统主控芯片STC89C52根据检测到的金属距离信号,判断小车是否偏离轨道,从而做出方向调整,使小车能够在规定的平面跑道自动按一定方向自动循迹。关键词:STC89C52;LDC1000;循迹TrackingcartrackdetectionbasedonLDC1000wireYanTianhua,ZhaoFeiyan,WangShun,WuXiaokangChongqingInstituteOfEngineering,ChongQing,400056ABSTRACT:ThispaperisbasedontheLDC1000inductor/digitalconverterasthecore,thedesignandfabricationofawireshapeautomaticallyaccordingtothetrackingcar.Themainfunctionmodulesofthesysteminclude:maincontrolmodule,metalsignaldetectionmodule,speeddetectionmodule,motordrivemoduleandpowermodule.Systemaccordingtothedistancefromthemetalsignaldetected,judgewhetherthecaroffthetrack,soastomaketheadjustmentdirection,allowingthecartotheplanedefinedbytherunwayautomaticallyinacertaindirectionautomatictracking.Keywords:STC89C52;LDC1000;tracking21.引言循轨广泛应用很于工业自动化及系统,而循迹的方式有很多种,每种都有其缺点。机械链条式轨道存在磨损占用地方;光电慢反射检测式需要轨道为黑色、受环境光影响比较大;摄像头模式识别式需要很好的识别算法,受环境光影响也比较大。基于此,本文采用LDC1000对铁丝进行检测判断,实现自动循轨应用。2.技术原理自动循迹小车的工作过程是主要利用LDC1000的检测原理,即大学物理中学到的电磁感应原理。在PCB线圈或者自制线圈中加上交变电流,线圈周围就会产生交变磁场。这时,如果有金属物体进入磁场,将会在金属物体表面产生涡流。涡流电流跟线圈电流方向相反,产生的电磁场也与线圈产生的相反。所以,涡流是金属物体距离,大小,成分的函数。涡流产生的反向磁场与线圈耦合在一起,就像是有另一个次级线圈一样,这样就形成一个变压器。由变压器的互感作用,在初级线圈的这一侧就可以检测到次级线圈的参数。据以上所述,当LDC1000电感/数字转换器位于金属材质的附近时,便会使传感器的值发生变化,对这一变化进行判断便可晓该金属物体是铁丝轨道还是硬币。并将这些信息输入到STC89C52单片机控制系统,单片机进行分析处理,通过控制算法对驱动系统发出控制命令,来让驱动小车左、右轮的电机使小车沿着指定的轨迹前进。(图1循迹小车组成框图)(图1循迹小车组成框图)3.LDC1000芯片及驱动设计3.1LDC1000简介LDC1000是美国德州仪器公司TI推出的一块全新的电感数字转换器(LDC),具有低功耗,小封装,低成本的优良性质。它的SPI界面可以很方便的连接MCU。LDC1000只需要外接一个PCB线圈或者自制线圈就可以实现非接触式电感检测。LDC1000的电感检测并不是指像Q表那样测试线圈的电感量,而是可以测试外部金属物体和LDC1000相连的测试线圈的空间位置关系。Mcu(Stc89c52)LDC1000LCD液晶显示通讯接口电机驱动电路直流电机光电测速铁丝轨道蓝牙模块3利用LDC1000这个特性配以外部设计的金属物体即可很方便实现,水平或垂直距离检测;角度检测;位移监测;运动检测;振动检测;金属成分检测;可以广泛应用在汽车、消费电子、计算机、工业、通信和医疗领域。(图2垂直距离检测)(图2垂直距离检测)3.2stc89c52与LDC1000接口(图3mcu与LDC1000接口)使用stc89c52的io口模拟spi接口(图3mcu与LDC1000接口),和从机(LDC1000)进行通讯的时候,应该遵循以下几个步骤(图4LDC1000SPI读写时序):片选信号置零;stc89c52通过模拟SPI线向LDC1000写入访问寄存器地址,其中最高位0表示写入,1表示读出,其余7位为寄存器的地址;占据八个时钟周期,这段时间内SDO线处于高阻状态;如果命令在读写状态时,传输的数据最高位为1,SDO在线发送来自其他地址寄存器的8位字节;如果命令在读写状态时,SDI线接收来自stc89c52的8位字节数据写入相应的寄存器中;片选信号置高,释放对该从机的控制。4(图4LDC1000SPI读写时序)1.3stc89c52驱动程序设计根据LDC1000的spi接口时序设计如下驱动程序。//读1B数据unsignedcharLdc_SPIread(void);//写1B数据voidLdc_SPIwrite(unsignedcharch);//写寄存器voidLDC1000_WriteReg(unsignedcharaddr,unsignedchardat);//读寄存器unsignedcharLDC1000_ReadReg(unsignedcharaddr);//芯片初始化voidLDC1000_Init(void);//读取距离参数unsignedintReadValue(void);4.控制逻辑小车车头布置感应天线,当小车沿铁丝向前行车时,由于特殊原因(如路面不平,小车的车轮不对称等原因)导致车身偏离轨道,出现A,B,C三种情况。(图5小车天线在轨道上位置)。5(图5小车天线在轨道上位置)A,B,C三种情况的天线下,利用函数ReadValue()得到的数值为Fa,Fb,Fc.三者间的关系为FaFb,FcFb.为此,当检测到数值为Fb时小车直行,否则小车转弯。左转与右转根据转弯的幅度做调整。程序流程如下:(图6小车控制主流程)(图6小车控制主流程)5.实验环境及小车制作本项目团队制作了系统轨道(图7铁丝轨道),实验小车(图8循迹小车),并利用串口检测系统监测的铁丝数据。铁丝的直径0.9mm以上,循轨小车包括控制主板、显示、光电测速、电机、蓝牙收发模块等。根据车身是否偏离轨道监测到的采样数据(图9数据监测)。6(图7铁丝轨道)(图8循迹小车)(图9数据监测)6.小结利用PCB线圈或自制线圈可以实现非接触式电感线圈检测,通过分析待测金属物体对电感线圈磁场的影响可以很方便地实现金属检测。经实测,通过合理设置模块寄存器值,可以有效检测3cm距离的金属。外界光照条件对本系统没有太大的影响,而且还必须能够在一定的距离内快速检测到金属并能够辨别金属类型。本系统的实验可以应用于送餐机器人,轨道的布局实施不影响餐厅的原来的装修。具有一定的实用性。参考文献[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2012[2]杨学昭,王东云.单片机原理、接口技术及应用.西安:西安电子科技大学出版社,2009.7[3]童诗白.模拟电子技术基础(第4版).北京:高等教育出版社,2000.[4]高歌著.AltiumDesigner电子设计应用教程[M].清华大学出版社.2011.6.[5]宏晶科技,《STC89C51RC/RD+系列单片机器件手册》,2011年9月8号更新版本[6]LDC1000Inductance-to-DigitalConverter附录:LDC1000驱动程序#includereg52.h//LDCCOMMANDS#defineLDC1000_CMD_REVID0x00#defineLDC1000_CMD_RPMAX0x01#defineLDC1000_CMD_RPMIN0x02#defineLDC1000_CMD_SENSORFREQ0x03#defineLDC1000_CMD_LDCCONFIG0x04#defineLDC1000_CMD_CLKCONFIG0x05#defineLDC1000_CMD_THRESHILSB0x06#defineLDC1000_CMD_THRESHIMSB0x07#defineLDC1000_CMD_THRESLOLSB0x08#defineLDC1000_CMD_THRESLOMSB0x09#defineLDC1000_CMD_INTCONFIG0x0A#defineLDC1000_CMD_PWRCONFIG0x0B#defineLDC1000_CMD_STATUS0x20#defineLDC1000_CMD_PROXLSB0x21#defineLDC1000_CMD_PROXMSB0x22#defineLDC1000_CMD_FREQCTRLSB0x23#defineLDC1000_CMD_FREQCTRMID0x24#defineLDC1000_CMD_FREQCTRMSB0x25sbitPIN_LDC_CS=P1^0;sbitPIN_LDC_SO=P1^1;sbitPIN_LDC_SCK=P1^2;sbitPIN_LDC_SI=P1^3;#defineSET_PIN_LDC_SI(bValue)PIN_LDC_SI=bValue#defineGET_PIN_LDC_SO()PIN_LDC_SO#defineSET_PIN_LDC_SCK(bValue)PIN_LDC_SCK=bValue#defineSET_PIN_LDC_CS(bValue)PIN_LDC_CS=bValue/*---------------------------------------------------------------功能:读1B数据输入:无输出:1B数据8----------------------------------------------------------------*/unsignedcharLdc_SPIread(void){unsignedchari=0;ch=0;for(i=0;i8;i++){SET_PIN_LDC_SCK(0);ch=1;SET_PIN_LDC_SCK(1);if(GET_PIN_LDC_SO())ch=ch|0x01;}SET_PIN_LDC_SCK(0);return(ch);}/*---------------------------------------------------------------功能:写1B数据输入:ch--1B数据输出:无----------------------------------------------------------------*/voidLdc_SPIwrite(unsignedcharch){unsignedchari=0;for(i=0;i8;i++){SET_PIN_LDC_SCK(0);if(ch&0x80)SET_PIN_LDC_SI(1);elseSET_PIN_LDC_SI(0);SET_PIN_LDC_SCK(1);ch=1;}SET_PIN_LDC_SCK(0);}//写寄存器voidLDC1000_WriteReg(unsignedcharaddr,unsignedchardat){addr=addr&0x7F;SET_PIN_LDC_CS(0);Ldc_SPIwrite(addr);Ldc_SPIwrite(dat);SET_PIN_LDC_CS

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功