智能小车的实训报告.docx
《智能小车的实训报告.docx》由会员分享,可在线阅读,更多相关《智能小车的实训报告.docx(18页珍藏版)》请在冰豆网上搜索。
智能小车的实训报告
智能产品设计实训报告书
课程名称:
智能产品设计
班级:
应用电子技术15级2班
小组成员(学号):
商育诚(39)王少勇(91)
实训项目:
智能小车
实训时间:
2017年5月8日
指导老师:
何敬银老师
填表日期:
2017年5月14日星期日
实训目的-------------------------------------3
实训要求-------------------------------------3
实训内容-------------------------------------4
智能小车元器件清单-----------------------------------------------4
智能小车代码-----------------------------------------------------5
智能小车电路图---------------------------------------------------10
智能小车焊接-----------------------------------------------------11
智能小车模块系统详解---------------------------------------------12
实训成果展示---------------------------------13
收获和体会-----------------------------------14
实训目的:
制作一个基于单片机控制的智能小车,可以进行多种功能。
也让我们自己学习,学习到单片机的知识和单片机编程的知识还有电阻的识别和一些电路的知识。
提高了我们焊接技术和团队合作能力,增加了我们制作电子产品产品的经验。
这个实训还有对于一些需要进行PPT的演讲,不经给我们一个展示自己作品的平台,更重要的是给我一个增强自信心的机会,展现自己和展现自己的作品这个实训不仅让我们学会更多的知识而且还满足我们自己对自己亲自动手制作电子产品的愿望。
实训要求:
能够熟练对老师进行智能小车源代码的讲解,还有对于电路图的了解和电路知识的应用,还有对于另一些芯片的知识进行学习。
还有熟练掌握元器件的名称大小的识别。
还有在焊接过程中可以可以让我们的焊接技术更加地熟练,可以让我们的小组成员合作更好,增强了小组成员的合作默契。
实训内容----智能小车元器件清单
ZYJJB09-C智能循迹、避障机器人发货清单
一、主控制板元器件清单
二、结构底板(传感器板子)元器件清单
序号
名称
规格
位号
用量
序号
名称
规格
位号
用量
1
瓷片电容
104
C2,C3,C4,C7
4
1
电解电容
10V1000uF
C1
1
2
瓷片电容
30p
C5,C6
2
2
3MMLED
F3绿色LED
D1,D2
2
3
3MMLED
F3绿色LED
D3,D5
2
3
红外接收管
F3红外接收管
V3,V5,V7,V6
4
4
3MMLED
F3红色LED
D4
1
4
红外发射管
F3红外接收管
V2,V4,V9,V8
4
5
驱动芯片
L293D
IC1
1
5
IC
LM393
IC3
1
6
IC座
16脚IC座子
1
6
IC座
DIP8
1
7
单片机芯片
STC89C52
IC2
1
7
色环电阻
10K
R6,R7,R10,R11
4
8
IC座
40脚IC座子
1
8
色环电阻
220R
R12,R13,R15,
R17
4
9
排针
4P排针
P1,P2,P3
3
9
色环电阻
15K
R16,R18
2
10
色环电阻
10K
R2,R3
2
10
拨动开关
S1
1
11
色环电阻
1.5K
R8,R14
2
11
可调电阻
10K可调电阻
W1,W2
2
12
插件排阻
10K排阻
RX1
1
12
跳线
用剪脚的电阻铁丝短路
请看黑色底板上面有丝印接跳线
3
13
插件按键
6*6*5按键
S2
1
13
14
晶振
12M晶振
Z1
1
14
排针
3P排针
P5,P7
2
三、额外附件清单
序号
名称
规格
备注
用量
序号
名称
规格
备注
用量
1
直流减速电机
2
10
M3*8螺丝
3
2
5号4节电池盒
1
11
M3*25螺丝
4
3
2P单头线
7CM长
2
12
热塑管5CM长
1
4
轮子防滑圈
2
13
电机固定小板子
4
5
M3螺帽
7
14
黑色底板(传感器板子)
1
6
有孔轮子
2
15
主板一块
1
7
无孔轮子
2
16
电机与轮子紧锁柱(黄色轮子就用M2.5*8自攻螺丝)
2
8
铁棒
1
17
说明书一张
1
9
紧锁插
固定后轮
2
18
垫圈
2
智能小车代码
#include//包含51单片机相关的头文件
#include
sbitxunjiLed=P2^1;//定义前方左侧指示灯端口
sbitbizhangLed=P2^0;//定义前方右侧指示灯端口
sbitLeftIRBZ=P1^1;//定义前方左侧红外探头端口
sbitRightIRBZ=P1^0;//定义前方右侧红外探头端口
sbitLeftIR=P3^5;//定义前方左侧红外探头端口
sbitRightIR=P3^6;//定义前方右侧红外探头端口
sbitM1A=P0^0;//定义左侧电机驱动A端
sbitM1B=P0^1;//定义左侧电机驱动B端
sbitM2A=P0^2;//定义右侧电机驱动A端
sbitM2B=P0^3;//定义右侧电机驱动B端
staticunsignedintLedFlash;//定义闪动频率计数变量
bitEnableLight=0;//定义指示灯使能位
unsignedchartemp=1;
voidtingzhi()
{
M1A=0;//将M1电机A端初始化为0
M1B=0;//将M1电机B端初始化为0
M2A=0;//将M2电机A端初始化为0
M2B=0;
}
voidqianjin()
{
M1A=1;
M1B=0;
M2A=1;
M2B=0;
}
voidhoutui()
{
M1A=0;
M1B=1;
M2A=0;
M2B=1;
}
voidzuozhuan()
{
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
voidyouzhuan()
{
M1A=1;
M1B=0;
M2A=0;
M2B=1;
}
voidDelay1ms(unsignedinti)
{
unsignedcharj,k;
do{
j=10;
do{
k=50;
do{
_nop_();
}while(--k);
}while(--j);
}while(--i);
}
voiddelay_nus(unsignedinti)//延时:
i>=12,i的最小延时单12us
{
i=i/10;
while(--i);
}
voiddelay_nms(unsignedintn)//延时nms
{
n=n+1;
while(--n)
delay_nus(900);//延时1ms,同时进行补偿
}
voiddelayms(unsignedcharx)//0.14mS延时程序
{
unsignedchari;//定义临时变量
while(x--)//延时时间循环
{
for(i=0;i<13;i++){}//14mS延时
}
}
voidDelay()//定义延时子程序
{
unsignedintDelayTime=30000;//定义延时时间变量
while(DelayTime--);//开始进行延时循环
return;//子程序返回
}
voidControlCar(unsignedcharConType)//定义电机控制子程序
{
tingzhi();
switch(ConType)//判断用户设定电机形式
{
case1:
//前进//判断用户是否选择形式1
{
//tingzhi();//进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位
//Delay1ms(50);
qianjin();
break;
}
case2:
//后退//判断用户是否选择形式2
{
//tingzhi();//进入后退之前先停止一段时间防止电机反向电压冲击主板导致系统复位
//Delay1ms(50);
houtui();//M2电机反转
break;
}
case3:
//左转//判断用户是否选择形式3
{
//tingzhi();//进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位
//Delay1ms(50);
zuozhuan();//M2电机正转
break;
}
case4:
//右转//判断用户是否选择形式4
{
//tingzhi();//进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位
//Delay1ms(50);
youzhuan();//M1电机正转
//M2电机反转
break;
}
case8:
//停止//判断用户是否选择形式8
{
tingzhi();
break;//退出当前选择
}
}
}
voidControlCar_yaokong(unsignedcharConType)//定义电机控制子程序(红外遥控单独设置一个switchcase语句)
{
tingzhi();
switch(ConType)//判断用户设定电机形式
{
case1:
//前进//判断用户是否选择形式1
{
tingzhi();//进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位
Delay1ms(150);
qianjin();
break;
}
case2:
//后退//判断用户是否选择形式2
{
tingzhi();//进入后退之前先停止一段时间防止电机反向电压冲击主板导致系统复位
Delay1ms(150);
houtui();//M2电机反转
break;
}
case3:
//左转//判断用户是否选择形式3
{
tingzhi();//进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位
Delay1ms(150);
zuozhuan();//M2电机正转
break;
}
case4:
//右转//判断用户是否选择形式4
{
tingzhi();//进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位
Delay1ms(150);
youzhuan();//M1电机正转//M2电机反转
break;
}
case8:
//停止//判断用户是否选择形式8
{
tingzhi();
break;//退出当前选择
}
}
}
voidRobot_AvoidanceTraction()//机器人避障+循迹综合子程序
{
if(LeftIR==0&&RightIR==0)//三个红外检测到黑线,就前进
{
ControlCar
(1);
if(LeftIRBZ==0||RightIRBZ==0)
{
delay_nms(50);
while(!
LeftIRBZ)
{
ControlCar(8);
delay_nms(120);
}
while(!
RightIRBZ)
{
ControlCar(8);
delay_nms(120);
}
}
//左侧没有信号时,开始向右转一定的角度
delay_nms(10);
}
elseif(LeftIR==0&&RightIR==1)
{
ControlCar(3);//右侧没有信号时,开始向左转一定的角度
delay_nms(10);
}
elseif(LeftIR==1&&RightIR==0)
{
ControlCar(4);//右侧没有信号时,开始向左转一定的角度
delay_nms(10);
}
ControlCar(8);
}
智能小车电路图
智能小车焊接组装
1.先小后大焊接效果图如下:
2.主板背面焊接效果图如下:
第二步:
结构件的安装:
首先按照如图所示把2个尾轮安装好,并且结构固定要上锡。
第三步:
将两个尾轮装好以后,再将两条电机电源线按照如图方式从底板的正面从反面各一条装好,然后按照图示方式接在电机上面,注意方向,电机的上端接红色线,下端接黑色线。
第四步:
装前轮按照如图所示,先将两个紧锁柱分插入电机里面,注意是有螺纹的一头插入电机的滚动轴里面,然后再将轮子装进去。
第五步:
组装循迹传感器(如下图所示):
第六步:
整机装配
智能小车模块系统详解
实训成果:
成品展示,下图是焊接成品。
请欣赏。
收获和体会:
本学期电子设计制作与创新提高课程的学习任务,是让我们制作智能小车,
过程非常有趣,在动手操作的同时又学习了模拟电子的相关知识,让我们的课程学习也非常方便。
通过此次的设计制作,使我们更加认识到了动手能力和理论知识的重要性,而理论与实践的结合更是重中之重。
当然,我们也深刻地认识到我们的不足,由于自身理论知识的欠缺和动手能力的不佳在工作中频频受阻,走了好多弯路,虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到预期的要求,很好地完成了本次设计任务。
经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因
素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差,并且在不断的摸索前进中我们学到了很多东西。
特别是,在老师的帮助下,我们获得的不只是知识和成果,还有比之更重要的学习方法和解决问题的能力,这将是我们一生的财富,就像我们在老师的帮助下不断的寻找着打开各个知识宝库的金钥匙。
通过这次创新设计,我了解并掌握了传感器的基本理论知识,更深入的掌握单片机的开发应用和编程控制。
为以后从事单片机软硬件产品的设计开发、打下了良好的基础,树立独立从事产品研发的信心,并在这种能力上得到了比较充分的锻炼。
且我深刻的认识到团队的协作真的很重要,周围人的帮助也很重要,而这两个方面,我都拥有了,很感谢,这几周大家一起的努力,老师追求的是结果,但我们追求的是过程