基于TSL模块的智能导航平台开发

2017-03-13 05:37南京师范大学电气与自动化工程学院张泽宇沈世斌
电子世界 2017年4期
关键词:舵机小车调试

南京师范大学电气与自动化工程学院 张泽宇 沈世斌

基于TSL模块的智能导航平台开发

南京师范大学电气与自动化工程学院 张泽宇 沈世斌

智能导航平台是在一个标准汽车模型和直流电机基础上,配以单片机及外围电路共同构成的智能平台,其优点在于能够根据路况而改变和自动实现转弯等功能,这就对硬件机械的设计要求很高。基于此,本文研究了基于TSL1401线性CCD图像识别智能小车的设计与开发,分别进行了CCD 传感器信号采集处理模块设计,主板及电机驱动模块设计,控制算法的编制及执行和调试、舵机控制设计与安装,通过系统硬件平台搭建和软件设计,采用TSL1401线性CCD作为小车的循迹模块来识别白色路面,采集信号并将信号转换为能被单片机识别的数字信号,完成了基本功能和系统调试,测试结果表明系统具有良好的避障成功率和控制精度。

单片机;TSL模块;传感器;自动循迹;自动控制技术

0 引言

本文研究的控制对象是前轮转向、后轮双电机驱动的智能小车。要顺利控制,需要更短的控制周期,以达到更快的响应速度。在转弯时,小车的后轮轨迹很难完全按照传感器提供的数据进行完美顺畅的过弯,因此需要对车子的整体控制进行优化。

为实现高速的数据传输处理,硬件上选用了主频能达到80M的Freescale K60 32位单片机,由于K60在高速的信息采集AD过程中,转化能力有所欠缺,所以我们采用TLC5510高速外部AD转化,即采用了硬件二值化的设计,将TSL模块传感器输出的灰度图像直接转化为二值化的黑白图像,减少单片机数据量和读取时间,方便于软件的进一步处理。在电机驱动方面,我们根据车子电机的特点,选择N-MOS管双H桥驱动,可以有效地避免驱动过热现象。在辅助调参模块,我们采用多种尝试方案,包括键盘调参、拨码开关、显示屏等。在软件上我们优化算法,使用汇编语言与C语言混合编程以提高执行的效率。

随着利用单片机实现自动化控制研究的进步,图像识别技术及其在智能汽车上的应用也得到了长足的发展。本文将介绍关于基于TSL1401模块,同时应用液晶屏和旋转开关等来完善人机界面、丰富参数的调节方式来实现自动导航平台设计的方案。

1 TSL线性CCD传感器模块

1.1 主要应用背景

我们应用较多的是以TAOS公司生产的TSL1401R芯片为核心,集成了一个高达128像素点的线性阵列传感器以及一个专门用于线性CCD透镜的TSL1401模块。该模块可以看到一维的图像,并可以通过移动模块来获得二维图像。在整个实践过程中,我们计划主要考虑的问题可以归纳为以下三点:

(1)研究环境光影响的问题。试验表明线性CCD的输出信号与环境光线密切相关,在自然光条件比晚上灯光下AO引脚输出电压值高出好多,正对着光线比背对着光线输出电压高,白炽灯光下比日光灯下输出电压高。因此同一参数(曝光时间、镜头光圈)难以适应所有复杂情况,需要我们进行实地调控;

(2)测试优化输出信号放大的因素。根据之前所述,我们可以调节曝光时间来适应各种环境,在弱光环境增大曝光时间,在强光下减小。但是曝光时间不可以无限增大,因为增大曝光时间势必降低采样率,这样整个智能平台反应就会慢。所以如何优化方案调节前瞻也是我们的一大亮点;

(3)研究曝光时间的自适应策略。简单表述为要想完整跑完全程需要适时地、动态地调整曝光参数,通过闭环反馈来达到这一目的,反馈的正是TSL模块感应的曝光量。目前就是取一次采集到的128个像素电压的平均值作为曝光当量,设定的曝光量也就是设定的128个像素点的平均电压。我们认为采用该策略后线性CCD采集到的电压值在正常的智能车运行环境中都能保持在合理范围内。

