小车避障文档
- 格式:doc
- 大小:162.00 KB
- 文档页数:11
《基于Arduino的智能小车自动避障系统设计与研究》篇一一、引言随着科技的不断发展,智能化和自动化成为现代社会发展的重要方向。
其中,智能小车作为智能交通系统的重要组成部分,具有广泛的应用前景。
自动避障系统作为智能小车的关键技术之一,对于提高小车的安全性和智能化水平具有重要意义。
本文将介绍一种基于Arduino的智能小车自动避障系统的设计与研究。
二、系统设计1. 硬件设计本系统采用Arduino作为主控制器,通过连接超声波测距模块、电机驱动模块、LED灯等硬件设备,实现对小车的控制。
其中,超声波测距模块用于检测小车前方障碍物的距离,电机驱动模块用于控制小车的运动,LED灯则用于指示小车的状态。
2. 软件设计本系统的软件设计主要包括Arduino程序的编写和上位机界面的开发。
Arduino程序采用C++语言编写,实现了对小车的控制、数据采集和处理等功能。
上位机界面则采用图形化界面设计,方便用户进行参数设置和系统监控。
三、自动避障原理本系统的自动避障原理主要基于超声波测距模块的测距数据。
当小车运行时,超声波测距模块不断检测前方障碍物的距离,并将数据传输给Arduino主控制器。
主控制器根据测距数据判断是否存在障碍物以及障碍物的距离,然后通过控制电机驱动模块,使小车进行避障动作。
四、系统实现1. 超声波测距模块的实现超声波测距模块通过发射超声波并检测其反射时间,计算出与障碍物的距离。
本系统中,超声波测距模块采用HC-SR04型号,具有测量精度高、抗干扰能力强等优点。
2. 电机驱动模块的实现电机驱动模块采用L298N型号的H桥驱动芯片,可以实现对电机的正反转和调速控制。
本系统中,通过Arduino的PWM输出功能,实现对电机的精确控制。
3. 系统调试与优化在系统实现过程中,需要进行多次调试和优化。
通过调整超声波测距模块的灵敏度、电机驱动模块的控制参数等,使系统达到最佳的避障效果。
同时,还需要对系统的稳定性、响应速度等进行测试和优化。
《智能小车避障系统的设计与实现》篇一一、引言随着科技的发展,智能小车已成为现代社会的重要组成部分。
在许多领域,如工业生产、救援和科研中,智能小车都能发挥出极大的作用。
智能小车的一个核心功能是其避障系统,它可以保障小车在运行过程中的安全性,同时也决定着小车的灵活性和适用性。
本文将介绍一个智能小车避障系统的设计与实现过程。
二、系统设计1. 硬件设计智能小车的硬件部分主要包括小车底盘、电机驱动、传感器等。
其中,传感器部分是避障系统的关键。
我们选择了超声波传感器作为主要的避障传感器,其优点是测量距离准确,且价格适中。
此外,我们还设置了红外线传感器作为辅助,以增加系统的适应性和稳定性。
2. 软件设计软件部分主要涉及传感器的数据处理、小车的运动控制等。
我们采用了模块化的设计思路,将系统分为传感器数据获取模块、数据处理模块、运动控制模块等几个部分。
其中,传感器数据获取模块负责获取传感器的数据,数据处理模块负责处理这些数据并做出判断,运动控制模块则负责根据判断结果控制小车的运动。
三、避障算法的实现避障算法是避障系统的核心。
我们采用了基于超声波传感器和红外线传感器的融合算法。
具体来说,首先通过超声波传感器获取小车与障碍物的距离信息,然后通过红外线传感器获取前方的物体信息。
接着,数据处理模块将两个传感器的数据融合处理,判断出是否存在障碍物以及障碍物的位置。
最后,运动控制模块根据判断结果控制小车的转向和速度。
在算法实现中,我们采用了模糊控制理论。
模糊控制可以处理不确定性的问题,使得我们的避障系统可以应对各种复杂的场景。
同时,我们还采用了PID控制算法来控制小车的速度和转向,以保证小车的稳定性和精度。
四、系统实现与测试我们首先在仿真环境中对避障系统进行了测试。
通过调整算法参数,我们使得小车在仿真环境中能够准确地识别出障碍物并做出相应的反应。
然后,我们在实际环境中对系统进行了测试。
在多种场景下,如光线变化、障碍物形状变化等,我们的智能小车都能稳定地运行,并成功避开障碍物。
小车避障行进//===================================================================== // 文件名称:main.c// 功能描述:小车避障行进// 维护记录:2006-12-16 v1.0//=====================================================================#define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Buffer (volatile unsigned int *)0x7001#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x7003#define P_IOB_Data (volatile unsigned int *)0x7005#define P_IOB_Dir (volatile unsigned int *)0x7007#define P_IOB_Attrib (volatile unsigned int *)0x7008#define P_Watchdog_Clear (volatile unsigned int *)0x7012void Delay45(void); //延时函数45void Delay90(void); //延时函数90//===================================================================== // 语法格式:int main(void)// 实现功能:小车避障行进// 参数:无// 返回值:无//===================================================================== int main(void){*P_IOA_Dir = 0x0000; //初始化IOA口为带上拉电阻输入口*P_IOA_Attrib = 0x0000;*P_IOA_Data = 0x0003;*P_IOB_Dir = 0xffff; //初始化IOB口为同相输出口*P_IOB_Attrib = 0xffff;*P_IOB_Data = 0x0000; //初始化IOB口输出为低电平while(1){*P_IOB_Data= 0x0005; //左右轮正转,小车前进if(*P_IOA_Data = 0x0001) //判断左边是否有障碍{*P_IOB_Data= 0x0002; Delay45();// 右轮反转,小车右转45度*P_IOB_Data= 0x0005; Delay90(); //左右轮正转,小车前进*P_IOB_Data= 0x0008; Delay90(); //左轮反转,小车左转90度*P_IOB_Data= 0x0005; Delay90(); //左右轮正转,小车前进*P_IOB_Data= 0x0002; Delay45();// 右轮反转,小车右转45度continue;}if(*P_IOA_Data = 0x0002) //判断右边是否有障碍{*P_IOB_Data= 0x0008; Delay45(); //左轮反转,小车左转45度*P_IOB_Data= 0x0005; Delay90(); //左右轮正转,小车前进*P_IOB_Data= 0x0002; Delay90();// 右轮反转,小车右转90度*P_IOB_Data= 0x0005; Delay90(); //左右轮正转,小车前进*P_IOB_Data= 0x0008; Delay45(); //左轮反转,小车左转45度continue;}if(*P_IOA_Data = 0x0000) //判断前方是否有障碍{*P_IOB_Data= 0x0002; Delay90();// 右轮反转,小车右转90度*P_IOB_Data= 0x0008; Delay90(); //左轮反转,小车左转90度continue;}*P_Watchdog_Clear = 0x0001; //清看门狗}}//========================================================// 语法格式:void Delay45(void)// 实现功能:延时(45度)// 参数:无// 返回值:无//======================================================== void Delay45(void){unsigned int uiCount;for(uiCount = 0;uiCount <= 3000;uiCount++){*P_Watchdog_Clear = 0x0001; //清看门狗}}//========================================================// 语法格式:void Delay90(void)// 实现功能:延时(90度)// 参数:无// 返回值:无//======================================================== void Delay90(void){unsigned int uiCount;for(uiCount = 0;uiCount <= 6000;uiCount++){*P_Watchdog_Clear = 0x0001; //清看门狗}}。
智能小车的避障及路径规划共3篇智能小车的避障及路径规划1智能小车的避障及路径规划在如今的科技时代,人们对自动化技术的需求越来越高。
智能小车作为一种较为常见的自动化技术,一直以来受到人们的关注。
而其中的避障及路径规划技术则是智能小车的核心之一。
所谓智能小车,是指一种具有感知、控制和信息处理能力的机器人小车。
它不仅可以进行自主移动,还可以通过传感器获取周围环境信息,并进行判断和决策,实现避障及路径规划等功能。
下面我们就来详细了解一下智能小车的避障及路径规划技术。
一、避障技术避障技术是智能小车最基本的自主导航功能之一。
它的实现需要借助多种传感器,如超声波传感器、红外传感器、激光雷达等。
这些传感器能够对小车的周围环境进行实时监测,捕捉到环境中所有的物体信息,并将这些信息传递给小车的控制系统。
有了物体信息和控制系统的支持,智能小车就能自主判断和决策,进行避障行动。
具体而言,它可以通过以下方式来实现避障功能:1. 通过超声波传感器探测物品:当小车接近障碍物时,超声波传感器会发出高频声波,然后侦测回响反射距离来确定障碍物的位置和大小。
2. 通过红外传感器检测物品:红外传感器能够监测前方的障碍物,当它检测到物品并且距离过近时,就会向控制系统发送信号,告知小车需要避开当前物品。
3. 通过激光雷达扫描物品:激光雷达可以对物体进行高精度的扫描和测量,判断物体的距离和形状,然后以此来制定小车的避障策略。
综上所述,避障技术是智能小车非常重要的功能之一。
它可以让小车在行驶中避免各种障碍物,保证行驶的安全和稳定性。
二、路径规划技术路径规划是智能小车的另一项核心技术。
它可以通过感知周围环境和收集信息,确定小车前进的最佳道路,实现自主导航的目的。
小车的路径规划技术可以分为静态路径规划和动态路径规划两种方式。
静态路径规划是在预先设定地图的基础上,对路径进行规划。
而动态路径规划则是在小车行驶过程中,不断地检测和采集周围环境的信息,并根据实际情况来制定相应的路径。
可编辑修改精选全文完整版电子科协竞赛项目报告书参赛作品:基于51单片机的智能寻迹避障小车小组成员:盛博专业班级:电信1205班报告提交日期: 2013年 4 月12日目录1设计要求与功能 (3)1.1设计基本要求 (3)2 硬件设计 ................................................. (3)2.1主控系统及所需主要元件 (3)2.2机械系统 (4)2.3电机驱动模块 (5)2.4 循迹模块 (6)2.5避障模块 (6)2.6电源模块 (7)2.7报警模块 (7)2.8远程操控模块 (8)3 软件设计 (8)3.1主程序及框图 (8)3.2电机驱动程序 (9)3.3循迹程序 (9)3.4避障程序 (10)3.5报警及远程操控程序 (10)4调试过程 (11)5总结 (11)附录总C程序 (11)一设计要求与功能设计并制作一个能自动循迹壁障的智能小车。
可沿不规则黑色轨迹行驶,遇到障碍可自动绕行,遇到黑色停止线自动停止,轨迹、通道、障碍现场如图。
1.基本要求(1)小车启动沿着轨迹行驶,遇到终点线停车;(2)小车遇到行驶轨迹范围内的障碍物应自动绕行,脱离轨迹后能自动寻找轨迹并形式到终点。
2.发挥部分(1)增加声、光报警功能,增加无线遥控启动、停止功能;(2)利用Protel或者Alitum Designer等软件进行PCB设计。
二硬件设计2.1主控系统及所需主要元件主控系统由STC89C52单片机负责,通过接收并分析信号模块传输过来的信号对各模块下达指令,使各模块能持续并稳定地共同工作,形成有机的整体,从而实现小车的各种功能。
所需主要元件:STC89C52单片机,减速电机,红外对管等。
各口功能:P0.0-P0.2是红外传感器信号输入口;P0.3-P0.6是四路红外对管信号输入口;P1.0-P1.1是无线信号输入口;P2.0-P2.7是四路减速电机控制信号输出口。
******学院毕业论文题目红外避障小汽车姓名:_ ****** _____ 所在学院:___ 电子工程学院_ 所学专业:___ ******* _______班级 ___ *********** ________学号 _ ******* ______ 指导教师: ****** 完成时间:____ 201*年11月1日本文主要详细介绍了一种以AT89S51这对芯片操作控制的玩具车或模型车。
遥控车由发射机/遥控器和接收机组成,遥控车的控制信号,通过手摇杆上的发射机发出,由装在车上的接收机接收。
所有的编码信号全部通过红外发射接收实现无线遥控。
接收机根据接收到的不同编码信号,通过直流电机驱动电路放大电信号,驱动直流电机,改变车轮的转动方向,执行前进,后退,左转,右转,使其具备智能化。
通过此次实验,加强自己的动手能力,加深对芯片的了解,及红外线遥控的认识。
关键词:AT89S51,编码,红外线遥控AbstractThe vehicle or model having introduced one kind of the toy that this controls with AT89S51 to chip operation mainly detailedly lathes the main body of a book. Remote control vehicle is composed of X-mitter/ remote control implement and receiver, remote control vehicle pilot signal, upper X-mitter makes by hand pole , admit from dress in receiver on vehicle. All code signals all by the fact that infrared go off taking-over realizes wireless remote control. The receiver is based on the code signal receiving the diversity arriving at , enlarge an electric signal , drive a continuous current dynamo by the fact that the continuous current dynamo drives a circuit, change a carriage wheel's turn direction , carr y out make one's way , retreat , turn left , turn right, the person has a messenger intellectualized. And getting to work passing this experiment , reinforcing self the ability, deepens the .know about to the chip, telecontrolled infrared ray cognitionKeywordsAT89S51,Code,Infrared ray remote control1.1 LCD液晶显示器早在19世纪末,奥地利植物学家就发现了液晶,即液态的晶体,也就是说一[1]种物质同时具备了液体的流动性和类似晶体的某种排列特性。
智能避障小车实验报告与总结.doc
"
一、实验目的
本次实验的目的主要是为了开发一款智能避障小车,能够在遇到障碍物的时候自动的
调整小车的行驶线路,从而实现自动避障的功能。
二、实验简介
本次实验是借助Arduino组装智能避障小车,小车拥有机械减速装置和两个安装在小
车前面的发射装置,用来发射超声波信号来检测障碍物,当安装在小车前面的发射装置检
测到障碍物的时候,小车会自动的重新调整走行线路,避免进入发射装置检测到的障碍物。
三、实验流程与原理
1. 硬件接线:
硬件从实验清单上将所需电子元件按照所需顺序连接上Arduino开发板,包括:
发射装置、接收装置、步进电机、电机驱动板和超声波传感器。
2. 编程:
编程采用Arduino IDE,将发射装置发射的超声波信号,接收装置接收的反射信号使用超声波模块采集,并且利用Arduino的程序控制电机驱动板,从而调节小车的行驶方向,最终实现自动避障的功能。
3. 运行实验:
将程序上传到Arduino板上,观察小车的避障功能,当小车行驶到障碍物的时候,小车会自动的重新调整方向,避免进入发射装置检测到的障碍物。
四、实验结果与总结
本次实验,通过无线式避障小车,能够在行驶过程中自动检测到障碍物并调整行驶方
向自动避障,且能排除许多可能发生的外界干扰,满足了自动避障的要求,从而达到了实
验目标。
《智能小车避障系统的设计与实现》篇一一、引言智能小车避障系统作为人工智能在车辆技术上的一个应用,其在当前及未来的技术发展趋势中,显得尤为关键和重要。
这一系统的核心目的是确保小车在未知的环境中可以自动、智能地避障,减少可能的碰撞危险。
本文主要对智能小车避障系统的设计与实现进行了深入的研究和探讨。
二、系统设计1. 硬件设计硬件部分主要包括小车底盘、电机驱动、传感器模块(如超声波传感器、红外传感器等)、微控制器(如Arduino或Raspberry Pi)等。
其中,传感器模块负责检测障碍物,微控制器负责处理传感器数据并控制电机驱动,使小车能够根据环境变化做出反应。
2. 软件设计软件部分主要分为传感器数据处理、路径规划和避障算法三个模块。
传感器数据处理模块负责收集并处理来自传感器模块的数据;路径规划模块根据环境信息和目标位置规划出最优路径;避障算法模块则根据实时数据调整小车的行驶方向和速度,以避免碰撞。
三、系统实现1. 传感器数据处理传感器数据处理是避障系统的关键部分。
我们采用了超声波和红外传感器,这两种传感器都能有效地检测到一定范围内的障碍物。
通过读取传感器的原始数据,我们可以计算出障碍物与小车的距离,进而做出相应的反应。
2. 路径规划路径规划模块使用Dijkstra算法或者A算法进行路径规划。
这两种算法都可以根据已知的地图信息和目标位置,规划出最优的路径。
在小车行驶过程中,根据实时数据和新的环境信息,路径规划模块会实时调整规划出的路径。
3. 避障算法避障算法是智能小车避障系统的核心部分。
我们采用了基于PID(比例-积分-微分)控制的避障算法。
这种算法可以根据障碍物的位置和速度信息,实时调整小车的行驶方向和速度,以避免碰撞。
同时,我们还采用了模糊控制算法进行辅助控制,以提高系统的稳定性和鲁棒性。
四、系统测试与结果分析我们对智能小车避障系统进行了全面的测试,包括在不同环境下的避障测试、不同速度下的避障测试等。
《基于Arduino的智能小车自动避障系统设计与研究》篇一一、引言随着科技的进步和物联网的飞速发展,智能小车已成为现代社会中不可或缺的一部分。
其中,自动避障系统是智能小车的重要功能之一。
本文将详细介绍基于Arduino的智能小车自动避障系统的设计与研究,包括系统架构、硬件设计、软件设计、实验结果及未来展望等方面。
二、系统架构本系统采用Arduino作为主控制器,通过超声波测距模块、红外线传感器等硬件设备实现自动避障功能。
系统架构主要包括传感器模块、Arduino主控制器模块、电机驱动模块以及电源模块。
其中,传感器模块负责检测障碍物距离和位置信息,Arduino 主控制器模块负责数据处理和逻辑控制,电机驱动模块负责驱动小车行驶,电源模块为整个系统提供稳定的工作电压。
三、硬件设计1. 超声波测距模块:本系统采用HC-SR04超声波测距模块,用于检测小车前方障碍物的距离。
该模块具有测量范围广、精度高、抗干扰能力强等优点。
2. 红外线传感器:红外线传感器用于检测小车周围的环境信息,如道路边缘、其他车辆等。
本系统采用反射式红外线传感器,具有灵敏度高、响应速度快等优点。
3. Arduino主控制器:本系统采用Arduino UNO作为主控制器,具有开发便捷、性能稳定等优点。
4. 电机驱动模块:本系统采用L298N电机驱动模块,用于驱动小车的行驶。
该模块具有驱动能力强、控制精度高等优点。
5. 电源模块:本系统采用可充电锂电池作为电源,为整个系统提供稳定的工作电压。
四、软件设计本系统的软件设计主要包括传感器数据采集与处理、路径规划与控制算法实现等方面。
具体设计如下:1. 传感器数据采集与处理:通过Arduino编程语言,实现对超声波测距模块和红外线传感器的数据采集与处理。
将传感器检测到的障碍物距离和位置信息传输至Arduino主控制器,进行数据处理和分析。
2. 路径规划与控制算法实现:根据传感器数据,采用合适的路径规划算法,如基于距离的避障算法、基于角度的避障算法等,实现小车的自动避障功能。
《智能小车避障系统的设计与实现》篇一一、引言智能小车避障系统是一项将先进科技与现实生活相结合的创新性项目,通过采用精确的传感器、有效的算法和可靠的控制系统,小车能够实现自动避障,提高行驶的安全性和效率。
本文将详细介绍智能小车避障系统的设计与实现过程,包括系统架构、硬件设计、软件设计以及实验结果等。
二、系统架构设计智能小车避障系统主要由传感器模块、控制模块和执行模块三部分组成。
传感器模块负责检测周围环境中的障碍物,控制模块根据传感器数据做出决策并控制执行模块的动作。
系统采用模块化设计,便于后期维护和升级。
三、硬件设计1. 传感器模块:传感器模块包括超声波测距传感器和红外线避障传感器。
超声波测距传感器用于测量小车与障碍物之间的距离,红外线避障传感器用于检测障碍物的位置和大小。
这些传感器通过I/O接口与控制模块相连,实时传输数据。
2. 控制模块:控制模块采用高性能的微控制器,负责接收传感器数据、处理数据并做出决策。
此外,控制模块还负责与执行模块进行通信,控制其动作。
3. 执行模块:执行模块包括小车的电机驱动系统和转向系统。
电机驱动系统根据控制模块的指令驱动小车前进、后退、左转或右转;转向系统则根据电机驱动系统的输出进行相应调整,保证小车的稳定行驶。
四、软件设计1. 数据采集与处理:软件首先通过传感器模块采集周围环境中的障碍物数据,然后对数据进行预处理和滤波,以提高数据的准确性和可靠性。
2. 路径规划与决策:根据处理后的数据,软件采用适当的算法进行路径规划和决策。
例如,可以采用基于规则的决策方法或基于机器学习的决策方法。
3. 控制输出:根据决策结果,软件通过控制模块向执行模块发出指令,控制小车的动作。
五、实现过程1. 硬件组装:将传感器模块、控制模块和执行模块进行组装,完成小车的搭建。
2. 软件编程:编写软件程序,实现数据采集、处理、路径规划和决策等功能。
3. 系统调试:对小车进行调试,确保各部分正常工作且能够协同完成避障任务。
小车寻迹避障
作品代码:CX-1-专-C 摘要:本系统主要由MSP430G2553芯片作为小车的检测和控制核心,通过I/O 口输出的脉冲作为舵机的控制信号,同时采用红外传感器检测周边障碍,障碍判断采用高、低电平信号处理,再由MSP430G2553做出判断,实现小车自动避开障碍物、选择正确的行进路线等功能。
驱动方式采用舵机驱动,舵机控制方式采用单向PWM控制,舵机控制核心采用MSP430G2553单片机。
关键词:MSP430G2553;红外避障;寻迹
1系统设计
1.1方案论证与比较
1.1.1避障模块
方案一:采用光敏传感器,利用光敏元件将光信号转换为电信号的传感器,可以准确的判断前方是否有障碍物存在。
方案二:采用反射红外传感器来进行探测。
利用光敏元件将光信号转换为电信号的传感器,只要选择数量和探测距离适合的红外传感器,可以准确的判断前方是否有障碍物存在。
方案选择:采用方案二。
方案一受环境光的影响太大,效果不佳,而红外光不易受到环境光的干扰。
1.1.2驱动模块
方案一:采用舵机驱动,控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
方案二:采用电机驱动,利用L298N作为驱动芯片来实现对电机的控制。
选择方案一。
以上两种方案电路简单,性能稳定,可以轻松实现控制,而且舵机的体积紧凑,输出力矩大,稳定性好,控制简单,精度高。
2硬件电路设计
本系统以MSP430G2553为控制核心,整个硬件框图如图2.1所示:
图2.1 系统硬件图
由于此次设计实现的功能较简单,因此控制系统采用单核系统。
其中主要完成寻迹模块和避障模块的功能。
2.1主控制模块
MSP430系列单片机是美国TI公司的1996年开始推向市场的一种16位的超低耗的混合信号处理器,它被称之为混合信号处理器,主要是由于其针对实际应用的需要,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。
MSP430单片机更适合于低功耗、高速实时控制以及数据计算,它拥有更多的片上资源设计使用。
由于系统需要保证较高精度要求,实现功能简单,因此本设计选择MSP430G2553。
主要完成寻迹模块和避障模块的功能。
2.2寻迹模块
当小车在白色地面行驶时,装在小车上的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线时,红外线信号被黑色吸收后,输出端将输出高电平,从而实现了通过红外线检测信号的功能。
将检测到的信号送到单片机的I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑线吸收了,此时小车处于黑色的引线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。
反射式红外传感器E18-D80NK采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。
检测距离可调整范围为5-25mm,采用非接触检测方式。
封装
在矩形壳体中的是发射器LED贺探测器装置。
虚线表示光线从发射器LED中发出并发射回探测器,探测器检测的光强大小取决于物体表面得发射率,而这一光强就是传感器的输出值。
如果检测到黑线,传感器输出高电平;否则输出为低电平。
为了提高控制精度,要求传感器排列紧密,越紧密越好。
但传感器排列紧密,传感器发射管的光线可能会从地面反射进入临近传感器的接收管,所以不能同时开启这些传感器。
传感器是一条直线安装在小车的最前面,距离地面垂直高度约为1cm。
寻迹电路如图2.2所示:
图2.2 寻迹电路原理图
2.3避障模块
当小车在地面行驶时,安装在小车上的红外传感器红外发射管发射红外线信号,经反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平。
反之,接收管没有接收到信号,输出端将输出高电平,从而实现了红外传感器检测信号的功能。
将检测到的信号送到单片机的I/O 口,当I/O 口检测到的信号为高电平时,表明红外传感器没有检测到信号,此时小车继续往前行驶;同理。
当I/O 口检测到的信号为低电平时,表明红外传感器有检测到信号,此时小车将避开障碍物,直到红外传感器没有检测,I/O 口输出高电平时,小车才继续往前行驶。
反射式红外传感器E18-D80NK采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。
检测障碍物可调整范围为3—50cm,采用非接触检测方式。
当发射器LED检测是否有信号存在时,探测器将对信号作出处理,存在信号,表明前方有障碍物,小车将避开障碍物,反之小车继续前进。
基于E18-D80NK的避障模块电路原理如图2.3所示:
图2.3 避障模块电路原理图
2.4电源模块
电源模块为后续电路提供5V的电压,采用2节锂电池产生7.4V的直流电压,通过LM7805稳压到5V。
为了消除舵机以及单片机和其他电路之间因供电方面带来的相互影响,系统采用了3路稳压电源,分别对舵机、单片机以及其他电路单独供电。
电源模块电路如图2.4所示:
图2.4 电源模块电路原理图
3软件设计
3.1寻迹算法
如果某时刻检测到黑线偏左,就要向左转弯;如果检测黑线偏右,就要向右转弯。
由于小车有惯性,对小车的控制不稳定,容易出轨。
为了克服惯性,除了克服位置信息外,还需要知道轨迹的变化趋势。
利用舵机的反馈控制功能来克服小车前进时带来的惯性。
寻迹算法流程如图3.1所示:
图3.1 寻迹算法流程图
3.2避障算法
本设计基于红外传感器系统,采用红外传感器实现前方障碍物检测,来实现自动检测前方障碍物,并能通过单片机控制舵机实现左、右转弯来避开障碍物。
避障算法流程如图3.2所示:
图3.2 避障算法流程图3.3主程序流程图
主程序流程如图3.3所示:
图3.3 主程序流程图
4结论
本设计采用16位单片机MSP430G2553对舵机进行控制,利用红外检测技术配合软件算法实现了小车自动避障、寻迹行驶。
在系统设计过程中,力求硬件线路简单,充分发挥软件编程,来满足系统设计要求。
小车能够自动探测到前方的障碍物,可以自动寻迹调整,躲避障碍物,从无障碍区通过。
通过本次设计,掌握了很多以前不熟练的东西,认识了很多以前不熟悉的东西,了解到了团队的力量,也感受到了当知识运用于实践的时候是一件多么令人快乐的事情,更加深刻的体会到理论联系实际的重要性。
附录Ⅰ小车寻迹避障使用说明
功能说明:整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。
本系统能实现以下等功能:
(1)在行驶过程中,小车能够自动检测预先设好的轨道,实现直道和弧形轨道的前进,若有偏离,能够自动纠正,返回到预设轨道上。
(2)当小车探测到前进方向有障碍物时,系统可以自动调整,避开障碍物,从无障碍区通过,小车通过障碍区后,能够自动寻找原预设的轨道。
(3)系统自动检测停车线并自动停车。
小车使用:
(1)按下电源开关,进入寻迹精度调整,通过改变寻迹滑动变阻器的大小来调试红外传感器的灵敏度,便于实现原预设功能。
(2)放下小车,等待小车开始运行。
(3)当小车运行一段时间,自动检测到停车线以后,小车自动停止,整个系统随之进入停止状态。
附录Ⅱ系统电路图
附图2.1 系统电路图第11 页共11 页。