您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 51单片机-循迹小车项目报告(完整)
宜宾职业技术学院《单片机系统设计》项目设计报告项目设计题目:智能寻迹小车系部:电子信息与控制工程系班级:电子XXXX班组号:第四组小组成员:XXX指导教师:XXX2017年10月10日目录一、引言……………………………………………….3二、方案论证………………………………………….4三、小车车体设计…………………………………….7四、硬件系统设计…………………………………….81、单片机最小系统………………………………….82、循迹电路…………………………………………..93、电机驱动电路……………………………………..9五、软件系统设计…………………………………….12六、系统的制作、仿真与调试……………………….14七、总结……………………………………………….15第1页一、引言当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABUROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。第2页二、方案论证1、控制器模块方案一:选用AVR单片机Atmega128L,Atmega128L是高性能、低功耗的AVR®8位微处理器,64引脚。采用先进的RISC结构,具有133条指令,大多数可以在一个时钟周期内完成。它具有两个独立的预分频器和比较器功能的8位定时器/计数器和两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器及具有独立预分频器的实时时钟计数器。片内带有模拟比较器。具有上电复位以及可编程的掉电检测功能。其片内资源丰富,具有:8个外部中断,4个定时计数器,53个I/O口,可解除I/O口资源不足的困难。其引脚大多数都有具有第二功能,功能强大。.方案二:采用AT89S52单片机,AT89S52单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。AT89S52有5个中断源,和3个定时计数器。方案三:采用FPGA(现场可编辑门列阵)作为系统控制器。FPGA可以实现各种复杂的逻辑功能,规模大,集成度高,体积小,稳定性好,并且可利用EDA软件进行仿真和调试。FPGA采用并行工作方式,提高了系统的处理速度,常用于大规模实时性要求较高的系统。方案比较:由三种方案可以看出,以Atmega128L核心可以方便地实现对各个部分的控制和外接,而AT89S52而需要外扩大量的I/O口才能满足需要,而FPGA的高速处理能力得不到充分发挥且价格较贵,所以我们选择方案一。第3页2.电机驱动模块采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。现市面上有很多此种芯片,我选用了L293D。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。3.循迹模块方案一采用光敏元件。该方案缺点:易受到外界光源的干扰,有时甚至检测不到黑线,主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况均对检测效果产生直接影响。克服此缺点的方法:采用超高亮度的发光二极管能降低一定的干扰,但这又会增加检测系统的功耗。方案二脉冲调制的反射式红外发射接收器。由于采用带有交流分量的调制信号,则可大幅度减少外界的干扰;此外红外发射接收管的工作电流取决于平均电流,如果采用占空比小的调制信号,在平均电流不变的情况下,瞬时电流很大(50~100mA)(ST-188允许的最大输入电流为50mA),则大大提高了信噪比。此种测试方案反应速度大约在5us。方案三采用多路阵列式光敏电阻组成的光电探测器。方案四采用CCD传感器,此种方法虽然能对路面信息进行准确完备的反应,但它存在信息处理满,实时性差等缺点,而且此次比赛不允许用其它处理器,因此若采用CCD传感器,无疑会加重单片机的处理负担,不利于实现更好的控制策略(控制策略才是此次比赛的核心)。根据以上分析我们采用方案1,因为红外对管太过于灵敏了,不适合。第4页4.电源模块方案一采用4节1.5V干电池供电,电压达到6V,经7805稳压后给单片机、电机和其他芯片供电。方案二采用市场上流行的6V蓄电池经过7805,稳压后给单片机系统、直流电机和其他芯片供电。因为干电池比较简便,所以我们选择了方案一。第5页三、小车车体设计第6页四、硬件系统设计1、单片机最小系统小车采用atmel公司的AT89C52单片机作为控制芯片,图1是其最小系统电路。主要包括:时钟电路、电源电路、复位电路。其中各个部分的功能如下:1、时钟电路:给单片机提供一个外接的16MHz的石英晶振。2、电源电路:给单片机提供5V电源。3、复位电路:在电压达到正常值时给单片机一个复位信号。图1单片机最小系统原理图第7页2、循迹电路光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。图2循迹电路原理图3、电机驱动电路电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。第8页L298N的逻辑功能:表1SHARPGP2D12实物图外形及封装:图3L298N实物图第9页L298N电路原理图:由于一片L298N可以直接驱动两个电机,但是为了加大驱动力,我们采用两路并联的方式来驱动电机。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52C11nFC21nFC31uFX1CRYSTALIN15IN27ENA6OUT12OUT23ENB11OUT313OUT414IN310IN412SENSA1SENSB15GND8VS4VCC9U2L298R110kR210k+9v+88.8+88.8图3.3L298N电路图第10页五、系统软件设计系统端口初始化开始读传感器状态测到黑线判断处理程序向左转向右转判断前进继续前进结束左侧在黑线上右侧在黑线上中间在黑线上NY第11页小车循迹规则:若小车偏左的时候,车轮将向右偏转;若小车偏右,车轮将向左偏转;若没有偏移,小车将继续向前;若小车完全偏离黑色轨迹,小车后退以寻找黑色轨迹。小车程序:#includereg52.h#defineuintunsignedintsbitIN1=P1^3;sbitIN2=P1^4;sbitIN3=P1^5;voiddelay(uintb){uintc,d;for(c=b;c0;c--)for(d=110;d0;d--);}voidcommand(uinta){switch(a){case0:P2=0x9f;//Ç°½ødelay(10);break;case1:P2=0x5f;//×óתdelay(10);break;case2:P2=0xaf;//ÓÒתdelay(10);break;case3:P2=0xff;//Í£Ö¹delay(10);break;}}voiddecide(){第12页while(1){if(IN1==1&&IN2==0&&IN3==1){command(0);command(3);}elseif(IN1==1&&IN2==1&&IN3==0){command(1);command(3);}elseif(IN1==0&&IN2==1&&IN3==1){command(2);command(3);}elseif(IN1==1&&IN2==1&&IN3==1){command(0);command(3);}else{command(3);}}}voidmain(){decide();}第13页六、统的制作、仿真与调试:调试方法步骤1、在keil软件上编写好程序无错误后,生成.hex文件,并将它下载到单片机内2、将按装好的小车放到跑道上运行3、观察小车在跑道上的运行情况4、根据小车的错误信息再次修改程序、检查电路主要问题及解决方法记录1、小车前进时左右两边轮子的转动方向不一致。通过修改程序中P2的参数解决了问题。2、扫描电路的灵敏度过高或过低都影响小车的正常运行。通过调节扫描电路的电位器来达到要求。3、小车在到达终点时不能正常停止。通过修改程序中的STOP所代表的数据,可以是小车在到达终点是停止。4、小车的声光提示没有,还有就是有之后出现左右相反的情况。这两种情况都是程序的问题,没有声光是IO口给的数据时高电平,改为低时正常。相反这是改变对应数据,把它们反过来就好了。第14页七、总结根据本次设计要求,我们小组系统地阅读了大量的资料,并认真分析了设计课题的需求,还系统学习了51系列单片机的工
本文标题:51单片机-循迹小车项目报告(完整)
链接地址:https://www.777doc.com/doc-1961952 .html