1.2 实际应用方案

TSL1401CL线性CCD传感器阵列由一个128*1的光电二极管阵列、相关的电荷放大器电路和一个内部的像素数据保持功能电路组成,它提供了同时集成起始和停止时间的所有像素,具有内部控制逻辑,只需一个时钟CLK和串行输入端(SI)的信号。在光电二极管的光能量冲击下产生光电流,这是有源积分电路与该像素相关的集成量。在积分周期期间,采样电容器连接到积分器的输出通过一个模式转换,在每个像素中积累的电荷量是与光强度和积分时间成正比的(见图1)。

光照射到光电二极管上,产生光电流,被积分电路积分。在采样期间,积分电容的一端被连接到输出端,积分后的输出电压与该点的光强和积分时间成正比。因此为了适应场地,CCD 的积分时间应该是可变的。

图1 CCD内部感光单元

TSL1401模块可以通过高低电平显示来相对精确地采集图像信息,但是该模块可以看到一维的图像,却无法像面阵摄像头那样收集更多的信息,加之镜头畸变的问题,所以难免出现预判失误。目前我们可以保证经过电路运行后传感器可以采集到需要的路径数值,至于如何解决这一模块的局限性需要后续软件调试加以弥补。

线性CCD传感器探测距离远,能够采集一条直线,将车前方的道路景物,包括道路的中心位置、偏离程度、弯道曲率等,通过镜头生成的光学图像投射到图像传感器表面上,然后转变为模拟信号,经过A/D转换后变为数字信号,送到单片机中加工处理,由USB接口输出。加工处理后的数字信号经由单片机存储到内部RAM中,通过软件算法对图像信号进行处理以控制系统左右电机的正反转来转向,指导行车速度和执行转弯等动作,并对前方道路做出预测判断。

2 硬件电路模块设计

2.1 主板及驱动板原理设计

我们主要设计电源模块、道路检测及实时方向变换模块、测速及电机速度控制模块。经过仔细研究芯片手册,选择了功耗较低的一些稳压芯片,供电主体选择7.2V,在其他模块供电会相应降低到5V或者3.3V以保障运行。

在驱动上选择了N-MOS管驱动:对于 N-MOS管,VGS大于一定的值就会导通,适用于源极接地的情况,只要栅极电压达到4V或10V就可以了。而且相比于P-MOS管,导通电阻小,价格低廉且替换种类较多,因而驱动中往往选择N-MOS管。

MOS管在导通和截止的时候,一定不是在瞬间完成的。MOS管两端的电压有一个下降的过程,流过的电流有一个上升的过程,在这段时间内,MOS管在损失时电压和电流的乘积,叫做开关损失。通常开关损失比导通损失大得多,而且开关频率越快,损失也越大。缩短开关时间,可以减小每次导通时的损失,降低开关频率,可以减小单位时间内的开关次数。这两种办法都可以减小开关损失。

图2 主销后倾纠正车轮偏转原理图

在MOS管的结构中可以看到,在GS、GD之间存在寄生电容,而MOS管的驱动,实际上就是对电容的充放电。对电容的充电需要一个电流,因为电容充电瞬间可以把电容看成短路,所以瞬间电流会比较大。设计MOS管驱动时要注意可提供瞬间短路电流的大小以及普遍用于驱动的NMOS,导通时需要是栅极电压大于源极电压。而驱动的MOS管导通时源极电压和漏极电压(VCC)相同,所以这是栅极电压要比VCC大4V或10V。如果在同一个系统里,要得到比VCC大的电压,就要专门的升压电路了。

2.2 PCB板布线

在实体电路中,我们改进了元器件的封装,在保证稳定的基础上尽量轻、小,使智能汽车的整体质量更轻,运行速度更快。板载的集成电路芯片大多选用贴片封装形式,可以节省电路板空间,保证布局的完美 。

