智能循迹避障小车设计_第1页
智能循迹避障小车设计_第2页
智能循迹避障小车设计_第3页
智能循迹避障小车设计_第4页
智能循迹避障小车设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上目 录摘要2绪论22方案设计与论证 32.1 主控系统32.2 电机驱动模块42.3 循迹模块52.4 避障模块62.5 机械系统72.6电源模块73硬件设计 73.1总体设计73.2驱动电路83.3信号检测模块93.4主控电路104 软件设计124.1主程序模块124.2电机驱动程序124.3循迹模块134.4避障模块15结束语19致谢19参考文献19 智能循迹避障小车 李庆滨 (德州学院物理系,山东德州)摘要 利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N驱动电路完

2、成,速度由单片机输出的PWM波控制。关键词 智能小车;STC89C52单片机; L298N;红外对管1 绪论自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化

3、环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVGauto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、

4、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到

5、实际情况,本文选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。现智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我此次的设计主要实现循迹避障这两个功能。2方案设计与论证 根据要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活

6、、可靠,精度高,可满足对系统的各项要求。2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下: 方案一:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,

7、我们不采用该种方案,进而提出了第二种设想。 方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析,我选定了P89C51RA单片机作为本设计的主控装置,51

8、单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。2.2 电机驱动模块 方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。 方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流

9、很大,分压不仅回降低效率,而且实现很困难。 方案三:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路(如图2.1)。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用了L298N(如图2.2)。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快

10、速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。图2.1 H桥式电路图2.2 L298N2.3 循迹模块 方案一:采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现问题,而且容易因为 该部件造成整个系统的不稳定。故最终未采用该方案。 方案二:采用两只红外对管(如图2.3),分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。(参考文献3) 方案三:采

11、用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。通过比较,我选取第二种方案来实现循迹。图2.3 红外对管2.4 避障模块 方案一:采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。 方案二:采用二只红外对管分别置于小车的前端两侧,

12、方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。但此方案过于依赖硬件、成本较高、缺乏创造性,而且置于小车左方的红外对管用到的几率很小,所以最终未采用。 方案三:采用一只红外对管置于小车右侧。通过测试此种方案就能很好的实现小车避开障碍物,且充分的利用资源而不浪费。(参考文献3)通过比较我采用方案三。2.5 机械系统本题目要求小车的机械系统稳定、灵活、简单,而三轮运动系统具备以上特点。驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。电池的安

13、装:将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。简单,而三轮运动系统具备以上特点。2.6电源模块 方案一:采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供5V电压,但占用资源过大。 方案二:采用4支1.5V电池单电源供电,但6V的电压太小不能同时给单片机与与电机供电。 方案三:采用8支1.5V电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。所以,我选择了方案三来实现供电。3硬件设计3.1总体设计智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后

14、轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退,转向,从而避开障碍物。3.1.1主板设计框图如图3.1,所需原件清单如表3.1。Stc89c52循迹红外对管时钟电路复位电路报警电路电机驱动避障红外对管图3.1 主板设计框图表3.1 元件清单元件数量元件数量元件数量直流电机2只电阻若干集成电路芯片若干单片机1 块二极管若干电容若干红外对管3

15、只蜂鸣器1只电位器若干12M晶振1只杜邦线若干玩具小车1个排针若干3.2驱动电路(参考文献4)电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度,起停。其引脚图如3.2,驱动原理图如图3.3。图3.2 L298N引脚图 图3.3 电机驱动电路3.3信号检测模块 小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法红外探测法。 红外探测法,即利用红外线在不同

16、颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。避障亦是此原理。电路图如图3.4。市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。图3.4循迹原理图3.4主控电路本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。以及再检测到障碍报警等作用。其电路图如图5。图3.5 主控电路 4软件设计4.1启动循迹是否检测到停止线停止是否检测到障碍NY避障YN主程

17、序框图:图4.1 主程序框图4.2电机驱动程序void goahead()s1=1;s2=0;s3=1;s4=0;void goback()s1=0;s2=1;s3=0;s4=1;void turnleft()s3=1;s4=0;void turnright()s1=1;s2=0;void stop()en1=0;en2=0;4.3循迹模块开始前进扫描I/O口,是否检测到黑线Y左边 右边左转右转N循迹框图:图4.2 循迹框图循迹程序:void xunji()if(left_red=1)&(right_red=1)en1=1;en2=1;goahead();delay(150);en1=

18、0;en2=0;delay(50);else if(left_red=0)&(right_red=1)en1=0;en2=1; P0_0=!P0_0;turnleft();delay(150);en1=1;en2=0;delay(50);else if(left_red=1)&(right_red=0)en1=1;en2=0;P0_1=!P0_1;turnright();delay(150);en1=0;en2=1;delay(50);elsestop();4.4避障模块避障框图:开始后退一点,报警后退左转前进右转Y左转是否检测到障碍前进N图4.3 避障框图避障程序:void

