绪论在当前的这个环境,随着不断进步的生产技术,各个企业对自动化技术的要求也是越来越高。
智能车辆或者与智能车辆相关的产品已经开始成为各种自动化系统的关键设备,这其中主要包括了物流、运输等系统。
所以,智能车辆被越来越多的人们所关注,同时,也有越来越多的国家开始对智能车辆的开发和设计进行积极的研究。
智能小车是一个典型的高科技综合系统。
智能小车包含了多种高新科技的系统,而这些系统又运用了更多的高新技术,其中包括了对环境的探测、传感,对运行路线的决策、计算,以及信息通讯和自动控制行驶等多种功能。
简单的来讲,智能小车就是将双腿变成了的多个轮子的移动机器人。
所以,智能小车在机械和电路的设计方面,都要比其他智能机器人的运行也更稳定,也更加简单。
另外,由于智能小车的优点就在于控制简便,运行稳定,所以对智能小车的行驶的速度与方向之间的配合就有比较严格的要求。
首先,小车可以通过传感器来获取当前道路状况,然后将传感器获取到的数据传输到处理器,处理器再结合小车当前的行驶状态,迅速地进行计算,对小车的行驶的方向和行车的速度进行快速的调整改变,进而对目标道路进行迅速准确的跟踪。
1.开发概述1.1 研究现状移动机器人出现于20世纪06年代,当时斯坦福研究院(SRI)的Nils Nilssen和charles Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制[1]。
从此,移动机器人作为机器人学中的一个重要分支,从无到有,数量开始不断的增多。
在目前的环境下,由于企业的生产技术在不断进步,对自动化技术的要求也在一直的加深,在未来工业生产和日常生活中,智能小车系统将会扮演重要的角色,智能小车将会在人们的视野中出现地越来越频繁。
1.2 选题意义随着科技的不断发展,人们也越发的开始关注一些研发人工智能产品的情况。
智能小车可以在各种条件恶劣的情况下代替人们进行一些复杂的任务,例如排雷防爆,矿区检测,狭窄的地方进行货物搬运等。
正是由于这种智能小车设备有非常多的运用前景,所以对智能小车的进行寻迹避障的研究设计就是目前首要的目标,因为小车需要正确的在规定的路线中行进并执行相应的任务。
1.3 研究任务本设计是一种以STC15芯片为控制核心的自动寻迹小车系统。
L298驱动电路通过单片机产生的PWM波来控制小车速度。
利用LDC1000传感器对路面铁丝轨道进行分析检测,并将路面检测到的信号实时反馈给单片机,单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着铁丝轨迹自动行驶[4]。
本设计还附带了按键功能,可以对LDC1000阈值及小车的启停等功能进行设置。
1.4 基本要求设计并制作一个可以自动循迹的小车。
循迹传感器自选,在规定的平面跑道自动按顺时针方向循迹前进。
跑道的标示为一根0.9cm左右的细铁丝,用透明胶带将其粘贴在跑道上。
跑道尺寸见图1,跑完一圈不得超过10分钟,小车运行时必须保持铁丝在车身垂直投影下,实时显示小车运行时间和距离。
图1 铁丝轨道图1.5本文工作及内容安排第一章介绍了小车系统研究现状,阐明了系统实现的目的和意义,概述了本文的主要工作。
第二章主要简单介绍了各个模块的论证方法,对系统有个整体框架。
第三章介绍了电机驱动模块、LDC1000传感器模块和电源模块的硬件部分。
第四章介绍了软件系统设计,电机驱动程序控制,LDC1000传感器程序控制,PID算法,行驶距离的计算。
同时阐述了在主函数与中断中,将各个模块整合的方法。
第五章介绍了此设计的最终测试的方法与测试的结果。
2.模块方案论证2.1 概述本设计基于闭环测量、控制的原理,通过传感器实时监控小车的运动状态,然后将检测信号传输到处理器。
同时,处理器对检测的信号进行计算,并产生合适的脉冲宽度调制(PWM)信号,直流电机的转动是通过驱动电路接收到的PWM信号进而实现控制的。
最后实现小车的前进后退、左右拐弯、自动探寻道路并定位,同时必要信息等功能。
2.2 模块的论证根据题目设计要求,本设计是小车通过金属丝轨道进行自动循迹的系统,其中系统整体包括小车的设计,电机驱动模块,传感器模块,运行距离处理模块,微处理器模块,按键模块,显示模块和电源模块。
2.2.1小车的比较与选择根据设计要求,小车需要通过多个弯道,对车辆的平衡性,稳定性有较高的要求,采用两轮驱动的小车,转弯角度可以很好的控制,但是驱动力弱,平稳性差。
采用四轮驱动的小车,驱动力强,平稳性好,能在复杂的路况上有很好的表现。
虽然两轮驱动的小车更加利于在弯道的控制,但是不适用于所有的路况,所以我们将小车设计为四轮驱动。
2.2.2电动机的比较与选择作为小车的主要动力装置,电动机的选择主要有无刷直流电机和步进电机两种。
步进电机是以步阶方式分段移动,直流电机和无刷直流电机通常采用连续移动的控制方式[5]。
所以步进电机对速度和移动距离的控制更加精确,但是移动速度相对缓慢,而无刷直流电机的速度快,但是控制困难。
考虑到小车对于速度的要求大于控制的要求,所以我们选择无刷直流电机,在控制方面通过将程序的控制算法做得更加完善来弥补无刷直流电机控制的不足。
2.2.3电机驱动芯片的比较与选择电机驱动电路主要是通过控制电动机的正转和反转来控制小车的前进和后退,以及小车左转和右转,所以电机驱动也是智能小车的模块中重要的组成之一。
而对于电机驱动的选择有两种方案。
方案一:采用由H桥(分立的三极管元件组成)构成的驱动。
此种方案对直流电动机的方向和速度的控制利用PWM波调速的电路实现。
可是采用的H桥是由分立的元件组成的电机逻辑驱动,驱动电路的稳定性容易变差,并且价格也不便宜。
方案二:采用双桥电机驱动的芯片——L298。
L298是一款由双桥结构的直流、步进电机驱动器,并且集成度较高。
同时,L298芯片还可以实现对两个直流电机进行同时驱动和控制。
通过比较两种方案,L298电机驱动电路相对于由分立元件三极管组成的H桥的驱动,具有使用元件少,可靠性不仅高,而且控制和操作可以更加模块化,并且L298芯片的价格低。
所以,作为循迹小车的驱动芯片,L298芯片更加适合。
2.2.4传感器的比较与选择低成本的OHMIC开关传感器在灰尘等恶劣环境下不可靠,FSR压力传感器分辨率有限、不适合遥感、成本稍高,高端一些的超成波传感器不适合短距离传感,电容式传感器灵敏度高可针对被选择物的选择性不高,HALL传感器存在精度问题、需要磁体和校准,光学传感器在恶劣环境下不可靠,这些传感器都或多或少存在这样和那样的缺点[7]。
而由德州仪器生产的LDC1000性能优越,无论低成本PCB线迹,或者是普通的金属块,甚至是人体的传感,LDC1000可以迅速检测并将数据传输到处理器显示出精确的结果。
所以我们选择LDC1000作为循迹小车的金属传感器。
2.2.5处理器芯片的比较与选择关于处理器则有多种选择方案。
首先,采用传统的C51单片机。
C51单片机通用灵活,价格低廉,使用方便,但此C51的芯片是比较老的芯片,对于大量的数据处理能力较弱。
第二,采用更加高级的STM32芯片。
STM32芯片集成了绝大部分工控领域所需要的功能模块,官方也提供了大量的库函数,工作速度快,处理数据能力强。
最后,采用STC15单片机芯片。
STC15单片机计算性能强劲,可以简单灵便的对软件进行编程,可用软件编程实现各种逻辑控制功能,而且可以实现最多6路PWM输出,自带晶振,更加利于控制小车的驱动。
更加重要的是,STC15单片机加密性强,超强的抗干扰能力,可以试用于各种恶劣的环境,并且功耗更低。
综合考虑,由于使用STM32芯片会造成资源浪费,所以我们选择更加适合小车控制的STC15单片机作为小车的处理器芯片。
2.3 小车功能实现的设计与分析如何设计小车的运动方式是非常重要的。
因为小车的运动方式就决定了小车对铁丝轨道的探测,前进的控制,以及显示小车行驶距离和时间等基本要求。
整个系统是一个基于单片机的闭环控制系统。
首先,小车需要沿着设定好的路线前进,而且是铁丝构成的道路,所以小车就必须可以识别到目标道路,这就需要传感器可以不断的进行探测。
同时,小车还应该具有可以实时监测是否偏离轨道,并可以纠正小车前进方向的功能,这部分功能就需要把传感器接收到的信号实时发送给处理器,处理器经过计算后发出指令控制电机驱动,智能控制小车的前进后退左右运动,进而实现精确巡线行走。
我们最终确定的系统框图如图2所示。
图2 系统框图3.硬件部分设计3.1电机驱动模块直流电动机实质上的工作原理是一台装有换向装置的交流电动机。
直流电动机中转子转动的原因是由于带电导体在磁场中受到了电磁力的作用,并且形成了电磁转矩,从而推动转子,使得电动机得以运行。
直流电动机有如下两个个特点:1、外加电压是通过电刷和换向器再加到线圈,而不是直接加到线圈。
2、电磁转矩的方向不变。
这一现象是因为电枢导体中的电流是随着其所处磁极极性的改变方向。
电机的驱动芯片选用L298作为驱动芯片。
工作稳定电机驱动信号由单片机提供,信号经过光耦隔离后,传至PWM控制芯片L298N,通过L298N的输出脚与两个电机相连。
小车电机驱动模块电路图如附录1所示,电机驱动模块PCB硬件图如附录2所示。
3.2 LDC1000传感器模块LDC1000芯片是采用四线制SPI的连接方式,而单片机芯片对LDC1000芯片的连接、控制以及读取数据是通过SPI连接(SDI、SDO、SCLK、CSB)实现的。
在SPI通信的过程中,LDC1000扮演下位机的角色。
而像Q表那样测试线圈的电感量并不同于LDC1000芯片的电感检测。
LDC1000芯片是可以检测与相连的测试线圈和外部的金属物体之间的空间位置关系,所以LDC1000在各种环境条件下都可以很好的检测到外部金属,因为LDC1000可以很容易就可以实现非接触式的电感检测,只需要外接一个自制线圈或者PCB线圈就可以了。
LDC1000原理图如附录3所示。
3.3 电源模块电源是小车系统的动力组成,电源主要是给单片机芯片和外围电路提供5V电压,同时为小车的电动机提供12V电压。
要想小车的控制和行驶稳定,电源的设计就需要考虑到可以达到直流稳压3.3V、5V和±12V,并且电路纹波要小,尽量排除电源对芯片控制的干扰。
电源原理图如附录4所示,电源PCB硬件图如附录5所示。
4.软件部分设计4.1 大体思路4.1.1 C语言简介单片机的程序编程,应用系统可以使用C语言,也可用汇编语言。
因为他是最为接近机器语言,所以直接,简洁,紧凑和高执行效率的单片机汇编语言程序的操作效率高。
但不同的单片机汇编语言有差异,在一个单一的单片机应用开发不能直接应用到其他单片机上,很不容易移植,程序的可读性相当差。