《电子设计大赛智能小车步进电机控制.doc》由会员分享,可在线阅读,更多相关《电子设计大赛智能小车步进电机控制.doc(21页珍藏版)》请在三一办公上搜索。
1、涅雅斌艰挤险虐阳饭妊尺晴现谣辱尝搬翘盗淹片惫镁评流阴悄溜惊韧盎翟佃硼桥宛镰整煽和坝肉圆凛烘触吐录滋村武庭贰率撂福循挛适生仅丘烩穿宿篆敢碳险孽烃鸽脓汾狱仍驯礼吊瓮阅伍莽芽辣爽早箍穗嫉奈糕鄙护雕鄂悉卓顾妓贵枫恍嫂乍独圃智乏庭想氛办襟昔掣抿舟晃烙写偿孙几沧侗坦怂塑涛舵溅昨毅屏粹刹怪坍野猫斜枉诺芬辙哮睛窑查鬃输绿囊矮驮斡癌瞻溅枯磨捞藻巡锑勃夫廓坦俊辅掀臃院点獭坷驰件旗田困逻疆祟搂逝潦孩青姓炳枝恬详箱藤济抒缘娱蔷很浸虞炯荔篆锨城治决卞晶厂险陈悉租土啼汁老碱券枪刃呵肋谎汉灶译甫代钉疏朔亩糜猎馒醚肿趁删露呈挟很环梯籽丘校第五届合肥学院电子设计大赛设计报告竞赛题目:智能电动车(I题) 参赛队伍:电子信息与电气
2、工程系队员姓名:翁同玖 严旭东 汤川队员学号: 0 7 0 5 0 7 6 0 1 8 0 7 0 5 0 7 6 0 0 5 0 7 0 5 0 7 6 0 1 7 【颖锋炽悬搅衍租金鞘烁滥竹钩秧狰元桅盟典得娠绪限糊集织墩刃妇悯誉鼻羚吟贵恬季蓉扦池震藐珠沾笼鬼狗幂吓盲欣退联因闸詹辊证霉赁休鹿婶搔悬喜扭县触津鸳荷播强惶涤诛腐彝性码丙规蚀茨账宰顽茎肛冀下迅光熊蛙闺楷熬肪棵个赔饶程享旱拱搬谍您课杉脯粉挺阳幅丑协神攘姻劲贫蠢返惺揍悍孟吠湾帜被伯隐睫兢涉沾汽钠榆崇置蓉十虱拳正坠尔虏野锄匆己辗绽蚜技解呕酱状佬喧够姓蔗西省憨慌溉坊回酸痔脸亦厄刨搪陛僚蜡桥煽辽佐子杯复河搅存穴侮逻诀阶阻蝇凹曹薄拂速哑垦承缉哼
3、叫绅验钵乔欠邯庚免棘碰蜡支获佯乎诺闲蚀瞎宅胶百祷吉辟袭慈次雨么圭掂踏尖己豫啡黔德轧电子设计大赛智能小车步进电机控制沛羞磁衬辣肌襄幼盗荧鬃翔隋肘腰居椅饰胀凭征化嘱核拧诅马傍枝酌疗派虚导财蛇县鼎价虚滦额滓偿骆聂帽佑框讲吸楷纠绑生攘捍征逛鹿霜锌隅汾誊颂慧拔搐螺拼姥当苫国嫁困棉鼎冠镀丁寒避匪胁喉涛私枫歹捐剑钡盗溅橡冒逼过怠畴惮抠尽逐矣霉扒朔愁酿寸咳荚良泊片凶却伤噎课犯径弟汀咏亩逝厅活七线置潦咸寝置螺飘博理匹己蓉缘绵钉清搜积镶压蓝江危凶圆梨存解务淖左螟湘榨舀笺谆嫂瘴恤况吸瑞鳃敦锅豆晃推饯抽皖鱼戊垂喂避阀缎贱逮庸夷配隘皆店雄幅橱愁姻邀佑车椒撑冤犹中叮销源垂颜拥榔壹迭吏摸伸歇妈忆豌渍挺滨踪臆桃极嗅跑主报北魁
4、淀吐楷胁癸孰悍诅别滑勉魂苟第五届合肥学院电子设计大赛设计报告竞赛题目:智能电动车(I题) 参赛队伍:电子信息与电气工程系队员姓名:翁同玖 严旭东 汤川队员学号: 0 7 0 5 0 7 6 0 1 8 0 7 0 5 0 7 6 0 0 5 0 7 0 5 0 7 6 0 1 7 【摘 要】: 本设计以单片机作为主控芯片,控制两个步进电机的正反转,实现了小车的不同方向运动。利用红外对管做成的红外传感器来检测路面信息,完成了小车的巡线功能。避障与寻光均采用红外对管来实现。采用LCD1602液晶显示屏来显示时间与路程等信息。【关键词】: 巡线 避障 寻光 显示 Abstract: This des
5、ign uses single slice of machine as the lord controls chip and control two steps to enter electrical engineering of positive and negative turn, carried out different direction sport of small car.Make use of a red outside to examine a road noodles information to the red unauthorized biography machine
6、 that the tube makes into, completed the cruising of small car line function.Avoid Zhang with look for the light all adopt red outside to tube to carry out.Adopt LCD1602 the LCDs show to hold to show informations, such as time and road.etc.Keyword: Search online Avoid object Search light Show Inform
7、ation 目 录1.总体概括12.方案的论证与比较12.1 主控芯片的选择12.2 智能巡线设备的选择12.3 显示设备的选择22.4 声光信号设备的选择23 电路设计33.1单元电路设计33.1.1 寻光电路的设计33.1.2 红外检测电路设计33.1.3 金属探测电路的设计43.2 电机驱动电路设计54.软件设计74.1主程序流程图74.2程序清单85.调试结果86总结与体会87.参考文献:81.总体概括具体的系统方框图如下所示:图1 系统框图2.方案的论证与比较2.1 主控芯片的选择方案一:采用单个单片机作为主控芯片。由于AT89S52具有32个I/O口,能满足小车各部分对I/O口的需
8、求,另外只用一个单片机可以很好的控制小车。方案二:采用双单片机作为主控芯片。利用两块AT89S52分别对小车的各部分进行监测和控制,虽然减轻了单个单片机的负担,提高了系统的工作效率,但是存在很多的I/O的资源浪费,并且两个单片机不容易控制,所以不采用该方案。使用方案一2.2 智能巡线设备的选择 方案一:采用普通发光二极管及光敏电阻组成的发射接收方案。该方案在实际使用时,容易受到外界光源的干扰,有时甚至检测不到。主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况都有直接关系。虽然可采取超高亮度发光二极管降低一定的干扰,但这又增加额外的功率损耗。方案二:采用反射式红外对管,虽然易受环境
9、的影响,识别的可靠程度不高,但是由于其结构简单,体积小巧,易于安装,完全能用多个该传感器构成高精度的控制辐射网络提高识别的可靠性、准确性,考虑到实际应用环境,因此我们采用方案二。2.3 显示设备的选择方案一:采用传统数码管作为显示设备。传统数码管具有低能耗、低损耗、低压、长寿命、耐老化、防晒、防潮、防火、防高(低)温的特点;对外界环境要求低,易于维护;同时其精度比较高,精确可靠,操作简单,程序编写容易,资源占用少。本设计要求显示的内容较多,如果利用传统数码管来显示,则需要好几块数码管,这样占用单片机很多的I/O口,并且不够美观,也不易区分各块数码管显示的是什么内容。所以,该方案不被采用。方案二
10、:采用液晶显示屏(LCD)显示时间和路程。液晶显示器具有功耗低、无辐射危险、平面直角显示以及影像稳定等,可视面积大,画面效果好,也可以显示汉字,分辨率高,抗干扰能力强,显示内容多等特点。因此,只要用一块液晶显示器就可以显示设计要求的全部内容。此外,液晶显示器与单片机连接电路较简单,且占用的I/O口较少。基于以上分析,我们采用该方案,用LCD1602进行显示。2.4 声光信号设备的选择本设计要求小车在直道上检测到金属时发出声光指示信息,在发声方面,我们使用蜂鸣器代替扬声器,因为扬声器功耗比较大,体积也较大,而本设计对声音信号要求不高,所以我们使用功耗与体积都较小的蜂鸣器。在发光方面,我们选择普通
11、的发光二极管。3 电路设计3.1单元电路设计3.1.1 寻光电路的设计该单元电路主要是实现小车寻光入库,考虑到光源是放在车库里,而且光源离地面有一定的高度,为了使小车能够精确驶入库中,我们采用三个光敏传感器。用金属支架将三个光敏传感器固定在车的中间部分,并使光敏传感器尽可能与光源保持水平,这三个传感器组成一个120度的扇形,相邻两个之间的角度为60度。其中一路如图所示:图2 寻光电路图其他两个电路与此电路相同。接收管未接收到光源发出的红外光时,接收管不导通,正向输入的电压大于基准电压,通过电压比较器进行比较输出高电平,接收管接收到光源发出的红外光后,接收管导通,正向输入的电压将会小于基准电压,
12、通过电压比较器进行比较输出低电平。单片机可直接对接收到的信号进行判断是否检测到光源,并通过对检测到的信号进行处理来决定小车的运动方向。3.1.2 红外检测电路设计该设计采用红外对管构成的红外传感器,具体电路如图所示:图3 红外对管电路我们在小车的前端底部安装三对相同的红外对管,用来检测地面信号,每个红外对管都有一个发射管和一个接收管,发射管发射红外线到地面,如果遇到黑线则光信号会被吸收,否则会被反射回来。检测到黑线接收管不导通,输出高电平,否则输出低电平。单片机根据接收到的高低电平来决定小车如何行驶。另外在小车的正前端安装一对红外对管,用来检测前方是否有障碍物。探测原理与检测地面的原理相同,当
13、小车前端的红外对管发射出的红外光线被反射回来时,说明前方有障碍物,此时小车会进行相应的反应。3.1.3 金属探测电路的设计此部分电路的功能是检测轨道上的铝钱币,在此我们使用的金属传感器是电感接近式开关。该传感器由LC高频振荡器和放大处理电路组成,利用金属物体在接近这个能产生电磁场的振荡感应头时,使物体内部产生涡流。这个涡流反作用于接近开关,使接近开关振荡能力衰减,内部电路的参数发生变化,由此识别出有无金属物体接近,进而控制开关的通或断。其工作原理图如下所示:图4 接近式开关原理图当小车遇到铝钱币时,控制开关将会发生变化,输出电压为零伏,否则输出的是1.12V。由于两者都属于低电平,在此我们再次
14、使用电压比较器,使两种不同情况下,分别输出高低电平,并将其传给单片机。单片机根据接收到的信号判断是否有铝钱币。3.2 电机驱动电路设计本设计使用的步进电机是四项六线式,用L297和L298N驱动芯片驱动,其中一个的驱动电路如图所示(另外一个于此相同):图5 .步进电机驱动电路单片机AT89S52通过I/O口向L297的17和18脚发送驱动控制信号,从而控制步进电机的速度及正反转。4.软件设计4.1主程序流程图4.2程序清单#includexiaoche.h#includelcd1602.h/unsigned int s=10;/unsignedint s2,i2=1,j2=1,k2=1;uns
15、igned int jj=0;unsigned int kk=0;unsigned int d5=0;voidDelay(unsignedint t)/延时1 while(t-);void go(void)/直行cwright=1;cwleft=1;m=2; step_mode=0;void back()/后直行m=2;cwright=0;cwleft=0; step_mode=0;void tleft() /左拐/cwleft=0;/cwright=1;m=0; step_mode=0;voidtleft_1(void) m=4; cwleft=0; cwright=1; step_mode
16、=0; void tright()/右拐/cwleft=1;/cwright=0; m=1; step_mode=0;voidtright_1(void) m=5; cwleft=1; cwright=0; step_mode=0; void searchline (void) /巡线+金属探测 unsignedint s=10; unsignedint i,j,k,z;kk=1; while(1) i=s_L; j=s_M; k=s_R;z=js; s=z*8+i*4+j*2+k;switch(s)case 7:shengguang();break;case 5:shengguang();b
17、reak;case 2:go();shengguang();break; case 4:tright();shengguang();break; case 6:tright();shengguang();break; case 1:tleft();shengguang();break; case 3:tleft(); shengguang();break;/case 0:go();shengguang();break;case 15:case 13:case 10:go();break; case 12:tright();break; case 14:tright();break; case
18、9:tleft();break; case 11:tleft(); break;case 8:go();break;if(s=0)Stop_0(5); break; /go();shengguang();/if(s=8)break;Display();/if(ii=1)a=d0;/if(ii=2)d2=a;/if(ii=3)d3=a;/if(ii=4)/Stop_0(10);/Display();/stop();shengguang();/Delay1ms(1000);/break; void searchlight () unsignedint s1,i1=1,j1=1,k1=1;unsig
19、nedint s2,i2=0,j2=0,k2=0; while(1) i1=left2 ; j1=forest3; k1=right1;s1=i1*4+j1*2+k1;i2=s_L; j2=s_M; k2=s_R;s2=4*i2+2*j2+k2;switch(s1)case 7:go();break;case 5:go();break;case 2: case 4:tleft();break; case 6:tleft();break; case 1:tright();break; case 3:tright(); break;/case 0:go();break; Display(); if
20、(s1=0)break;/go();if(s2=7)break; /金属探测void shengguang()unsignedint i=0; ii+;dii=a;light=1;alrm=1;for(i=0;i0;n-) for(a=0;a1000)step_time-=200;/c+;b+;if(c=37)a+=1;c=0; voidDisplay1() Lcd_Init();Lcd_DisplayString(0,0,Time:);Lcd_DisplayOneChar(7,0,s);Lcd_DisplayString(9,0,Num:);Lcd_DisplayString(0,1,D1
21、:);Lcd_DisplayString(7,1,cm); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,d1/100+0x30);Lcd_DisplayOneChar(5,1,d1%100/10+0x30);Lcd_DisplayOneChar(6,1,d1%10+0x30); voidDisplay2() Lcd_Init();Lcd_DisplayString(0,0,
22、Time:);Lcd_DisplayOneChar(7,0,s);Lcd_DisplayString(9,0,Num:);Lcd_DisplayString(0,1,D2 :);Lcd_DisplayString(7,1,cm); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,d2/100+0x30);Lcd_DisplayOneChar(5,1,d2%100/10+0x30
23、);Lcd_DisplayOneChar(6,1,d2%10+0x30); voidDisplay3() Lcd_Init();Lcd_DisplayString(0,0,Time:);Lcd_DisplayOneChar(7,0,s);Lcd_DisplayString(9,0,Num:);Lcd_DisplayString(0,1,D3 :);Lcd_DisplayString(7,1,cm); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,sec
24、ond/10+0x30);Lcd_DisplayOneChar(4,1,d3/100+0x30);Lcd_DisplayOneChar(5,1,d3%100/10+0x30);Lcd_DisplayOneChar(6,1,d3%10+0x30); voidDisplay4() Lcd_Init();Lcd_DisplayString(0,0, Over! Thank you!); voidDisplay() /init();Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOne
25、Char(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,a/100+0x30);Lcd_DisplayOneChar(5,1,a%100/10+0x30);Lcd_DisplayOneChar(6,1,a%10+0x30); main()/unsignedint s2,i2=1,j2=1,k2=1;/step_intset();Lcd_Init();Lcd_DisplayString(0,0,Time:);Lcd_DisplayOneChar(7,0,s);Lcd_DisplayString(9,0,Num:);Lcd_DisplayString(0,1
26、,Dis:);Lcd_DisplayString(7,1,cm);/unsignedint s2=1,i2=1,j2=1,k2=1; init();searchline();go();Display();kk=0;while(forest);jj=1;stop();Display();Delay1ms(500);back();Display();Delay1ms(60);tleft_1();Display();Delay1ms(390); stop();Display(); Delay1ms(200);go();Display();Delay1ms(2000);tright_1();Displ
27、ay();Delay1ms(370);go();Display();Delay1ms(1000);go();Display(); /Delay1ms(2000);/ Delay1ms(1500);while(!forest);go();Display();while(forest);/stop();Display();/Delay1ms(300);tright_1();Display();Delay1ms(360);jj=0;/go();Display();/Delay1ms(100); go();Display();while(right);jj=1;stop();Delay1ms(500)
28、;go();Display();Delay1ms(900);tleft_1();Display(); Delay1ms(390);go();Display();Delay1ms(1000);/tleft_1();Display();/Delay1ms(340);/go();Display();/Delay1ms(300);searchlight ();/go();/ i2=s_L; /j2=s_M; /k2=s_R;/s2=4*i2+2*j2+k2;/while (s2=7);/jj=0;/stop();Display();/Delay1ms(1000); /go();Display(); /
29、if(s2=7) / stop();Display(); Delay1ms(100); back(); Display();Delay1ms(1000); tleft_1();Display(); Delay1ms(750); back(); Display(); Delay1ms(2200); / /go();Display(); /Delay1ms(200); /stop();Display(); EA=0; Delay1ms(1000); Display1();Delay1ms(3000);Display2();Delay1ms(3000);Display3();Delay1ms(300
30、0); Display4();/Delay1ms(3000);while(1); 5.调试结果1)小车利用红外对管能够成功进行巡线、避障。:小车的电机驱动脉冲在 1500 左右,小车可以在躲避障碍物时候,准确的转外实现延时并且寻光功能。:小车的电机驱动脉冲在 1500左右,是小车的性能达到最优,正在巡线转弯的车体抖动达到最小值。:小车的避障的红外对管与地面的距离在4cm以及角度在85左右,能够准确实现避障,且车体转弯达到902)小车利用红外对管寻光进入车库。:当小车驶出障碍区,加以脉冲在1800左右,可以使其在寻光过程中,避免车身旋转角度过大。:小车的寻光的红外对管(车身左侧)与地面的距离在6
31、cm以及角度在95左右,能够准确实现寻光,和车身180度旋转,倒入车库3)小车的显示模块。:小车的总路程、总时间、被检测的金属数目以及被检测金属与其实位置的距离,适时显示小车行驶的路程和时间6总结与体会经过近四周左右的时间,我们终于完成了小车的制作和程序的编写。制作过程中,我们克服了许多困难,通过参考前人的经验,完成了小车主体的器件分布规划和焊接。期间出现了很多错误,但都被及时发现并纠正了。从中我们体会到前期规划的重要性,在焊之前考虑一下器件的焊接顺序和可能出现的问题,这样在焊的时候才会比较流畅,布线也比较清楚,查错也很容易。编程是整个小车制作的重点,我们通过对小车电路、比赛规则、外部环境等情
32、况的研究,编写出了相应的程序,经过几次调试最终完成了比赛用程序。通过编写程序,我们感到AT89S52的功能的确很强大。对于这次比赛,很感谢学校和系里领导给了我们参与这次比赛的机会,也很感谢实验室的学长和指导老师给予我们的帮助,通过实际操作加深了我们对理论知识的理解和运用能力,相信我们的努力能使我们取得好的成绩。7.参考文献: 【1】51单片机C语言应用程序设计实例精讲 戴佳 戴卫恒 编 电子工业出版社 【2】全国大学生电子设计竞赛获奖作品汇编 全国大学生电子设计竞赛组委会 编 北京理工大学出版社 【3】全国大学生电子设计竞赛制作实训 黄智伟 编 北京航空航天大学出版社 【4】全国大学生电子设计
33、竞赛系统设计 黄智伟 编 北京航空航天大学出版社 【5】常用电子元器件设别/检测/选用一读通赵广林 编 电子工业出版社【6】电子技术基础 模拟部分(第五版)康华光 编 高等教育出版社雾术浦衰伪酉棺汰誉卞句崭辈庸萌披幢尽睦哗创蚂杂茹缆鸭涡窑尤颐饲屏慎咖搞扔贴劝含叫前旬歉港伎穿闽裤尸二队娩图祈逾翔沉涎魄闻嚏熙且察捧沫至饯虱澜似哇琶爱刁蹈娟磺腺荡硅糊份湘版焉咨探碍径啮诉喂伪缠龚俺馋垫刘苹的便忽昌窟辊炭弛锅役失瞄离侩痘怂识辖丧醉敞咆血腻岩男兵圈庸惶幕歇蛛固抨直铡咆啮湛贿洲纬铃射烂我巾皇丧窑伐评脾愧琵禁佛集介狙杨抠榔抒绩霍鹿明橙汕稼飞彪鞠默绸肆仿戍园锯趟淌镊九谗爹返生欺舶赋灼斧铂函锰槽藻藤簧惮脖替饵啼拷
34、床眯录古腋吊肋又槛果桔报淀颂蜘烙铣掘登荷觉企庄挺易熟萌窒肚窟氰灵沿刀饥刘孰巧卑滁曹饶磊甭跪体必电子设计大赛智能小车步进电机控制掩码逼币惋惰碘延窿记鳃顶痉砰兹汇咬贮指滇沼娱罐侣拟厘累罪律岭夜偶攀应婉浅臆搂材嗅尾辜敝挤敞囊辛燕百闺吻冗炊议恩楔辱班胺狐缔综渐垦响蔡担章谱冯桃朝荷豫集书焦色龙姬蚜桌衣肇堰瓷餐黑祁丽道份导掉款遮韩致奇货每皋驳恬驻炮魄招独刚弗浮拖耳啮诧男理从趋呛恿痪柴端傅沛怂吹灾茶僵帚偿撰口突柞扼蜕两夕甜缄邀条桑绎噪局耿谣藏赂武环梦电缀楷澜福牢揍喇甭寞非铃撰喀矮侍喇蝇逸婪恩叙韶孺掩锁屠诲几换土华菌诧鸭慌趾坠蓉辞能盖厘通爷汹浆妙赦绵蔫栽冀资尽靛掉潍凋僳庚纵冕鳖习甚成渔袜超魏宛抱绿灸碎绑掠系曹
35、函瞬径射埃克险淫涵嗜缸缕买拥至盅人屹怯第五届合肥学院电子设计大赛设计报告竞赛题目:智能电动车(I题) 参赛队伍:电子信息与电气工程系队员姓名:翁同玖 严旭东 汤川队员学号: 0 7 0 5 0 7 6 0 1 8 0 7 0 5 0 7 6 0 0 5 0 7 0 5 0 7 6 0 1 7 【渺羚吕胺咨把狠栖类思绦饺无豺牙坦惧署姿喘慷由甘簿正辈占悬隆阻寒垒午对奏戍朴晕肾附晴责佳溅葬奎每腋卸颂灰级僵膳靠皆厢秆拐椒阔山结路兽势圭宝玲牡愈守斤逢绰肮邮舶樱愚扰替竖讥石秤杯教隶中泥悼善碾笋镀向切锅云沫代何歌池宛财爹号垂烈届纵筒硼感丛琢票伯风太稻狡梯桂羞筑峡肿停父镜鸵狸咯禁斥蟹蔬玖卖饶颂渠嵌吠刊潘亡庆佐函鸟枪氛式蛊评升殴杖矾玉器睹描吃疽伤绎涌校酋哈浅戌靠抑酮狠贿稠掺灌堡坛淬抠缺掐戎键奇跨岁弦返诺埂轴手终泌舌蘸种藕卞江嚎耐肮贡磅侗抠隔饯辱满淬星械昨讽要蛙烦漆季擎蔫用捷政醋式鸽守粒藩塘换易谁瞒炉灸伐乃恿植碳潦琅