申彦军——机电一体化实习总结
实习作总结
姓名:申彦军
专业:机电一体化一、实习目的
通过在重冶的实习,可以使我们在实践中接触与本专业相关的一些实际工作,培养和锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,把理论和实践结合起来,提高实际动手能力,为将来毕业后更好的在工作岗位工作打下一定的基础。二、实习内容
量具当中百分表、千分尺在机加工中的使用
1、使用前,应检查测量杆活动的灵活性。即轻轻推动测量杆时,测量杆在套筒内的移动要灵活,没有任何轧卡现象,且每次放松后,指针能回复到原来的刻度位置。
2、测量时,不要使测量杆的行程超过它的测量范围;不要使测量头突然撞在零件上;不要使百分表和千分表受到剧烈的振动和撞击,亦不要把零件强迫推入测量头下,免得损坏百分表和千分表的机件而失去精度。因此,用百分表测量表面粗糙或有显著凹凸不平的零件是错误的。
3、用百分表校正或测量零件时,应当使测量杆有一定的初始测力。
即在测量头与零件表面接触时,测量杆应有0.3~1mm的压缩量(千分表可小一点,有0.1mm即可),使指针转过半圈左右,然后转动表圈,使表盘的零位刻线对准指针。轻轻地拉动手提测量杆的圆头,拉起和放松几次,检查指针所指的零位有无改变。当指针的零位稳定后,再开始测量或校正零件的工作。如果是校正零件,此时开始改变零件的相对位置,读出指针的偏摆值,就是零件安装的偏差数值。
4、检查工件平整度或平行度时。将工件放在平台上,使测量头与工件表面接触,调整指针使摆动~转,然后把刻度盘零位对准指针,跟着慢慢地移动表座或工件,当指针顺时针摆动时,说明了工件偏高,反时针摆动,则说明了工件偏低了。当进行轴测的时候,就是以指针摆动最大数字为读数(最高点),测量孔的时候,就是以指针摆动最小数字(最低点)为读数。
检验工件的偏心度时,如果偏心距较小,可测量偏心距,把被测轴装在两顶尖之间,使百分表的测量头接触在偏心部位上(最高点),用手转动轴,百分表上指示出的最大数字和最小数字(最低点)之差的就等于偏心距的实际尺寸。偏心套的偏心距也可用上述方法来测量,但必须将偏心套装在心轴上进行测量。偏心距较大的工件,因受到百分表测量范围的限制,就不能用上述方法测量。这时可用间接测量偏心距的方法。测量时,把V形铁放在平板上,并把工件放在V形铁中,转动偏心轴,用百分表测量出偏心轴的最高点,找出最高点后,工件固定不动。再用百分表水平移动,测出偏心轴外圆到基准外圆之间的距离a,然后用下式计算出偏心距e:偏心距的间接测量方法式中e偏心距(mm);
D基准轴外径(mm);d偏心轴直径(mm);
a基准轴外圆到偏心轴外圆之间最小距离(mm)。用上述方法,必须把基准轴直径和偏心轴直径用百分尺测量出正确的实际尺寸,否则计算时会产生误差。
5、检验车床主轴轴线对刀架移动平行度时,在主轴锥孔中插入一检验棒,把百分表固定在刀架上,使百分表测头触及检验棒表面。移动刀架,分别对侧母线A和上母线B进行检验,记录百分表读数的最大差值。为消除检验棒轴线与旋转轴线不重合对测量的影响,必须旋转主轴180,再同样检验一次A、B的误差分别计算,两次测量结果的代数和之半就是主轴轴线对刀架移动的平行度误差。要求水平面内的平行度允差只许向前偏,即检验棒前端偏向操作者;垂直平面内的平行度允差只许向上偏。
6、检验刀架移动在水平面内直线度时,将百分表固定在刀架上,使其测头顶在主轴和尾座顶尖间的检验棒侧母线上,调整尾座,使百分表在检验棒两端的读数相等。然后移动刀架,在全行程上检验。百分表在全行程上读数的最大代数差值,就是水平面内的直线度误差。
7、在使用百分表和千分表的过程中,要严格防止水、油和灰尘渗入表内,测量杆上也不要加油,免得粘有灰尘的油污进入表内,影响表的灵活性。
8、百分表和千分表不使用时,应使测量杆处于自由状态,免使表内的弹簧失效。如内径百分表上的百分表,不使用时,应拆下来保存。刀具的种类和注意事项
另外自己对机加工也有了一些认识,我们在学校实习用的车床一般都是小型的车床如:CA6140这样的小车床,但是在公司我们使用的都是大车床,而且切削工件也不是在学校用的塑料制品,而是各种各样的成形钢材如:45#钢种等等。在加工中我发现刀具的使用时非常重要的,因为刀具材料对加工表面的质量是有影响的,而工件的精确度对机械的性能也是也有影响的。所以在选择刀具时也要是非常重要的,因为它们与加工材料间的摩擦系数、亲合程度、材料的耐磨性和可刃磨性。
刀具一般均用普通碳钢或合金钢制作,如焊接车刀、镗刀、转头、铰刀的刀柄。尺寸较小的刀具或切削负荷较大的刀具宜选择合金工具钢或整体高速钢制作,如螺纹刀具,成形铣刀,拉刀等。但是车间在加工的时候都是用的同一种刀对所有的工件进行加工。我就觉得应该选着不同的刀针对不同的材料进行加工。在实习过程中也发现磨刀是车工师傅必须掌握的一门技术,因为刀磨的好坏对工件的影响是有很大的因数的。在厂里在看师傅磨刀的同时,自己也尝试着自己去磨。车床加工工件的装夹和校正
(1)工作前按规定润滑机床,检查各手柄是否到位,并开慢车试运转五分钟,确认一切正常方能操作。
(2)卡盘夹头要上牢,开机时扳手不能留在卡盘或夹头上。
(3)工件和刀具装夹要牢固,刀杆不应伸出过长(镗孔除外);转动小刀架要停车,防止刀具碰撞卡盘、工件或划破手。
(4)工件运转时,操作者不能正对工件站立,身不靠车床,脚不踏油盘。(5)高速切削时,应使用断屑器和挡护屏。(6)禁止高速反刹车,退车和停车要平稳。(7)清除铁屑,应用刷子或专用钩。
(8)用锉刀打光工件,必须右手在前,左手在后;用砂布打光工件,要用“手夹”等工具,以防绞伤。
(9)一切在用工、量、刃具应放于附近的安全位置,做到整齐有序。(10)车床未停稳,禁止在车头上取工件或测量工件。
三、实习总结及体会
时间飞快,很快我的大学生活也就要结束了。回想昨日仿佛就在眼前,但是时间在我们指尖如流水悄悄的流走!我们知道机械制造业是一个国家最基础的行业,也决定了一个国家制造业的整体水平,起步早,但发展又最令人担忧,比如现在中国的汽车工业相比机械制造业来说无论是产品质量还是生产效率都要高得多,当然这也是因为机械行业的特性起了决定性的因素。对于我们机电一体化专业的学生们来说,或对于作为将来从事机械,机电制造方面业务的我们来说,去机械专业实习对我们来说非常重要。
在201*年的八月我公司申请到我单位汽机专业(辅机班)进行实习,目前我的实习工作还在进行当中。公司装机规模为4×200MW,是目前国内总装机容量最大的煤矸
石电厂;电厂采用国内首台200MW等级无外置床的循环流化床锅炉,采用中国科学院工程热物理研究所和上海电气集团股份有限公司在国家“十五”科技攻关课题“200MW循环流化床锅炉技术及示范工程”中形成的技术;汽轮机也是国内首台200MW等级两缸两排汽纯凝汽式直接空冷汽轮机;发电机的核心部件全部进口。
我知道实习是大学教育中一个极为重要的实践性环节,通过实习,可以使我们在实践中接触与本专业相关的一些实际工作,培养和锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,把理论和实践结合起来,提高我们的实际动手能力,为将来我们毕业后走上工作岗位打下一定的基础。通过这段时间的学习,从无知到认知,到深入了解,渐渐地我喜欢上这个专业,让我深刻的体会到学习的过程是最美的,在整个实习过程中,我每天都有很多的新的体会,新的想法。进入公司汽辅班后我做事情按部就班,循序渐进。这次的实习,让我懂得了许多,知道了许多,凡事都要自己去摸索,没有人会手把手教你。所以,我们有必要培养主动学习能力和创新能力,必须努力提高自身的综合素质,适应时代的需要。
经过这段时间的实习,我主要有以下几点感想:第一,要有坚持不懈的精神
作为在校生,我们不管到哪家公司,一开始都不会立刻给工作我们做,一般都是先让我们熟悉公司的工作环境,时间短的要几天,时间长的要几周,或更长的时间,在这段时间里很多人会觉得很无聊,没事可做,便会产生离开的念头,在这个时候我们一定要坚持,不能轻易放弃。第二,要勤劳,任劳任怨
我们到公司去实习,由于我们不是正式职员,所以公司多数是把我们当学生看待。公司在这个期间一般不会给我们什么重要的工作去做,可又不想让我们闲着,因此,他们会交给我们一些比较简单的工作。与此同时,我们应该自己主动找一些事情来做,从小事做起,刚开始也只有这样。第三,要虚心学习,不耻下问在工作过程中,我们肯定会碰到很多的问题,有很多是我们所不懂的,不懂的东西我们就要虚心向同事请教,当别人教我们知识的时候,我们也应该虚心地接受。同时,我们也不要怕犯错。每一个人都有犯错的时候,工作中第一次做错了不要紧,重要的是知错能改。第四,要确立明确的目标,并端正自己的态度
平时,我们不管做什么事,都要明确自己的目标,就像我们到公司工作以后,要知道自己能否胜任这份工作,关键是看你自己对待工作的态度,态度对了,即使自己以前没学过的知识也可以在工作中逐渐的掌握。因此,要树立正确的目标,在实现目标的过程中一定要多看别人怎样做,多听别人怎样说,多想自己应该怎样做,然后自己亲自动手去多做。只有这样我们才能把事情做好。
以上就是我的实习总结,请老师评阅!
扩展阅读:机电一体化综合训练实习总结
机电一体化综合训练实习总结
一、舵机车总结1、实习任务与要求
舵机车的实习任务主要是通过理解舵机运行的原理,提高自我的动手能力,编写程序使舵机车实现用传感器以探测周边环境、基于传感器信息作出决策、操作带动轮子旋转的电机控制宝贝车运动、与用户交换信息,从而更好的掌握89C52单片机。
2、总结实习内容2.1巡航控制
编程使宝贝车做一些基本的动作:向前、向后、左转、右转和原地旋转。宝贝车向前走:P1_1=1;
delay_nus(1300);P1_1=1;P1_0=0;
delay_nus(1700);P1_0=0;delay_nms(20);宝贝车向后走:P1_1=1;
delay_nus(1300);P1_1=1;P1_0=0;
delay_nus(1700);P1_0=0;delay_nms(20);宝贝车原地左转:P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;
delay_nus(1300);P1_0=0;delay_nms(20);宝贝车原地右转:P1_1=1;
delay_nus(1700);P1_1=0;P1_0=1;
delay_nus(1700);P1_0=0;delay_nms(20);2.2机器人触觉导航2.2.1胡须电路原理
下图所示为胡须电路原理图,当胡须没有被触动,连接胡须的I/O管脚的电压是5V;当胡须被触动时,I/O短接到地,所以I/O管脚的电压是0V。微控制器启动或复位时,所有的I/O插脚缺省为输入。也就是说,连接到胡须的I/O管脚会自动作为输入。作为输入,如果I/O脚上的电压为5V(胡须没有被触动),则其相应的寄存器中的相应位存储1;如果电压为0V(胡须被触动),则存储0。
、2.2.2胡须检测到障碍物时编程:
if((P1_5state()==0)&&(P2_3state()==0))//两个胡须同时检测到障碍物时,后退,再向左转180度{
Back_Up();Turn_Left();Turn_Left();}
elseif(P1_5state()==0){
Back_Up();Turn_Right();}
elseif(P2_3state()==0)//右边胡须检测到障碍物时,后退,再向左转90度{
Back_Up();Turn_Left();}
else//没有胡须检测到障碍物时,向前走Forward();
2.2.3对LED胡须测试电路编程:#include
intP1.5state(void)//获取P1.5的状态{
return(P1&0x20);}
intP2.3state(void)//获取P2.3的状态{
return(P2&0x08);}
intmain(void){
while(1){
if(P1.5state()==0)P1.0=0;
P1.0=1;;if(P2.3state()==0)P1.1=0;elseP1.1=1;
delay_nms(50);}}
2.2.4通过胡须导航
让宝贝车行走,当在其路线上遇到障碍物时,它将后退、旋转并向另一个方向行走。编程如下:
#include#includeintP1_5state(void){
return(P1&0x20)?1:0;}
intP2_2state(void){
return(P2&0x08)?1:0;}
voidForward(void){
P1_1=1;
delay_nus(1700);P1_1=0;P1_0=1;
delay_nus(1300);P1_0=0;
delay_nms(20);}
voidLeft_Turn(void){
inti;
for(i=1;idelay_nms(20);}}
voidBackward(void){
inti;
for(i=1;iBackward();//向后Left_Turn();//向左}else
Forward();//向前}}
程序中,前行走中的每两个脉冲之间检查胡须的状态。意味着,宝贝车在向前行走的过程中,每秒检查障碍物大概43次。因为每个全速前进的脉冲都使得宝贝车旋转大约半厘米。只发送一个脉冲,然后回去检查胡须的状态是一个好主意。每次程序从Forward()返回后,程序再次从while循环的开始处执行,此时ifelse语句会再次检查胡须的状态。2.3用光敏电阻进行导航2.3.1光探测线路工作原理
如下图所示,为光敏电阻的光探测线路。设定为输入的I/O口实际上并不需要5V来使其输入寄存器的值为1,任何大于1.5V的电压都会使其寄存器的值为1。同样的,I/O口也不是需要0V来使其输入寄存器的值为0,任何小于1.5V的电压都会使其寄存器的值为0。由于光敏电阻的阻值随着光照的强弱而改变,Vo点的输出电压也随之改变:当R增大时,Vo会减小;当R减小时,Vo会增大。Vo正是当微控制器的I/O口作为输入口时检测到的电压。如果电路连接到P1_5,当Vo的值大于1.5V时,P1寄存器的第6位为1,当Vo的值小于1.5V时,P1寄存器的第6位为0。
2.3.2试验无阴影编程如下:#include#includeintP1_5state(void){
return(P1&0x20)?1:0;}
intP2_3state(void){
return(P2&0x08)?1:0;}
voidForward(void){
P1_1=1;
delay_nus(1700);P1_1=0;P1_0=1;
delay_nus(1300);P1_0=0;
delay_nms(20);}
voidLeft_Turn(void){
for(i=1;i}}
voidBackward(void){
for(i=1;ielse
Forward();//向前}}
2.3.3手电筒光束引导宝贝车
测试和校正宝贝车机器人的光传感器,使它能够识别环境光和手电筒光束。编程使机器人跟随指向它前方表面的手电筒光束行走。
编程如下:
#include#includeintmain(void){
unsignedintcount;
UnsignedinttimeLeft,timeRight;uart_Init();while(1){
TH0=TL0=0;
TMOD=TMOD|0x01;P1_5=0;
delay_nms(300);P1_5=1;TR0=1;
while((P1&0x20)==0);count=TH0;count=countTH0=TL0=0;
TMOD=TMOD|0x01;P2_3=0;
delay_nms(300);P2_3=1;TR0=1;
while((P2&0x08)==0);count=TH0;count=count
上图所示为红外发射电路,编程使宝贝车探测避开障碍物,编程如下:intmain(void){
bitirDetectLeft,irDetectRight;inti,counter;uart_Init();
printf("ProgramRunning!\\n");
for(counter=1;counter{
IRLaunch("R");
irDetectRight=RightIR;//右边接收IRLaunch("L");
irDetectLeft=LeftIR;//左边接收
if((irDetectLeft==0)&&(irDetectRight==0))//两边同时接收到红外线{
Backward();Left_Turn();Left_Turn();}
elseif(irDetectLeft==0)//只有左边接收到红外线{
Backward();Right_Turn();}
elseif(irDetectRight==0)//只有右边接收到红外线{
Backward();Left_Turn();}else
Forward();}}
2.5实习过程
在做舵机车的过程中,用C语言编程时,我遇到的问题是我按照电路图接好电路好,程序一直都下载不进去,但是我检查线路没有发现有问题,最后我发现原来我的下载器坏了,不起作用了。换了新的下载器后,终于能正常下载了,宝贝车也能正常动作了。2.6总结
通过做宝贝车这次实验,让我对C52单片机的编程有了进一步的掌握,而且我觉得我自己真正的把以前自己学的C语言编程与实际结合起来了。在做这次实验的过程中,遇到问题,解决问题,不仅提高了我们的动手能力,也让我积极的面对问题,解决问题,而不是像以前那样手足无措了。2.7展望
这次实验让我觉得机电一体化是真正的将机械与电子的有机结合,在实验的过程中很好的能让我把所学的知识加以巩固,加深我对C51单片机的理解。我相信在不久的将来,机电系统的发展会让我们的生活变得更加方便。二、直流电机小车总结1、实习任务与要求
按所给的实验图连线,然后用C语言编写程序,下载到C52单片机,使直流电机小车实现红外寻迹、蓝牙摇控、红外遥控、超声波避障、测速等功能。2、总结实习内容2.1红外寻迹
红外寻迹传感器原理
寻迹传感器通常采用红外的方式,红外管发射出来的红外光通过地面(白色)反射回来,在接收管里收到信号,一旦碰到黑线,那么红外光都被吸收,接收管没有接收到信号,从而得知传感器是否压线,从而调整小车运行方向。红外寻迹编程如下:#include
#defineLeft_1_ledP3_4//P3_4接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
#defineLeft_2_ledP3_5//P3_5接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
#defineRight_1_ledP3_6//P3_6接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
#defineRight_2_ledP3_7//P3_7接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
#defineLeft_moto_go{P1_0=1,P1_1=0,P1_2=1,P1_3=0;}//左边两个电机向前走
#defineLeft_moto_back{P1_0=0,P1_1=1,P1_2=0,P1_3=1;}//左边两个电机向后转
#defineLeft_moto_Stop{P1_0=0,P1_1=0,P1_2=0,P1_3=0;}//左边两个电机停转#defineRight_moto_go{P1_4=1,P1_5=0,P1_6=1,P1_7=0;}//右边两个电机向前走#defineRight_moto_back{P1_4=0,P1_5=1,P1_6=0,P1_7=1;}//右边两个电机向前走
#defineRight_moto_Stop{P1_4=0,P1_5=0,P1_6=0,P1_7=0;}//右边两个电机停转
unsignedcharpwm_val_left=0;
unsignedcharpush_val_left=1;//左电机占空比10/40unsignedcharpwm_val_right=0;
unsignedcharpush_val_right=1;//右电机占空比10/40bitRight_moto_stop=1;bitLeft_moto_stop=1;/************************************************************************///延时函数
voiddelay(unsignedintk){
unsignedintx,y;for(x=0;x}
2.2蓝牙摇控工作原理:
通过Android智能手机下载配套的Android软件控制小车运行,Android手机用内置蓝牙与蓝牙无线模块配对,发出指令,蓝牙无线模块接收其指令。当单片机接收到蓝牙无线模块传来的指令,执行相应解码动作,从而控制小车。用C语言编程如下:#include
#defineLeft_1_ledP3_4//P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
#defineLeft_2_ledP3_5//P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
#defineRight_1_ledP3_6//P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
#defineRight_2_ledP3_7//P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
#defineLeft_moto_go{P1_0=1,P1_1=0,P1_2=1,P1_3=0;}//左边两个电机向前走
#defineLeft_moto_back{P1_0=0,P1_1=1,P1_2=0,P1_3=1;}//左边两个电机向后转
#defineLeft_moto_Stop{P1_0=0,P1_1=0,P1_2=0,P1_3=0;}//左边两个电机停转#defineRight_moto_go{P1_4=1,P1_5=0,P1_6=1,P1_7=0;}//右边两个电机向前走#defineRight_moto_back{P1_4=0,P1_5=1,P1_6=0,P1_7=1;}//右边两个电机向前走
#defineRight_moto_Stop{P1_4=0,P1_5=0,P1_6=0,P1_7=0;}//右边两个电机停转#defineleft"C"#defineright"D"#defineup"A"#definedown"B"#definestop"F"
charcodestr[]="收到指令,向前!\\n";charcodestr1[]="收到指令,向后!\\n";charcodestr2[]="收到指令,向左!\\n";charcodestr3[]="收到指令,向右!\\n";charcodestr4[]="收到指令,停止!\\n";bitflag_REC=0;bitflag=0;unsignedchari=0;unsignedchardat=0;
unsignedcharbuff[5]=0;//接收缓冲字节
/************************************************************************///延时函数
voiddelay(unsignedintk){
unsignedintx,y;for(x=0;x}
voidsend_str2()
//传送字串{
unsignedchari=0;
while(str2[i]!="\\0"){
SBUF=str2[i];
while(!TI);//等特数据传送
TI=0;//清除数据传送标志i++;//下一个字符}}
voidsend_str3()//传送字串{
unsignedchari=0;while(str3[i]!="\\0"){
SBUF=str3[i];
while(!TI);//等特数据传送
TI=0;//清除数据传送标志i++;//下一个字符}}
voidsend_str4()
//传送字串{
unsignedchari=0;while(str4[i]!="\\0"){
SBUF=str4[i];
while(!TI);//等特数据传送
TI=0;//清除数据传送标志i++;//下一个字符}}
/************************************************************************/
//前速前进
voidrun(void){
Left_moto_go;//左电机往前走Right_moto_go;//右电机往前走}
//前速后退
voidbackrun(void){
Left_moto_back;//左电机往前走Right_moto_back;//右电机往前走}
//左转
voidleftrun(void){
Left_moto_back;//左电机往前走Right_moto_go;//右电机往前走}
//右转
voidrightrun(void){
Left_moto_go;//左电机往前走Right_moto_back;//右电机往前走}
//STOP
voidstoprun(void){
Left_moto_Stop;//左电机往前走Right_moto_Stop;//右电机往前走}
/************************************************************************/
voidsint()interrupt4//中断接收3个字节{
if(RI)//是否接收中断{
RI=0;
dat=SBUF;
if(dat=="O"&&(i==0))//接收数据第一帧{
buff[i]=dat;
flag=1;//开始接收数据}else
if(flag==1){i++;
buff[i]=dat;if(i>=2){i=0;flag=0;flag_REC=1;}//停止接收}}}
/*********************************************************************/
/*--主函数--*/
voidmain(void){
TMOD=0x20;
TH1=0xFd;//11.0592M晶振,9600波特率TL1=0xFd;SCON=0x50;PCON=0x00;TR1=1;ES=1;EA=1;while(1)/*无限循环*/{
if(flag_REC==1)//{
flag_REC=0;
if(buff[0]=="O"&&buff[1]=="N")//第一个字节为O,第二个字节为N,第三个字节为控制码switch(buff[2]){
caseup://前进send_str();run();break;
casedown://后退send_str1();backrun();break;
caseleft://左转send_str2();leftrun();break;
caseright://右转send_str3();rightrun();break;
casestop://停止send_str4();stoprun();break;}}}}2.3红外遥控红外遥控原理:
红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。发射机一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。红外遥控小车原理,即红外遥控发射出相应编码,被一体化接收头还原出信号,再由单片机执行相应的解码动作,从而控制小车行进。用C语言编程如下:#include
#defineLeft_1_ledP3_4//P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
#defineLeft_2_ledP3_5//P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
#defineRight_1_ledP3_6//P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
#defineRight_2_ledP3_7//P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
#defineLeft_moto_go{P1_0=1,P1_1=0,P1_2=1,P1_3=0;}//左边两个电机向前走
#defineLeft_moto_back{P1_0=0,P1_1=1,P1_2=0,P1_3=1;}//左边两个电机向后转
#defineLeft_moto_Stop{P1_0=0,P1_1=0,P1_2=0,P1_3=0;}//左边两个电机停转
#defineRight_moto_go{P1_4=1,P1_5=0,P1_6=1,P1_7=0;}//右边两个电机向前走
#defineRight_moto_back{P1_4=0,P1_5=1,P1_6=0,P1_7=1;}//右边两个电机向后走
#defineRight_moto_Stop{P1_4=0,P1_5=0,P1_6=0,P1_7=0;}//右边两个电机停转
#defineImax14000//此处为晶振为11.0592时的取值,#defineImin8000//如用其它频率的晶振时,#defineInum11450//要改变相应的取值。#defineInum2700#defineInum33000unsignedcharf=0;
unsignedcharIm[4]={0x00,0x00,0x00,0x00};unsignedcharshow[2]={0,0};unsignedlongm,Tc;unsignedcharIrOK;
/************************************************************************///延时函数
voiddelay(unsignedintk){
unsignedintx,y;for(x=0;x1|0x80;m++;}
if(Tc>Inum2&&Tc>1;m++;//取码}
if(m==32){
m=0;f=0;
if(Im[2]==~Im[3]){
IrOK=1;}
elseIrOK=0;//取码完成后判断读码是否正确}
//准备读下一码}}
/************************************************************************/
//前速前进
voidrun(void){
Left_moto_go;//左电机往前走Right_moto_go;//右电机往前走}
//前速后退
voidbackrun(void){
Left_moto_back;//左电机往前走Right_moto_back;//右电机往前走}
//左转
voidleftrun(void){
Left_moto_back;//左电机往前走Right_moto_go;//右电机往前走}
//右转
voidrightrun(void){
Left_moto_go;//左电机往前走Right_moto_back;//右电机往前走}
//STOP
voidstoprun(void){
Left_moto_Stop;//左电机往前走Right_moto_Stop;//右电机往前走}
/*********************************************************************/
/*--主函数--*/
voidmain(void){
m=0;f=0;IT1=1;EX1=1;
TMOD=0x11;TH0=0;TL0=0;TR0=1;EA=1;
delay(100);
while(1){
if(IrOK==1){
switch(Im[2]){
case0x0e:run();break;
case0x1a:backrun();break;
case0x0a:leftrun();break;
case0x1e:rightrun();break;
case0x05:stoprun();break;default:break;}
IrOK=0;}}}
2.4超声波避障
/*无限循环*/前进//后退//左转//右转//停止//
工作原理
通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了。这与雷达测距原理相似。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2)。
用C语言编程如下:voidmain(void){
TMOD=0X11;
TH1=(65536-100)/256;//100US定时TL1=(65536-100)%256;TH0=0;TL0=0;TR1=1;ET1=1;ET0=1;EA=1;
delay(100);
push_val_left=14;//舵机归中while(1)/*无限循环*/{
if(timer>=1000)//100MS检测启动检测一次{
timer=0;
StartModule();//启动检测Conut();//计算距离
if(Sif(S>30)//距离大于,30CM往前走run();}
}}2.5测速测速原理:
当小车需要测量往驶速度,或是测量小车往驶距离时,需要用的模块(与码盘一起配合使用)。码盘上面有一格一格的“小洞”,码盘一般是20格,就是把360分为20小格即18度/格。配合测速模块就可以输出电信号,供给单片机计数,从而计算出码盘速度与行走距离。用C语言编程如下:/*--主函数--*/
voidmain(void){
TMOD=0X01;
TH0=(65536-201*)/256;//2MS定时TL0=(65536-201*)%256;TR0=1;ET0=1;
EX0=1;//开启外部中断0IT0=1;//下降沿有效EA=1;run();while(1){
//有信号为0没有信号为1if(Left_2_led==0&&Right_1_led==0)run();else
{if(Right_1_led==1&&Left_2_led==0)//右边检测到黑线{
Left_moto_go;//左边两个电机正转Right_moto_back;//右边两个电机反转}
if(Left_2_led==1&&Right_1_led==0)//左边检测到黑线{
Right_moto_go;//右边两个电机正转Left_moto_back;//左边两个电机反式开始转
}}}}
2.6实习过程
在做直流电机小车的过程中,在按原理图接好线以后,我发现各个部分基本都可以实现其功能,但唯一觉得循迹这一功能很难实现。在确定不是接线问题后,我发现问题产生的原因是红外传感器的灵敏度出了问题。继而顺逆时针调节传感器灵敏度,可经过一下午的调节仍没效果,后来在同学的帮助下才解决这一问题。2.7总结
通过做这次直流电机小车实验,在读程序的过程中,发现自己有些语句没有读懂,这体现了我对C51单片机的学习还不够完善,还不够深入。但是这一过程让我对机电一体化系统的设计产生浓厚的兴趣。在做实验的过程中,我觉得所设计的直流电机小车的寻迹并不是很精确,只要传感器的精度稍微不准确,就会产生很大的偏差。2.8展望
在做完直流电机这一实验以后,我觉得收获很大,不仅巩固了知识,也对机电一体化系统有了更深入的学习。对于直流电机小车的设计,我觉得如果能够将寻迹这一功能设计的更准确那就将会更好。三、步进电机小车总结1、实习任务与要求
要求会连接电路图,编写程序使步进电机小车实现前进、后退、左转、右转、红外避障、红外寻迹等功能。2、实习内容
步进电机工作原理
步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电动机能直接接受数字量的控制,所以特别适宜采用微机进行控制。2.1步进电机小车动作步进电机小车前进C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
move_left(10,0,1);move_right(10,1,1);}}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
步进电机小车后退C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
move_left(10,1,1);move_right(10,0,1);}}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
步进电机小车左转C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
move_left(10,1,1);move_right(10,1,1);
delay(200);//可以通过延时时间控制转弯角度.stop();while(1);}}
voidstop(){
TR1=0;}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
步进电机小车右转C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
move_left(10,0,1);move_right(10,0,1);
delay(200);//可以通过延时时间控制转弯角度.stop();while(1);}}
voidstop(){
TR1=0;}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
2.2红外避障功能
工作原理
在一定范围内,如果没有障碍物,发射出去的红外线,因为传播距离越远而逐渐减弱,最后消失。如果有障碍物,红外线遇到障碍物,被反射到达传感器接收头。传感器检测到这一信号就可以确认正前方有障碍物,并送给单片机,单片机进行一系列的处理分析,协调小车两轮工作,躲避障碍物动作。C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
if(ir_left==0&&ir_mid==0&&ir_right==0)//以下是三个红外传感器的八种状态和对应的运动方式{
move_left(15,0,1);move_right(15,0,1);delay(800);}
if(ir_left==0&&ir_mid==0&&ir_right==1){
move_left(15,0,1);move_right(15,0,1);delay(400);}
if(ir_left==0&&ir_mid==1&&ir_right==0){
move_left(15,0,1);move_right(15,0,1);delay(800);}
if(ir_left==0&&ir_mid==1&&ir_right==1){
move_left(15,0,1);move_right(15,0,1);delay(400);}
if(ir_left==1&&ir_mid==0&&ir_right==0){
move_left(15,1,1);move_right(15,1,1);delay(400);}
if(ir_left==1&&ir_mid==0&&ir_right==1){
move_left(15,0,1);move_right(15,0,1);delay(800);}if(ir_left==1&&ir_mid==1&&ir_right==0){
move_left(15,1,1);move_right(15,1,1);delay(400);}
if(ir_left==1&&ir_mid==1&&ir_right==1){
move_left(15,0,1);move_right(15,1,1);}}}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;m=m+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
2.3红外寻迹功能
工作原理寻迹传感器通常采用红外的方式,红外管发射出来的红外光通过地面(白色)反射回来,在接收管里收到信号,一旦碰到黑线,那么红外光都被吸收,接收管没有接收到信号,从而得知传感器是否压线,从而调整小车运行方向。用C语言编程如下:voidmain(void){
delay(10);timer1_init();while(1){
if(ir_left==0&&ir_right==0){
move_left(15,0,0);move_right(15,0,0);}
if(ir_left==0&&ir_right==1){
move_left(15,1,1);move_right(15,1,1);delay(100);}
if(ir_left==1&&ir_right==0){
move_left(15,0,1);move_right(15,0,1);delay(100);}
if(ir_left==1&&ir_right==1){
move_left(15,0,1);move_right(15,1,1);delay(40);}}}
voidtimer1_serve()interrupt3{
TH1=(65536-100)/256;TL1=(65536-100)%256;n=n+1;m=m+1;
if(n==speed){
clk_left=~clk_left;clk_right=~clk_right;n=0;}}
2.4实习过程
在做红外避障的时候,下载完程序时,发现小车有动作,但遇障碍时未能向左或向右转。开始我以为是电池电量不足的原因,但更换电池后仍未解决。最后发现是安装牛眼时将牛眼位置安装的高了,从而导致未能顺利左转或右转。2.5总结
做步进电机小车这一实验的过程中,由于有了做前两个实验的基础,故而做起来还是很顺利的,因为原理都差不多是一样的。但由于自己粗心将装置安装错误使小车未能正确动作。所以,做什么事情都不能只看到大问题,而忽视了小问题。2.6展望
这是第三个实习了,做完后我现自己对机电一体化设计很有兴趣,我觉得如果有机会,我将会往一体化设计这方面发展。也许刚开始的时候不会很顺利,但我相信经过我自己的努力,将来的某一天我会达到自己的目标的。四、机电系统创新设计五、个人体会与总结
在不经意间,为期三个星期的机电一体化实习就即将结束了。在实习的过程中,我由对实习的生疏逐渐变为熟络,我出过小差错,但我也收获了很多,学会了很多。
我做的第一个任务是宝贝车,由于是第一次接触,所以我感到有一种无从下手的感觉。故而在开始的前两天,一直有一种迷茫的感觉,但随着慢慢的摸索,我发现原来宝贝车是那么的有意思,慢慢的使我有了兴趣去做下去。在做的过程中,让我最为苦恼的是接线了。但我知道万事开头难,所以我按照原理图慢慢的探索着。最后,当我做出的宝贝车实现第一个功能的时候,我慢慢的觉得有了信心,并且还觉得有一丝丝的自豪,在这样的信心的带领下,终于做出了完整功能的宝贝车。接下来做的是直流电机小车,当我第一眼看到的时候,我想起了小时候玩的遥控小汽车,事实上它也具备着这样的功能,不,应该说比这更全面的功能。因为它不仅能实现普通的红外遥控功能,还能实现红外避障、红外寻迹及通过手机实现蓝牙遥控。带着好奇心,我一步步的探索着,在经历了一次次的错误,一次次的失败后,我逐渐的实现了直流电机小车的各种功能。随着直流电机小车一样样功能的实现,让我觉得设计原来是这么有意思的一件事情,虽然过程是漫长的,但却是充实的。而最后一个任务就是步进电机小车了,它所实现的功能和直流电机小车差不多,但实现的方式有所差别。由于有了前两个任务作为基础,步进电机小车做起来就得心应手的多了。当然,首先就是先要读懂原理图,按照原理图接好线,其次就是读懂程序,理解设计者这样设计的目的以及实现的效果,最后就是根据自己的理解来编写程序,下载到单片机,实现其功能。在做这三个任务的过程中,发现问题,解决问题,提高了我的动手能力,解决问题的能力。这一次实习让我感觉到,无论事情看起来有多难,只要你耐心的去做了,它会慢慢的变得容易,因为你去试着了解它了,学习它了,它对于你将不会一成不变的陌生。三任务的完成让我觉得,只要你努力,并有恒心的去做一件事,即使最后你没有成功,但是你从中收获的过程,也与成功同等的重要。
友情提示:本文中关于《申彦军——机电一体化实习总结》给出的范例仅供您参考拓展思维使用,申彦军——机电一体化实习总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。