欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    自动往返电动小汽车基于stm32.docx

    • 资源ID:10095338       资源大小:290.22KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    自动往返电动小汽车基于stm32.docx

    1、自动往返电动小汽车基于stm32自动往返电动小汽车本设计民用STM32作为自动往返小汽车的检测和控制核心,辅以传感器、控制电路、显示电路等外围器件,构成了一个车载控制系统。路面黑线检测使用反射式红外传感器,利用PWM技术动态控制电动机的转速。基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了小车在限速和压线过程中的精确控制。电动小汽车能够根据题目要求在直线方向上完成调速、急刹车、停车、倒车返回等各种运动形式;这辆小车还可以自动记录、显示一次往返时间和行驶距离,并用蜂鸣器提示返回起点。另外,我们经过MATLAB仿真后,成功地实现了从最高速降至低速的平稳调速。本系统主要采用模糊控制算法

    2、进行速度调节。通过模糊控制和PWM脉宽调制技术的结合,提高了对车位置控制精度,并且实现了恒速控制。关键词:PWM,STM32F103,电机,传感器前 言嵌入式技术依靠其体积小、成本低、功能强等特点,适应了智能化发展的最新要求。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的要求,ARM微处理器资源丰富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7体系的处理器内核。它主要针对MCU领域,在存储系统、中断系统、调试接口等方面做了较大的改进,有别于过去的ARM7处理器;Cortex-M3具有高性能、低功耗、极低成本、稳定等诸多优点,非常适

    3、合汽车电子、工业控制系统、医疗器械、玩具等领域。基于Cortex-M3内核的STM32系列处理器于2007年由ST公司率先推出,它集先进Cortex-M3内核结构、出众创新的外设、良好的功耗和低成本于一体,极大的满足自动控制系统设计要求。作为先进的32位通用微控制器的领跑者,STM32以其出众的性能、丰富且灵活的外设、很高的性价比以及令人意外的功耗水准,使其自面世以来得到众多设计者的青睐,众多行业领导者纷纷选用STM32作为新一代产品的平台。因此将STM32F103应用于智能小车的控制系统是一种较好的选择。基于此,本文提出了一个比较合理的智能小车系统设计方案。整个小车系统以STM32F103芯

    4、片为控制核心,附以外围电路,利用红外探测器、触角传感器采集外界信息和检测障碍物;充分利用STM32F103的串口、并口资源和高速的运算、处理能力,来实现小车自动识别路线按迹行走、躲避障碍物,并且通过LCD显示器实时显示小车运动参数;配置STM32F103通用定时器为PWM输出模式产生PWM波,通过步进调节PWM波占空比参数控制电机的转速。第一章 系统方案论证与分析根据题目中的设计要求,本系统主要由主控单片机模块、电源模块、电机驱动模块、黑线检测模块、测速模块以及液晶显示模块构成。本系统的方框图如下图所示:1、 主控单片机根据题目要求,控制器主要用于控制电机的运动,黑线的检测以及相关信息的显示。

    5、对于控制器的选择主要有以下两种方案: 方案一:采用51系列单片机作为控制器。51系列单片机应用广泛,技术成熟,但是运行速度慢,内部资源较少,且只有2个定时计数器,不满足题目要求。方案二:采用STM32作为控制器。基于Cortex- M3内核的STM32F10x系列芯片是新型的32位嵌入式微处理器,其性能优良,移植性好,提高了对直流电机的控制效率,并对控制系统进行模块化设计,有利于智能小车的功能扩展和升级。综上,我们选用了方案一,采用了STM32,该单片机价格便宜,资源足够。2、 电动机驱动模块方案一:采用达林顿管阵列ULN2003驱动芯片。ULN2003是7通道高电压、大电流驱动器,并联端口可

    6、以加大输出电流,对直流电机具有良好驱动能力。但其结构决定驱动直流电机只能是单方向的,不能驱动直流电机反转,这与题目要求不符。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用双H桥驱动芯片L298。其内部包含4通道逻辑驱动电路,可以方便的驱动两个直流电机,或一个两相步进电机。L298的逻辑电平与51单片机匹配,可以与其直接相连。控制芯片的驱动使能端就可以控制驱动电机的速度。L298对直流电机具有良好的驱动控制能力,故这里选择方案三。3、 路面黑线检测模块选择方

    7、案一:采用发光二极管与光敏电阻,利用光敏电阻的阻值变化来控制信号。由于外界光亮条件不定,一旦光线条件改变很可能造成误判和漏判;虽然采取超高亮发光管可以降低一定的干扰,但这用将增加额外的功率损耗。方案二:采用红外线控制的反射式红外对管。红外对管只对红外线具有较高灵敏度,从而避免了外界光线的干扰;跑道黑带能够吸收红外线,而白色跑道能够反射红外线,从而检测到跑道黑带。方案选择:光敏电阻的易干扰性和红外对管的单一灵敏行决定方案二具有较好控制作用。4、 里程计算与计时模块选择方案一:采用霍尔传感器。该器件内部由三篇霍尔金属板组成,当磁铁正对金属板时,由于霍尔效应,金属板发生横向导通,发出低电平信号。因此

    8、可以在车轮上安装微型磁铁,而将霍尔传感器安装在固定轴上,通过对脉冲的计数进行车速测量。方案二:采用检测黑线的方法,每经过一条黑线就增加相应的里程数,并通过定时器计时。方案选择:相比而言,方案二不需要另外的传感器,计算方便,定时器也很精确,故选择方案二。图2.1 电机控制系统框图由系统框图可看出,小车整个控制系统设计主要包括电机驱动、液晶显示、键盘扩展电路、触角传感电路、红外收发检测电路等模块。整个系统的硬件电路设计原理图见附录,下面分别介绍各部分模块的设计。一、 主要电路设计1、STM32F103及外围电路设计 本设计采用STM32F103为主控芯片,则STM32F103芯片的最小系统设计如图

    9、1.2、1.3所示。图1.2 STM32F103芯片最小系统图图1.3 STM32F103芯片最小系统图续如图1.2、1.3,此部分电路包括系统时钟电路、实时时钟电路、JTAG调试接口电路,复位电路和启动模式选择电路。下面对部分电路设计做简要说明。1时钟电路系统时钟电路选用8MHZ的HSE晶体作为振荡器晶振。如图2.2所示,由R113、Y100(HSE晶振)、C108及C109构成系统时钟电路。HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。实时时钟电路选择LSE时钟模式,如图2.2所示,由Y101(LSE晶振)、C112及C113构成LSE旁路,提供一个32.

    10、768kHz频率的外部时钟源。LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。2启动模式选择电路如图2.3所示,通过BOOT1:0引脚可以选择三种不同启动模式。如下表2-1所示。 表2-1 启动模式启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。此时可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。2、电源电路设计

    11、由于各电路模块所需电压不同,本设计需多种电源供电。STM32F103主控芯片采用3.3V供电,电机驱动采用5V与12V,红外收发检测电路采用5V与3.3V,液晶显示与触角传感电路均采用3.3V供电。外部电源采用12V的直流电压,因此根据设计要求,本设计进行了电源转换设计。1. 采用KA7805芯片实现12V到5V的转换。KA7805的作用是输入大于5V的直流电压,输出5V的直流电压,且管脚较少,易于连接和实现,稳定性高。图2.4为KA7805芯片引脚接线图。图2.4 KA7805引脚接线图2.本设计采用LM1117-3.3芯片将5V转换为3.3V,具体电路设计如图2.5 所示。图2.5 LM1

    12、117-3.3引脚接线图3、电机驱动电路设计STM32F103芯片外部扩展的电机驱动电路采用L298芯片控制,其基本电路图如图2.6。图3.6 电机驱动电路基本电路原理图如图2.6所示,小车运动状态通过电机A和B的不同方向转动来实现,电机有正转、反转和停止三种状态,每个电机由一对I/O口进行控制。表2-2是I/O端口状态与电机制动对照表。表2-2 I/O端口状态与电机制动对照表电机AIN1IN2电机BIN3IN4停止00停止00正转10正转10反转01反转011111L298芯片采用5V(VSS)与12V(VS)直压供电,EN A和EN B分别用STM32F103主控芯片的TIM3_CH3和P

    13、B1/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 语言进行软件编程实现各种算法和逻辑控制1 红外光电检测到的开关信号作为中断源, 送入STM32中断源EXTI_Line0; STM32 再对中断请求做出响应, 并在GPIOB0和GPIOB1口输出控制驱动电路的脉冲和转速; 通过GPIOC0、GPIOC

    15、1、GPIOC4、GPIOC5驱动电路控制直流电机的转向; 显示模块以2.4寸tft为核心, 对记录的结果进行显示.1、 前进(带矫正)子程序void qianjin() while(1) /检测到黑,发光 12外 13内 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) & GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) / 12亮(高电平) 13不亮(低电平) GPIO_SetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1); GPIO_SetBit

    16、s(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(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5); else i

    17、f (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) & !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) / 12亮(低电平) 13不亮(高电平) GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, 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;

    18、 2、 后退(带矫正)子程序void houtui() while(1) /检测到黑,发光 12外 13内 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) & GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) / 12亮(高电平) 13不亮(低电平) GPIO_ResetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_SetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4); e

    19、lse if (!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) & !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) /都亮 GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4); else if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) & !GPIO_ReadInpu

    20、tDataBit(GPIOB,GPIO_Pin_13) / 12亮(低电平) 13不亮(高电平) GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_SetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4); if(flag=12) GPIO_SetBits(GPIOA , GPIO_Pin_4); break; 3、 横线检测并调速程序void EXTI0_IRQHandler(void) if ( EXTI_GetITStatus(

    21、EXTI_Line0) != RESET ) EXTI_ClearITPendingBit(EXTI_Line0); flag+; if(flag=2|flag=4) /|flag=3|flag=4 pulse = 3000; TIM_SetCompare3(TIM3,pulse); TIM_SetCompare4(TIM3,pulse); if(flag=3) /|flag=3 pulse = 2850; TIM_SetCompare3(TIM3,pulse); TIM_SetCompare4(TIM3,pulse); if(flag=5) pulse = 2650; TIM_SetComp

    22、are3(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_SetCompare3(TIM3,pulse); TIM_SetCompare4(TIM3,pulse); if(flag=11|flag=7) pulse = 2850; /2600 TIM_SetCompare3(TIM3,pulse); TIM_SetCompare4(TIM3

    23、,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+(row3),y,*s,fColor,bColor); s+;row+; else ILI9325_PutGB16x16(x+(row3),y,(u8*)

    24、s,fColor,bColor); s+=2;row+=2; 第四章 结论本文根据设计内容和要求,制定了设计方案,并逐步完成了硬件和软件部分的设计。整个系统以STM32为主控芯片,实现对小车简单运动的控制,其中硬件部分包括STM32F103及外围电路、电平转换电路、电机驱动电路、液晶显示电路、红外循迹检测电路、触角传感避障电路、键盘扩展电路,完成各部分电路设计并使用PROTEL画出电路设计原理图;软件部分在STM32集成开发环境IAR EWARM 5.3下编写各模块程序,包括PWM波输出模块、液晶显示模块、键盘扫描模块、自由行走避障模块和红外循迹模块,并通过主控制程序将各模块融合一起。整个设计

    25、将硬件与软件相结合,实现对小车的控制,使小车能够做出前进、后退、左转、右转等动作,并通过液晶显示器实时显示小车的运动参数,同时可通过键盘输入对小车行走模式进行切换及对小车速度进行调节,并且能够在不同模式下通过传感检测电路实现简单的避障和循迹功能。论文基本完成了硬件和软件的设计,并使之符合设计要求。本设计与实际应用相结合,利用高性能的STM32F103芯片,辅以各种传感器来检测路面、障碍物等周围环境,通过高可靠性的软件设计,来实现小型电动车的智能控制,具有很强的现实意义。随着智能控制技术与传感检测技术的飞速发展,作为智能机器人雏形的智能小车在探测、考古、娱乐各领域得到广泛应用,尤其在足球机器人研究方面有很好的发展前景。在智能机器人发展如火如荼之期,智能小车控制系统的研制为其提供了更有利的研制手段和方法,将有助于推动智能机器人的发展。由于初次接触STM32F10x系列芯片,对其先进的中断响应系统未能很好掌握,传感信号的接收选择了一般I/O口,不过基于STM32F103的高性能,其反应速度还是可以满足设计要求,但要充分利用芯片资源及更好的实时控制在这部分还有待改进;另外,对于小车转弯过程的车速未做区别对待,在本次设计中将PWM波占空比控制在1/2以下,使小车不会因速度过高而导致转弯过程中其方向不易控制。总的来说,设计方案是比较完善的,基本上达到了设计要求。


    注意事项

    本文(自动往返电动小汽车基于stm32.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开