北邮智能车电子工艺实习报告.docx
《北邮智能车电子工艺实习报告.docx》由会员分享,可在线阅读,更多相关《北邮智能车电子工艺实习报告.docx(17页珍藏版)》请在冰豆网上搜索。
![北邮智能车电子工艺实习报告.docx](https://file1.bdocx.com/fileroot1/2023-4/16/4b7ad3ed-4a44-415a-8ae8-faf1674ecacc/4b7ad3ed-4a44-415a-8ae8-faf1674ecacc1.gif)
北邮智能车电子工艺实习报告
北京邮电大学实习报告
实习名称
电子工艺实习
学院
信息与通信工程学院
学生姓名
桑志杰
班级
129
学号
2012210789
实习时间
2014.6.23-7.4
实习地点
主楼522
实
习
内
容
实习题目:
电子工艺实习的基本技能(手工焊接技术、拆焊技术等)、简单的发光二极管交替闪烁电路的安装调试、智能测速小车的安装调试
实习进度安排:
6.23-6.24:
认识焊接工具,学习并掌握手工焊接技术、拆焊技术等基本技能,大量训练掌握手工焊接的技巧
6.25:
用万能板焊接安装一个发光二极管交替闪烁电路
6.26:
熟悉电子原件市场、发元器件,准备安装小车
6.27-7.3:
完成智能测速小车的安装调试,验收作品
7.4:
总结得失,写实习报告
学生
实习
总结
(附页,不少于2000字)
见附页
实
习
成
绩
评
定
遵照实习大纲并根据以下三方面按五级分制(优秀、良好、中等、及格、不及格)综合评定成绩:
1、思想品德、实习态度、实习纪律等
2、技术业务考核、笔试、口试、实际操作等
3、实习报告、分析问题、解决问题的能力
实习评语:
实习成绩:
指导教师签名:
实习单位公章
年月日
实习总结
实习任务要求
(1)熟悉焊接用工具(外热式电烙铁、吸锡器等),了解焊接用材料(焊料、助焊剂),正确使用电烙铁,熟练掌握手工焊接技术,按照正确的焊接操作手法进行反复练习,知道什么是高质量的焊点,保障焊点的质量,学会手工拆焊技术。
(2)用万能板焊接安装一个发光二极管交替闪烁电路。
(3)安装调测智能测速小车,要求实现秒表、测速、定点停车、终点显示时间等功能。
设计思路
智能测速小车部分的整体设计思路如下图:
智能测速小车是通过STC90C52RC单片机来实现的,主要分为秒表计时和光电计数两个部分。
秒表计时利用单片机的内部定时器来实现,由于利用晶体振动频率来计时,故比较精确;光电计数是利用单片机的两个外部中断,光电模块的脉冲触发中断来实现计数。
由光电模块测得的脉冲数可以求得车轮转动的圈数(圈数=脉冲数/20),再利用前面实现的秒表功能可得出小车的速度(我们这里为瞬时速度)。
定点停车是通过设定圈数来使小车停止,在程序里写一段选择语句即可实现。
至于走直线的问题,通过调节占空比来控制小车转速,使得小车有相同的速度,再调节并固定万向轮,即可实现走直线。
拓展部分:
蓝牙控制小车。
利用蓝牙与51单片机通信的原理,在小车行进过程中,不断调整车轮的转速来实现走直线,并可以实现启动、停止小车、一键显示速度等功能。
实现过程
常用工具和耗材:
焊接用工具:
电烙铁、吸锡器、其它常用工具(烙铁架、尖嘴钳、剪刀、斜嘴钳、剥线钳、镊子、切刀等)
焊接用材料:
焊料(铅锡焊料有熔点低、机械强度高、表面张力小、抗氧化性好的特点)、助焊剂(树脂、有机、无机)
基本技能(焊接技术):
电烙铁使用注意事项:
1、电烙铁通电前首先检查电烙铁的电源线有无破损,如有破损及时处理,防止发生短路、短路或触电事故;核对供电电压是否与电烙铁的额定电压相符,注意用电安全;检查烙铁头是否已上锡,新的电烙铁头或修整后的烙铁头通电前应先浸松香水或涂焊锡膏,然后马上上锡。
2、焊接时,如果烙铁头挂锡太多影响焊接质量,应通过在湿布上擦拭来去处过多的锡,绝对不能甩电烙铁或在其它物体上敲击电烙铁,防止高温的液态锡被甩到周围的人身上或物体上,引起身体伤害或财产损失。
而敲击电烙铁则容易使烙铁芯的瓷管破裂,或使内部发生短路或断路故障,引发安全事故或留下安全隐患。
3、电烙铁在使用时,还注意电源线是否在手柄内发生转动,一般外热式电烙铁手柄内部有固定线将电源箱固定在支架上,内热式电烙铁手柄上有一个固定电源线的塑料螺钉,若固定松动应及时紧固,否则电源线容易扭动转动,从而引起内部连接处断开或电源线间短路,进而引起发供电线路保险爆断等故障。
4、焊接间隙电烙铁应放置在烙铁架上,不得随意放置,一般右手持电烙铁情况下,烙铁架放置在前方靠右处。
取放电烙铁的过程中注意理顺烙铁电源线,一定要防止电源线不断被扭转,导致电烙铁内部电源接线处产生断路和短路;还要防止取放电烙铁的过程中烙铁头烫坏电源线。
5、使用电烙铁进行焊接操作时,还应养成良好的习惯,操作台面上应整齐有序,不放置过多的东西。
手工焊接的基本手法和要领:
1、电烙铁的拿法:
反握法、正握法和握笔法;
2、焊锡丝的拿法:
焊锡丝的拿法有两种:
连续焊接时拿法和断续焊接时拿法。
连续焊接时用拇指和食指拿住焊锡丝,顶端留出3~5厘米的长度,焊接过程中可以借助其它手指连续向前送料。
手工焊接的步骤:
手工焊接的操作一般分五个步骤,称为手工焊五步操作法,如图2.2.3所示,图中从左往右,分别为步骤一至五:
步骤一:
准备施焊
左手拿焊丝,右手持电烙铁,电烙铁已经通电加热,可以随时施焊,并且要求烙铁头洁净无焊渣等氧化物,表面镀有一层焊锡。
步骤二:
加热焊件
将烙铁头放在被焊接的两焊件连接处,使两个焊件都与烙铁头相接触,同时加热两个焊件焊接面至一定温度,时间大约为1~2秒钟。
注意:
此步骤中不要用烙铁头对焊件过度施加压力,过度施压并不能加快传热,却加速了烙铁头的损耗,更严重的是对被焊接的元器件造成不易察觉的损伤,埋下隐患。
步骤三:
送入焊丝
焊件的焊接面被加热到一定温度时,焊锡丝从烙铁对面接触焊件,焊锡丝融化浸润两焊接面。
注意:
不要把焊锡丝送到烙铁头上!
步骤四:
移开焊丝
当焊锡丝熔化一定的量,使焊接面布满液态焊锡后,立即向左上45°方向移开焊锡丝。
注意:
焊锡的量要适中,过量焊锡不但造成浪费,还增加了焊接时间,降低了工作速度,还容易造成焊点与焊点之间的短路。
而焊锡过少则焊件之间不能形成牢固结合,影响焊点的质量。
在印刷电路板上焊接时,原则上熔化的焊锡应刚好布满焊盘,而双面板则焊锡还要充满孔的缝隙,所以同样大小的焊盘,双面板比单面板需要更多的焊锡,而双面板的焊点比单面板的焊点电气连接更可靠,机械连接强度更高,质量更好。
二者的区别见图2.2.4,图中灰色部分为焊锡形成的合金层。
步骤五:
移开烙铁
焊锡丝移开后,融化的焊锡应同时也浸润焊件的施焊部位,此时应迅速将烙铁头贴刮着被焊接的焊件(元件引脚或导线)移离焊点,这样可以使焊点保持适当量的焊料。
从第三步开始到第五步结束,时间大约1~2s。
注意:
烙铁移开后至焊锡凝固之前,应保持焊件静止,如果焊接时用镊子或钳子等工具帮助固定焊件,一定等焊锡凝固后才松开固定工具,因为焊锡的凝固过程是结晶的过程,在金属结晶期间受到外力(焊件移动或抖动)会改变结晶的条件,形成大粒结晶,造成所谓的“冷焊”,使焊点内部结构疏松,机械强度降低,导电性差。
高质量的焊点:
1、可靠的电气连接
2、足够的机械强度
3、光洁整齐的外观
手工拆焊技术:
分点拆焊法、集中拆焊法、保留拆焊法、剪断拆焊法
手工拆焊操作应注意什么:
1、严格控制拆焊温度和加热时间
2、严格控制拆焊时的力度
3、严格控制拆焊操作时的范围
4、拆焊后重新焊接要注意回复原状
简单的发光二极管交替闪烁电路的安装调测:
1、用万能板焊接安装一个发光二极管交替闪烁电路,电路原理图如下图:
上图电路所用元器件清单如下表:
2、根据元器件清单准备元器件
3、根据电路规划元器件在电路板上的焊接位置
4、实际安装焊接电路
5、电路的检测与调试、通电运行
仔细检查电路焊接情况,并根据电路原理图对整个电路的安装、连接关系进行检查,核对无误后,通电调试。
两个二极管交替发光显示表明,电路正常工作,电路安装焊接成功!
智能测速小车的安装调测:
智能测速小车原理图、装配图、装配步骤略,下面主要叙述测速小车实现功能的关键部分:
数码管显示:
定义4个显示函数来实现显示秒表、行进瞬时速度等功能。
其中display1()为开启右边两块数码管显示,display2()为在秒表时开启中间两块数码管显示,display3()为在秒表时开启左边两块数码管显示,display4()为在显示速度时开启左边两块数码管显示。
由于设了两个数组seg_data[]和seg_data1[],可实现显示秒表时点亮数码管的“:
”,显示速度时不点亮数码管的“:
”。
附此部分代码如下:
ucharcodeseg_data[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};//0~9的段码表,0x00为熄灭符
ucharcodeseg_data1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//0~9的段码表,0x00为熄灭符
/********显示函数********/
display1(count1)
{
P0=seg_data[count1%10];//显示毫秒位
P2=0x3e;//开个位显示(开第1只数码管)
Delay_ms(t);//延时10ms
P0=seg_data[(count1/10)%10];//显示毫秒百位
P2=0x3d;//开十位显示(开第2只数码管)
Delay_ms(t);
}
display2(count2)
{
P0=seg_data[count2%10];//显示秒位
P2=0x3b;//开个位显示(开第1只数码管)
Delay_ms(t);//延时10ms
P0=seg_data[(count2/10)%6];//显示秒十位
P2=0x37;//开十位显示(开第2只数码管)
Delay_ms(t);
}
display3(count3)
{
P0=seg_data[count3%10];//显示分位
P2=0x2f;//开个位显示(开第1只数码管)
Delay_ms(t);//延时10ms
P0=seg_data[(count3/10)%6];//显示分位
P2=0x1f;//开十位显示(开第2只数码管)
Delay_ms(t);
}
display4(uintd)
{
P0=seg_data1[d%10];
P2=0x2f;
Delay_ms(t);
P0=seg_data1[(d/10)%10];
P2=0x1f;
Delay_ms(t);
}
秒表计时及内部计时器
此系列单片机内部有T0,T1,T2三个定时器/计数器,我们采用T0作为定时器,设置TMOD=0x21;EA=1;ET0=1;TR0=0;采用工作方式1,定时时间的计算公式为(2^16-计数初值)*晶振周期*12,若定时时间为10ms,则TH0=0xd8;TL0=0xf0;每过1ms,time加一,time的单位即是十毫秒,time每数100,time1加一,则time1代表的是秒数,time/60即为分钟数,再time,time1,time/60通过数码管显示出来,即为秒表。
由于T0采用晶振脉冲计数,所以此秒表格外精确。
附此部分代码如下:
voidtimer0()interrupt1
{
TH0=0xd8;
TL0=0xf0;
time++;
if(time==100)
{
time=0;
time1++;
}
……
}
display1(time);
display2(time1);
display3(time1/60);
光电模块及外部中断
光电模块每挡光一次,发出一次脉冲,通过对脉冲计数,即可记录车轮转动的圈数。
此处需要用到单片机的外部中断,在这里我们用INT0,INT1,需要设置EA=1;IT1=1;EX1=1;IT0=1;EX0=1;并编写两个外部中断函数:
/******外部中断(计光电模块脉冲数)********/
voidexint1()interrupt2
{
r1++;//右轮转动圈数
}
voidexint0()interrupt0
{
r2++;//左轮转动圈数
}
显示速度及停车时间
我们设置的是通过蓝牙发送一个指令,来显示当时速度,在停车之后显示停车时间。
具体实现如下:
计算速度:
引入r11,r111,r22,r222四个变量来计算出小车行进的瞬时速度,我们是计算每100ms的脉冲数(或转过圈数)来计算速度的,代码(在计时器中)如下:
voidtimer0()interrupt1
{
TH0=0xd8;
TL0=0xf0;
time++;
if(time==100)
{
time=0;
time1++;
}
if(time==10)
{
r111=r1-r11;//在过去100ms中,右轮转的圈数(或脉冲数)
r222=r2-r22;//在过去100ms中,左轮转的圈数(或脉冲数)
r11=r1;//更新r11
r22=r2;//更新r22
}
}
/*******显示速度函数******/
voidshowspeed()
{
display1(r111/2);//结果为右轮每秒转动的圈数
display4(r222/2);//结果为左轮每秒转动的圈数
qianjin();
}
显示停车时间:
在停车函数中,我们将停止时的十毫秒数和秒数分别赋值给a,b两个变量,并将其显示出来,则在停车之后显示停车时间。
代码如下:
/**********停车函数*********/
voidstop()
{
uinta,b;
IN1=0;
IN2=0;
IN3=0;
IN4=0;
a=time;b=time1;
while(date==0)
{TR0=0;
display1(a);
display2(b);
display3(b/60);
}
TR0=1;
}
走直线
为了使小车走直线,可以通过调节转动函数的占空比来控制车轮转速,使两轮速度相同,并且将万向轮固定,即可实现走直线的功能,由于我们是通过蓝牙微调转速的,故此处不再赘述。
拓展功能(蓝牙):
鉴于之前我们有Arduino与蓝牙通信的经验,故在此加入蓝牙传输的功能。
通过蓝牙在手机端控制小车的前进,后退,微调左转,微调右转,显示速度等功能。
代码如下:
switch(date)
{
case0:
stop();break;
case1:
qianjin();break;
case2:
houtui();break;
case3:
zuozhuan();break;
case4:
youzhuan();break;
case5:
for(i=0;i<400;i++)showspeed();break;
default:
break;
}
至于蓝牙传输的实现,先初始化蓝牙传输串口:
voidUartInit(void)//*****************
{
AUXR=0x40;;//定时器1时钟为Fosc,即1T
TMOD=0x21;
SCON=0x40;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
ET1=0;//禁止定时器1中断
TR1=1;//启动定时器1
REN=1;
ES=1;//蓝牙初始化
}
这里需要用到定时器T1,以及串行口中断
串口中断函数:
/*******蓝牙串口中断函数********/
voiduart_ser(void)interrupt4
{
if(RI)
{
RI=0;
date=SBUF;
flag=1;
}
if(TI)TI=0;
}
有了这两个函数,我们就可以通过蓝牙进行手机与51单片机通信,从而控制小车的行进。
两个微调函数:
/*********微调左转函数***********/
voidzuozhuan()
{
for(i=0;i<3000;i++)
{
IN1=1;
IN2=0;
IN3=0;
IN4=0;
}
}
/**********微调右转函数***********/
voidyouzhuan()
{
for(i=0;i<3000;i++)
{
IN1=0;
IN2=0;
IN3=0;
IN4=1;
}
}
小车行进中通过调用以上两个微调函数来调整小车行进方向,来确保小车走直线
本人具体工作
在实习过程中,我与队友不断交流想法,交换思想,齐心协力,最终圆满完成了任务。
两人的工作量基本上是相当的。
我的具体工作如下:
装配小车(焊接主要由队友完成,剩余部分由本人完成)
初期秒表实现代码的架构(初期秒表通过延时实现,后来改为内部计时器实现)
中期代码改写(秒表由延时实现改为内部计时器实现,光电计数器改为外部中断,加入测速程序)
后期蓝牙通信的实现(蓝牙串口初始化、串口指令接收)
一起调试小车
实现功能及测试数据结果
实现功能:
秒表(利用内部计时器T0,精度很高)
直线走(不通过蓝牙微调也可以走直)
数码管显示瞬时速度
蓝牙控制小车前进、后退、微调左右轮转速,显示瞬时速度
测试数据结果:
5米定点停车时间小于5seconds
遇到的问题及解决方法
问题1:
开始时不知道如何实现秒表的功能
解决办法:
回想到之前数电实验利用数码管动态扫描来同时显示多块数码管,利用动态扫描的思想,解决了数码管显示的问题,开始时用延时来实现计时,但后来发现此方法精度不高,并且随着代码的增长,要不断调整延时函数;中期放弃此法,改用内部计时器T0来实现秒表的功能,与实际时间分毫不差
问题2:
车头LED灯不亮
解决办法:
电压过低,改变相应电位参数,即可使LED灯变亮
问题3:
蓝牙传输的设置问题
解决办法:
通过请教同学,跟队友、同学讨论,一遍遍测试代码,最终实现功能
问题4:
测量瞬时速度
解决办法:
引入4个变量,记录每100ms经过的脉冲数,即可计算出瞬时速度
问题5:
停车后显示停车时间
解决办法:
在停车函数里引入一个变量,记录停车瞬间的时间,在停车后显示出来
问题6:
小车前进中微调方向
解决办法:
使某车轮空转一定次数来微调方向
等等
心得体会
小车制作的过程是艰辛的,但结果是甘甜的。
当看到自己的小车在比赛时的表现优异时,那种幸福感难以言语。
我们组一直是最有探索精神、最不妥协的,本来准备用红外控制小车行进的,后来看到红外遥控的种种弊端,在验收前一天改为用蓝牙遥控,零基础开始,当晚与同学奋战到凌晨3点钟,终于实现了全部预定功能。
尽管在第二天比赛时出现种种问题,但至少我们学习过、探索过,我想学习能力和探索精神才是教育的真谛。
参考文献
《51单片机C程序应用实例详解》孙焕铭等著北京航空航天大学出版社
《案例学单片机C语言开发》吴戈等著人民邮电出版社
《STC90C51RC-RD_GUIDE-CHINESE》pdf
《STC90C51RD+_english》pdf