基于LDC1000铁丝轨道检测地循迹小车_第1页
基于LDC1000铁丝轨道检测地循迹小车_第2页
基于LDC1000铁丝轨道检测地循迹小车_第3页
基于LDC1000铁丝轨道检测地循迹小车_第4页
基于LDC1000铁丝轨道检测地循迹小车_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGEI基于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;trackingPAGEPAGE21.引言循轨广泛应用很于工业自动化及系统,而循迹的方式有很多种,每种都有其缺点。机械链条式轨道存在磨损占用地方;光电慢反射检测式需要轨道为黑色、受环境光影响比较大;摄像头模式识别式需要很好的识别算法,受环境光影响也比较大。基于此,本文采用LDC1000对铁丝进行检测判断,实现自动循轨应用。2.技术原理自动循迹小车的工作过程是主要利用LDC1000的检测原理,即大学物理中学到的电磁感应原理。在PCB线圈或者自制线圈中加上交变电流,线圈周围就会产生交变磁场。这时,如果有金属物体进入磁场,将会在金属物体表面产生涡流。涡流电流跟线圈电流方向相反,产生的电磁场也与线圈产生的相反。所以,涡流是金属物体距离,大小,成分的函数。涡流产生的反向磁场与线圈耦合在一起,就像是有另一个次级线圈一样,这样就形成一个变压器。由变压器的互感作用,在初级线圈的这一侧就可以检测到次级线圈的参数。据以上所述,当LDC1000电感/数字转换器位于金属材质的附近时,便会使传感器的值发生变化,对这一变化进行判断便可晓该金属物体是铁丝轨道还是硬币。并将这些信息输入到STC89C52单片机控制系统,单片机进行分析处理,通过控制算法对驱动系统发出控制命令,来让驱动小车左、右轮的电机使小车沿着指定的轨迹前进。(图1循迹小车组成框图) Mcu(Stc89c52)LCD液晶显示Mcu(Stc89c52)LCD液晶显示LDC1000铁丝轨道铁丝轨道蓝牙模块通讯接口蓝牙模块通讯接口直流电机电机驱动电路直流电机电机驱动电路光电测速光电测速(图1循迹小车组成框图)3.LDC1000芯片及驱动设计3.1LDC1000简介LDC1000是美国德州仪器公司TI推出的一块全新的电感数字转换器(LDC),具有低功耗,小封装,低成本的优良性质。它的SPI界面可以很方便的连接MCU。LDC1000只需要外接一个PCB线圈或者自制线圈就可以实现非接触式电感检测。LDC1000的电感检测并不是指像Q表那样测试线圈的电感量,而是可以测试外部金属物体和LDC1000相连的测试线圈的空间位置关系。利用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位字节数据写入相应的寄存器中;片选信号置高,释放对该从机的控制。(图4LDC1000SPI读写时序)stc89c52驱动程序设计根据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小车天线在轨道上位置)A,B,C三种情况的天线下,利用函数ReadValue()得到的数值为Fa,Fb,Fc.三者间的关系为Fa<Fb,Fc<Fb.为此,当检测到数值为Fb时小车直行,否则小车转弯。左转与右转根据转弯的幅度做调整。程序流程如下:(图6小车控制主流程)(图6小车控制主流程)5.实验环境及小车制作本项目团队制作了系统轨道(图7铁丝轨道),实验小车(图8循迹小车),并利用串口检测系统监测的铁丝数据。铁丝的直径0.9mm以上,循轨小车包括控制主板、显示、光电测速、电机、蓝牙收发模块等。根据车身是否偏离轨道监测到的采样数据(图9数据监测)。(图7铁丝轨道)(图8循迹小车)(图9数据监测)6.小结 利用PCB线圈或自制线圈可以实现非接触式电感线圈检测,通过分析待测金属物体对电感线圈磁场的影响可以很方便地实现金属检测。经实测,通过合理设置模块寄存器值,可以有效检测3cm距离的金属。外界光照条件对本系统没有太大的影响,而且还必须能够在一定的距离内快速检测到金属并能够辨别金属类型。 本系统的实验可以应用于送餐机器人,轨道的布局实施不影响餐厅的原来的装修。具有一定的实用性。参考文献[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2012[2]杨学昭,王东云.单片机原理、接口技术及应用.西安:西安电子科技大学出版社,2009.[3]童诗白.模拟电子技术基础(第4版).北京:高等教育出版社,2000.[4]高歌著.AltiumDesigner电子设计应用教程[M].清华大学出版社.2011.6.[5]宏晶科技,《STC89C51RC/RD+系列单片机器件手册》,2011年9月8号更新版本[6]LDC1000Inductance-to-DigitalConverter附录:LDC1000驱动程序 #include"reg52.h"//LDCCOMMANDS#defineLDC1000_CMD_REVID 0x00#defineLDC1000_CMD_RPMAX 0x01#defineLDC1000_CMD_RPMIN 0x02#defineLDC1000_CMD_SENSORFREQ 0x03#defineLDC1000_CMD_LDCCONFIG 0x04#defineLDC1000_CMD_CLKCONFIG 0x05#defineLDC1000_CMD_THRESHILSB 0x06#defineLDC1000_CMD_THRESHIMSB 0x07#defineLDC1000_CMD_THRESLOLSB 0x08#defineLDC1000_CMD_THRESLOMSB 0x09#defineLDC1000_CMD_INTCONFIG 0x0A#defineLDC1000_CMD_PWRCONFIG 0x0B#defineLDC1000_CMD_STATUS 0x20#defineLDC1000_CMD_PROXLSB 0x21#defineLDC1000_CMD_PROXMSB 0x22#defineLDC1000_CMD_FREQCTRLSB 0x23#defineLDC1000_CMD_FREQCTRMID 0x24#defineLDC1000_CMD_FREQCTRMSB 0x25sbitPIN_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数据*/unsignedcharLdc_SPIread(void){ unsignedchari=0;ch=0; for(i=0;i<8;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;i<8;i++) { SET_PIN_LDC_SCK(0); if(ch&0x80) SET_PIN_LDC_SI(1); else SET_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); }//读寄存器unsignedcharLDC1000_ReadReg(unsignedcharaddr){ unsignedchartemp; addr=addr|0x80; SET_PIN_LDC_CS(0); Ldc_SPIwrite(addr); temp=(UINT8)Ldc_SPIread(); SET_PIN_LDC_CS(1); returntemp; }//芯片初始化voidLDC1000_Init(void){ LDC1000_WriteReg(LDC1000_CMD_RPMAX,0x13);LDC1000_WriteReg(LDC1000_CMD_RPMIN,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论