嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计

上传人:枫** 文档编号:543697488 上传时间:2022-09-12 格式:DOC 页数:20 大小:124KB
返回 下载 相关 举报
嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计_第1页
第1页 / 共20页
嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计_第2页
第2页 / 共20页
嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计_第3页
第3页 / 共20页
嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计_第4页
第4页 / 共20页
嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计》由会员分享,可在线阅读,更多相关《嵌入式系统原理课程设计遥控智能小车课程设计毕业毕业设计(20页珍藏版)》请在金锄头文库上搜索。

1、 嵌入式系统原理 课程设计说明书题 目: 遥控智能小车 院 (系): 信息与电气工程学院 专业班级: 通信二班 学生: 周波 学 号: 0904040209 指导教师: 罗朝辉 嵌入式系统原理课程设计任务书一、设计题目遥控智能小车二、设计主要容(1) 广泛查找文献资料,认真研究,反复论证,精心设计技术方案。(2) 较为深入的掌握ARM处理器的体系结构、指令系统、编程方法,初步了解ARM应用系统的软硬件开发方法与手段,较熟练地掌握ARM处理器几种重要的片外设(定时器、PLL、I2C、RTC等)的基本原理与编程方法,初步掌握ARM处理器外围电路的扩展方法。(3) 在现有车模的基础上,以嵌入式ARM

2、微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制;(4) 设计的智能小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。并有相应的声光电设备发出相关的提示或警示信息。(5) 遥控方式可自选,系统通过遥控器可以控制小车的行驶方向、速度、起停等运行状态,要求要达到一定的控制精度、距离与围,小车行驶速度应达到3m/s以上。三、原始资料硬件资源:四驱小车车模、STM32系统板、用于ARM处

3、理器的JTAG仿真器、PC机Pentium100以上。设计指导书:STM32系统板配套光盘四、要求的设计成果(1)在现有车模的基础上,以嵌入式ARM微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制。(2)撰写课程设计说明书,要求简洁、通顺,格式规,设计方案正确,实现技术路线明确,论述容完整、清楚、规,数据、资料真实可靠,软件程序运行良好。(3)要求有完整的电路设计原理图与软件源代码。五、进程安排(1)第 1 天:任务布置与相关

4、知识讲解(2)第2-3天:资料查阅与方案制定(3)第4-8天:硬件设计、程序编制与调试阶段(4)第 9 天:撰写设计报告六、主要参考资料1 田泽. 嵌入式系统开发与应用实验教程. 航空航天工业大学,2005.2 郭荣佐,王霖. 嵌入式系统原理.航空航天大学,.2008.3 周根林.嵌入式系统原理与应用.大学, 2006.4 谭浩强.C语言程序设计(第2版).清华大学,20085 丁峰. ARM系统开发从实践到提高. 中国电力,2007.6 游雨云. 单片机PWM信号控制智能小车的实现方法.技术与市场, 2009,(12)7 袁新娜,余红英,超声波传感器在智能小车避障系统中的应用. 大众商务教育

5、版(民办教育研究),2009,(8)指导教师(签名): 20 年 月 日目 录1. 总体思想12. 电机驱动22.1 简介22.2 具体实现22.3 功能函数设计23 遥控系统63.1 遥控器简介63.2 接收探头与解码73.3 红外控制 74. 超声波 114.1 简介114.2 超声波测距具体实现114.3 超声波程序设计125. 红外寻迹135.1 反射式红外传感器135.2 具体实现方法145.3 寻迹程序设计146. 总结15 / 1.总体思想图 1.1 设计全局图本次课程设计,我们小组采用stm32作为主控芯片,L298N模块作为电机驱动芯片。在小车车头放置三个反射式红外传感器,由

6、于红外光易于被黑线吸收,利用这个原理,来检测黑线,当检测到黑线时,发射出去的红外光被吸收,红外传感器接受不到反射信号,通过输出信号反馈给STM32,产生中断,作出相应的调整,详细介绍见下文第12页。车头部分采用一个US-100超声波模块,用于检测前方障碍物,我们小组设置的安全距离为25cm,当小车与前方障碍之间的距离小于25cm时,小车蜂鸣器报警,stm32控制电机,作出相应的调整。关于超声波工作详情,请见下文第11页。小车尾部安装一枚HS0038红外接收探头,配合一块遥控器,实现遥控小车的功能。我们小组选用的遥控器编码为NEC协议。红外遥控功能详情,请见下文第7页。我们在小车的车身上放置一块

