自动识别路径小车

上传人:壹****1 文档编号:457552031 上传时间:2024-01-13 格式:DOC 页数:10 大小:76KB
返回 下载 相关 举报
自动识别路径小车_第1页
第1页 / 共10页
自动识别路径小车_第2页
第2页 / 共10页
自动识别路径小车_第3页
第3页 / 共10页
自动识别路径小车_第4页
第4页 / 共10页
自动识别路径小车_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《自动识别路径小车》由会员分享,可在线阅读,更多相关《自动识别路径小车(10页珍藏版)》请在金锄头文库上搜索。

1、自动识别路径的智能小车设计报告来源:kaoshi365 作者:kaoshi365 日期:2009年11月12日 访问次数: 625次 论文关键字:智能小车电机驱动L298自动循迹传感器算法论文摘要:本系统采用存储空间较大的AT89S52作为主控制芯片,电动车电机驱动采用L298N芯片,结合DS10C4光电开关控制电动小汽车的自动寻路,快慢速行驶和转向,三者的结合使小车更加智能化,自动化。整个系统在设计中注意低功耗处理和力求高性价比等细节,电路结构简单,可靠性能高,无论在结构和技术上都具有较好的科学性。本设计主要特点:1. 高效的L298电机驱动电路,提高电源利用率。2利用软件实现PWM调速的方

2、法。代替了专用集成芯片电路、通用数字组合电路、分立元器件组成电路、单片机系统控制电路、CPLD系统等。一、模块方案比较与论证:1. 车体设计 方案一:购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮。由于装配紧凑,使得各种所需电路的安装十分方便,看起来也比较美观。但玩具电动车一般都价格昂贵。方案二:自己制作电动车。一般的说来,自己制作的车体比较粗糙,对于白色基板上的道路面行驶,车身重量以及平衡都要有精确的测量,而且也要控制好小车行驶的路线和转弯的力矩及角度,这些都比较难良好地实现。依靠电机与相关齿轮一起驱动,能适应题目中小车准确前进、后退、转弯的要求,基于以上分析,我们选择了方案二2电机

3、模块方案1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。方案 2:直流电机:直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。基于以上分析

4、,我们选择了方案二,使用直流电机作为电动车的驱动电机。3电机驱动模块方案 1:采用SM6135W电机遥控驱动模块。SM6135W是专为遥控车设计的大规模集成电路。能实现前进、后退、向右、向左、加速五个功能,但是其采用的是编码输入控制,而不是电平控制,这样在程序中实现比较麻烦,而且该电机模块价格比较高。方案 2:采用电机驱动芯片L298N。L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照上表,用程序输入对应的码值,能够

5、实现对应的动作。表1是其使能、输入引脚和输出引脚的逻辑关系。 表1 L298N的引脚和输出引脚的逻辑关系EN A(B)IN1(IN3)IN2(IN4)电机运行情况HHL正转HLH反转H同IN2(IN4)同IN2(IN4)快速停止LXX停止基于以上分析,我们选择了方案二,用L298N来做为电机的驱动芯片。4寻迹传感器模块方案1:采用发光二极管+光敏电阻,该方案缺点:易受到外界光源的干扰,有时甚至检测不到黑线,主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况均对检测效果产生直接影响。克服此缺点的方法:采用超高亮度的发光二极管能降低一定的干扰,但这又会增加检测系统的功耗。方案2:脉冲调

6、制的反射式红外发射接收器。由于采用带有交流分量的调制信号,则可大幅度减少外界的干扰;此外红外发射接收管的工作电流取决于平均电流,如果采用占空比小的调制信号,在平均电流不变的情况下,瞬时电流很大(50100mA)(ST-188允许的最大输入电流为50mA),则大大提高了信噪比。此种测试方案反应速度大约在5us。方案3:采用CCD传感器,此种方法虽然能对路面信息进行准确完备的反应,但它存在信息处理满,实时性差等缺点,因此若采用CCD传感器,无疑会加重单片机的处理负担,不利于实现更好的控制策略。根据以上分析我们采用方案25控制器模块方案1:采用凌阳的SPCE061A小板作为主控制芯片,而且可以采用凌

7、阳的小车模组,可以很快的完成其基本功能,当是用该小板存在在一定的局限性,较难扩张功能,而且各个模块的拼凑,没有比集成在一块板的稳定性高。方案2:采用AT89S52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载程序,能够满足该系统软件的需要,该芯片提供了两个计数器中断,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性。基于以上分析,我们选择了方案2二,采用AT89S52作为电动车的主控制芯片。 6电源模块在本系统中,需要用到的电源有单片机的5V,L298N芯片的电源5V和电机的电源715V。所以需要对电源的提供必须正确和

