智能产品设计实训报告书课程名称:智能产品设计班级:应用电子技术15级2班小组成员(学号):商育诚(39)王少勇(91)实训项目:智能小车实训时间:2017年5月8日指导老师:何敬银老师填表日期:2017年5月14日星期日实训目的-------------------------------------3 实训要求-------------------------------------3 实训内容-------------------------------------4智能小车元器件清单-----------------------------------------------4 智能小车代码-----------------------------------------------------5 智能小车电路图---------------------------------------------------10 智能小车焊接-----------------------------------------------------11 智能小车模块系统详解---------------------------------------------12实训成果展示---------------------------------13 收获和体会-----------------------------------14实训目的:制作一个基于单片机控制的智能小车,可以进行多种功能。
也让我们自己学习,学习到单片机的知识和单片机编程的知识还有电阻的识别和一些电路的知识。
提高了我们焊接技术和团队合作能力,增加了我们制作电子产品产品的经验。
这个实训还有对于一些需要进行PPT的演讲,不经给我们一个展示自己作品的平台,更重要的是给我一个增强自信心的机会,展现自己和展现自己的作品这个实训不仅让我们学会更多的知识而且还满足我们自己对自己亲自动手制作电子产品的愿望。
实训要求:能够熟练对老师进行智能小车源代码的讲解,还有对于电路图的了解和电路知识的应用,还有对于另一些芯片的知识进行学习。
还有熟练掌握元器件的名称大小的识别。
还有在焊接过程中可以可以让我们的焊接技术更加地熟练,可以让我们的小组成员合作更好,增强了小组成员的合作默契。
实训内容----智能小车元器件清单智能小车代码#include <REGX52.H> //包含51单片机相关的头文件#include <intrins.h>sbit xunjiLed=P2^1; //定义前方左侧指示灯端口sbit bizhangLed=P2^0; //定义前方右侧指示灯端口sbit LeftIRBZ=P1^1; //定义前方左侧红外探头端口sbit RightIRBZ=P1^0; //定义前方右侧红外探头端口sbit LeftIR=P3^5; //定义前方左侧红外探头端口sbit RightIR=P3^6; //定义前方右侧红外探头端口sbit M1A=P0^0; //定义左侧电机驱动A端sbit M1B=P0^1; //定义左侧电机驱动B端sbit M2A=P0^2; //定义右侧电机驱动A端sbit M2B=P0^3; //定义右侧电机驱动B端static unsigned int LedFlash; //定义闪动频率计数变量bit EnableLight=0; //定义指示灯使能位unsigned char temp = 1;void tingzhi(){M1A=0; //将M1电机A端初始化为0 M1B=0; //将M1电机B端初始化为0 M2A=0; //将M2电机A端初始化为0 M2B=0;}void qianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}void houtui(){M1A=0;M1B=1;M2A=0;M2B=1;}void zuozhuan(){M1A=0;M1B=1;M2A=1;M2B=0;}void youzhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}void Delay1ms(unsigned int i){unsigned char j,k;do{j = 10;do{k = 50;do{_nop_();}while(--k);}while(--j);}while(--i);}void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us{i=i/10;while(--i);}void delay_nms(unsigned int n) //延时n ms{n=n+1;while(--n)delay_nus(900); //延时1ms,同时进行补偿}void delayms(unsigned char x) //0.14mS延时程序{unsigned char i; //定义临时变量while(x--) //延时时间循环{for (i = 0; i<13; i++) {} //14mS延时}}void Delay() //定义延时子程序{unsigned int DelayTime=30000; //定义延时时间变量while(DelayTime--); //开始进行延时循环return; //子程序返回}void ControlCar(unsigned char ConType) //定义电机控制子程序{tingzhi();switch(ConType) //判断用户设定电机形式{case 1: //前进//判断用户是否选择形式1{//tingzhi(); //进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位//Delay1ms(50);qianjin();break;}case 2: //后退//判断用户是否选择形式2{// tingzhi(); //进入后退之前先停止一段时间防止电机反向电压冲击主板导致系统复位// Delay1ms(50);houtui(); //M2电机反转break;}case 3: //左转//判断用户是否选择形式3{//tingzhi(); //进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位// Delay1ms(50);zuozhuan(); //M2电机正转break;}case 4: //右转//判断用户是否选择形式4{// tingzhi(); //进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位// Delay1ms(50);youzhuan(); //M1电机正转//M2电机反转break;}case 8: //停止//判断用户是否选择形式8{tingzhi();break; //退出当前选择}}}void ControlCar_yaokong(unsigned char ConType) //定义电机控制子程序 (红外遥控单独设置一个switch case 语句) {tingzhi();switch(ConType) //判断用户设定电机形式{case 1: //前进//判断用户是否选择形式1{tingzhi(); //进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);qianjin();break;}case 2: //后退//判断用户是否选择形式2{tingzhi(); //进入后退之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);houtui(); //M2电机反转break;}case 3: //左转//判断用户是否选择形式3{tingzhi(); //进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);zuozhuan(); //M2电机正转break;}case 4: //右转//判断用户是否选择形式4{tingzhi(); //进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);youzhuan(); //M1电机正转//M2电机反转break;}case 8: //停止//判断用户是否选择形式8{tingzhi();break; //退出当前选择}}}void Robot_AvoidanceTraction() //机器人避障+循迹综合子程序{if(LeftIR == 0 && RightIR == 0) //三个红外检测到黑线,就前进{ControlCar(1);if( LeftIRBZ == 0 || RightIRBZ == 0 ){delay_nms (50);while ( !LeftIRBZ ){ControlCar(8);delay_nms (120);}while ( !RightIRBZ ){ControlCar(8);delay_nms (120);}}//左侧没有信号时,开始向右转一定的角度delay_nms (10);}else if(LeftIR == 0 && RightIR == 1){ControlCar(3); //右侧没有信号时,开始向左转一定的角度delay_nms (10);}else if(LeftIR == 1 && RightIR == 0){ControlCar(4); //右侧没有信号时,开始向左转一定的角度delay_nms (10);}ControlCar(8);}智能小车电路图智能小车焊接组装1. 先小后大焊接效果图如下:2.主板背面焊接效果图如下:第二步:结构件的安装:首先按照如图所示把2个尾轮安装好,并且结构固定要上锡。
第三步:将两个尾轮装好以后,再将两条电机电源线按照如图方式从底板的正面从反面各一条装好,然后按照图示方式接在电机上面,注意方向,电机的上端接红色线,下端接黑色线。
第四步:装前轮按照如图所示,先将两个紧锁柱分插入电机里面,注意是有螺纹的一头插入电机的滚动轴里面,然后再将轮子装进去。
第五步:组装循迹传感器(如下图所示):第六步:整机装配智能小车模块系统详解实训成果:成品展示,下图是焊接成品。
请欣赏。
收获和体会:本学期电子设计制作与创新提高课程的学习任务,是让我们制作智能小车,过程非常有趣,在动手操作的同时又学习了模拟电子的相关知识,让我们的课程学习也非常方便。
通过此次的设计制作,使我们更加认识到了动手能力和理论知识的重要性,而理论与实践的结合更是重中之重。
当然,我们也深刻地认识到我们的不足,由于自身理论知识的欠缺和动手能力的不佳在工作中频频受阻,走了好多弯路,虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到预期的要求,很好地完成了本次设计任务。