我们在选择双面贴装的印刷版基础上进行了布局调整:(1)总的连线尽可能短,关键信号线最短;(2)高电压、大电流信号与小电流、低电压的弱信号完全分开;(3)模拟信号与数字信号分开;(4)高频信号与低频信号分开。相同结构电路部分采用“对称式”,按照重心平衡、均匀分布、版面美观的标准化来布局。并且尽量将使用同一种电源的器件放在一起,以便以后设计时要考虑的电源分隔问题。

我们对布线规则也进行了优化:首先对电源线和地线进行布线,加宽了电源和地线宽度,满足:地线>电源线>信号线;其次对高频线进行布线,避免输入端和输出端的边线相邻平行,以免产生反射干扰。必要时添加地线进行隔离,且两相邻层的布线相互垂直,最大可能消减寄生耦合;再者为了减小高频信号辐射,尽可能多得使用45度的折线布线而不是90度。

3 机械结构设计

基于阿克曼转向定理及实践经验,我们就前轮前束、主销内倾和主销外倾等进行了多种方案的构想,以保证适应软件及时调整到最佳状态。

根据轮胎摩擦程度的实际情况及车模各个部分的布局合理设想了几种平台搭建方式来进一步优化整车重心,防止在过弯时车子会发生抖动或者甩尾的情况。我们还尝试着通过增加垫片来调节底盘高度进而降低重心,在经过很多次尝试后调整到了一个保证车子性能相对稳定的高度。

考虑到安装方便以及转向性能,我们对舵机安装结构进行了一定调整:车模的转向是通过舵机带动左右横拉杆实现,转动速度和功率一定,要想加快转向机构的响应速度,唯一的办法就是优化舵机的安装位置及其力矩延长杆的长度。

由于功率是速度与力矩乘积的函数,过分追求速度必然要损失力矩,力矩太小也会造成转向迟钝,因此设计时就要综合考虑转向机构响应速度与力矩之间的关系,通过优化得到一个最佳的转向效果。

关于舵机的安装方式,我们选择了直立式安装,与连片的啮合类似齿轮的啮合,由于连片长度以及齿宽的影响,很难调节到合适的舵机机械中值。为了弥补这种连片的缺陷,我们采用了可调中值的舵机连片。

在底盘的软硬连接上,硬连接是使用比较广泛的,即将整个底盘加固,可以提高车子在过弯时的响应速度。但是由于离心力的作用,车子在高速过弯时极易发生外侧车轮翘起的情况,影响车轮与地面的摩擦,进而可能导致系统的不稳定;相较之下,软连接最大程度保证轮子与地面的贴合程度。但是因弹性较大,车子的响应速度会变慢。因而如何调整一种最合适的连接是我们需要配合软件调试来甄别的。

4 软件编程体系

MK60DN512VLL10单片机带A/D转换的单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做电池电压检测、按键扫描等。上电复位后P1口为弱上拉型I/O口,可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。

图3 程序框架示意图

编程主线大致分为两条:首先是速度,核心是速度PID。单片机通过脉冲累加器把编码器的速度采集出来,通过PID算法计算此时最合适的PWM占空比并输出相应的PWM脉冲从而通过驱动电路控制电机运转。如何满足PID参数匹配,设计一套PID参数自适应各种舵机打角情况,是最难的地方。

其次是路径,核心在于中线寻迹法以及舵机PID。传感器采集到一行的像素,设定阈值,查找边沿两个黑点坐标,接由两黑点坐标寻找中间点坐标,实际黑点坐标与理想黑点坐标差值作为舵机转动的PID输入量,输出舵机执行指令PWM占空比,舵机执行指令。这其中的难点是解决路径识别和相应匹配舵机打角问题。

图4 闭环的PID控制示意图

