2016年TI杯大学生电子设计大赛自动循迹小车(C题)【本科组】摘要:该系统以STM32F103VET6和89C52单片机为控制核心,采用了比赛指定的LDC1000电感传感器来探测铁丝和硬币,通过单片机产生的PWM和LM298模块控制电机,通过光耦传感器测量小车轮胎转动圈速,并应用LCD1602显示模块,以LM2596S为核心的电源电路为系统供电,从而实现了电动小车循迹、检测到硬币后蜂鸣器发出声响和实时显示小车行驶的距离和运行时间等功能。整个系统的电路结构简单明了,可靠性能高,多次实验测试结果满足基本要求和大部分发挥部分的要求。关键词:STM32F103VET689C52LDC1000智能小车1一、方案论证1.方案选择1.1电机驱动方案的选择方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车进行调整,此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案二:采用专用L298N作为电机驱动。L298N是一个具有高电压大电流的全桥驱动,它相应频率高,一块L298N可以分别控制两个直流电机。用该模块驱动电机,操作方便,稳定性好,性能优良。因此决定采用方案二。1.2电机的选择方案一:采用步进电机,步进电机具有快速启动和停止能力,其转换灵敏度比较高,正转、反转控制灵活。但是步进电机的价格比较昂贵,且该实验对小车速度等没有特殊要求,因而,不选取该方案。方案二:采用普通的直流电机。直流电机具有优良的调速特性,调速平滑、方便。调整范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。可以满足实验要求。因此选择方案二1.4探测线圈的选择方案一:使用TI公司生产的LDC1000模块自带的PCB线圈,其优点是布线精致,感应灵敏,但其探测范围小,对小车探测载体的机械结构要求较高。方案二;使用自制线圈,其优点是检测范围大,但其精度不够高,且绕制难度较高。综合考虑,选择方案一。1.5主控芯片的选择方案一:采用51单片机,操作简单,功耗低,廉价,但IO口不足,运行速率较低,无法控制LDC1000。方案二:采用STM32单片机,高性能,低功耗,还有较多IO口,但操作相对较难。经过综合评测,采用STM32控制小车循迹,51控制小车的实时显示的方案。2.方案描述根据题目的要求,设计任务是通过使用TI公司生产的LDC1000电感数字转换器作为循迹传感器,在规定的平面跑道上自动按顺时针方向循迹前进,并对沿路检测到的硬币产生声光提示,而且实时显示路程与时间。为了完成上述功能,将整个系统设计为四个基本模块,电机控制模块,信号采集与检测模块,检测提2醒模块实时路程与时间显示模块,其中电机控制模块由稳压电源电路,L298N驱动电路两部分组成,信号采集与检测模块由小车正前方的扫描载体和LDC1000传感器构成的金属探头组成,检测提醒模块包括声—光报警电路,实时路程与时间显示模块是通过光耦传感器采集实时路程传输给ST89C52,通过处理使LCD1602显示路程与时间。整个系统的总框图如下图所示图1系统总体框图本系统核心模块是信号采集与检测模块,机械架构的稳定性决定了金属探头采集的精确度,采用将LDC1000使用螺母固定在小车的正前方的结构具有很好的稳定性并可以根据铁丝的高度实时调节探头的高度,检测装置的,结构和控制算法相对较为简单。二、理论分析与计算2.1探测器组成方案与工作原理分析LDC1000的原理就是电磁感应,其只需要外接一个PCB线圈或者自制线圈就可以实现非接触式电磁检测。在PCB线圈或者自制线圈中加上交变电流,线圈周围就会产生交变磁场。这时,如果有金属物体的进入磁场,将会在金属的表面产生涡流。涡流电流跟线圈的电流方向相反,产生的电磁场与线圈产生的相反。所以,蜂鸣器与小灯小车STM32F103VET6LDC1000传感器L298N驱动STC89C52光耦传感器LCD16023涡流是金属物体距离,大小,成分的函数。涡流产生的反向磁场与线圈耦合在一起,就象是有另一个次先线圈一样,这样就形成一个变压器。由变压器的互感作用,在初级线圈的这一侧就可以检测到次级线圈的参数。所以当有金属物体接近时,就会使传感器的数值发生变化,对这一变化进行判断便可得知小车是否在正确的轨道上。2.2检测与控制算法上电后,先检测传感器返回的数值并保存,以应对不同环境下传感器返回数值不同的情况,然后比较保存的数值与设定好的值(即探头感应到铁丝的阻抗)比较,若不相等则通过STM32输出PWM波进而控制轮子的转速,使得小车左右扫描,找到合适的数值即铁丝的位置进而继续前进,当遇到硬币的时候,由于所保存的参数会发生较大的变化,进而进行声光提示,即可顺利循迹。当小车前进时,在电机一侧安装了光耦传感器,可以实时返回光栅的遮光次数,通过STC89C52的处理,即可输出实时路程,通过内部定时器进行对时间的计时,即可在LCD1602上显示实时路程与时间。三、电路与程序设计1.电路设计图2L298N电机驱动电路4图31602显示屏电路图4STM32F103VET6连接电路5图5LDC1000连接电路2程序设计图6程序流程图四、测试方案与测试结果1.软件仿真测试开始运行判断ADC码值是否大于设定值小车左转一个幅度,再右转回来继续右转一个幅度,在左转回来转动的同时进行检测判断ADC码值是否大于设定值直行是否是否判断是否达到硬币设定值进行声光提示是增加摆动角度6图7无铁丝情况下检测到的ADC码值图8有铁丝情况下检测到的ADC码值72.实际运行测试在地面上使用0.7mm铁丝模拟赛道;在沿赛道随机摆放硬币,测试小车。3.测试结果表1测试结果数据表测量编号跑完一圈时间/s检测到硬币个数/个偏离跑道次数/次1983124040351304.测试结果分析通过处理LDC1000传回的参数调节PWM波控制车轮的转向进行循迹可以基本完成比赛要求。