光机电一体化技术实训讲义.docx
《光机电一体化技术实训讲义.docx》由会员分享,可在线阅读,更多相关《光机电一体化技术实训讲义.docx(54页珍藏版)》请在冰豆网上搜索。
光机电一体化技术实训讲义
光机电一体化技术实训
武汉大学工程训练中心
2009.6
目录
第一章导论1
1.1概述1
1.2预备知识3
1.2.1控制器3
1.2.2电子元器件基础7
1.2.3传感器9
第二章单片机C语言编程13
2.1C语言概述13
2.2C51程序的一般结构13
2.3数据类型、运算符与表达式14
2.4基本语句15
第三章实训20
实训一机器人组装与测试20
实训二C51单片机编程环境的创建与使用26
实训三机器人巡航控制30
实训四机器人触觉导航(选做)*35
实训五机器人红外线导航(选做)*37
第四章自动化装配系统教学模型介绍40
附录创新思维报告44
第一章导论
1.1概述
机电一体化(Mechatronics)技术是日本企业界在1970年左右最早提出“机电一体化技术”这一概念是从系统的观点出发,将机械技术、电子技术、信息检测技术、自动控制技术等相关技术加以有机融合,实现整个系统的最优化而建立起来的一种新的复合技术。
许多发达国家将机电一体化的前沿技术作为国家高科技技术发展战略的一个重要方向。
机电一体化技术的在日常生活及工业生产中的各个领域中得到了广泛应用,室内空调、微波炉、全自动洗衣机、数码相机、汽车等都是典型的机电一体化产品,使我们的生活更加舒适简便,变得多姿多彩;数控机床、加工中心、机器人改变了传统的加工方式,极大地提高了生产效率。
按产品的功能划分,机电一体化产品有以下几种:
1.数控机械类数控车床及铣床、加工中心、工业机器人、全自动洗衣机等,这类产品的特点是执行机构为机械装置。
2.电子设备类电火花线切割机床、激光加工设备、超声波加工设备等,这类产品的特点是执行机构为电子装置。
3.机电结合类CT扫描仪、自动售货机等,这类产品的特点是执行机构为机械装置和电子装置有机结合。
4.电液(气)伺服类自动化装配线、起重机械等,这类产品的特点是执行机构为液压(气压)驱动的机械装置。
5.信息控制类磁盘存储器、复印机、传真机等办公自动化设备,这类产品的特点是执行机构完全由接受的信息控制。
机电一体化系统(产品)的特点:
1)综合性与系统性;2)小型化、微型化;3)高可靠性;4)柔性化、智能化;5)知识密集。
机电一体化系统(产品)由五大要素构成:
控制装置、检测装置、执行装置、动力装置、机械装置。
表1-1列出了机电一体化系统(产品)构成要素与人体构成要素的对应关系。
图1-1列出了机电一体化系统(产品)的五大要素及其相应的五大功能
表1-1机电一体化系统(产品)构成要素与人体构成要素的对应关系
机电一体化系统(产品)要素
功能
人体要素
控制
控制(信息存储处理传送)
大脑
检测
计测(信息收集与变换)
感觉器官
执行
驱动(操作)
手、脚
动力
提供动力(能量)
肾
机械
构造
骨骼
图1-1机电一体化系统(产品)的五大要素及其相应的五大功能
下面以室内空调和太阳能庭院灯为例介绍机电一体化产品:
室内空调如下图1-2表示出了室内空调中嵌入控制器后具体的输入输出信号及空调所具有的功能。
空调嵌入控制器
具有的功能
●自动运行
●室内风量自动
调整
●定时功能
●干燥辅热功能
●就寝控制
●除尘网提示
输入输出
电源继电器
室温传感器
风扇继电器
模式选择开关
加热器继电器
定时器
空压机继电器
风量控制开关
除尘网指示灯
设定温度
图1-2空调输入信号输出信号示意图
●太阳能庭院灯由太阳能电池、二极管(可以防止电池的电流在夜间流回太阳能电池)、微控制器板、电阻、LED光源、光敏电阻、蓄电池、三极管等构成。
工作原理:
利用太阳电池的光伏效应产生电能并对蓄电池进行充电;利用光敏电阻检测光线的强弱,当黑夜来临光强弱至一定值时,通过控制器将蓄电池与LED光源接通,开始照明。
太阳能庭院灯嵌入控制器
具有的功能
●白天贮存太阳能
●晚上自动开启
●定时功能
输入输出
太阳能电池
光敏电阻检测光强
LED光源
定时器
图1-3太阳能庭院灯输入信号输出信号示意图
图1-4太阳能庭院灯
1.2预备知识
1.2.1微机
人们常用“微机”这个术语,即微处理机(微处理器CPU)、微型计算机(Microcomputer)简称MC、微型计算机系统(MCS)。
图1-3所示为微处理机、微型计算机、微型计算机系统的相互关系。
图1-3CPU、MC与MCS的关系
微机的基本硬件构成如图1-4所示,包括一个中央处理器(CPU),它通过数据总线、地址总线和控制总线与随机存贮器(RAM)、只读存贮器(ROM)相连,还有用于从外部输入、输出信息的输入/输出装置。
CPU是计算机的大脑,由一组寄存器(临时存贮信息)、一个算术和逻辑单元(对信息执行操作)、一个指令和控制单元(决定CPU要进行的操作)构成。
CPU负责管理微机所有活动并执行对数据的所有操作,它不断重复两件事:
接受指令和执行指令。
CPU能够理解并执行由二进制代码组成的指令,这些指令通常用来执行数学运算(加、减、乘、除),逻辑运算(与、或、非),每条指令代表一个简单的操作。
按CPU中算术逻辑运算单元所能处理的数据位数,即CPU能一次处理的数据的最大长度,分位8位、16位、32位、64位。
8位CPU是指一次能处理8位二进制数(8位数据)。
单片微机中CPU大都采用8位,如AT89S52系列。
ROM通常存储固定程序和数据,而RAM存储输入/输出数作业领域的数据。
输入/输出装置主要执行数据和程序的输入/输出,以及用于输入检测传感元件的信息和输出控制执行元件的信息。
微机的应用领域分为两个方向:
普通计算机和控制器(即控制用的微机,如单片机)。
普通计算机主要利用它的计算控制功能,在日常工作、科技方面处理较为简单的计算;控制用的微机在家电、机器人、汽车、测试设备等方面得到广泛应用。
图1-4微机的基本硬件构成
1.单片机也称单片微型计算机或单片微型电脑,国际上统称为微控制器(Microcontroller)。
如图1-5所示,在一块集成电路芯片(LSI)上装有CPU、ROM(只读存储器)、RAM(可读写存储器)以及输入/输出端口(I/O口)电路,该芯片就被称为单片微型计算机(SCM——SingleChipMicrocomputer)简称单片机。
为了增强实时控制能力,绝大多数单片机的芯片上还集成有定时器/计数器,部分单片机还集成有A/D、D/A转换器和PWM等功能部件。
图1-5单片机
8位单片机因内部构造简单、体积小、成本低廉,在一些简单的控制器中应用广泛。
应用最广泛的8位单片机首推美国Itel公司的51系列,包括8031、8051、8751等品种,其中8051是最典型的产品。
Itel公司将51系列的核心技术授权给了很多公司,其中较典型的AT89C51单片机是由美国ATMEL公司以8051为内核开发生产的,后期实训中采用的AT89S52单片机就是在此基础上改进而来的。
目前,单片机已广泛应用于家用电器、机电产品、仪器仪表、办公室自动化产品、机器人等机电一体化产品上。
3.可编程控制器
(1)可编程控制器的定义
可编程控制器(ProgrammableController)是在硬接线逻辑控制技术和计算机技术的基础上发展起来的一种工业控制器。
其早期称为可编程逻辑控制器(ProgrammableLogicController),简称PLC。
为避免与个人计算机PC(PersonalComputer)相混淆,仍简称为PLC。
1987年国际电工委员会(IEC1131-1)对PLC的定义:
可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、定时、计数与算术运算等面向用户的指令,并通过数字式或模拟式输入/输出控制各种类型的机械或生产过程。
(2)PLC的组成
PLC以微机技术为基础,其构成基本与微型计算机相同,由中央处理单元(CPU)、存储器(RAM、ROM)、输入/输出部件(I/O接口)、编程工具和外围设备等组成,如图16-19所示。
图1-7PLC的组成
(3)PLC工作过程
输入采样阶段PLC以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区。
程序执行阶段PLC按顺序对程序进行扫描,并分别从输入、输出寄存器获得所需数据进行运算、处理,将程序执行结果写入输出寄存器中保存。
输出刷新阶段执行完程序后,PLC将寄存器中内容送入到输出状态的输出寄存器中,再去驱动用户设备。
(4)PLC的应用
随着PLC性价比的提高,PLC的应用范围不断扩大,大致归纳为以下几类:
开关量的逻辑控制它取代了传统的继电器控制系统,实现逻辑控制、顺序控制,可用于单机控制、多机群控、自动化生产线的控制等。
位置控制大多数的PLC制造商提供拖动步进电机或伺服电机的单轴或多轴位置控制模块。
如金属切削机床、机器人等。
过程控制PLC可对温度、压力、流量等连续变化的模拟量的闭环控制。
数据处理PLC具有数学运算、数据传递、转换、排序和查表、位操作等功能。
通信联网PLC的通信包括PLC相互之间、PLC与上位计算机、PLC和其它智能设备间的通信。
由此可见,PLC在现代工业生产中的地位十分重要。
1.2.2电子元器件基础
1、二极管
二极管是一种半导体,具有单向导电特性。
也就是在正向电压的作用下,导通电阻很小;而在反向电压作用下导通电阻极大或无穷大。
正因为二极管具有上述特性,二极管可分为整流二极管、开关二极管、稳压二极管、发光二极管等。
无绳电话机中常把它用在整流、隔离、稳压、极性保护、编码控制、调频调制等电路中。
识别方法:
二极管有两个电极,分为正负极,小功率二极管的N极(负极),在二极管外表大多采用一种红色圈标出来,有些二极管也用二极管专用符号来表示P极(正极)或N极(负极),也有采用符号标志为“P”、“N”来确定二极管极性的。
发光二极管(LED)发光原理是在PN结的结合面上让电子与空穴再次结合,此时产生的能量以发光的形式释放出来。
依光谱大致可分为红外线发光二极管及可见光的发光二极管,人眼能感觉到光波即可见光的波长在380~780nm之间,红外线波长在780~1500nm之间。
红外线发光二极管与普通发光二极管的工作原理与发光条件一样,只是发射的光为不可见光红外线。
在电子电路中一般利用LED表示信号,或用作红外传感器中的发光元件,为了限制电流的大小,一般应将LED与电阻串联使用。
发光二极管的正负极可从引脚长短来识别,长脚为正,短脚为负。
可用万用表来对二极管进行测量,红表笔接二极管的负极,黑表笔接二极管的正极时,表针会动,说明它能够导电;然后将黑表笔接二极管负极,红表笔接二极管正极,这时万用表的表针根本不动或者只偏转一点点,说明导电不良(万用表里面,黑表笔接的是内部电池的正极)。
图1-8红外发光二极管(左)及符号图(右)
2、三极管
晶体三极管(简称三极管)是内部含有2个PN结,它最主要的功能是电流放大及开关(通和断)的作用。
它分NPN型和PNP型两种类型,电话机中常用的PNP型三极管有:
A92、9015等型号;NPN型三极管有:
A42、9014、9018、9013、9012等型号。
三极管最基本的作用是放大作用,它可以把微弱的电信号变成一定强度的信号,三极管有一个重要参数就是电流放大系数β。
当三极管的基极上加一个微小的电流时,在集电极上可以得到一个是基极电流β倍的电流,即集电极电流。
集电极电流随基极电流的变化而变化,并且基极电流很小的变化可以引起集电极电流很大的变化,这就是三极管的放大作用。
三极管的开关作用在第三章实训五中作详细介绍。
三极管的基极用字母b表示,其他的两个电极如集电极用字母c表示,发射极用字母e表示。
由于不同的组合方式,形成了一种是NPN型的三极管,另一种是PNP型的三极管。
在三极管的符号表示中,有一个箭头的电极是发射极,箭头朝外的是NPN型三极管,而箭头朝内的是PNP型,实际上箭头所指的方向是电流的方向。
本实训中采用NPN型三极管9013型,将标有型号的一面对着自己,从左至右依此为发射极、基极、集电极,即e、b、c。
图1-9NPN型三极管的结构图及符号图
如图1-10NPN型三极管9013外形图
3、晶振
为系统提供基本的时钟信号。
每个单片机系统里都有晶振,即晶体震荡器,在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
通过一定的电路可以使晶振产生一个频率固定的电压波形(一般是正弦波),从而为一些电路提供时钟脉冲。
每个晶振的频率都是固定的,不管外围的电路接的如何。
1.2.3传感器
传感器(senor)是一种检测元件,能把非电输入信息转换成电信号输出的测量元件或装置。
传感器的分类方法很多,在机电系统中常用的分类方法有两种,一种是按被测的物理量分类,另一种是按传感器的工作原理分类。
按被测的物理量分类,常见的传感器有:
温度传感器、压力传感器、流量传感器、力传感器、位移传感器、位置(接近开关)传感器、速度传感器、液位传感器等。
按传感器的工作原理分类,主要可分为:
1.电学式传感器常见的电学式传感器有:
电感传感器、电容传感器、磁电式传感器、电阻式传感器等。
2.光电式传感器利用光电器件的光电效应及光学原理制成,主要用于光强、位置、转速等参数的测量。
3.热电式传感器利用某些材料的热电效应制成,主要用于温度的测量,如热电偶、热电阻等,热电偶是将温度的变化转换为电压的变化,热电阻是将温度的变化转换为电阻的变化。
4.压电式传感器利用某些材料的压电效应制成,即当材料表面受力作用变形时,其表面会有电荷产生从而实现非电量测量。
主要用于测量与力有关的参数如力、位移、加速度等。
5.半导体式传感器利用半导体的压阻效应、内光电效应、磁电效应制成,主要用于温度、湿度、磁场、颜色的测量,如气敏传感器、湿敏传感器、磁敏传感器、色敏传感器等。
有些传感器是由两种以上原理复合形成的,如很多半导体式传感器是由几种原理复合形成的。
位置传感器(接近开关)是一种具有感知物体接近能力的元器件,对接近物体具有敏感特性,识别物体接近并转换为接通、断开信号,从而判断出物体的有无、位置。
位置传感器在自动化生产线上获得广泛应用,如生产工件的加工定位、生产工件的计数等。
1.电感式接近开关
工作原理:
由振荡器产生一个交变磁场,当金属目标接近这一磁场,并达到感应距离时,在金属目标内产生涡流,从而导致振荡衰减,以至停振。
振荡器振荡及停振的变化被后级放大电路处理并转换成开关信号,触发驱动控制器件,从而达到非接触式检测有无物体存在的目的。
如图1-11所示。
电感式接近开关既能检测从传感器侧向水平接近的物体,又可检测从垂直传感器接近的物体,但只能检测金属材料。
图1-11电感式传感器工作原理
2.电容式接近开关
工作原理:
测量头构成电容器的一个极板,另一个极板是物体本身,当物体移向接近开关时,物体和接近开关的介电常数发生变化,使得和测量头相连的电路状态也随之发生变化。
该传感器能检测金属、非金属、塑料、纸类等物体,物体的动作距离决定于材料的介电常数,材料的介电常数越大,可获得的动作距离越大。
图1-12电容式接近开关工作原理
图1-13电容式接近开关外形图
3.光电式接近开关
工作原理:
光电式接近开关是通过把光强度的变化转换成电信号的变化来实现检测的。
在一般情况下由三部分构成,它们分为:
发送器,接收器和检测电路。
图1-14光电式传感器工作原理
发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)和激光二极管。
空类型光束不间断地发射,或者改变脉冲宽度。
接收器由光电二极管或光电三极管组,在接收器的前面,装有滤波器,滤出有效信号。
第二章单片机C语言编程
2.1C语言概述
1978年由美国电话电报公司(AT&T)贝尔实验室正式发布C语言,同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THECPROGRAMMINGLANGUAGE》一书,通常简称为《K&R》,也有人称之为《K&R》标准。
但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准协会(AmericaNationalStandardsInstitute)在此基础上制定了一个C语言标准,于1983年发布,通常称之为ANSIC。
2.2C51程序的一般结构
首先介绍一下函数,一个较大的C语言程序一般分成若干个模块,将实现一定的功能的每个模块称为函数。
与标准C语言相同,C51程序的一般结构由一个或多个函数构成,其中至少应包含一个主函数main。
不管main()函数处于什么位置,程序执行时一定是从主函数开始,调用其他函数后又返回主函数,被调函数如果位于主调函数前面,可以直接调用,否则要先说明后调用。
main()函数不能被其他函数调用。
函数定义的一般格式:
函数返回值的类型函数名(形式参数1,形式参数2,………)
C51程序的一般结构如下:
预处理命令/*用于包含头文件及宏定义命令等*/
全局变量说明/*全局变量可以被本程序的所有函数引用*/
函数1说明
…
函数n说明
/*主函数*/
main(){
局部变量说明:
/*局部变量只能在所定义的函数内部引用*/
执行语句:
函数调用(形式参数表);
}
/*其他函数定义*/
函数1(形式参数说明){
局部变量说明:
/*局部变量只能在所定义的函数内部引用*/
执行语句;
函数调用(形式参数表);
}
…
函数n(形式参数说明){
局部变量说明:
/*局部变量只能在所定义的函数内部引用*/
执行语句;
函数调用(形式参数表);
}
编写C51程序时要注意如下几点:
●预处理命令以”#”开头,如包含命令#include、宏定义命令#define,在源程序中,这些命令都放在函数之外,一般在源文件的前面。
●函数以花括号“{”开始,以花括号“}”结束,包含在“{}”以内的疗分称为函数体。
花括号必须成对出现,如果一个函数内有多对花括号,则最外层花括号为函数体的范围。
为使程序增加可读性并便于理解,可以采用缩进方式书写。
●C51程序没有行号,书定格式自由,一行内可以书写多条语句,一条语句也可以分写在多行上。
●每个变量必须先定义后引用。
在函数内部定义的变量为局部变量,又称为内部变量,只有定义它的那个函数之内才能够使用。
在函数外部定义的变量为全局变量,又称为外部变量,在定义它的那个程序文件中的函数都可以使用它。
●对程序语句的注释必须放在双斜杠“//”之后,或者放在“/*……*/”之内。
2.3数据类型、运算符与表达式
在C语言中,数据类型可分为基本数据类型、构造数据类型、指针类型、空类型四大类,其中,基本数据类型又分为整型(int)、字符型(char)、浮点型(flot)
整型(int)量包括整型常量(整常数)、整型变量。
在C语言中,使用的整常数有十六进制和十进制的。
十六进制常数的前缀为0X或0x,0~9仍沿用十进制数的0~9,10以上的数码用A~F表示。
表2-2.列出了十六进制数与十进制、二进制的对应关系。
表2-1.
十进制
二进制
十六进制
十进制
二进制
十六进制
0
0000
0
9
1001
9
1
0001
1
10
1010
A
2
0010
2
11
1011
B
3
0011
3
12
1100
C
4
0100
4
13
1101
D
5
0101
5
14
1110
E
6
0110
6
15
1111
F
7
0111
7
16
10000
10
8
1000
8
从表2-1可看出,4位二进制正好与一位十六进制数对应,二进制位数比较多,描述起来比较麻烦,为使描述变得简单,通常将8位二进制数用两位十六进制数表示。
2.4基本语句
1.循环控制while语句
while语句的一般形式为:
while(表达式)循环体语句
while语句的语义是,计算表达式的值,当值为真(非0)时,执行循环体语句。
下面是利用while语句控制单灯闪烁(每隔一秒发光、关闭一次)的例程:
#include//包含的头文件中定义了延时函数
#include//包含的头文件实现串口初始化函数
intmain(void)
{
uart_Init();//初始化串口
printf(“TheLEDconnectedtoP1_0isblinking!
\n”);
while
(1)
{
P1_0=1;//P1_0输出高电平
delay_nms(500);//延时500ms
P1_0=0;//P1_0输出低电平
delay_nms(500);//延时500ms
}
}
在上例程while语句中直接用1代替了表达式,因此表达式总是非零值,循环永不结束。
2.for语句
for语句使用最为灵活,它的一般形式为:
for(表达式1;表达式2;表达式3)
语句
其执行过程如图2-1所示。
for语句最简单的应用形式也是最容易的理解形式如下:
for(循环变量赋初值;循环条件;循环变量增量)
语句
图2-1
在机器人的控制中,用for语句控制代码的执行次数,从而控制机器人伺服电机的运行时间。
下面是for循环的例子,它会使电机运行几秒钟(2.17秒)。
for(Counter=1;Counter<=100;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
delay_nms(20);
}
假如想让两个电机同时运行,给与P1_1连接的电机发出1.7ms的脉宽,给与P1_0连接的电机发出1.3ms的脉宽,现在每通过循环一次要用的时间是:
1.7ms——与P1_1连接的电机
1.3ms——与P1_0连接的电机
20ms——中断持续时间
-------------------------------------------
一共是23ms
如果想使机器人运行一段确定的时间,可以计算如下:
脉冲数量=时间/0.023s=时间/0.023
假如想让电机运行3s,计算如下:
脉冲数量=3/0.023=130
将for循环作如下修改,使机器人运行3s,程序如下:
#include//包含的头文件中定义了延时函数
#include//包含的头文件实现串口初始化函数
intmain(void)
{
intcounter;
uart_Init();//初始化串口
printf(“P