8、稳定可靠。方案1:用9V的锌电源给前、后轮电机供电,然后使用7805稳压管来把高电压稳成5V分别给单片机和电机驱动芯片供电。这种接法比较简单,但小车的电路功耗过大会导致后轮电机动力不足。方案2:采用双电源。为了确保单片机控制部分和后轮电机驱动的部分的电压不会互相影响,要把单片机的供电和驱动电路分开来,即:用6节干电池7.2V来驱动电机芯片,然后用7805稳压管来稳成5V供给单片机,后轮电机的电源用3V供电,这样有助于消除电机干扰,提高系统的稳定性。基于以上分析,我们选择了方案二。7最终方案二、系统总体设计:1.系统工作原理及功能简介:本系统利用单片机AT89S52单片机作为本系统的主控模块,该

9、单片机可以将从传感器的输出信号得到外界的信息,然后在程序中控制单片机对电动车上的直流电机的输出,从而实现电动车的前进以及转弯等循迹行驶。2.系统框架图3.理论分析与计算4.系统主要模块设计: (1)电源:为确保小车在行驶过程中各部件均能正常工作且相互之间不受影响,我们可使用了两个电源为两个主要模块提供电压。分别是由转弯电机、单片机和光电传感器组成的总电路电源模块以及后轮驱动电源模块。(2)转弯与路径出错识别:小车在行驶过程中会遇到以下两种路况: 当小车由直道高速进入弯道时,转角方向和车速应根据弯道的曲率迅速做出相应的改变,原则是弯道曲率越大则方向变化角度越大。 当小车遇到十字交叉路段或是脱离轨

10、迹等特殊情况时,智能车应当保持与上次正常情况一致的方向行驶。(3)光电传感器:光电传感分布格局:路径识别方案:电开关脱离轨道时,等待外面任意一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,虽然小车在寻迹过程中有一定的左右摇摆。但只要控制好行驶速度就可保证车身基本上接近于沿靠轨道行驶。四、系统硬件电路设计(1)系统整体电路图如下:(2)光电传感器电路(3)电源电路五、软件代码设计1软件算法设计:(1)传感器数据处理及寻迹程序总体流程:主程序主要起到一个导向和决策功能。其设计思路根据小车所处位置的不同,确定小车的任务。在黑线轨道上走

11、直线时,对传感器的信号进行及时的判断,左边信号为零时控制电机左转,右边为零时控制电机右转。在弯道时,为了不冲出轨道,是左轮一直打偏,直到检测到右边信号为零时控制电机右转,当右信号为1时,继续使左轮一直偏。(2)具体流程分析:智能小车采用4个光学传感器置于小车前部,以此判断如何控制舵机转向.程序不停判断03传感器的值,当SENSOR1=1与SENSOR0=0时,小车为图(I)情况,此时应控制舵机向右转,调用TurnRight()函数;当SENSOR0=1与SENSOR1=0时,小车为图(II)情况,此时应控制舵机向右转,调用TurnLeft()函数. (I) (II)但由于传感器比较灵敏,经实际

12、测试,白色区域中可能存在杂色,传感器有可能扫描到白色区域中的黑色(如下图),为了避免判断错误,再没检测到需要转右或者转左后,进行延时,接着再次判断此时传感器情况,如果仍然为SENSOR1=1与SENSOR0=0(或者SENSOR0=1与SENSOR1=0)则可能判断在黑色跑道上,接着调用转右(转左)函数.不过,仍然有一定几率判断失误,当延时后,传感器刚好经过另一个杂色的情况,解决方法有待完善. 当前后传感器都为1(黑)时(如下图(III),则认为小车在黑色跑道上,不需要进行转向,调RecoverBalance()函数,恢复平衡位置.当前后传感器都为0(白)时(如下图(IV),则认为传感器将离开

13、跑道范围,为了另小车继续延黑色跑道行走,程序中的pre_dir变量保存最近一次转向方向(1为右,0为左),此时凭此变量来维持小车的转向.2.主程序流程图:3.具体代码分析:/宏定义电机、舵机的输入端#define ELE_MACHINER1_IN1 P0_0/舵机输入端口1#define ELE_MACHINER1_IN2 P0_1/舵机输入端口2#define ELE_MACHINER1_EN P2_7/舵机使能端/宏定义光电传感器元件0至3#define SENSOR_INPUT P2 /光电传感器总端口(逆时针排序)#define SENSOR0 P3_0 /前传感器0#define S

14、ENSOR1 P3_1 /右传感器1#define SENSOR2 P3_2 /左传感器2#define SENSOR3 P3_3 /后传感器3/*平衡函数*/void RecoverBalance() ELE_MACHINER1_IN1 = 0;/控制舵机平衡 ELE_MACHINER1_IN2 = 0;/*转左函数*/void TurnLeft() char i = 50; while(i-) ELE_MACHINER1_IN1 = 1;/控制舵机左转 ELE_MACHINER1_IN2 = 0; /*转左函数*/void TurnRight() char i = 50; while(i-) ELE_MACHINER1_IN1 = 0;/控制舵机右转 ELE_MACHINER1_IN2 = 1; /*主函数*/void main(void) uchar pre_dir=0; /保存先前转向 1为右,0为左 system_initial(); /系统开机初始化 ELE_MACHINER1_IN1=0; /舵机输入端口1 ELE_MAC

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号