王利平,黄 健
(西京学院,西安 710123)
智能小车是一个集传感器技术、信息融合、自动行驶等功能为一体的综合体,可应用在比较恶劣的工业环境中,例如在有毒、有害、潮湿等环境中作业。自动循迹是智能车要解决的一个技术问题,近年来,人们关注更多的是如何实现黑白线循迹,即沿着两边贴有黑线,中心为白色的跑道行驶[1-3]。在黑白线循迹中采用的是光电传感器,光电传感器发射的红外线遇到白色平面反射光强,而遇到黑色平面时光线更多的被吸收,反射光弱,据此原理区分黑白线。但这种方法受自然光的影响较大,当自然光比较强时,很难区分黑白线。
基于此,本文采用细铁丝为跑道,使小车沿着铁丝行驶,因铁丝受环境影响较小。而对铁丝的检测,就是对金属的检测。早期的金属检测采用模拟电路,检测输出的也是模拟信号,因此其抗干扰能力、精度都较低。本文采用数字电感传感器LDC1612,LDC1612是双通道金属检测传感器,输出28位的数字量,具有IIC接口,可方便地与各种微处理器相连。28位的数字量可实现对金属物高分辨率、高精度检测,据此可设计沿细铁丝行驶的智能小车。
系统设计框图如图1所示。
图1中主控采用STM32F103ZET6,该处理器共有3个硬件SPI接口、8个定时器、3个串口、144个引脚,是基于Cortex M3的32位微处理器,功能强大,资源丰富[4-5]。LDC1612将采集到的数据通过IIC串行总线传送给STM32,STM32根据LDC1612双通道传感器A和B采集的数字量判断铁丝的位置,控制小车的行驶。用1.44寸TFT真彩屏作为显示设备,用于显示采集到的A,B传感器的数字量和时间信息等。
图1系统框图
LDC1612原理图如图2所示。图2中LDC1612的1脚是SCL,是IIC总线中的时钟信号线;2脚是SDA,是IIC总线中的数据线,分别连接到STM32的PE4和PE5引脚上,PE4和PE5作普通的IO口,采用模拟IIC的方式与LDC1612进行数据传送。为了保证传输的可靠性,在该引脚上都接有10 kΩ的上拉电阻。LDC1612采用3.3 V供电。LDC1612的9脚IN0A和10脚IN0B是IN0输入通道,11脚IN1A和12脚IN1B是IN1输入通道;这两个通道分别连接自制电感线圈和电容,构成LC谐振电路,通过电涡流原理检测金属[6-7]。
图2STM32与LDC1612连接图
自制线圈如图3所示,可通过手工绕制或者在Altium Design中绘制,然后加工而成。图3中线圈是在PCB中绘制的,直径达到了4 cm。图中线圈相当于电感,给该电感配置一个合适的电容。当外部有金属物体时,就会产生LC谐振。LC的谐振频率通下式计算:
图3PCB下绘制电感线圈
Fsen=13×FexFcnt×RT
(1)
式中:Fsen是LC谐振频率;Fex是外部时钟基准频率,LDC1612内部晶振产生,取值为4 MHz;Fcnt是LDC1612内部计数器值,RT是LDC1612内部寄存器设置的响应时间。对式(1)两边分别求倒数,并做适当变化,可得到:
RT(1/Fsen)=3Fcnt(1/Fex)
(2)
式中:1/Fsen是LC谐振周期;1/Fex是基准时钟周期。式(2)表明在RT个LC谐振周期内,使用LDC1612的Fcnt计数器记录基准时钟的个数来推算LC的谐振频率。
根据电涡流原理,要检测细小的金属,必须要产生足够大的涡流,就必须增大电感量L,通过多次实验,绘制了直径4cm的电感线圈,线的粗细为0.1 mm,电感量为0.250 mH,与其匹配的电容的大小为2.5 nF。对金属的检测距离达到3 cm。若要提高检测距离,可适当加大电感和电容。
TB6612是日本东芝公司出品的一款直流电机驱动器,性能优于L298,可同时驱动2路直流电机,最大电流可达1.5 A,TB6612与STM32的连接图如图4所示。
图4TB6612与STM32的连接图
图4中AIN1,AIN2,PWMA分别控制一路电机,对应电机连接端是AO1和AO2; BIN1,BIN2,PWMB分别控制另一路电机,对应电机连接端是BO1和BO2; 可将AIN1,AIN2,PWMA连接到对应的STM32的IO口,PWMA引脚产生对应的PWM波形,用于电机的调速。对应的真值表如表1所示。
表1TB6612真值表
输入输出电机AIN1AIN2PWMAAO1AO2HHLLL制动HLHHL正转LHHLH反转LLLLL制动
表1中H代表高电平,L代表低电平。当电机全速运行时,PWMA输出高电平;要调整速度时,PWMA输出不同占空比的方波。另一路电机BIN1,BIN2,PWMB, BO1,BO2的控制逻辑与表1类似。
TFT显示单元采用1.44寸SPI接口真彩屏,显示电路设计如图5所示。
图5TFT显示电路设计原理图
为提高1.44 TFT真彩屏的刷屏速度,采用STM32F103ZET6的硬件SPI1接口与1.44寸TFT真彩屏相连。因为对TFT液晶屏,只有写屏操作,没有读操作,所以硬件SPI只需要3根线。其中SCLK连接到PB3(SPI1_SCLK),DI连接到PB5(SPI2_MOSI),CS连接到PB12(SPI2_NSS)。其余RST为复位信号,GND要共地,VCC接3.3 V。
软件设计流程图如图6所示。首先对IIC接口、定时器、SPI接口进行初始化,然后通过IIC接口循环采集LDC1612的金属探测值。为了使检测值稳定、可靠,共循环采集50次,进行冒泡排序,去掉最大值和最小值各10个,用剩下的30个求均值,并将结果送给1.44寸TFT屏显示。因为LDC1612是双通道的,所以可以连接2个传感器,假设左边的传感器为A,右边的传感器为B。小车行驶时,将铁丝放在传感器A和B的中间,当铁丝偏向左边时,A传感器的值增大,控制小车右转;当铁丝偏向右边时,B传感器的值增大,控制小车左转;当铁丝在A,B中间时,A,B传感器的值相等,小车直走。小车的行驶通过TB6612直流电机驱动。按照表1的真值表控制小车的前进、后退、左转、右转。
图6软件流程图
图7给出了ILC读时序。图7中SCL是时钟信号,SDA是数据线。对LDC1612进行读操作时,首先发送所读单元地址,然后分别读出高8位和低8位数据[8-9]。LDC1612双通道的地址寄存器的映射关系如表2所示。
图7IIC读时序
表2中,按照图7的时序,读写0x00和0x01的高16位数据和低16位数据,将其组合成通道0所对应的32位数据,通过和0X0FFFFFFF做“与运算”得到28位有效数据。同样,通过读写0x02和0x03地址得到通道1的28位有效数据。初始化时,为了验证IIC时序的正确性,可通过读写设备ID号实现,若读到的ID号是0x3055,则说明IIC读写时序正确,初始化成功,否则重新调试程序。
表2LDC1612寄存器映射表
地址功能描述0x00通道0高16位数据0x01通道0低16位数据0x02通道1高16位数据0x03通道1低16位数据0x7f设备ID号(默认值0x3055)
测试时的跑道如图8所示。测试时,为了增加难度,在转弯处设置了弯道。小车起始位置放在2 m直道的正中心,途径6个弯道,弯道圆弧的半径均为20 cm,最后再回到起点处,顺时针行驶一圈。表3、表4列出了细铁丝位置与传感器的测量值之间的对应关系。
图8测试场地
表3直道行驶时细铁丝位置与传感器测量值之间关系
细铁丝位置l/cm传感器A测量值传感器B测量值直道直线中心 19300 19300左偏0.5 19293 19300左偏1.5 19288 19300左偏2.5 19285 19300中心 19300 19300右偏0.5 19300 19295右偏1.5 19300 19287右偏2.5 19300 19285
表4弯道行驶时细铁丝位置与传感器测量值之间关系
细铁丝相对中心点偏移距离l/cm传感器A测量值传感器B测量值弯道弯道起点中心 19300 19300弯道直走5 19299 19293再直走5 19298 19290直走出弯道 19297 19288弯道右拐 19297 19295再右拐 19298 19296进直道 19300 19300
表3中,测试时,首先将细铁丝放置在传感器A和B的自制线圈的正中心。假设通道0所对应的传感器为A,安装在小车的左边;通道1所对应的传感器为B,安装在小车的右边。当小车按顺时针方
向在直道上行驶时,当细铁丝靠近传感器A时,传感器A的测量值降低,传感器B因为远离铁丝,所以其值不变,此时控制小车右转,直至左、右传感器采集值相同为止;反之,细铁丝靠近传感器B时,传感器B的测量值降低,传感器A因为远离铁丝,所以其值不变,此时控制小车左转,直至左、右传感器采集值相同为止。表4中,当在弯道行驶时,情况比较复杂,细铁丝靠近的一端的传感器值降低得比较快,此时控制小车向传感器值增大的一方旋转,直至左右两边传感器的测量值接近为止,然后控制小车直走。
本文设计了一种能够沿着细铁丝行驶的智能小车,采用LDC1612数字电感传感器探测金属,配置适当的电容,可实现对细铁丝的检测,检测距离接近3 cm。由于LDC1612是双通道传感器,恰好可以实现对一根细铁丝的检测和循迹。加入适当的软件滤波算法,可使数据处理变得更加稳定、可靠。本设计为智能小车的循迹增加了一种新的思路和方法,克服了光电传感器受强光影响比较大的缺点,可应用在灰尘、污垢、油和潮湿等恶劣环境中,具有一定的实用价值。
[1] 余炽业, 宋跃, 雷瑞庭.基于STC12C5A60S2 的智能循迹小车[J].实验室研究与探索,2014,33(11):46-49.
[2] 王晶.智能小车运动控制技术的研究[D].武汉:武汉理工大学,2009.
[3] 尹杰,杨宗帅,聂海,等.基于红外反射式智能循迹遥控小车系统设计[J].电子设计工程,2013,(23):178-184.
[4] 金立,贾存良,王梅,等.基于PIC单片机的智能循迹小车设计[J].工矿自动化,2010,(8):129-132.
[5] 莫太平,杨宏光,刘冬梅.面向多路线的智能循迹小车的设计与实现[J].自动化与仪表,2014,(4):6-9.
[6] 贺桂芳.一种新型智能金属探测仪的设计[J].仪表技术与传感器,2016,1:13-15.
[7] 师树恒,赵斌,郭朋彦,等.基于MK60N512的智能循迹小车设计[J].机床与液压,2014,42(2):91-96.
[8] 王茹茹,宋开宏,明军,等.基于开放线圈系统金属探测仪传感器的特性分析[J].合肥工业大学学报(自然科学版),2015,38(3):354-357.
[9] 宋永献,马娟丽,贺乃宝,等.基于TMS320F2812的智能循迹小车控制系统设计[J].计算机测量与控制,2011,19(9):2128-2130.