7、3.2寸TFT液晶显示器。用于显示时间,车速。车速通过霍尔元件测得。2.电机驱动2.1简介电机运转需要大电流,而stm32驱动能力达不到电机正常运转的要求,故我们小组采用L298N模块驱动电机,L298N拥有4个输入端口,由stm32直接输入,4个输出端,可以驱动两个直流电机。stm32输出端口的电平变换,可以控制电机的方向。PWM脉宽调制信号,可以控制电机的转速。实现加速减速的功能。2.2 具体实现通过stm32的PA0,PA1,根据TIM2产生的不同占空比的PWM波,控制电机的速度,以与正反转。PA3,PA4控制小车前轮,前轮采用舵机控制,在转向方面,不能大幅度转弯,所以,在小车转弯上,我

8、们采用转一段时间,然后倒退一段距离,然后再转,如此反复几次。通过这种方式实现小车的900C转弯。2.3 功能函数设计1.void Front() GPIOD-BRR = 0X03;GPIOA_Conf(); /配置A端口 GPIOA-BRR = 0x0f;GPIOA-BSRR = 0X01;调用这个函数,实现小车全速向前形式。PD端口的D0,D1位,是控制小车后面两个尾灯。当小车前进时,尾灯关闭。2.void Back() GPIOD-BSRR = 0x03;GPIOA_Conf();GPIOA-BRR = 0x0f;GPIOA-BSRR = 0X02;调用这个函数,实现小车全速后退。同时开启

9、车身后面的尾灯。 3 . void LeftSlideFront() GPIOD-BSRR = 0X01;GPIOD-BRR = 0X02;GPIOA-BRR = 0X04;GPIOA-BSRR = 0X08;Time_Configuration(350,0,500,7199);调用此函数,实现小车前进,左转弯。同时开启尾部左边的尾灯,关闭右边的尾灯。Time_Configuration(350,0,500,7199)为占空比调制函数。通过输入不同的值,改变电机的转速。4.void Time_Configuration(uint16_t CCR1_Val,uint16_t CCR2_Val,u

10、int16_t periodValue,uint16_t PrescalerValue)/*开启TM2定时器时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);/*TIM2定时器复用管脚PA0,PA1,PA2,PA3*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(

11、GPIOA, &GPIO_InitStructure); /*配置定时器时基*/ TIM_TimeBaseStructure.TIM_Period = periodValue; TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /*配置

12、定时器各通道情况*/ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR1_Val; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM2, TIM_OCPre

13、load_Enable); TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR2_Val; TIM_OC2Init(TIM2, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM2, ENABLE); TIM_Cmd(TIM2, ENABLE);PWM脉宽调制波形输出,是stm32定时器功能的一大亮点,以往8位

14、单片机输出PWM波形,均为模拟,或者借助外围芯片,而stm32部定时器,实现了精确的PWM波形直接输出。上面功能函数,为TIM2定时器的配置情况。我在使用时,开启了TIM2定时器的通道1和通道2。分别为PA0,PA1,这两个端口控制小车的后轮电机。由于前轮为舵机。所以,没有采用PWM波形。而是直接给高低电平调整小车的方向。stm32定时器采用预分频处理,即将系统时钟分频后给定时器,这个预分频值,由传入的参数PrescalerValue决定。系统时钟为72MHz,设分频后的频率为F,则:F = 72MHz/(PrescalerValue+1)定时器的计数周期为传入参数periodValue的值决定。PWM占空比值由传入参数CCR1_Val和CCR2_Val决定,分别控制PA0,PA1的占空比值。占空比 = CCR1_Val/periodValue。4.void LeftSlideBehind() GPIOD-BSRR = 0X01;GPIOD-BRR = 0X02;GPIOA-BRR = 0X

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

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