路障的出现会带来了较大影响,如若冲撞上去必然会导致翻车无法继续运行。因此,当 CCD 检测到连续几次一侧有明显的窄跳变沿的情况下,我们便默认为小车前方出现了路障,并对速控以及转向进行处理,进而达到平稳过路障的效果。

5 调试与实验

小车完成组装后,使用数字万用表测试分立元件的电阻、压降、漏电流、截止/导通状态等参数,看是否存在差值,从而避免原件搭建错误和虚焊的发生。

使用逻辑分析仪用于测试各线性CCD传感器信号的接收与传输,从而避免传感器的损坏影响小车的功能实现 。

开启小车开关,将其放在实验跑道上进行实地试验调试。首先是直道区加上弯道区的调试:通过两边固定的线性CCD传感器对引导线检测来实现电动车沿着引导线到达指定的地点。障碍区的调试:应用传感器,当接触到前方有障碍物的时候避开障碍物。运行状况见表1。

表1 小车运

6 结论

从运行的情况看,效果良好,但还是出现了冲出赛道以及原地旋转等状况,分析是由于小车的传感器收到外界的影响较大。

在调试硬件模块时,将调试的各个电路模块综合起来,因易出现干扰情况,最好采取“逐步综合”的方法,将一个模块调试完成后,再结合另一个模块,这样更能逻辑的分析出综合时是哪个模块出现了问题。

整个系统以单片机为核心,利用了传感器将软件和硬件相结合。本系统能实现如下功能:自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。当小车探测到前进前方的障碍物时,可以通过蜂鸣器自动报警调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹。

[1]周文军.双轮驱动智能小车循迹算法研究[J].河北软件职业技术学院学报,2014,16(2):58-60.

[2]许苑丰.一种智能循迹小车设计方案[J].电子产品世界,2013(11):47-49.

[3]赵敏超.智能寻迹运货小车模型的研究[J].科技向导,2010(27): 74-75.

[4]隋金雪,杨莉,张岩.“飞思卡尔”杯—智能汽车设计与实例教程[M].北京:电子工业出版社,2014.

[5]闫琪,王江.智能车设计——“飞思卡尔杯”从入门到精通[M].北京:北京航空航天大学出版社,2014.

[6]Hui Zhang.Control Strategy Design for Smart Car Auto-tracing with Visual [J].Journal of Materials Processing Technology,2007(3):12-65.

[7]Jie SUN,Zhao-hui WU,Gang PAN.Context-aware smart car:from model to prototype[J].Sun et al.J Zhejiang Univ SCI A,2009(7):1049-1059.

Abnormal operation detection in intelligent guidance based on TSL module

The intelligent tracing navigation platform is a automation platform based on a standard model car and continuous current dynamo,which consists of SCM and other peripheral circuits,and has the advantage of being able to change according to the road conditions and automatic turning and other functions,which requires a very high design requirements of the hardware and machinery.Based on this,this paper studies the design and development of TSL1401 module linear CCD image recognition intelligent car based on CCD for sensor signal acquisition and processing module design,module design of master leaf and motor drive,control algorithm development and implementation and debugging,servo control design and installation,the system hardware platform and software design,using linear CCD as TSL1401 car tracking module to identify the white road,collecting signal and converts the signal into digital signal processor can be identifed,debugged and the system test results show that the system has good control accuracy.

SCM;TSL module;sensor;automatic tracing;automatic control

南京师范大学2016-2017学年国家级大学生创新创业训练项目《基于TSL模块的自动导航平台设计》(项目编号:201610319039Z)。

猜你喜欢
舵机小车调试
大车拉小车
自制小车来比赛
含齿隙弹载舵机的全局反步模糊自适应控制
刘老师想开小车
基于航拍无人机的设计与调试
两轮自平衡小车的设计与实现
基于dsPIC单片机的飞艇舵机控制实现
FOCAS功能在机床调试中的开发与应用
基于高速同步485总线通信的多通道舵机控制器设计
无线通信中频线路窄带临界调试法及其应用