遙控智能小車課程設(shè)計報告_第1頁
遙控智能小車課程設(shè)計報告_第2頁
遙控智能小車課程設(shè)計報告_第3頁
遙控智能小車課程設(shè)計報告_第4頁
遙控智能小車課程設(shè)計報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《嵌入式系統(tǒng)原理》課程設(shè)計闡明書題目:遙控智能小車院(系):信息與電氣工程學院專業(yè)班級:通信二班學生姓名:周波學號:指導教師:羅朝輝嵌入式系統(tǒng)原理課程設(shè)計任務(wù)書一、設(shè)計題目遙控智能小車二、設(shè)計重要內(nèi)容廣泛查找文獻資料,認真研究,重復(fù)論證,精心設(shè)計技術(shù)方案。較為進一步的掌握ARM解決器的體系構(gòu)造、指令系統(tǒng)、編程辦法,初步理解ARM應(yīng)用系統(tǒng)的軟硬件開發(fā)辦法及手段,較純熟地掌握ARM解決器幾個重要的片內(nèi)外設(shè)(定時器、PLL、I2C、RTC等)的基本原理及編程辦法,初步掌握ARM解決器外圍電路的擴展辦法。在現(xiàn)有車模的基礎(chǔ)上,以嵌入式ARM微解決器構(gòu)成小車控制核心,同時加裝聲光電、紅外線、超聲波傳感器、LED顯示等外圍設(shè)備,實現(xiàn)對小車的速度、位置、運行狀況的實時測量,并將測量數(shù)據(jù)傳送至解決器進行解決,然后由解決器根據(jù)所檢測的多個數(shù)據(jù)實現(xiàn)對電動車的智能控制;設(shè)計的智能小車應(yīng)當能夠?qū)崟r顯示時間、速度、里程,含有自動尋跡、尋光、避障功效,可程控行駛速度、精擬定位停車。并有對應(yīng)的聲光電設(shè)備發(fā)出有關(guān)的提示或警示信息。遙控方式可自選,系統(tǒng)通過遙控器能夠控制小車的行駛方向、速度、起停等運行狀態(tài),規(guī)定要達成一定的控制精度、距離及范疇,小車行駛速度應(yīng)達成3m/s以上。三、原始資料硬件資源:四驅(qū)小車車模、STM32系統(tǒng)板、用于ARM解決器的JTAG仿真器、PC機Pentium100以上。設(shè)計指導書:STM32系統(tǒng)板配套光盤四、規(guī)定的設(shè)計成果(1)在現(xiàn)有車模的基礎(chǔ)上,以嵌入式ARM微解決器構(gòu)成小車控制核心,同時加裝聲光電、紅外線、超聲波傳感器、LED顯示等外圍設(shè)備,實現(xiàn)對小車的速度、位置、運行狀況的實時測量,并將測量數(shù)據(jù)傳送至解決器進行解決,然后由解決器根據(jù)所檢測的多個數(shù)據(jù)實現(xiàn)對電動車的智能控制。(2)撰寫課程設(shè)計闡明書,規(guī)定簡潔、通順,格式規(guī)范,設(shè)計方案對的,實現(xiàn)技術(shù)路線明確,敘述內(nèi)容完整、清晰、規(guī)范,數(shù)據(jù)、資料真實可靠,軟件程序運行良好。(3)規(guī)定有完整的電路設(shè)計原理圖及軟件源代碼。五、進程安排(1)第1天:任務(wù)布置及有關(guān)知識解說(2)第2-3天:資料查閱與方案制訂(3)第4-8天:硬件設(shè)計、程序編制與調(diào)試階段(4)第9天:撰寫設(shè)計報告六、重要參考資料[1]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用實驗教程.北京航空航天工業(yè)大學出版社,.[2]郭榮佐,王霖.《嵌入式系統(tǒng)原理》.北京航空航天大學出版社,..[3]周根林.嵌入式系統(tǒng)原理與應(yīng)用.南京大學出版社,.[4]譚浩強.C語言程序設(shè)計(第2版).清華大學出版社,[5]丁峰.ARM系統(tǒng)開發(fā)——從實踐到提高.中國電力出版社,.[6]游雨云.單片機PWM信號控制智能小車的實現(xiàn)辦法.技術(shù)與市場,,(12)[7]袁新娜,余紅英,超聲波傳感器在智能小車避障系統(tǒng)中的應(yīng)用.大眾商務(wù)教育版(民辦教育研究),,(8)指導教師(簽名):20年月日 1 2 2 2 2 6 6 7 7 11 11 11 12 13 13 14 14 15圖1.1設(shè)計全局圖通過stm32的PA0,PA1,根據(jù)TIM2產(chǎn)生的不同占空比的PWM波,控制電機的速度,以及正反轉(zhuǎn)。PA3,PA4控制小車前輪,前輪采用舵機控制,在轉(zhuǎn)向方面,不能大幅度轉(zhuǎn)彎,因此,在小車轉(zhuǎn)彎上,我們采用轉(zhuǎn)一段時間,然后倒退一段距離,然后再轉(zhuǎn),如此重復(fù)幾次。通過這種方式實現(xiàn)小車的900C轉(zhuǎn)彎。2.3功效函數(shù)設(shè)計1.voidFront() {GPIOD->BRR=0X03;GPIOA_Conf();//配備A端口GPIOA->BRR=0x0f;GPIOA->BSRR=0X01; }調(diào)用這個函數(shù),實現(xiàn)小車全速向前形式。PD端口的D0,D1位,是控制小車背面兩個尾燈。當小車邁進時,尾燈關(guān)閉。2.voidBack() {GPIOD->BSRR=0x03;GPIOA_Conf();GPIOA->BRR=0x0f;GPIOA->BSRR=0X02;}調(diào)用這個函數(shù),實現(xiàn)小車全速后退。同時啟動車身背面的尾燈。3.voidLeftSlideFront() { GPIOD->BSRR=0X01; GPIOD->BRR=0X02; GPIOA->BRR=0X04; GPIOA->BSRR=0X08; Time_Configuration(350,0,500,7199);} 調(diào)用此函數(shù),實現(xiàn)小車邁進,左轉(zhuǎn)彎。同時啟動尾部左邊的尾燈,關(guān)閉右邊的尾燈。Time_Configuration(350,0,500,7199)為占空比調(diào)制函數(shù)。通過輸入不同的值,變化電機的轉(zhuǎn)速。4.voidTime_Configuration(uint16_tCCR1_Val,uint16_tCCR2_Val,uint16_tperiodValue,uint16_tPrescalerValue){ /*啟動TM2定時器時鐘*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); /*TIM2定時器復(fù)用管腳PA0,PA1,PA2,PA3*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); /*配備定時器時基*/TIM_TimeBaseStructure.TIM_Period=periodValue;TIM_TimeBaseStructure.TIM_Prescaler=PrescalerValue;TIM_TimeBaseStructure.TIM_ClockDivision=0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); /*配備定時器各通道狀況*/TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse=CCR1_Val;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC1Init(TIM2,&TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse=CCR2_Val;TIM_OC2Init(TIM2,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM2,ENABLE);TIM_Cmd(TIM2,ENABLE);} PWM脈寬調(diào)制波形輸出,是stm32定時器功效的一大亮點,以往8位單片機輸出PWM波形,均為模擬,或者借助外圍芯片,而stm32內(nèi)部定時器,實現(xiàn)了精確的PWM波形直接輸出。上面功效函數(shù),為TIM2定時器的配備狀況。我在使用時,啟動了TIM2定時器的通道1和通道2。分別為PA0,PA1,這兩個端口控制小車的后輪電機。由于前輪為舵機。因此,沒有采用PWM波形。而是直接給高低電平調(diào)節(jié)小車的方向。stm32定時器采用預(yù)分頻解決,即將系統(tǒng)時鐘分頻后給定時器,這個預(yù)分頻值,由傳入的參數(shù)PrescalerValue決定。系統(tǒng)時鐘為72MHz,設(shè)分頻后的頻率為F,則:F=72MHz/(PrescalerValue+1)定時器的計數(shù)周期為傳入?yún)?shù)periodValue的值決定。PWM占空比值由傳入?yún)?shù)CCR1_Val和CCR2_Val決定,分別控制PA0,PA1的占空比值。占空比=CCR1_Val/periodValue。 NEC編碼合同中,遙控器每發(fā)送一種8位數(shù)據(jù),能夠分為5個部分:圖3.1NEC合同編碼規(guī)則當按下遙控器上的任意一種鍵時,遙控器將發(fā)送一種38KHz的載波信號,根據(jù)NEC編碼合同,如果發(fā)送數(shù)據(jù)位為1,則向外發(fā)送38KHz的載波信號,持續(xù)發(fā)送0.56ms.然后停止發(fā)送1.685ms后繼續(xù)發(fā)送下一位。如果發(fā)送數(shù)據(jù)位為0,則紅外遙控向外發(fā)送38KHz的載波信號,持續(xù)發(fā)送0.56ms,然后停止發(fā)送0.565ms后繼續(xù)發(fā)送下一位。3.2接受探頭與解碼接受紅外信號部分,我們采用HS0038接受探頭,HS0038共三個引腳,分別為,OUT、VCC、GND。通電后,當沒有收到紅外信號時,OUT端口默認為高電平。接受端口信號與紅外遙控發(fā)送信號電平相反。在解碼方面,接受探頭接受到38KHz的載波后,輸出端OUT電平拉低。由于NEC發(fā)射編碼中,采用的是38KHz載波表達高,無發(fā)射表達低。因此在接受探頭部分的電平高低,與發(fā)射部分剛好相反。解碼部分,數(shù)據(jù)1,0的電平寬度為別是:圖3.2NEC合同1、0電平寬度由于每個數(shù)據(jù)位開始低電平均為0.56ms,因此,我們使用TIM3定時器,精確捕獲到每位數(shù)據(jù)高電平持續(xù)時間。通過捕獲到的值,來確認1和0.通過軟件解碼時,首先接受到引導碼,9ms的低電平和4.5ms的高電平,然后是地址碼和地址反碼,最后是數(shù)據(jù)碼和數(shù)據(jù)反碼。在程序設(shè)計上,我們定義個unsignedchar型數(shù)組,分別統(tǒng)計下地址碼、地址反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。取出數(shù)組下標為2和3的值,將下標為3的數(shù)組數(shù)據(jù)取反,判斷與否相等,如果不相等,表達解碼數(shù)據(jù)有誤;如果相等,表達解碼對的。3.3紅外控制將stm32的外部中斷3端口與紅外探頭的輸出端相連,捕獲紅外遙控發(fā)射來的信號。外部中斷端口程序配備以下:1.voidEXTI3_Configration(){/***************配備PC3端口,作為外部中斷觸發(fā)端口***********/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOC,&GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource3);/****************外部中斷線配備,設(shè)立為上升沿觸發(fā)****************/EXTI_InitStructure.EXTI_Line=EXTI_Line3;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);/********************中斷向量表配備*****************/NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}配備好外部中斷后,當stm32上電后,便會實時監(jiān)控PC3端口,當接受到紅外信號后,便產(chǎn)生一種中斷信號,調(diào)用中斷解決函數(shù),解決該事件,下面為中斷解決函數(shù),重要是解碼紅外信號:2.voidEXTI3_IRQHandler(void){inti,j,Counter=0;charIR[4]={0};charch1=0,ch2=0;if(EXTI_GetITStatus(EXTI_Line3)!=RESET){ TIM3->CNT=0; TIM_Cmd(TIM3,ENABLE); while(TIM_GetCounter(TIM3)<7000); TIM_Cmd(TIM3,DISABLE); TIM3->CNT=0; if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)==0) { while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)); TIM3->CNT=0; TIM_Cmd(TIM3,ENABLE); while(TIM_GetCounter(TIM3)<3500); TIM_Cmd(TIM3,DISABLE); if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)==1) { while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)); for(i=0;i<4;i++) { for(j=0;j<8;j++) { while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)); TIM3->CNT=0; TIM_Cmd(TIM3,ENABLE); while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_3)); Counter=TIM_GetCounter(TIM3); TIM_Cmd(TIM3,DISABLE); ch1=ch1>>1; if(Counter>840) { ch1=ch1|0x80; } else { ch1=ch1|0; } Counter=0; } IR[i]=ch1; } ch1=IR[2]; ch2=IR[3]; ch2=~ch2; if(ch1==ch2) { switch(ch1) { case0x07:LeftSlideFront();break; case0x09:RightSlideFront();break; case0x40:Front();break; case0x19:Back();break; case0x16:LeftSlideBehind();break; case0x0d:RightSlideBehind();break; case0x0c:Upshift();break; case0x5e:SlowDown();break; case0x15:Brake();break; default:Brake();break; } } } }Delay(500);EXTI_ClearITPendingBit(EXTI_Line3); }} 這個函數(shù)為中斷解決函數(shù),在中斷解決函數(shù)中,我們又用到了一種TIM3定時器,該定時器重要是解碼紅外信號,根據(jù)上文所述的0,1編碼規(guī)則,用TIM3定時器,所捕獲到的值,來判斷信號0,1,實現(xiàn)軟件解碼紅外信號。下面為TIM3定時器的配備:3.voidTIM3_Configuration(){TIM_DeInit(TIM3);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);TIM_TimeBaseStructure.TIM_Period=50000;TIM_TimeBaseStructure.TIM_Prescaler=0;TIM_TimeBaseStructure.TIM_ClockDivision=0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); TIM_PrescalerConfig(TIM3,71,TIM_PSCReloadMode_Immediate); TIM_ARRPreloadConfig(TIM3,DISABLE); TIM_Cmd(TIM3,DISABLE);} 設(shè)立預(yù)分頻值為71,通過分頻后,計數(shù)器的頻率為1MHz。周期為50000.計數(shù)方式為向上計數(shù)。即使stm32普通定時器的時鐘為36MHz,如果將TIM_ClockDivision的值設(shè)立為0,則采用預(yù)分頻時,時鐘值應(yīng)選72MHz進行分頻。4.超聲波4.1介紹 通過超聲波發(fā)射裝置發(fā)出超聲波,根據(jù)接受器接到超聲波時的時間差就能夠懂得距離了。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳輸,途中碰到障礙物就立刻返回來,超聲波接受器收到反射波就立刻停止計時。(超聲波在空氣中的傳輸速度為340m/s,根據(jù)計數(shù)器統(tǒng)計的時間t,就能夠計算出發(fā)射點距障礙物的距離(s),即:s=340t/2)4.2超聲波測距具體實現(xiàn) 我們在小車的前端放置一種超聲波模塊,采用查詢法,每隔1s,發(fā)射一種10us以上的脈沖信號,超聲波模塊便自動發(fā)送8個40Khz的信號。當模塊接受到返回信號時,輸出端會輸出一種高電平,這個高電平的持續(xù)時間,就是超聲波模塊達成障礙物,聲速的來回時間。如果測得前方障礙物距離不大于設(shè)立距離,則小車后退,并發(fā)出報警蜂鳴聲。4.3超聲波程序設(shè)計1.floatDistance(){ floatdistance; inttime; TIM3->CNT=0; //非常重要,不清零,沒成果 GPIOB->BSRR=0X01; while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0);//等待接受到反回信號 GPIOB->BRR=0X01; TIM_Cmd(TIM3,ENABLE);//啟動定時器,記下電平持續(xù)時間 while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==1); TIM_Cmd(TIM3,DISABLE); time=TIM_GetCounter(TIM3); distance=(float)time*0.017;//cm數(shù)量級 returndistance;} 程序中的TIM3定時器,在上文3.3.3已經(jīng)具體的描述。我們將stm32的PB0作為發(fā)送10us以上高電平的端口,將PB1作為接受超聲波模塊饋送的時間信號電平端口。該高電平的時間,為超聲波來回障礙物的時間。該函數(shù)返回值,即為小車到障礙物的距離。2.voidKeepDistance() //超聲波測距,距離控制函數(shù){ GPIOB->BRR=0x100; if(Distance()<25.0) { GPIOB->BSRR=0x100; RightSlideBehind(); Delay(200); GPIOB->BRR=0x100; Delay(700); GPIOA->BSRR=0x0c; Time_Configuration(70,0,100,71); } } 調(diào)用這個函數(shù),當小車查詢到前方距離不大于25cm時,便進行某些列的調(diào)節(jié),如蜂鳴器想起,小車向右后轉(zhuǎn)。5.紅外尋跡5.1反射式紅外傳感器圖5.1反射式紅外傳感器 如圖5.1所示,當紅外發(fā)射管發(fā)射信號,經(jīng)地面反射到接受管時,接受管部位電阻值很??;當紅外傳感器與地面距離拉大,接受管接受不到反射信號時,接受管部位電阻值很大。采用一種電壓比較器LM393,LM393為兩端輸入,一端輸出,比較兩個輸入信號的大小。我們將紅外傳感器接受管在接受到信號和沒有接受到信號時,電阻兩端的電壓與一種固定的值相比,接受到信號時,LM393輸出低電平;沒有接受到信號時,LM393輸出高電平。通過高低電平,判斷紅外管發(fā)出的信號與否被黑線吸取。5.2具體實現(xiàn)辦法小車上的黑線檢測設(shè)備,采用的中斷觸發(fā)方式是,下降沿。由于電機在轉(zhuǎn)動過程中,不可避免的會發(fā)生忽然變向,減速等。這樣會干擾電源電壓,由于我我們組采用的stm32為3.3V供電,該電壓有6個電池串聯(lián),通過穩(wěn)壓芯片穩(wěn)壓后,輸出3.3V給stm32,當點擊由于忽然變向,加速減速才生大電流,對電池電壓產(chǎn)生較大的沖擊,穩(wěn)壓芯片輸出截止。黑線檢測的模塊與stm32并聯(lián),當穩(wěn)壓芯片輸出的3.3V電壓忽然截止時,尋跡模塊輸出電壓為0.如果采用下降沿觸發(fā),這時,由于電壓的不穩(wěn)定而造成了一種有害的觸發(fā)中斷。通過修改硬件電路,采用上升沿觸發(fā),當紅外對管檢測到黑線時,輸出信號為0,當小車沒有檢測到黑線時,輸出信號為1。當穩(wěn)壓芯片忽然截止時,輸出也0,這樣能夠有效的解決電機對尋跡模塊的干擾。 我們小組采用3個尋跡模塊,stm32采用3個外部觸發(fā)端口分別與3個尋跡模塊相連。左右兩邊尋跡模塊用于檢測跑到邊沿,避免小車沖出跑到。中間尋跡模塊用于檢測小車轉(zhuǎn)彎線。stm32分槍占式優(yōu)先級和響應(yīng)式優(yōu)先級。如果搶占式優(yōu)先級相似,則不能發(fā)生中斷嵌套。小車通過轉(zhuǎn)彎線時,三個尋跡模塊均會檢測到黑線。因此,我們設(shè)立中間尋跡模塊的搶占式優(yōu)先級最高,兩邊搶占式等級低于中間,當小車通過轉(zhuǎn)彎線時,三個中斷同時,或一次來臨。中間中斷等級打斷兩邊,確保中間的中斷執(zhí)行程序能順利執(zhí)行。5.3尋跡程序設(shè)計我們采用三個外部中斷,分別為PC0,PC1,PC3三個端口,分別監(jiān)控三個尋跡模塊。下面以外部中斷0為例:1.voidEXTI0_Configration(){/************配備PC0端口,作為外部中斷觸發(fā)端口*******/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOC,&GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource0);/****************外部中斷線配備,設(shè)立為下降沿觸發(fā)****************/EXTI_InitStructure.EXTI_Line=EXTI_Line0;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);/********************中斷向量表配備*****************/NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQCha

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論