基于LDC1614的循迹小车研制*

2018-08-03 03:14吕林涛
传感器与微系统 2018年8期
关键词:细铁丝铁丝电路设计

黄 健, 吕林涛, 范 晖

(西京学院,陕西 西安 710123)

0 引 言

自动循迹是智能车要解决的一个技术问题,近年来,研究最多的是黑白线循迹,即沿着贴有黑、白线的跑道行驶[1~3],但这种方法受自然光的影响较大,当自然光比较强时,很难区分黑白线。基于此,本文提出了采用细铁丝为跑道(因铁丝受环境影响较小),使小车沿着铁丝行驶。对铁丝的检测,即对金属的检测。早期的金属检测采用模拟电路,检测输出的也是模拟信号,因此其抗干扰能力、精度都较低。本文采用新型数字电感传感器LDC1614,为4通道金属检测传感器,具有I2C接口,可方便与各种微处理器相连。输出28位的数字量可实现对金属物高分辨率、高精度检测。

1 系统总体设计

系统设计框图如图1所示。主控采用STM32F103ZET6[4,5]。LDC1614将采集到的数据通过I2C串行总线传送给STM32,STM32根据LDC1614中2个通道传感器A和B采集的数字量判断铁丝的位置,控制小车的行驶。1.44 in(1in=2.54 cm)TFT真彩屏作为显示设备,用于显示A,B传感器的数字量和时间等信息。

图1 系统框图

2 硬件电路设计

2.1 LDC1614传感器设计

LDC1614原理如图2所示,1脚为SCL,是I2C总线中的时钟信号线。2脚是SDA,是I2C总线中的数据线,分别连接到STM32的PE4和PE5引脚上,PE4和PE5作为普通的I/O口,采用模拟I2C的方式与LDC1614进行数据传送,为了保证传输的可靠性,在该引脚上均接有10kΩ的上拉电阻器。LDC1614采用3.3V供电。图中LDC1614的9脚IN0A和10脚IN0B是IN0输入通道;11脚IN1A和12脚IN1B是IN1输入通道,这2个通道分别连接自制电感线圈和电容器,构成LC谐振电路,通过电涡流原理检测金属[6,7]。

图2 STM32与LDC1614连接

自制线圈可通过手工绕制或者在Altium Design中绘制,然后加工而成,直径达到了4 cm。线圈相当于电感,给该电感配置一个合适的电容值。当外部有金属物体时,就会产生LC谐振。LC的谐振频率通过式(1)计算

Fsen=1/3×Fex/Fcnt×RT

(1)

式中Fsen为LC谐振频率;Fex为外部时钟基准频率,采用LDC1614内部晶振产生,取值为4MHz;Fcnt为LDC1614内部计数器值;RT为LDC1614内部寄存器设置的响应时间。对式(1)两边分别求倒数,并适当变化,有

RT×(1/Fsen)=3×Fcnt×(1/Fex)

(2)

式中 1/Fsen为LC谐振周期;1/Fex为基准时钟周期。式(2)表明在RT个LC谐振周期内,使用LDC1614的Fcnt计数器记录基准时钟的个数来推算LC的谐振频率。

根据电涡流原理,要检测细小的金属,必须要产生足够大的涡流,就必须增大电感量L,通过多次实验,绘制了直径为4 cm的电感线圈,线的粗细为0.1 mm,电感量为0.250 mH,与其匹配的电容值的大小为2.5 nF。对金属的检测距离达到3 cm。若要提高检测距离,可适当加大电感量和电容值。

2.2 直流电机驱动电路设计

电机TB6612与STM32的连接如图3所示。

图3中AIN1,AIN2,PWMA控制1路电机,对应电机连接端是AO1和AO2; BIN1,BIN2,PWMB控制2路电机,对应电机连接端是BO1和BO2; 可将AIN1,AIN2,PWMA连接到对应的STM32的I/O口,PWMA引脚产生对应的PWM波形,用于电机调速。对应的真值表如表1。

图3 TB6612与STM32的连接

输入AIN1AIN2PWMA输出AO1AO2电机动作HHLLL制动HLHHL正转LHHLH反转LLLLL制动

当电机全速运行时,PWMA输出高电平,要调整速度时,PWMA输出不同占空比的方波。另一路电机BIN1,BIN2,PWMB,BO1,BO2的控制逻辑与表1类似。

2.3 TFT显示单元电路设计

