1.实习任务与要求1.1实习目的1、机械构件如何通过电机驱动实现不同的动作;2、控制电路的设计及其分析;3、控制器如何通过传感电路感知世界;4、设备如何构成控制反馈等。1.2实习要求1、熟练掌握单一传感器、单电机在控制器作用下实现具体机械构件的控制。2、熟练掌握控制器采集多类型、多数量传感器信息并通过复杂电路控制多电机实现对多机械构件的控制;3、熟练掌握各种电机在控制器作用下,驱动机械构件实现复杂运动。2.1四轮直流电机智能小车2.1.1小车的装配组装按照电路图要求组装,组装完成如附件直流小车图。2.1.2电机系统1.电机的工作原理:复杂的直流电机结构可简化为电机具有一对主磁极,电枢绕组只是一个线圈,线圈两端分别联在两个换向片上,换向片上压着电刷A和B,如图2-2。1—主磁极:励磁绕组上加上直流电压,励磁绕组上有励磁电流通过,使定子铁心产生固定磁场,即定子的主要作用是产生主磁场。2—电机绕组:在固定的磁场中旋转,主要作用是产生感应电动势或产生机械转矩,实现能量的转换。3、4—换向器:电刷固定不动,换向片与电枢绕组一起旋转,主要作用对电动机而言,则是将外加的直流电流转换为电枢绕组的交变电流,并保证每一磁极下,电枢导体的电流的方向不变,以产生恒定的电磁转矩。2.直流电机的控制1.使用脉冲宽度调制(PWM)方式来驱动直流电机,也就是给直流电机输入占空比可调的方波,当电平为1时电机转动,电平为0时电机停止。电动机的驱动方波周期一定,通过改变高电平的持续时间来控制电动机使能,从而改变电动机一个周期内动作时间,达到控制电动机转速的目的。控制加减速时可以控制占空比的变化,是占空比不断减小可以控制电机的减速,相反可以控制电机的加速。直流电机控制基本原理:两个电极与电源正接或反接,可以使其正转或反转。由于直流电机的工作电流比较大,不能直接使用单片机来驱动,一般使用集成芯片L293D或L298D。3.控制信号:每1个电机需要3个控制信号EN1、IN1、IN2(如图2—3);EN1是使能信号。选用一路PWM连接EN1引脚,通过调整PWM的占空比可以调整电机的转速;IN1、IN2为电机转动方向控制信号。IN1、IN2分别为1,0时,电机正转;反之,电机反转。(为节省单片机引脚,可以只用一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。)2-1-2前进:左侧轮子逆时针转,右侧轮子顺时针转。后退:右侧轮子逆时针转,左侧轮子顺时针转。左转:左侧向后转,右侧向前转。右转:左侧向前转,右侧向后转。2.1.3程序流程图1.循迹开始检测结果为000或010?结果为100或110?结果为001或011?结果为111?前进左转右转停止YNYNNYY结束N2.遥控开始停止和前进键的编码一致和后退键的编码一致和左转键的编码一致NN调用前进子程序调用前进子程序调用前进子程序YYN接收到遥控信号YN调用前进子程序和右转键的编码一致NYN2.1.4程序清单(见附件)2.1.程序运行原理小车主要有三个模块组成:驱动模块,传感模块,51单片机模块。驱动模块通过给电机“0”,“1”信号来驱动电机,传感模块主要是通过红外检测来产生电信号,当传感器接收到信号时,输出“1”,接收不到信号时为“0”;再通过反相器最后输出给单片机相反地信号。51单片机模块主要是用来通过各个借口连接不同的模块,然后再通过单片机内部已经存储的程序来处理各个接口的电信号,从而进行各个要求运行状态的执行。2.1.6总结直流小车是我们组第一个小车,首先要进行小车的组装,由于小车主要组成部分不是很多,很快完成小车的单片机、直流电机以及小车的其他部分的初步组装。初步组装完成后,通过分析资料上给的电路图进行小车的接线,并进行分析电路,了解每一个模块的功能及运行原理。经过一天的时间小车基本完成了全部的组装。组装完成后,进入了前进程序的调试过程,直流电机前进后退是根据两级的电势差,这个比较简单,随后就是小车的后退和左转右转。也很快的的完成。在调试中遇到了小车的报警,通过寻找原因是P3.6口是个特殊的口,不能接东西。在这些基础的程序完成后又开始了小车的加减速的程序调试,根据老师给的资料,我们知道了速度是通过调节电机的使能的占空比的大小,调节加速减速只需要是每个小时刻的占空比不同就可以了。根据单片机原理,占空比的调节需要用到中断,在程序中我们假设波形周期是1s,从而控制中断来次数来使单片机输出的电压取反。中断的次数不同,高电平持续的时间不同,占空比就不同,最后的速度不同。只要控制次数的变化,就完成的加减速。由于小车电机原因,当占空比过小时,电机就不能使小车行走,因此我们的占空比最小只有50%。随后就进入了,小车寻迹的调试。这个程序对我来说比较陌生,感觉很神奇,随后看了资料的介绍,我们知道了它的基本原理,通过传感模块的输入单片机的信号,来判断小车需要运行的轨迹。我们用了if语句来实现,程序编好后,有一个问题出现了,我们的单片机下载进不去程序,刚开始以为是单片机芯片坏掉了,可是换了一个芯片还是不行,最后怀疑是传输口的原因,换了单片机后还是不行,最后我们发现是由于连接了传感器驱动模块后才不行的,是由于电压的分配不够导致不能下载程序。只要拔掉传感器的电源线就可以完成。下载最开始的程序后。在手上演示能按照程序运行,放下去不会走动,进过推测是传感器灵装的离地面太高,于是把传感器向下放,最后能够前进。随后又遇到了新的问题,速度太快,传感器反应不出来,这次我们就用到了占空比来调节,通过反复的实验最终完成了寻迹的目标。红外遥控时需要对红外信号进行解码,解码程序没有学习过,根据资料的程序,进行了解码比较困难,因此用了一个比较折中的办法,就是不用解码,先把红外信号对应的码数给单片机内部的一个值,然后在进行比较,用来控制小车的运行。经过调试程序最终完成的预期的要求,老师最后又给了一个程序,里面有对英的码数,我们根据这个直接进行了码数的比较,也完成了预期的结果。在红外控制时也遇到了问题,就是放在地上不动,在手里遥控动,原因是传感模块影响红外遥控,是小车不能接受是遥控器信号。拔出传感器模块的电源最后成功遥控。这个小车做的比较久,做完后感觉很有成就感,把我们以前学的电机和单片机的内容得到的巩固,更加理解单片机程序的编写和直流电机的运行,对我们的知识有了一定的提高,也激发了我们的兴趣,更好的学习。2.2两轮舵机智能小车2.2.1舵机的结构和控制1、舵机由舵盘、位置反馈电位器、减速齿轮组、直流电机和控制电路组成。2、控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。3、舵机的脉冲控制舵机三根线:红-电源VCC;黑-地;白-信号线舵机控制信号是周期为20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,对应舵盘的位置为0-1800(±900),呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。4、舵机的单片机控制舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。由此可见,舵机是一种位置伺服的驱动器。如果用12M的晶振,单片机的一个时钟周期为12个晶振周期,正好是1/1000ms,计数器每隔1/1000ms计一次数。先设定脉宽的初始值,并置输出p12为高位。当计数结束时,触发计数器溢出中断函数。在for循环中可以随时通过改变a值来改变转动角度。舵机的3根线,电压和地接好,脉宽控制信号线,与单片机定时器输出脚相连,用单片机的定时器产生20ms的脉冲频率控制舵机,通过改变脉冲的占空比来控制输出角度。舵机转动时需要消耗比较大的电流,所以舵机的电源最好单独提供,不要和单片机使用同一路电源。5、舵机的单片机控制舵机的3根线,电压和地接好,脉宽控制信号线,与单片机定时器输出脚相连,用单片机的定时器产生20ms的脉冲频率控制舵机,通过改变脉冲的占空比来控制输出角度。舵机转动时需要消耗比较大的电流,所以舵机的电源最好单独提供,不要和单片机使用同一路电源。6、舵机控制方法顺时针全速:连续给1.3ms的脉冲,间隔20ms,全速顺时针旋转。全速的范围是50到60RPM.。逆时针旋转:连续给1.7ms的脉冲,间隔20ms,全速顺时针旋转。全速的范围是50到60RPM。不动:连续给1500us。2.2.2舵机加减速控制由舵机的工作原理可知,当脉冲延迟1500时静止,延时1300时顺时针转速最大,延时1700时逆时针转速最大,所以当脉冲延时从1500向1300递减时舵机加速顺转,当脉冲延时从1500向1700递增时加速逆转,同理当延时从1300向1500递增时减速顺转,延时从1700向1500递减时减速逆转。又因为小车两个舵机相对安装,左侧逆时针转,右侧顺时针转才能前进,后退、左转、右转。2.2.3程序流程图1.寻迹开始直走(前进子程序)检测到黑线(P2.3—P2.6不全为0)NP2.3—P2.6全为1YY左侧两个传感器检测到黑线(P2.3和P2.4中至少有一个为1)调用左转子程序调用右转子程序NY停N结束2.触角开始直走遇到障碍两个胡须都遇到障碍右胡须遇到障碍YYNN先调用后退子程序再调用左转子程序先调用后退子程序再调用右转子程序YY先调用后退子程序再调用左转子程序N2.2.4程序清单(见附件)2.2.5硬件原理由于我们的小车是有一块单片机组成的,通过控制电信号的时间来控制电机的运动,前进后退时,由于两个电机的是对着安装的,所以前进时一个是顺时针一个是逆时针运动,,这样才能够前进,后退,右转,左转同理。触角是根据下图的电路图分析分析如下:触须就相当与单刀开关,没有碰到障碍时,单刀开关开启,借口有电平的输出,当开关碰到障碍时,开关闭合,接口电路被短路,是低电位。就可以根据这个原理来编写程序。从而达到壁障的要求。寻迹原理和四轮的小车基本相似,都是输入传感器信号,然后触发单片机来控制转向。校园行:是组合了避障和寻迹的原理。主要通过触须电路和传感器的输出,来给单片机信号,再通过单片机内部程序的处理最后完成预期的效果。2.2.6总结这次的小车是舵机小车,对于舵机以前没有接触过,所以要先看舵机的原理。舵机小车要先进行舵机的调零,调零之后我们又进行了小车的组装,在组装的时候接触了面包板,了解了面包板的接线方法,当组装触须的时候明白了设计者的神奇,刚开始不知道触须的工作原理,看了电路图知道了并不是这有传感器才能用来避障,很是佩服。由于上个小车的实习对这个小车的连线很快就连好了。下面就是舵机前进的调试,因为每个舵机的转速不同,当前进的时候不走直线,因此我们要不断地改写延迟的时间,在不断的实验下最后终于完成直线的行走。后面的左转右转进行的比较快。随后就是避障,避障程序还是第一次接触,我们仔细看了电路图,明白了原理,开始程序的调试,这个程序感觉和寻迹有点像,由于小车是靠碰到墙壁的时候转动,所以要有后退的过程,避障的最终目的是走迷宫,所以我们在双触须都碰到的时候后退并且右转。旋转角度是90°。在寻迹的时候,还是传感器的原因,要紧贴着地面才能收到信号,这次寻迹小车本身速度不快,所以没有改变前进的速度,按照上次直流小车的寻迹经验,很快编号程序。可是转弯的时候由于转弯延迟太大,小车不稳,只有改变小车转弯的延迟,经过几次实验完成了寻迹。最后我们开始校园游的设计,这个线路图比较复杂,进过观察,和把小车拿在手上在轨迹运行上的实验,设计出来的初步想法:一般情况时是利用底部的红外传感器寻迹,当遇到三叉口我们让程序左转,遇到十字路口时左转地图上的地点时,受到阻挡,先后退一段时间,然后旋转180,然后寻迹。我们按照这个