19、bizhang()en1=1;en2=1;goback();mid_red=0;baojing();goback();for(i=0;i<8;i+)en1=1;en2=1;delay(150);en1=0;en2=0;delay(50);stop();delay(10);turnleft();for(i=0;i<11;i+)en1=0;en2=1;delay(130); en2=0;delay(50);stop();delay(10);goahead();for(i=0;i<22;i+)en1=1;en2=1;delay(130);en1=0;en2=0; delay(50)

20、;stop();delay(10);turnright();for(i=0;i<18;i+)en1=1;en2=0;delay(130);en1=0;delay(50);xun: if(left_red=1)&(right_red=0)loop: turnleft();en1=0;en2=1;delay(30);turnright();en1=1;delay(50);en1=0;delay(50);en2=0;delay(50);if(left_red=1)&(right_red=1);else goto loop;elseen1=1;en2=1;goahead();de

21、lay(80);en1=0;en2=0;delay(50);goto xun;5结束语 整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能: 1 自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。 2 当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹 3 自动检测停车线并自动停车。从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,没有选

22、取稳定的电源。我相信如果实验条件和时间的允许下我肯定能解决这一问题。 通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。致谢本设计能够顺利完成,还承蒙张老师以及身边的很多同学的指导和帮助。在设计过程中,张老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对张老师表示最真挚的感谢!同时感谢所有帮助过我的同学!感些评阅老师百忙之中抽出时间对本论文进行了评阅!参考文献1郭惠,吴迅.单片机C语言程序设计完全自学手册M.电子工业出版社,2008.10:1-200.2王东锋,王

23、会良,董冠强. 单片机C语言应用100例M. 电子工业出版社,2009.3:145-300.3韩毅,杨天. 基于HCS12单片机的智能寻迹模型车的设计与实现J.学术期刊,2008,29(18):1535-1955.4 王晓明. 电动机的单片机控制J. 学术期刊,2002,13(15):1322-1755.5Yamato I , et al 1 New conversion system for UPS using high fre2quency linkJ 1 IEEE PESC ,1988 :210-320.6Yamato I , et al 1 High frequency link DC

24、/ AC converter for UPSwith a new voltage clamperJ 1IEEE PESC ,1990 :52-105.附录 程序#include "reg52.h"#define det_Dist 2.55 /单个脉冲对应的小车行走距离,其值为车轮周长/4#define RD 9 /小车对角轴长度#define PI 3.#define ANG_90 90#define ANG_90_T 102#define ANG_180 189/*=全局变量定义区=*/sbit P10=P10; /控制继电器的开闭sbit P11=P11; /控制金属接

25、近开关sbit P12=P12; /控制颜色传感器的开闭sbit P07=P07; /控制声光信号的开启sbit P26=P26; /接收颜色传感器的信号,白为0,黑为1sbit P24=P24; /左 sbit P25=P25; /右 接收左右光传感器的信号,有光为0unsigned char mType=0; /设置运动的方式,0 向前 1 向左 2 向后 3 向右unsigned char Direction=0; /小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右unsigned sX=50; unsigned char sY=0; /小车的相对右下角的坐标 CM(sX,sY)u

26、nsigned char StartTask=0; /获得铁片后开始执行返回卸货任务,StartTask置一unsigned char Inter_EX0=0; / 完成一个完整的任务期间只能有一次外部中断 / Inter_EX0记录外部中断0的中断状态 / 0 动作最近的前一次未中断过, / 1 动作最近的前一次中断过unsigned char cntIorn=0; /铁片数unsigned char bkAim=2; /回程目的地,0为A仓库,1为B仓库,2为停车场, /(在MAIN中接受铁片颜色判断传感器的信号来赋值)unsigned char Light_Flag=0;/进入光引导区的

27、标志(1)unsigned int cntTime_5Min=0;/时间周期数,用于 T0 精确定时unsigned int cntTime_Plues=0; /霍尔开关产生的脉冲数/*=全局变量定义区=*/*-*/*-通用延迟程序-*/*-*/void delay(unsigned int time) / time*0.5ms延时unsigned int i,j;for(j=0;j<time;j+) for(i=0;i<60;i+);/*-*/*-显示控制模块-*/*-*/*数码管显示,显示铁片的数目(设接在P0,共阴)*/void Display(unsigned char n

28、) char Numb12=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x37,0x77;P0=Numbn;/*-*/*-传感器模块-*/*-*/*光源检测程序: */*用于纠正小车运行路线的正确性*/unsigned char LightSeek() void Display(unsigned char);bit l,r;l=P24;r=P25;if(l=0&&r=1) /Display(1); return (3); /偏左,向右开 if(r=0&&l=1) /Display(3); return(1

29、); /偏右,向左开 if(l=1&&r=1)|(l=0&&r=0) /Display(9); return(0); /没有偏离,前进 /*铁片检测程序: */*判断铁片的颜色,设定bkAim,0为A仓库,1为B仓库,2为停车场*/void IornColor() delay(4000); bkAim=(int)(P26); Display(int)(P26)+2);/*-*/*-运动控制模块-*/*-*/*=基本动作层:完成基本运动动作的程序集=*/*运动调整程序: */*对小车的运动进行微调*/void ctrMotor_Adjust(unsigned ch

30、ar t)if(t=0) P2=P2&240|11; /用来解决两电机不对称的问题 delay(6); if(t=3) P2=P2&250; /向左走 delay(1); if(t=1) P2=(P2&245); delay(1); /向右走 P2=(P2&240)|15);delay(10);/*直走程序: */*控制小车运动距离,dist为运动距离(cm),type为运动方式(0 2)*/*只改变小车sX 和 sY的值而不改变Direction的值. */void ctrMotor_Dist(float dist,unsigned char type) un

