西北农林科技大学智能小车实习总结(完整版) - 图文

发布时间 : 星期三 文章西北农林科技大学智能小车实习总结(完整版) - 图文更新完毕开始阅读

} else

if(Left_2_led==0&&Right_1_led==1)

{

backrun(); delay(500); rightrun(); delay(500); } else

if(Right_1_led==0&&Left_2_led==1)

{

backrun(); delay(500); leftrun(); delay(500); } else { run(); }

if(Im[2]==0x16) {

stoprun(); goto loop;

break;

case 0x1a:backrun();

break;

case

0x0a:leftrun();delay(5);stoprun();delay(2);

case

0x1e:rightrun();delay(5);stoprun();delay(2);

{

break;

case 0x05:stoprun();

break;

break;

case 0x16:

stoprun(); goto loop; } } }break;

case 0x19:

{

}}} break; case 0x1b:

{

delay(100); run(); while(1) {

if(Left_2_led==0&&Right_1_l

ed==0)

{ run();

delay(100); lowrun(); while(1)

{ if(Left_1_led==1&&Right_

2_led ==0)

{

- 26 -

backrun(); delay(90); rightrun(); delay(90); } else

if(Left_1_led==0&&Right_2_led ==1)

{

backrun(); delay(90); leftrun();

delay(90); } else

{ lowrun();} if(Im[2]==0x16) {

stoprun(); goto loop; } }break;} }}}}

②程序解释:系统整体设计流程图如图2-1所示。

图2-6 系统整体设计流程图

- 27 -

2.4直流小车小结

2.4.1思考题

①绘制直流小车的控制电路和直流电机的供电电路。

②直流小车如何前进、后退、左转、右转、匀加速、匀减速?能不能设计一个程序,让小车匀加速或匀减速转弯,或者均匀加速,匀减速到转弯。

前进时小车左轮逆时针转,右轮顺时针转。后退时刚好相反。左转时,左轮顺时针转,右轮顺时针转。右转时刚好相反。

匀加速或匀减速时可以通过改变PWM波的占空比进行调速,其核心代码如下: 匀减速,最后匀速 {

P2 = 0;

delay(t); P2 = 0xff; if(t>=90) }

t=90;

匀加速最后匀速 {

P2 = 0; delay(t); P2 = 0xff; delay(t); if(t<=10) t=10; t=t-5;

}

delay(t);

t= t+5;

匀减速转弯即可调用左轮的匀减速和右轮的匀减速程序来完成。

③针对一模块,详细解说该模块的信号如何传送给单片机?绘制直流小车的运动反馈原理,并阐述清楚自己对该任务的理解。

以蓝牙模块为例,手机将数据发送给蓝牙接收模块,蓝牙接收模块通过串口发送给单片机。

④如果小车要运用多个传感器模块进行信息容和导航,该如何操作,试举一例,不少于3种传感模块。

- 28 -

以遥控控制小车为例,由遥控模块,避障模块,寻迹模块。遥控器的按键用来控制小车工作于何种模式,由遥控控制模式,避障模式,寻迹模式。

2.4.2心得体会

直流小车是我们做的最后一个小车,在之前的实习的基础上,使我们对其很快有了了解。直流小车以AT89S51 单片机为控制核心,主要由电源模块、控制器模块、直流电机驱动模块、测速模块和显示模块组成。

通过本次试验我们收获最为丰富,从一开始的懵懵懂懂变得对单片机控制有了进一步的了认识,对单片机编程更加深入了解,尤其是对中断的了解,而且对出事的定义有了更好的掌握。还认识到子函数的重要性,它可以使程序更加方便编写,而且子函数会使整个函数变得简洁明了。

由于直流小车的底盘设计较为合理,所以我们的小车搭建并没有耽误太长时间。初步组装完成后,通过分析资料上给的电路图进行小车的接线,并进行分析电路,了解每一个模块的功能及运行原理。经过一上午的时间小车基本完成了全部的组装。

接下来是小车基本运动程序的调试过程,直流电机前进后退是根据两级的电势差,这个比较简单,随后就是小车的后退和左转右转。也很快的的完成。在这些基础的程序完成后又开始了小车的加减速的程序调试,根据老师给的资料,我们知道了速度是通过调节电机的使能的占空比的大小,调节加速减速只需要是每个小时刻的占空比不同就可以了。根据单片机原理,占空比的调节需要用到中断,在程序中我们假设波形周期是1s,从而控制中断次数来使单片机输出的电压取反。中断的次数不同,高电平持续的时间不同,占空比就不同,最后的速度不同。只要控制次数的变化,就完成的加减速。由于小车电机原因,当占空比过小时,电机就不能使小车行走,我们小车的最大时速可以达到190。

随后是小车寻迹的调试。看了资料的介绍,我们知道了它的基本原理,通过传感模块的输入单片机的信号,来判断小车需要运行的轨迹。我们用了if语句来实现,程序编好后,下载最开始的程序。在手上演示能按照程序运行,放下去不会走动,进过推测是传感器距离地面的距离问题,我们通过更改传感器的灵敏度(检测距离),实现了传感器的检测。但小车还是不能行走,只能是在原地左右摆动,后来经过不断地程序调试,我们完成了小车的寻迹。但随后在其他组的寻迹路线上有一个大的转弯,我们的小车无法按照其规定的路线行走,后来发现是小车后退转弯的幅度太小,使另一个传感器接收不到信号,最后我们更改了程序,通过反复的实验最终完成了寻迹的目标。此次寻迹的任务实现,让我们组对小车的寻迹的功能理解有了更加深入的认识。

最后是小车的红外遥控。通过if语句实现遥控器按键遥控。语句得主体就是接受遥控器的按键信号最终执行相应的程序,将任务实现。在红外控制时也遇

- 29 -

联系合同范文客服:xxxxx#qq.com(#替换为@)