遥控智能小车课程设计教学内容.docx
- 文档编号:746626
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:20
- 大小:85.38KB
遥控智能小车课程设计教学内容.docx
《遥控智能小车课程设计教学内容.docx》由会员分享,可在线阅读,更多相关《遥控智能小车课程设计教学内容.docx(20页珍藏版)》请在冰豆网上搜索。
遥控智能小车课程设计教学内容
遥控智能小车(课程设计)
《嵌入式系统原理》
课程设计说明书
题目:
遥控智能小车
院(系):
计算机与电子系
专业班级:
电子科学与技术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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遥控 智能 小车 课程设计 教学内容