31、signed char t=0;mType=type;P2=(P2&240)|15);cntTime_Plues=(int)(dist/det_Dist);while(cntTime_Plues) if(Inter_EX0=1&&StartTask=0) cntTime_Plues=0; break; if(Light_Flag=1) t=LightSeek(); if(type=0) /向前走 P2=P2&249; delay(40); ctrMotor_Adjust(t); if(type=2) /向后退 P2=P2&246; delay(50);

32、ctrMotor_Adjust(t); P2=(P2&240)|15); if(mType=2) delay(60);/刹车制动 0.5ms else delay(75); /*拐弯程序: */*控制小车运动角度,type为运动方式(1 3) */*只改变小车Direction的值而不改变sX 和 sY的值*/void ctrMotor_Ang(unsigned char ang,unsigned char type,unsigned char dir) unsigned char i=0;mType=type;P2=(P2&240)|15);cntTime_Plues=(in

33、t)(PI*RD*90/(180*det_Dist)*1.2)*ang/90);while(cntTime_Plues) if(Inter_EX0=1&&StartTask=0) cntTime_Plues=0; break; if(type=1) /向左走 P2=P2&250; delay(100); ctrMotor_Adjust(0); if(type=3) /向右走 P2=P2&245; delay(100); ctrMotor_Adjust(0); P2=(P2&240)|15); delay(50);/刹车制动 0.5ms if(!(Inte

34、r_EX0=1&&StartTask=0) Direction=dir; /*=基本路线层:描述小车基本运动路线的程序集=*/*当小车到达仓库或停车场时,放下铁片或停车(0,1为仓库,2为停车场)*/void rchPlace() unsigned int time,b,s,g;time=(int)(cntTime_5Min*0.);/只有一个数码管时,轮流显示全过程秒数 个 十 百b=time%100;s=(time-b*100)%100;g=(time-b*100-s*10)%10;if(bkAim=2) /到达停车场了,停车 EA=0; P2=(P2&240)|1

35、5); while(1) Display(10); /N delay(2000); Display(cntIorn); delay(2000); Display(11);/A delay(2000); Display(b); delay(2000); Display(s); delay(2000); Display(g); delay(2000); else if(Inter_EX0=1&&StartTask=1)P10=0; /到达仓库,卸下铁片 /*无任务模式: */*设置小车的固定运动路线,未发现铁片时的运动路线*/void BasicRoute() /Light_Fla

36、g=1; ctrMotor_Dist(153,0); /Light_Flag=0; ctrMotor_Ang(ANG_90,1,1); ctrMotor_Dist(100-sX,0);ctrMotor_Dist(125,2); ctrMotor_Dist(73,0); ctrMotor_Ang(ANG_90,1,2); /Light_Flag=1; ctrMotor_Dist(153,0); /Light_Flag=0; ctrMotor_Ang(ANG_180,1,0); rchPlace(); /*任务模式: */*设置小车的发现铁片后的运动路线*/void TaskRoute()/基本运

37、行路线表,记载拐弯 0 向前 1 左拐 2 向后 3 右拐,正读去A区;反读去B区StartTask=1;ctrMotor_Ang(ANG_90_T,1,2);if(bkAim=1) /仓库A ctrMotor_Dist(10,0); P2=(P2&240)|15); delay(60); ctrMotor_Ang(ANG_90_T,1,3); ctrMotor_Dist(100-sX,2); ctrMotor_Ang(ANG_90_T,1,2); Light_Flag=1; ctrMotor_Dist(153,2); Light_Flag=0; / ctrMotor_Ang(208,

38、1,0); else if(bkAim=0) /仓库B ctrMotor_Dist(10,0); P2=(P2&240)|15); delay(60); ctrMotor_Ang(ANG_90_T,1,3); ctrMotor_Dist(100-sX,0); ctrMotor_Ang(ANG_90_T,1,0); Light_Flag=1; ctrMotor_Dist(153,2); Light_Flag=0; /ctrMotor_Ang(208,1,0); delay(5000); rchPlace();/*-*/*-主程序段-*/*-*/void main()delay(4000);P2=0xff; /初始化端口P07=0; P1=0;TMOD=0x01; /初始化定时器0/1 及其中断TL0=0; TH0=0;TR0=1;ET0=1;ET1=1;IT0=1; /初始化外部中断EX0=1;IT1=1;EX1=1;EA=1;P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论