遥控智能小车课程设计教学内容.docx

上传人:b****1 文档编号:746626 上传时间:2022-10-12 格式:DOCX 页数:20 大小:85.38KB
下载 相关 举报
遥控智能小车课程设计教学内容.docx_第1页
第1页 / 共20页
遥控智能小车课程设计教学内容.docx_第2页
第2页 / 共20页
遥控智能小车课程设计教学内容.docx_第3页
第3页 / 共20页
遥控智能小车课程设计教学内容.docx_第4页
第4页 / 共20页
遥控智能小车课程设计教学内容.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

遥控智能小车课程设计教学内容.docx

《遥控智能小车课程设计教学内容.docx》由会员分享,可在线阅读,更多相关《遥控智能小车课程设计教学内容.docx(20页珍藏版)》请在冰豆网上搜索。

遥控智能小车课程设计教学内容.docx

遥控智能小车课程设计教学内容

 

遥控智能小车(课程设计)

 

《嵌入式系统原理》

课程设计说明书

 

题目:

遥控智能小车

院(系):

计算机与电子系

专业班级:

电子科学与技术0902班

*******

学号:

***********

*******

 

2011年12月30日至2012年1月13日

 

华中科技大学武昌分校制

嵌入式系统原理课程设计任务书

一、设计题目

遥控智能小车

二、设计主要内容

(1)广泛查找文献资料,认真研究,反复论证,精心设计技术方案。

(2)严格遵守各项纪律,勤奋学习,认真思考,敢于挑战困难并勇于创新。

(3)较为深入的掌握ARM处理器的体系结构、指令系统、编程方法,初步了解ARM应用系统的软硬件开发方法及手段,较熟练地掌握ARM处理器几种重要的片内外设(定时器、PLL、I2C、RTC等)的基本原理及编程方法,初步掌握ARM处理器外围电路的扩展方法。

(4)在现有车模的基础上,以嵌入式ARM微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制;

(5)设计的智能小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。

并有相应的声光电设备发出相关的提示或警示信息。

(6)遥控方式可自选,系统通过遥控器可以控制小车的行驶方向、速度、起停等运行状态,要求要达到一定的控制精度、距离及范围,小车行驶速度应达到3m/s以上。

(7)分析结果,独立撰写设计总结报告陈述自己的观点,格式应严格遵守学校规范。

内容尽量翔实,其中必须要有自己独立的见解和认识。

三、原始资料

硬件资源:

四驱小车车模、STM32系统板、用于ARM处理器的JTAG仿真器、PC机Pentium100以上。

设计指导书:

STM32系统板配套光盘

四、要求的设计成果

(1)在现有车模的基础上,以嵌入式ARM微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制。

(2)撰写课程设计说明书,要求简洁、通顺,格式规范,设计方案正确,实现技术路线明确,论述内容完整、清楚、规范,数据、资料真实可靠,软件程序运行良好。

(3)要求有完整的电路设计原理图及软件源代码。

五、进程安排

(1)第1天:

任务布置及相关知识讲解

(2)第2-3天:

资料查阅与方案制定

(3)第4-8天:

硬件设计、程序编制与调试阶段

(4)第9天:

撰写设计报告

(5)第10天:

答辩与考核阶段

六、主要参考资料

[1]田泽.嵌入式系统开发与应用实验教程.北京航空航天工业大学出版社,2005.

[2]郭荣佐,王霖.《嵌入式系统原理》.北京航空航天大学出版社,.2008.

[3]周根林.嵌入式系统原理与应用.南京大学出版社,2006.

[4]谭浩强.C语言程序设计(第2版).清华大学出版社,2008

[5]丁峰.ARM系统开发——从实践到提高.中国电力出版社,2007.

[6]游雨云.单片机PWM信号控制智能小车的实现方法.技术与市场,2009,(12)

[7]袁新娜,余红英,超声波传感器在智能小车避障系统中的应用.大众商务教育版(民办教育研究),2009,(8)

指导教师(签名):

 

20年月日

 

1.总体思想1

2.电机驱动2

2.1简介2

2.2具体实现2

2.3功能函数设计2

3.遥控系统7

3.1遥控器简介7

3.2接收探头与解码7

3.3红外控制8

4.超声波12

4.1简介12

4.2超声波测距具体实现12

4.3超声波程序设计12

5.红外寻迹14

5.1反射式红外传感器14

5.2具体实现方法14

5.3寻迹程序设计15

6.总结17

 

1.总体思想

图1.1设计全局图

本次课程设计,我们小组采用stm32作为主控芯片,L298N模块作为电机驱动芯片。

在小车车头放置三个反射式红外传感器,由于红外光易于被黑线吸收,利用这个原理,来检测黑线,当检测到黑线时,发射出去的红外光被吸收,红外传感器接受不到反射信号,通过输出信号反馈给STM32,产生中断,作出相应的调整,详细介绍见下文第12页。

车头部分采用一个US-100超声波模块,用于检测前方障碍物,我们小组设置的安全距离为25cm,当小车与前方障碍之间的距离小于25cm时,小车蜂鸣器报警,stm32控制电机,作出相应的调整。

关于超声波工作详情,请见下文第11页。

小车尾部安装一枚HS0038红外接收探头,配合一块遥控器,实现遥控小车的功能。

我们小组选用的遥控器编码为NEC协议。

红外遥控功能详情,请见下文第7页。

我们在小车的车身上放置一块3.2寸TFT液晶显示器。

用于显示时间,车速。

车速通过霍尔元件测得。

 

2.电机驱动

2.1简介

电机运转需要大电流,而stm32驱动能力达不到电机正常运转的要求,故我们小组采用L298N模块驱动电机,L298N拥有4个输入端口,由stm32直接输入,4个输出端,可以驱动两个直流电机。

stm32输出端口的电平变换,可以控制电机的方向。

PWM脉宽调制信号,可以控制电机的转速。

实现加速减速的功能。

2.2具体实现

通过stm32的PA0,PA1,根据TIM2产生的不同占空比的PWM波,控制电机的速度,以及正反转。

PA3,PA4控制小车前轮,前轮采用舵机控制,在转向方面,不能大幅度转弯,所以,在小车转弯上,我们采用转一段时间,然后倒退一段距离,然后再转,如此反复几次。

通过这种方式实现小车的900C转弯。

2.3功能函数设计

1.voidFront()

{

GPIOD->BRR=0X03;

GPIOA_Conf();//配置A端口

GPIOA->BRR=0x0f;

GPIOA->BSRR=0X01;

}

调用这个函数,实现小车全速向前形式。

PD端口的D0,D1位,是控制小车后面两个尾灯。

当小车前进时,尾灯关闭。

2.voidBack()

{

GPIOD->BSRR=0x03;

GPIOA_Conf();

GPIOA->BRR=0x0f;

GPIOA->BSRR=0X02;

}

调用这个函数,实现小车全速后退。

同时开启车身后面的尾灯。

3.voidLeftSlideFront()

{

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.voidTime_Configuration(uint16_tCCR1_Val,uint16_tCCR2_Val,uint16_tperiodValue,uint16_tPrescalerValue)

{

/*开启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(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);

/*配置定时器各通道情况*/

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_OCPreload_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位单片机输出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.voidLeftSlideBehind()

{

GPIOD->BSRR=0X01;

GPIOD->BRR=0X02;

GPIOA->BRR=0X04;

GPIOA->BSRR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1