显示电路设计如图4所示。

图4 TFT显示电路设计原理

为提高显示屏刷屏速度,采用STM32F103ZET6的硬件SPI1接口与显示屏屏相连。其中SCLK连接到PB3(SPI1_SCLK),DI连接到PB5(SPI2_MOSI),CS连接到PB12(SPI2_NSS)。其余RST为复位信号,GND共地,VCC接3.3 V。

3 软件设计

3.1 软件设计流程

软件编程时,首先对I2C、定时器、SPI接口进行初始化,然后通过I2C接口循环采集LDC1614的金属探测值。为了使检测值稳定、可靠,共循环采集50次,进行冒泡排序,去掉最大值和最小值各10个,用剩下的30个求均值,并将结果送给1.44 in TFT屏显示。LDC1614连接2只传感器,假设左边的传感器为A,右边的传感器为B。小车行驶时,将铁丝放在传感器A和B的中间,当铁丝偏向左边时,A传感器的值增大,控制小车右转;当铁丝偏向右边时,B传感器的值增大,控制小车左转;当铁丝在A,B中间时,A,B传感器的值相等,小车直走。小车的行驶通过TB6612直流电机驱动。按照表1所述的真值表控制小车的前进、后退、左转、右转。

3.2 I2C读写时序

图5给出了其读时序。图中SCL是时钟信号,SDA是数据线。对LDC1614进行读操作时,首先发送所读单元地址,然后分别读出高8位和低8位数据[8~10]。LDC1614双通道的地址寄存器的映射关系如表2所示。

图5 I2C读时序

地址功能描述0X00通道0高16位数据0X01通道0低16位数据0X02通道1高16位数据0X03通道1低16位数据0X7F设备ID号(默认值0X3055)

表2中,按照图5所示的时序,读写0X00和0X01的高16位数据和低16位数据,将其组合成通道0对应的32位数据,通过和0X0FFFFFFF进行“与”运算得到28位有效数据。通过读写0X02和0X03地址得到通道1的28位有效数据。初始化时,为了验证I2C时序的正确性,可通过读写设备ID号实现,若读到的ID号是0X3055,则说明I2C读写时序正确,初始化成功;否则,调试程序。

4 测试结果

测试时的跑道如图6所示。测试时,为了增加难度,在转弯处设置了弯道。小车起始位置处于2 m直道的正中心,途经6个弯道,弯道圆弧的半径均为20 cm。最后再回到起点处,顺时针行驶一圈。表3列出了细铁丝位置与传感器的测量值之间的对应关系。

图6 测试场地

测试时,首先将细铁丝放置在传感器A和B的自制线圈的正中心。假设通道0所对应的传感器为A,安装在小车的左边。通道1所对应的传感器为B,安装在小车的右边。当小车按顺时针方向在直道上行驶时,当细铁丝靠近传感器A时,传感器A的测量值降低,传感器B因为远离铁丝,所以其值不变,此时控制小车右转,直至左、右传感器采集值相同为止;反之,细铁丝靠近传感器B时,传感器B的测量值降低,传感器A因为远离铁丝,所以其值不变,此时控制小车左转,直至左、右传感器采集值相同为止。当在弯道行驶时,情况比较复杂,细铁丝靠近的一端的传感器值降低比较快,此时控制小车向传感器的值增大的一方旋转,直至左右两只传感器的测量值接近为止,然后控制小车直走。

表3 细铁丝位置与传感器测量值(数字量)之间对应关系

5 结 论

本文设计了一种能够沿着细铁丝行驶的智能小车,采用新型LDC1614数字电感传感器探测金属,配置适当的电感线圈和电容,可实现对细铁丝的检测,检测距离接近3cm。由于LDC1614是双通道传感器,恰好可以实现对一根细铁丝的检测和循迹。加入适当的软件滤波算法,可使数据处理变得更加稳定、可靠。本设计为智能小车的循迹增加了一种新的思路和方法,克服了光电传感器受强光影响比较大的缺点,可应用在灰尘、污垢、油和潮湿等恶劣环境中,具有一定的实用价值。

猜你喜欢
细铁丝铁丝电路设计
酒杯二重奏
铁丝有多长
铁丝的幽默世界
Altium Designer在电路设计中的应用
负反馈放大电路设计
两长两短
开漏输出比较器的峰值检测电路设计
一起来摆动
熟练的侍者
基于UC3842应用电路设计