版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南科技大学信息与电气工程学院STM32控制自动往返小汽车设计报告 专 业: 电子信息工程 班 级: 二班 姓 名: 曾有根 学 号: 0904030218 指导教师: 罗 朝 辉 自动往返电动小汽车 本设计民用STM32作为自动往返小汽车的检测和控制核心,辅以传感器、控制电路、显示电路等外围器件,构成了一个车载控制系统。路面黑线检测使用反射式红外传感器,利用PWM技术动态控制电动机的转速。基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了小车在限速和压线过程中的精确控制。电动小汽车能够根据题目要求在直线方向上完成调速、急刹车、停车、倒车返回等各种运动形式;这辆小车还可以
2、自动记录、显示一次往返时间和行驶距离,并用蜂鸣器提示返回起点。另外,我们经过MATLAB仿真后,成功地实现了从最高速降至低速的平稳调速。本系统主要采用模糊控制算法进行速度调节。通过模糊控制和PWM脉宽调制技术的结合,提高了对车位置控制精度,并且实现了恒速控制。关键词:PWM,STM32F103,电机,传感器前 言嵌入式技术依靠其体积小、成本低、功能强等特点,适应了智能化发展的最新要求。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的要求,ARM微处理器资源丰富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7体系的处理器内核。它主要针对
3、MCU领域,在存储系统、中断系统、调试接口等方面做了较大的改进,有别于过去的ARM7处理器;Cortex-M3具有高性能、低功耗、极低成本、稳定等诸多优点,非常适合汽车电子、工业控制系统、医疗器械、玩具等领域。基于Cortex-M3内核的STM32系列处理器于2007年由ST公司率先推出,它集先进Cortex-M3内核结构、出众创新的外设、良好的功耗和低成本于一体,极大的满足自动控制系统设计要求。作为先进的32位通用微控制器的领跑者,STM32以其出众的性能、丰富且灵活的外设、很高的性价比以及令人意外的功耗水准,使其自面世以来得到众多设计者的青睐,众多行业领导者纷纷选用STM32作为新一代产品
4、的平台。因此将STM32F103应用于智能小车的控制系统是一种较好的选择。基于此,本文提出了一个比较合理的智能小车系统设计方案。整个小车系统以STM32F103芯片为控制核心,附以外围电路,利用红外探测器、触角传感器采集外界信息和检测障碍物;充分利用STM32F103的串口、并口资源和高速的运算、处理能力,来实现小车自动识别路线按迹行走、躲避障碍物,并且通过LCD显示器实时显示小车运动参数;配置STM32F103通用定时器为PWM输出模式产生PWM波,通过步进调节PWM波占空比参数控制电机的转速。第一章 系统方案论证与分析根据题目中的设计要求,本系统主要由主控单片机模块、电源模块、电机驱动模块
5、、黑线检测模块、测速模块以及液晶显示模块构成。本系统的方框图如下图所示:STM32L298电机驱动芯片黑线检测模块测速模块电源模块TFT显示1、 主控单片机根据题目要求,控制器主要用于控制电机的运动,黑线的检测以及相关信息的显示。对于控制器的选择主要有以下两种方案:方案一:采用51系列单片机作为控制器。51系列单片机应用广泛,技术成熟,但是运行速度慢,内部资源较少,且只有2个定时计数器,不满足题目要求。方案二:采用STM32作为控制器。基于Cortex- M3内核的STM32F10x系列芯片是新型的32位嵌入式微处理器,其性能优良,移植性好,提高了对直流电机的控制效率,并对控制系统进行模块化设
6、计,有利于智能小车的功能扩展和升级。综上,我们选用了方案一,采用了STM32,该单片机价格便宜,资源足够。2、 电动机驱动模块方案一:采用达林顿管阵列ULN2003驱动芯片。ULN2003是7通道高电压、大电流驱动器,并联端口可以加大输出电流,对直流电机具有良好驱动能力。但其结构决定驱动直流电机只能是单方向的,不能驱动直流电机反转,这与题目要求不符。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用双H桥驱动芯片L298。其内部包含4通道逻辑驱动电路,可以方便
7、的驱动两个直流电机,或一个两相步进电机。L298的逻辑电平与51单片机匹配,可以与其直接相连。控制芯片的驱动使能端就可以控制驱动电机的速度。L298对直流电机具有良好的驱动控制能力,故这里选择方案三。3、 路面黑线检测模块选择方案一:采用发光二极管与光敏电阻,利用光敏电阻的阻值变化来控制信号。由于外界光亮条件不定,一旦光线条件改变很可能造成误判和漏判;虽然采取超高亮发光管可以降低一定的干扰,但这用将增加额外的功率损耗。方案二:采用红外线控制的反射式红外对管。红外对管只对红外线具有较高灵敏度,从而避免了外界光线的干扰;跑道黑带能够吸收红外线,而白色跑道能够反射红外线,从而检测到跑道黑带。方案选择
8、:光敏电阻的易干扰性和红外对管的单一灵敏行决定方案二具有较好控制作用。4、 里程计算与计时模块选择方案一:采用霍尔传感器。该器件内部由三篇霍尔金属板组成,当磁铁正对金属板时,由于霍尔效应,金属板发生横向导通,发出低电平信号。因此可以在车轮上安装微型磁铁,而将霍尔传感器安装在固定轴上,通过对脉冲的计数进行车速测量。方案二:采用检测黑线的方法,每经过一条黑线就增加相应的里程数,并通过定时器计时。方案选择:相比而言,方案二不需要另外的传感器,计算方便,定时器也很精确,故选择方案二。图2.1 电机控制系统框图由系统框图可看出,小车整个控制系统设计主要包括电机驱动、液晶显示、键盘扩展电路、触角传感电路、
9、红外收发检测电路等模块。整个系统的硬件电路设计原理图见附录,下面分别介绍各部分模块的设计。一、 主要电路设计1、STM32F103及外围电路设计 本设计采用STM32F103为主控芯片,则STM32F103芯片的最小系统设计如图1.2、1.3所示。图1.2 STM32F103芯片最小系统图图1.3 STM32F103芯片最小系统图续如图1.2、1.3,此部分电路包括系统时钟电路、实时时钟电路、JTAG调试接口电路,复位电路和启动模式选择电路。下面对部分电路设计做简要说明。1时钟电路系统时钟电路选用8MHZ的HSE晶体作为振荡器晶振。如图2.2所示,由R113、Y100(HSE晶振)、C108及
10、C109构成系统时钟电路。HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。实时时钟电路选择LSE时钟模式,如图2.2所示,由Y101(LSE晶振)、C112及C113构成LSE旁路,提供一个32.768kHz频率的外部时钟源。LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。2启动模式选择电路如图2.3所示,通过BOOT1:0引脚可以选择三种不同启动模式。如下表2-1所示。 表2-1 启动模式启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储
11、器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。此时可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。2、电源电路设计由于各电路模块所需电压不同,本设计需多种电源供电。STM32F103主控芯片采用3.3V供电,电机驱动采用5V与12V,红外收发检测电路采用5V与3.3V,液晶显示与触角传感电路均采用3.3V供电。外部电源采用12V的直流电压,因此根据设计要求,本设计进行了电源转换设计。1. 采用KA7805芯片实现12V到5V的转换。KA7805的作用是输入大于5V的直流电压,输出5
12、V的直流电压,且管脚较少,易于连接和实现,稳定性高。图2.4为KA7805芯片引脚接线图。图2.4 KA7805引脚接线图2.本设计采用LM1117-3.3芯片将5V转换为3.3V,具体电路设计如图2.5 所示。图2.5 LM1117-3.3引脚接线图3、电机驱动电路设计STM32F103芯片外部扩展的电机驱动电路采用L298芯片控制,其基本电路图如图2.6。图3.6 电机驱动电路基本电路原理图如图2.6所示,小车运动状态通过电机A和B的不同方向转动来实现,电机有正转、反转和停止三种状态,每个电机由一对I/O口进行控制。表2-2是I/O端口状态与电机制动对照表。表2-2 I/O端口状态与电机制
13、动对照表电机AIN1IN2电机BIN3IN4停止00停止00正转10正转10反转01反转011111L298芯片采用5V(VSS)与12V(VS)直压供电,EN A和EN B分别用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,产生PWM1和PWM2两路PWM波输出,IN1-IN4分别用PE3-PE6实现I/O输出控制电机转动方向。在L298与电机之间加入二极管,以保护电路。4、液晶显示电路设计 液晶显示电路采用2.4寸TFT显示5、 红外探测电路设计采用反射式光电开关来识别轨迹上的黑线标记信号,如图3 所示。这种光电开关的红外发射管和接收管位于同一
14、侧,光敏三极管只能接收反射回的红外光。 当车身下面是黑线时,由于黑线吸收部分光,光敏三极管接收到的红外光不能使光敏三极管导通,光电开关输出高电平,经非门输出低电平。 反之,当车身下面是白色的地面时,红外发射管发射的光经其反射后,被接收管接受,光电开关输出低电平,经非门整形后输出高电平。 将非门的输出接至CPU的INT1输入端.车在前进和后退过程中,小车每过一道黑线,便产生一次中断申请,从而调用相应的子程序,随着小车的不断行驶,相应的程序依次被调用执行,使小车在跑道上按设计要求时快、时慢、时前进、时后退.第三章 小车控制系统软件设计采用单片机STM32为主控制器.采用C 语言进行软件编程实现各种
15、算法和逻辑控制1 红外光电检测到的开关信号作为中断源, 送入STM32中断源EXTI_Line0; STM32 再对中断请求做出响应, 并在GPIOB0和GPIOB1口输出控制驱动电路的脉冲和转速; 通过GPIOC0、GPIOC1、GPIOC4、GPIOC5驱动电路控制直流电机的转向; 显示模块以2.4寸tft为核心, 对记录的结果进行显示.1、 前进(带矫正)子程序void qianjin() while(1) /检测到黑,发光 12外 13内 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && GPIO_ReadInputData
16、Bit(GPIOB,GPIO_Pin_13) / 12亮(高电平) 13不亮(低电平) GPIO_SetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1);GPIO_SetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5);else if (!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) /都亮GPIO_SetBits(GP
17、IOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1);GPIO_ResetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5);else if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)/ 12亮(低电平) 13不亮(高电平)GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC,
18、GPIO_Pin_1);GPIO_SetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5); if(flag=6)/ GPIO_SetBits(GPIOA , GPIO_Pin_4); break; 2、 后退(带矫正)子程序void houtui() while(1) /检测到黑,发光 12外 13内 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) && GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) / 12亮(高电平) 13不亮(低电平
19、)GPIO_ResetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0);GPIO_SetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4);else if (!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) /都亮GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPI
20、O_Pin_0);GPIO_ResetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4);else if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)/ 12亮(低电平) 13不亮(高电平)GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0);GPIO_SetBits(GPIOC, GPIO_Pin_5);
21、GPIO_ResetBits(GPIOC, GPIO_Pin_4); if(flag=12) GPIO_SetBits(GPIOA , GPIO_Pin_4); break; 3、 横线检测并调速程序void EXTI0_IRQHandler(void)if ( EXTI_GetITStatus(EXTI_Line0) != RESET ) EXTI_ClearITPendingBit(EXTI_Line0);flag+;if(flag=2|flag=4) /|flag=3|flag=4 pulse = 3000; TIM_SetCompare3(TIM3,pulse);TIM_SetComp
22、are4(TIM3,pulse);if(flag=3) /|flag=3 pulse = 2850; TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=5) pulse = 2650; TIM_SetCompare3(TIM3,pulse);if(flag=9) pulse = 2900;/2350 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=8|flag=10) /flag=7| pulse = 3000; /2600 TIM_Se
23、tCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=11|flag=7) pulse = 2850; /2600 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=12) pulse = 0; /2600 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);4、 显示子程序void ILI9325_PutString(u16 x, u16 y, u8 *s, u16 fColor, u16 bColor) u8 row=0;while(*s) if( *s < 0x80) ILI9325_PutChar(x+(row<<3),y,*s,fColor,bColor);s+;row+;elseILI9325_PutGB16x16(x+(row<<3),y,(u8*)s,fColor,bColor);s+=2;row+=2;第四章 结论本文根据设计内容和要求,制定了设计方案,并逐步完成了硬件和软件部分的设计。整个系统以STM32为主控芯
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年八年级上学期道德与法治期中模拟试卷(统编版+含答案解析)
- 2024至2030年中国平面皮带输送线带独立工作台行业投资前景及策略咨询研究报告
- 2024至2030年中国充气飞机数据监测研究报告
- 2024至2030年中国PE回力胶发泡鞋材数据监测研究报告
- 2024年中国脉冲布筒滤尘器市场调查研究报告
- 2024年中国汽车十字节市场调查研究报告
- 2024年中国小号立体新流星口杯市场调查研究报告
- 2024年中国可吊式气胀救生筏市场调查研究报告
- 幼儿园教学资源开发计划
- 明确岗位职责与绩效指标设定计划
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- (高清版)JTG 3370.1-2018 公路隧道设计规范 第一册 土建工程
- 教育新篇章:数字化转型
- 湖北省武汉市洪山区武珞路小学2023-2024学年四年级上学期期中测试数学试题
- 2022年度食品安全负责人考试题库(含答案)
- 教师近3年任教学科学生学业水平和综合素质
- 压力弹簧力度计算器及计算公式
- 选矿浮选药剂分类及机理
- 新徐小学课后服务记录表.doc
- 民乐县商务局内部控制制度
- 施工组织课程设计报告(含横道图和平面布置图)
评论
0/150
提交评论