您好,欢迎访问三七文档
XI`ANTECHNOLOGICALUNIVERSITY课程设计报告课程名称嵌入式综合课程设计专业:计算机科学与技术班级:120603姓名:王佳斌学号:120603112指导教师:赵世峰成绩:2015年12月10日西安工业大学课程设计(论文)用纸第页1目录一、设计任务与要求........................................2二、系统方案设计........................................2三、各模块功能与指标......................................5四、实施原理及软件实现....................................7五、调试与结果............................................11六、心得体会..............................................12西安工业大学课程设计(论文)用纸第页2一、设计任务与要求1、设计任务以ARM系列的单片机作为控制芯片,以直流电机、电机驱动、循迹模块和超声波避障模块及电源电路以及其他电路组成。系统以单片机通过I/O口,通过红外传感器检测黑线,利用单片机输出的PWM脉冲来控制直流电机的转速,即控制小车的行驶速度;并且利用超声波避障模块来使小车能够进行自动避障功能,能够较为准确地避开行驶过程中的障碍物。2、设计要求整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能:(1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。(2)当小车探测到前进前方的障碍物时,可以自动调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹二、系统方案设计1、硬件选取在硬件选取时,分为以下几个模块:(1)处理器智能小车常见的处理器有C51、C52以及ARM系列单片机。经过查阅资料和对比分析,最终选取ARM中的STM32系列单片机作为处理器。主要是基于其性价比高、配置丰富灵活、低功耗,并且搭载ARM公司最新的、具有先进架构的Cortex-M3内核等优点。西安工业大学课程设计(论文)用纸第页3(2)避障模块常见的避障模块主要是超声波模块和红外模块,考虑到两种模块都有一定的限制性和约束条件,最终选择将其搭配使用,以降低由于超声波和红外自身不足而造成的距离计算误差,使小车能够获得较为精确的障碍物的位置,实现准确避障。最终选定HC-SR04+超声波模块和LY-R0001红外避障模块。(3)电机驱动模块电机驱动中常见的芯片是L298N,其主要特点是能提供4路最大2A的电流输出,供电电压0-24V,并能提供5V输出给MCU供电,支持PWM调速,单芯片最大输出25W,性价比高等。考虑到让小车高速稳定前进,能够实现四驱功能,最终选定双L298N驱动模块,这样既能够节省车体空间,也有利于控制和走线。(4)电机由于小车的速度调解是作为避障和路径规划的一个关键点,在选取电机上能够自带测速的电机自然成为了首选。经过对比考量后,最终选择ASLONGJGA25-371电机,主要利用其可测速、测转角的功能,以提高小车避障时的精度。(上述模块详细资料见附表)(5)编程语言及环境常用的arm处理器的编程语言有汇编语言和c语言,但是汇编语言在编程时稍显复杂,并且是直接操作寄存器,对初学者来说,相对较难,因此编程语言我选择的是C语言。编程环境也有很多种,在51单片机学习的基础上,我决定使用keil环境来编程,这个环境使用方便,并且可以在线调试。2、硬件结构布局和配置小车的硬件布局显得尤为关键。经过深思熟虑,决定将避障模块放在车体头部,这样能够有效地检测的小车前方的障碍物,同时,ARM开发板作为整个小车系统的核心,则放在车体中间位置,这样便于控制每一个硬件模块。电机驱动作为供电枢纽,完成所有模块的供电,最主要的是对四个车轮的电机供给电压,其自然得安装在车体前身,这样方便电源线、ARM开发板,以及电机连接。红外循迹模块则置放与两个超声波模块的中间部位,智能小车要实现循迹,那么询及模块必须置放与小车的前轮之前,这样才能准确的探测黑线并且能够保证智能小车能够沿着黑线行驶。详细的硬件布局如:图2-2-1。西安工业大学课程设计(论文)用纸第页4图2-2-1小车硬件布局(1)管脚配置已知电机驱动有8个输入管脚IN1-IN8、8个输出OUT1-OUT8以及4个使能ENA-END。硬件连接通过配置ARM开发板的管脚,分别连接IN1-IN8。其中每两个IN口代表对一个电机进行驱动,如IN1、IN2对应左前方电机输入信号,IN3、IN4对应左后方电机输入信号等。当电机驱动得到电信号后,要通过相应的管脚输出信号,从而实现对电机的控制。那么OUT1-OUT7就代表电动机的输出信号,即将这几个管脚分别连接到电动机的引脚上。其中OUT1、OUT2对应左前方电机,OUT3、OUT4对应左后方电机,OUT5、OUT6对应右前方电机,OUT7、OUT8对应有后方电机。(2)软件实现软件实现主要是根据电机不同的运转情况,通过对ARM引脚的配置来控制电机驱动IN口电平的高低,进而实现ARM对电机运转的控制。并根据电机驱动对于IN口不同所实现的电机运转状态的变化来编写小车的直行、左拐、右拐、左后倒、右后倒等不同情况下的代码。代码编写完成并通过软件仿真验证后通过JLINK仿真器将代码烧入片子中,然后查看小车运转情况。(3)智能车处理器智能车的处理器,采用的是STM32F103VE的开发板,这个开发板管脚较多,并且配置灵活,也容易上手,掌握基本配置后,就能够进行试验。在此之前,也在KEIL4的编程环境下练习了许多的基础实验,为这次的课程设计积累了不少的经验。如图2-2-2,是STM32F103VE开发板的管脚图。西安工业大学课程设计(论文)用纸第页5图2-2-2STM32F103VE管脚图接线方式:电源处由电机驱动给ARM单片机供5V电源、;PD0—PD7接电机驱动的IN1—IN8;PE11:接小车右边的超声波避障模块的Echo;PE12:接小车右边的超声波避障模块的Trig;PE13:接小车右边的超声波避障模块的Echo;PE14:接小车右边的超声波避障模块的Trig;PC0:接小车正前方红外循迹模块的OUT;三、各模块功能与指标1、电源模块系统利用蓄电池提供12V直流电源,实现电机稳定的12V直流稳压电,为单片机以及其他各模块以及无线传输电路提供电源。西安工业大学课程设计(论文)用纸第页62、电机驱动模块电机驱动中常见的芯片是L298N,能提供4路最大2A的电流输出,供电电压0-24V,并能提供5V输出给MCU供电,支持PWM调速,单芯片最大输出25W,能够让小车高速稳定前进,能够实现四驱功能,能够节省车体空间,也有利于控制和走线。3、减速电机模块电机采用的是ASLONGJGA25-371减速电机,该电机带编码器测速码盘马达,能够快速的启动、制动和反转。所带编码器的保证了测速的精度,芯片上已经继承了脉冲整形出发电路,输出的是矩形波,输出的波形十分稳定。该电机能够精确到1.4。,因此能够准确的计算车前进的速度。各线的含义为:红线为电机电源的正极,黑色线为电机电源的负极,绿色线为传感器的地线,蓝色线为传感器的电源线,黄色和白色线分别为信号A和B的输出点。各项参数:工作电压:6-24VDC,额定电压:12V4、避障模块避障模块采用的是超声波避障模块和红外避障模块相结合的方式,以此来避免由于超声波测量盲区过大,红外易受光线干扰而产生误差。超声波避障模块采用的是HC-SR04+。可准确的检测到小车左前方和右前方的障碍物并且做出相应的避障措施,使小车能够实现自动避障功能。如图,3-4-1是超声波避障模块实物图。图3-4-1超声波模块5、循迹模块红外循迹模块采用的是DOFLYLY-0040,用于小车走黑线、数字信号输出,感应范围为2mm——20mm。利用循迹功能,能够使智能车在不同的固定行驶路线西安工业大学课程设计(论文)用纸第页7上行驶。四、实施原理及软件实现1、自动避障技术(1)实施原理自动避障模块采用的是两个超声波模块和一个红外模块。我们采用的是一个红外避障模块,放在小车的正前方,在其两侧采用的是两个超声波避障模块。这样就能探测小车前方的较大范围内的障碍物,并能够准确的采取相应的避障措施,实现自动避障功能,保证无人车能无碰撞的行驶。图4-1-1超声波时序图图4-1-2硬件分布图4-1-3超声波避障原理演示如图4-1-2,是智能小车超声波模块在智能车上的位置布局图,图4-1-3是超声波避障原理的简单演示图,超声波的工作原理大致为:超声波模块的触发西安工业大学课程设计(论文)用纸第页8信号(Trig端)发出一个40—50us的高电平,这时模块内部循环发出8个40Khz脉冲。接收到信号时,接收端(Echo)产生一个高电平,高电平的持续时间即为超声波发出信号到接收信号的持续时间。通过公式测试距离=高电平持续时间*340/2单位为米。(2)超声波避障的配置代码voidTIM_Configuration(void)//超声波定时器配置{TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);TIM_DeInit(TIM3);TIM_TimeBaseStructure.TIM_Period=5000;TIM_TimeBaseStructure.TIM_Prescaler=0;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);TIM_PrescalerConfig(TIM3,359,TIM_PSCReloadMode_Immediate);TIM_ARRPreloadConfig(TIM3,DISABLE);TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);TIM_Cmd(TIM3,DISABLE);}voidGPIO_Configuration(void)//超声波控制端口配置{GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);/*Echopindefine*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOE,&GPIO_InitStructure);/*Triglepindefine*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;西安工业大学课程设计(论文)用纸第页9GPIO_Init(GPIOE,&GPIO_InitStructure);}floatSensor_using(void)//传感器的使用函数{floatdistance=0;u16TIM=0;GPIO_SetBits(GPIOE,GPIO_Pin_12);//trig端接受维持大约10us的高电平触发delay();GPIO_ResetBits(GPIOE,GPIO_Pin_12);TIM_
本文标题:王佳斌课设
链接地址:https://www.777doc.com/doc-2222937 .html