![电子产品方案设计书及制作实习报告_第1页](http://file1.renrendoc.com/fileroot_temp2/2021-1/23/553d3f80-575a-4dc5-90f9-857e66e9595c/553d3f80-575a-4dc5-90f9-857e66e9595c1.gif)
![电子产品方案设计书及制作实习报告_第2页](http://file1.renrendoc.com/fileroot_temp2/2021-1/23/553d3f80-575a-4dc5-90f9-857e66e9595c/553d3f80-575a-4dc5-90f9-857e66e9595c2.gif)
![电子产品方案设计书及制作实习报告_第3页](http://file1.renrendoc.com/fileroot_temp2/2021-1/23/553d3f80-575a-4dc5-90f9-857e66e9595c/553d3f80-575a-4dc5-90f9-857e66e9595c3.gif)
![电子产品方案设计书及制作实习报告_第4页](http://file1.renrendoc.com/fileroot_temp2/2021-1/23/553d3f80-575a-4dc5-90f9-857e66e9595c/553d3f80-575a-4dc5-90f9-857e66e9595c4.gif)
![电子产品方案设计书及制作实习报告_第5页](http://file1.renrendoc.com/fileroot_temp2/2021-1/23/553d3f80-575a-4dc5-90f9-857e66e9595c/553d3f80-575a-4dc5-90f9-857e66e9595c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 天津电子信息职业技术学院电子产品设计及制作总结报告课题题目 姓 名 学 号 班 级 专 业 完成日期 一、 物流机器人的概述1.1 设计的目的和要求通过基于AT89S52系列单片机的智能寻迹小车的设计与控制实训,除了加深和巩固学生课程理论学习之外,更重要的是加强实践、拓展应用,让学生了解基于AT89S52系列单片机的开发和应用的一个整体开发流程,包括在训练中要求学生能够自己根据性能指标和功能要求掌握硬件电路的设计和制作、元器件的选用和安装、软件的编写和调试,同时学会硬件仿真、软件仿真和整机联调,其中最关键的两部分:硬件电路设计与制作和控制软件的编写以及调试,使得准产品最后达到技术指标的要求。
2、1.2 技术指标1. 能寻迹小车需基于AT89S52系列进行开发和设计。2. 能实现在椭圆轨道、S形轨道,等多种规则黑线轨道上寻迹运行。3. 小车外观包装优美、电路设计制作焊接等工艺精良、软件程序可读性强。4. 可扩展其它功能。二、 设计方案的选择和确定2.1 主控系统方案选择LPC2103 ARM作为小车的控制中枢。2.2 传感器系统反射式红外发射接收装置,只有物体反射红外光时才有信号输入,其信号强度与小车距障碍物的距离成正比。因此可利用信号强度作为循迹依据。红外探测器以其发射功率大、抗干扰能力强而在工业生产中有着广泛的应用,红外探测器按其工作模式可大致分为主动式与被动式,主动式红外探测器自
3、带红外光源,通过对光源的遮挡、反射、折射等光学手段可以完成对被探测物体位置的判别。被动式红外探测器本身没有光源,通过接受被探测物体的特征光谱辐射来测量被探测物的位置、温度或进行红外成像。直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差;交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离,同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝,因此交流调试方式抗干扰能力也比较强,缺点是系统相对复杂。在本体中我们要利用红外探测器检测障碍物的距离,显然选用主动式红外传感器比较合适,系统的造价可以降低可靠性可以提高。主动式红外传感器又可分
4、为分立元件型、透射遮挡型和反射型(如图1.2.3示),分立元件型发光管与接收管相互独立,用户在使用时可以根据需要灵活的设定发光管与接受管的位置,并可利用棱镜、透镜等完成特殊的目的,缺点是装置麻烦。透射遮挡型和反射型通过塑料模具将发光管与接收管封装在一起,非常方便用户使用,在本题中对障碍物的检测我使用红外对管TCRT5000。2.3光电对管电路的设计我们设计并论证了光电对管检测及调理电路,电路原理图分别如4所示: 图4 光电对管检测电路1图4所示电路中,R1起限流电阻的作用,当有光反射回来时,光电对管中的三极管导通,R2的上端变为高电平,此时VT1饱和导通,三极管集电极输出低电平。当没有光反射回
5、来时,光电对管中的三极管不导通,VT1截至,其集电极输出高电平。VT1在该电路中起到滤波整形的作用。经试验和示波器验证,该电路工作性能一般,输出还有杂散干扰波的成分。如果输出加施密特触发器就可以实现良好的输出波形。但是这种电路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和三极管VT1导通时的导通电流较大。而且检测距离不稳定,和环境有很大关系。三、系统硬件设计3.1 整体构思经过方案论证的过程之后,我们选定了仅采用lpc2103作为核心部件的方案,其系统总方框图如图3.1.1所示。 具体的功能设置已通过该图做了直观的说明。通过主控芯片控制各传感器输入的信号,控
6、制方式由软件来实现,其中包括两个红外传感器用来循迹。在功能和作用上,我分成了四大部分:主控、驱动、显示和在系统编程部分。总原理图见论文后。数码管显示模块时间程LPC2103稳压电路左右两侧有光电对管万向轮铝制小车底板控制直流电机驱动器塑料轮子 图3.1.1 系统总原理框图 开 始初始化LPC2103启动小车前行左侧右侧右避子程序左避子程序停止返回如果都没检测到黑线加 速前 进 图3.1.2 主程序框图3.2直流电机的驱动电路(H桥L298)由于我们做的是循迹小车,只需要前进就可以了,所以没有用到H桥前进后退的功能了。但还是介绍L298。设计中,驱动电路的四个输入端我们只用了两路输入分别与ARM
7、LPC2103的P0.15和P0.14连接。这样四路输入就有高低电平了,轮子就能转起来。再接入两路PWM驱动,就能控制速度。P0.19控制车的右轮,P0.20控制车的左轮。一驱动电路如图3.2.3。由I/O的脉冲来控制H桥中三极管的通断,从而来控制直流电机的前进、后退、左转和右转的动作,具体如下表3.2.1。采用普通直流电机,通过控制脉冲占空比算法,实现对小车速度的控制。这种调速方式有调速特性优良、调整平滑、调速范围广、带载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。由三极管Q9、Q10、Q11、Q12构成H桥驱动电路,控制着几个管子的通断就可以控制直流电机的
8、正转、反转。表3.2.1P0.3P0.2P0.1P0.0状态1001前行0110后退1010左转0101右转图3.2.3 小车驱动3.3键盘板显示模块方案1:通过使用DXP2006画PCB板,自己动手制作一个键盘显示板。虽然这样可以同时提高画PCB板的能力,但是考虑到时间有限,而且自己做的板子稳定性不高。方案2:使用原单片机的配套键盘显示板,使用方便,而且稳定性也很高。外观比较美观,和LPC2103比较和谐。因此我们选择了使用方案2 图5键盘显示板图四、 系统的软件设计4.1主程序流程图 我们所设计的软件的主程序流程图如图4.1.1所示:图4.1.1 主程序流程图4.2 传感器数据处理及寻迹程
9、序流程 我们把小车直线行进时分成两种状态,当两个传感器都检测到白线时,小车在跑道的正上方,这时控制两电机同速度全速运行。当检测到有一个传感器偏出白线时,小车处这时这时把一个电机的速度调至极低,另一电机全速运行,从而在较短时间内完成路线的调整。该检测传感器子程序的流程图。 如图4.2.1所示:图4.2.1 传感器信息处理子程序流程图4.3 系统完整电路图稳压整流原理图、PCB H桥原理图、PCB红外对管原理图、PCB4.5 ARM控制小车程序#include config.h#define key 0x02#define RCK 0x01#define right 0x017#define le
10、ft 0x018#define LED1 0x0117#define LED2 0x0118uint8 const weima12= 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x40, 0x00; /0-9和- 黑的段码uint8 const duanma8= 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f; /从右至左的位码volatile uint8 shizhong8 = 5,5,10,9,5,10,3,2, /时间数组 从左向右的码 pwm8 = 0,0,0,0
11、,1,0,10,2, /PWM数组 zkb8 = 0,0,11,11,11,11,0,0; /占空比数组volatile uint32 timeflag=0, /时钟标志timerflag=0, /闪烁标志PWM=1000, /输出PWMW周期timer=500; /定时器0的参数volatile uint8 i=0, /位码标志KEY=10, /按键Modifly=0, /修改及确定键yiweiflag=0, /移位标志page=0, /换页键zkb1, /占空比1路zkb2, /占空比2路flag0=0, /加速标志1flag1=0, /加速标志2key4flag=0,/* * 函数名称:
12、Timer0_Init() * 函数功能:定时器0 cap捕获 * 输入参数:无 * 输出参数:无 */void Timer0_Init( uint32 timer0 )T0TCR = 0x02;T0TC = 0;T0PR = 0;T0MCR = 0x03; /中断并复位T0MR0 = Fpclk/timer0; /p0.2捕获T0TCR = 0x01; /启动定时器/* * 函数名称:IRQ_Timer0() * 函数功能:中断函数* 输入参数:无 * 输出参数:无 */void _irq IRQ_Timer0(void)if(T0IR & 0x01)!=0) /匹配中断timeflag+;
13、flag0+;if(flag0=200)flag0=0;flag1=1;T0IR=0x01;VICVectAddr =0;/* * 函数名称:VIC_Init()* 函数功能: * 输入参数:无 * 输出参数:无 */void VIC_Init(void)VICIntSelect = VICIntSelect & (1 4);VICVectCntl0 = 0x20 | 4;VICVectAddr0 = (uint32)IRQ_Timer0;VICIntEnable = 1 4;IRQEnable();/* * 函数名称:Timer1_Init() * 函数功能:定时器1PWM输出 * 输入参数
14、:无 * 输出参数:无 */void Timer1_Init(uint32 PWM,uint8 zkb1,uint8 zkb2)T1TCR = 0x02;T1TC = 0;T1PR = 0;PWM1CON= 0x0C; /输出PWM控制T1MRO T1MCR = 0x02; /复位T1MR0 = Fpclk/PWM; /输出PWM周期T1MR2 = (T1MR0/100)*(100-zkb1); /设置PWM1.2 (p0.19引脚)输出占空比T1MR3 = (T1MR0/100)*(100-zkb2); /设置PWM1.3 (p0.20引脚)输出占空比T1TCR = 0x01;/* * 函数
15、名称:SPI_Init() * 函数功能: * 输入参数:无 * 输出参数:无 */void SPI_Init(void)SPI_SPCCR = 0x52;SPI_SPCR = (0 3) | (1 4) | (1 5) | (0 6) | (0 =timer)timeflag=0;shizhong0+;if(shizhong0=10)shizhong0=0;shizhong1+;if(shizhong1=6) shizhong1=0; shizhong3+; if(shizhong3=10) shizhong3=0; shizhong4+; if(shizhong4=6) shizhong4
16、=0; shizhong6+; if(shizhong6=4)&(shizhong7=2)|(shizhong6=10)&(shizhong7=3) shizhong7=0; /* * 函数名称:main * 函数功能:* 输入参数:无 * 输出参数:无 */int main (void)PINSEL0 = PINSEL0 & (0xfffffff);PINSEL0 = PINSEL0 |(0x024) /p0.2 为 cap捕获 |(0x018) /p0.4 为 SCK时钟信号 | (0x0112); /p0.6 为 DATA传送数据PINSEL1 = PINSEL1 & (0x0f);PI
17、NSEL1 = PINSEL1 | (0x026) /p0.19 pwm输出 | (0x028); /p0.20 pwm输出 IO0DIR = IO0DIR & (0xffffffff);IO0DIR = IO0DIR | RCK /rck 输出 & (key) /key 输入 | (0x0f17); /led 输出 SPI_Init();VIC_Init();Timer0_Init(timer);zkb1=(zkb7*10+zkb6), /占空比1路zkb2=(zkb1*10+zkb0); /占空比2路Timer1_Init(PWM,zkb1,zkb2);IO0SET = 0x0f=6000
18、)timerflag=0;if(key4flag=1)key2flag=0;if(IO0PIN&(right)=0)&(IO0PIN&(left)=0)if(flag1=1)IO0CLR=LED1|LED2;flag1=0;zkb1=2;/右电机zkb0=2;zkb6=2;/左电机zkb7=2;if(IO0PIN & left )!=0) /左转IO0CLR=LED2;IO0SET=LED1;zkb6=0;/左电机zkb7=0;zkb1=9;/右电机zkb0=9;if(IO0PIN & right )!=0) /右转IO0CLR=LED1;IO0SET=LED2;zkb6=9;/左电机zkb7
19、=9;zkb1=0;/右电机zkb0=0;if(IO0PIN&(right)!=0)&(IO0PIN&(left)!=0)IO0SET=LED1|LED2;zkb1=1;/左电机zkb0=1;zkb6=1;/右电机zkb7=1;elseIO0SET=LED1|LED2;zkb1=0;/右电机zkb0=0;zkb6=0;/左电机zkb7=0;KEY=10;if( IO0PIN & key )=0)if( IO0PIN & key )=0)KEY=i;while(IO0PIN & key )=0);switch(KEY)case 0: /修改键Modifly=(Modifly+1)%2;break
20、;case 7: /移位键yiweiflag += 1;if(yiweiflag=8)yiweiflag=0;if(page=0) /时钟if(yiweiflag=2)yiweiflag=3;if(yiweiflag=5);yiweiflag=6;if(page=1) /PWMif(yiweiflag=6)yiweiflag=0;if(page=3)/占空比if(yiweiflag=2)yiweiflag=6;break;case 6: /增建if(page=0) /时钟shizhongyiweiflag += 1;if(shizhongyiweiflag=10)shizhongyiweifl
21、ag=0;if(page=1) /PWMpwmyiweiflag += 1;if(pwmyiweiflag=10)pwmyiweiflag=0;if(page=3) /PWMzkbyiweiflag += 1;if(zkbyiweiflag=10)zkbyiweiflag=0;break;case 4:key4flag=(key4flag+1)%2;keyflag0=1;break;case 1: /换页键page=(page+1)%4;break;default:break;if(Modifly=1)if(page=0)if(i=yiweiflag)IO0CLR=RCK;if(timerfl
22、ag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimashizhongi);Send_Data(duanmai);IO0SET = RCK;if(page=1)if(i=yiweiflag)IO0CLR=RCK;if(timerflag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimapwmi);Send_Data(d
23、uanmai);IO0SET = RCK; if(page=2) IO0CLR = RCK; Send_Data(weimacapi);Send_Data(duanmai);IO0SET = RCK; if(page=3) if(i=yiweiflag)IO0CLR=RCK;if(timerflag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimazkbi);Send_Data(duanmai);IO0SET = RCK; elseif(page=0)IO
24、0CLR = RCK;Send_Data(weimashizhongi);Send_Data(duanmai);IO0SET = RCK;yiweiflag=0;if(page=1)IO0CLR = RCK;Send_Data(weimapwmi);Send_Data(duanmai);IO0SET = RCK;if(page=2) IO0CLR = RCK; Send_Data(weimacapi);Send_Data(duanmai);IO0SET = RCK; if(page=3) IO0CLR = RCK; Send_Data(weimazkbi);Send_Data(duanmai);IO0SET = RCK; yiweiflag=0;zkb1=(zkb7*10+zkb6), /占空比1路 zkb2=(zkb1*10+zkb0); /占空比2路 PWM=(pwm5*100000+pwm4*10000+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来展望与人工智能在人形机器人发展中的潜力
- 汽车座椅行业概述
- 低空经济发展背景
- 浙江工商大学杭州商学院《数据库及其应用实验》2023-2024学年第二学期期末试卷
- 南昌师范学院《计算机科学与技术》2023-2024学年第二学期期末试卷
- 2025年光致抗蚀剂合作协议书
- 江西环境工程职业学院《Web系系统与技术》2023-2024学年第二学期期末试卷
- 2025年低温原油高效破乳剂合作协议书
- 2025年宿迁货运资格证试题及答案
- 2025至2030年中国垃圾处理设备数据监测研究报告
- 重大事故隐患整改台账
- 2022年上海市初中毕业数学课程终结性评价指南
- DB15T 2058-2021 分梳绵羊毛标准
- 高考作文备考-议论文对比论证 课件14张
- (高职)银行基本技能ppt课件(完整版)
- 新华师大版七年级下册初中数学 7.4 实践与探索课时练(课后作业设计)
- 山东省莱阳市望岚口矿区页岩矿
- 《普通生物学教案》word版
- 机动车维修经营备案告知承诺书
- 安全生产应知应会培训课件
- 剪力墙、楼板开洞专项施工方案
评论
0/150
提交评论