北邮电子工艺实习报告.docx
- 文档编号:9211572
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:14
- 大小:419.35KB
北邮电子工艺实习报告.docx
《北邮电子工艺实习报告.docx》由会员分享,可在线阅读,更多相关《北邮电子工艺实习报告.docx(14页珍藏版)》请在冰豆网上搜索。
北邮电子工艺实习报告
电子工艺实习实验报告
实习名称:
智能迷宫小车
学院:
电子工程学院
姓名:
班级:
学号:
实习时间:
9月7日——9月18日
实习地点:
主楼710
一.实习内容
1.题目及要求描述:
实习题目为智能迷宫小车,即由学生自主焊接电路板,自主安装传感器,电池板及下载芯片等一系列必要的元器件。
以及自主写入控制程序,利用单片机对接收到和发送的高低电平对电机以及LED灯进行控制,通过传感器返回的信息对路况进行判断进而实现小车自主进行路线判断并走出迷宫的功能。
2.进度安排:
9月7日了解与熟悉电子工艺实习常用的工具和耗材,初步了解吸锡器和电烙铁,通过焊板子进一步熟练对电烙铁的使用,掌握手工焊接技术和手工拆焊技术。
9月8日通过在班子上焊接自己的名字以及简单的发光二极管交替闪烁电路的安装与调试更进一步掌握电子工艺实习的技术以及初步了解调测顺序。
9月9日开始正式焊接小车的元件以及对控制电路进行测试,接下来装配电机,直至完成之后下载测试程序进行测试以检测小车的焊接是否正确。
9月10到中关村电子元件专营市场购买传感器以及杜邦线。
9月11日及9月12日在宿舍学习汇编语言,了解51单片机控制元器件的原理。
9月13日开始正式编写程序,将程序烧入单片机,控制小车前进,后退,左转,右转,并将其放到轨道上进行实际情况测试。
9月14日至9月16日期间,不断的将小车放入迷宫,进行调试,使其走出迷宫的几率不断增加,同时不断发现在实际路况会遇到的问题,也在不断地调试程序进行改进。
9月16日至9月17日,着重进行外观设计。
二.实习总结
1.实习任务要求:
1)小车能够自动探测道路并成功走出迷宫。
2)具备一定外观。
3)可附加自动计时功能。
2.实习题目的设计思路及详细实现过程
1)智能小车原理图
2)智能迷宫小车装配图
3)智能小车材料清单
4)设计思路:
总思路将小车分为硬件调测与软件调测两个方面,首先进行硬件装配与调测,然后进行软件的烧入与调测,再将硬件部分分为元件的焊接,控制电路测试,电机装配,驱动电路测试,整机测试,将软件部分分为传感器控制部分,电机控制部分,迷宫算法部分。
元件焊接
控制电路测试
硬件电机装配
驱动电路测试
整机测试
智能迷宫小车
传感器控制部分
软件电机驱动部分
迷宫算分部分
5)详细实现过程:
※硬件实现过程:
○当领到器件的时候,首先将其与元件清单对应一一判别出各个元件的名称与功能,然后对照电路板进行焊接,焊接有以下几点需要注意
○先将电路布局规划好后,将电路分块安装,采用搭焊法将导线焊接在各元件之间。
元件的高低顺序对整个焊接过程有很大影响。
所以我们最先焊接了最低的电阻,最后焊接了电源芯片和散热片,以及电机上的两根引线。
其他元件按高低顺序依次焊接,其间二极管三极管以及电解电容灯油极性的元件焊接时也要注意方向,焊接到下载芯片以及电源芯片的时候,注意先将其焊好再焊散热片,因为散热片的管脚特别粗,焊起来并不是很方便。
○焊接好之后进行控制电路测试,测量电源端子是否短路,测量VCC与GND之间是否短路,安装下载模块,插上USB线,按下自锁开关,检测PWR灯是否会亮。
○检测完控制电路之后,就开始装配电机。
把电机固定套件中的铝块用装配到TT电机上并固定。
把前轮装配到TT电机上。
把电机固定到电路板上,注意保证左右两边轮子对称。
用圆头螺丝把装配好的后万向轮固定到电路板上。
用圆头螺丝把装配好的电池盒固定到电路板上。
注意选取合适的位置,使小车行进中不易翻倒。
把电池盒的引线接到电源端子,注意有极性,DC_IN为正极,GND负极。
把电机电源线穿过电路板的孔,分别接到MOTO_A和MOTO_B上。
○然后进行电机驱动电路测试,保持自锁开关弹起状态,插上USB线,下载电机驱动测试程序。
按下自锁开关,根据电机的转动方向调整电机电源线,保证左右方向一致并与控制方向一致。
○接下来进行整机测试。
保持自锁开关弹起状态,插上USB线,下载电机驱动测试程序。
保证小车在3秒钟内走直线,否则微调车轮。
○最后安装红外线传感器。
先进行检测是否能正常工作,再进行焊接。
硬件的装配与调测到此就结束了,然后开始着重考虑软件部分。
※软件实现过程:
◎传感器调试与控制部分:
传感器在整个实验中起到非常重要的作用,作为路面信息采集的传感器,有超声波与红外线及压力传感器三种可供选择的传感器,红外线传感器及超声波传感器可以通过返回给单片机的电压来反映距离墙面的距离,压力传感器与墙壁接触,可以减少状态的判断,不会出现“迷路”的情况。
需要使用ADC转换器和放大器,电路复杂,编程难度增加。
超声波传感器可以进行小距离测距,但是外围电路复杂,实现精确收发的难度较大,且依然需要放大器及数模转换器,给软件和硬件都带来困难。
所以综合考虑,我们选择了红外传感器,即光电可以直接转换。
由于迷宫路线基本是方正笔直的不存在曲线,所以对于传感器安装的位置,我们选择将其安装在车头的左右侧,正前方等三个位置。
传感器的测试距离是3到80cm可调,具体调试将配合程序及道路情况进行不断地修正。
◎电机控制部分:
电机我们选择的是直流电机,将其安装在车的左右两侧,连接车轮与车身,通过控制程序进行前进,后退,左转,右转,配合延时程序,可对转角的大小进行调控。
voidDelay_ms(uintxms)//延时程序,xms是形式参数
{uinti,j;
for(i=xms;i>0;i--)//i=xms,即延时xms,xms由实际参数传入一个值
for(j=115;j>0;j--);}//此处分号不可少
stop()//停止程序
{
IN1=0;//IN1和IN2控制右边的电机
IN2=0;
IN3=0;//IN3和IN4控制左边的电机
IN4=0;}
qianjin()//前进程序
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;}
houtui()//后退程序
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;}
zuozhuan()//左转程序
{IN1=1;//右轮前进
IN2=0;
IN3=1;//左轮后退
IN4=0;}
youzhuan()//右转程序
{IN1=0;//右轮后退
IN2=1;
IN3=0;//左轮前进
IN4=1;}
以上为简单的电机控制程序,仅仅只能决定电机的转向最后以控制车的行进方向。
左转程序和右转程序第一次写的时候我们选择的是只有一个轮子转动,另一个静止,即左转时只有右轮转动,左轮不动,经过道路测试以后,发现这样的转弯方式,在转角时产生位移较不稳定,且当小车撞倒迷宫中的挡板时,驱动力不足以使小车摆脱挡板继续行进。
经过多次的调试与论证,我们最终采用了原地转的转向方式,即左转时左轮后退,右轮前进,经过改进之后,转弯的距离变得可控了,且撞到挡板时小车有足够的动力进行路线的转变继而行进下去。
zuozhuancon()//左转加前进控制程序
{zuozhuan();
Delay_ms(155);
qianjin();
Delay_ms(20);}
youzhuancon()//右转加前进控制程序
{youzhuan();
Delay_ms(145);
qianjin();
Delay_ms(10);}
简单的转弯程序并不能让小车顺利的走出迷宫,因为红外传感器采集到的信息时刻在变化着,所以在需要转弯的路口,很有可能小车转到一定角度(小于90度)时对路面作出了新的判断,改变转向方式,很有可能导致小车碰壁或者走回头路或者原地打转等。
于是,我们需要对小车的转弯的角度进行控制,使其大约转成直角然后才重新对路面进行新一轮的判断。
所以采用延时程序与转弯程序进行配合,再使其转弯之后有一个新的前进程序,微微给小车一个前进的趋势,以避免小车继续回转的情况。
◎迷宫算法控制部分:
方案一(最终被否决):
voidmain()
{P0=0xff;
P2=0xff;
P1=0xff;
EA=1;ET0=1;TR0=1;//开总中断,开定时器T0中断,启动定时器T0
while
(1)
{stop();
Delay_ms(10);
qianjin();
Delay_ms(140);
LED1=0;
LED2=0;
if((left==0)&&(right==0)&&(center==0))//左右前都有障碍,选择后退
{houtui();
Delay_ms(20);}
elseif((left==1)&&(center==1)&&(right==0))//左前无障碍,选择左
{zuozhuancon();}
elseif((right==1)&&(center==1)&&(left==0))//右前无障碍,选右
{youzhuancon();}
elseif((left==0)&&(right==0))//只有左右有障碍
{qianjin();
Delay_ms(20);}
elseif((left==0)&&(right==1)&&(center==0))//只有右侧没障碍
{youzhuancon();}
elseif((left==1)&&(right==0)&&(center==0))//只有左侧无障碍
{zuozhuancon();}
elseif((left==1)&&(right==1)&&(center==0))//左右均无障碍
{zuozhuancon();}
elseif((left==1)&&(right==1)&&(center==1))
{stop();}}}
前两天的程序设计都是按照方案一的逻辑来编写代码,方案一列出了所有传感器可能检测到的情况,并一一进行解决,采用左优先算法,具体流程解释如下:
·首先判断是否前左右均有障碍,若是,则后退。
·若否,则判断是否只有左右有障碍,若是,则前进。
·若否,则判断是否只有左前无障碍,若是,选择左。
·若否,则判断是否只有右前无障碍,若是,选择右。
·若否,则判断是否只有右边有障碍,若是,选择左。
·若否,则判断是否只有左边有障碍,若是,选择右。
·若否,则判断是否左右前均无障碍,若是,则前进。
·若否,则判断是否只有左右有障碍,若是,选择左。
由逻辑可以看出,在行进中,由高电平表示无障碍,若三个传感器只有一个高电平,则朝高电平方向行进,若有两个或三个高电平方向,则优先选择左边,其次是右边,最后是直行。
这样小车总能走出迷宫。
6)在方案一中遇到的问题:
但是在实际操作中小车走的并不尽如人意,由于实际传感器返回的电平值并不时刻按照观察者肉眼看到的情况一样,且由于传感器比小车的轮子位置更靠前一些,当传感器检测到需要转弯时,小车并没有越过挡板,由于即时的转弯,导致小车总是撞在板子上,也影响了下一步的行进。
解决方案:
解决方案一:
在探测程序之前加入一个前进语句,即在任何探测程序之前都先前进,再进行探测,这样就可以解决小车撞在班子上的问题,但是一个新的问题就产生了,前进的距离很容易因为电池电流的大小而不断波动,且前进一段距离后判断的路况可能会发生改变。
于是我们最终放弃了解决方案一。
解决方案二:
voidmain()
{P0=0xff;
P2=0xff;
P1=0xff;
stop();
Delay_ms(10);
while
(1)
{if(center==1)
{qianjin();
Delay_ms(10);
if((left==0)&&(right==1))
{qianjin();
Delay_ms(300);
youzhuancon();}}
else{if((left==0)&&(right==1))
{youzhuancon();}
else{zuozhuancon();}}}}
完全改变行进逻辑,使小车永远直走优先。
即将前探测头的探测距离调小,直到前探头检测到有障碍前一直前进,当前进路线不能选择之后才判断左右,哪边没有障碍优先走哪边,若两边都有障碍则左边优先。
解决方案二实施之后小车行进变得很快,对转角的判断正确率有很大的提高,但是此时出现了一个新的大问题,就是小车永远走不出去了,原因是在出口处小车永远都是前进并不会选择右转走出迷宫,针对这一特殊情况,我们在是否前面有障碍的判断下加了一行代码:
if((left==0)&&(right==1))
{youzhuancon();}}
即当前面没有障碍时,判断是否满足左边有障碍而右边没有,若满足,则此时选择右转。
这么更改之后小车便能走出迷宫,但并不顺利。
显然,新的问题随着这行代码而来,原因在于第一个弯道的情况与出口处的情况一样,需要在直行和右转中选择右转,但由于传感器一将信息返回,则马上右转,又出现小车在第一个路口马上撞板子的情况,于是,我们决定针对这一情况再加一行代码。
if((left==0)&&(right==1))
{qianjin();
Delay_ms(300);
youzhuancon();}}
即仅仅有遇到左边有障碍,右前无障碍时才前进且右转。
※遇到的材料问题:
除了代码与实际路况的矛盾之外,我们经历的最大的挫折就是传感器的损坏,可能是由于我们前探头固定的位置太靠前,经常与板子碰撞,所以之后的试验中,要么不返回信号,要么断断续续的返回信号,所以我们只能更换了三次传感器。
还有电池电量的不稳定对我们的测试也有很大影响,但通过将程序改为解决方案二之后,减少了这种不稳定带来的影响。
7)实现功能:
至此,小车在电量稳定的情况下经过多次测试已经可以有很大走出迷宫的概率,在基本功能的实现之外,我们还加入了转向灯及蜂鸣器等辅助功能。
最终在验收时测量的时间是22秒,并不是很尽如人意,一方面可能是由于电池电量在之前的测试中消耗过多,另一放方面也是主要的原因,我们的程序号存在一定的漏洞没有修复以及传感器的检测距离也不够精确。
还有很大改进的空间。
8)心得与体会:
在本次实习中,我主要负责程序的调试,队友主要负责电路的焊接,我们共同设计与制作了外观。
焊接是一件非常有技术的活计,应该向我队友好好学习她认真谨慎的态度,她仔细检查每一个口是否焊接到位,有方向的元件也多次确认避免出现错误,按照元件的高低顺序一步一步来,稳中求快,最后才使得我们的硬件测试一次通过,反而是我应该反省自己考虑问题的角度过于狭隘,没有全面的预测到路面情况,才多次出现问题,多次调试,也没有考虑到电池电量的影响。
但是在不断的调试程序与换了三个传感器之后,我真的又一次体会到实验精神,在之前的测试中有几次小车能够碰巧走出来,但我们不应该满足于这些碰巧,不能因为走出来了而沾沾自喜不求进取,反而我们应该把目光放在那些没有走出来的时候,一次次的测试,看它的问题在哪里,看角度够不够,看传感器的探测距离是否合适,看程序的漏洞,一次次失败才能暴露出一个个问题,才会有新的解决办法和最好的结果。
第一次中午吃完饭就直接到实验室,看到很多同学都还在继续调试,学会了不轻易放弃还要珍惜一切机会。
8)总结:
在2015年9月7日至9月18日为期两周的电子工艺实习中,我和队友从初次认识焊接和拆焊工具到初次使用,紧接着练习简单的发光二极管交替发光电路,一点点熟悉与了解这焊接,到后来的正式做小车,一起装配,一起调试,一起寻求解决方案,一起设计与制作外观,最终实现了智能小车的制作,使小车能够走出迷宫,在这个过程中,学习到了部分51单片机的相关知识,了解了对电机传感器的控制的方法,对LED灯及蜂鸣器的控制,认识和初步掌握了焊接和拆焊技术,最重要的是学会了遇到问题就一步一步的去解决它,坚持做完一件事的理念。
感谢队友的支持与不放弃,以及在试验中老师耐心的指导和教导。
※参考文献:
《51单片机系统模块应用典例》
《电子工艺实习教程》
《大学生电子设计竞赛》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 邮电 工艺 实习 报告