智能迷宮尋跡小車報告全解_第1頁
智能迷宮尋跡小車報告全解_第2頁
智能迷宮尋跡小車報告全解_第3頁
智能迷宮尋跡小車報告全解_第4頁
智能迷宮尋跡小車報告全解_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目名稱:迷宮尋跡機器人(EJ1參賽隊員:*摘要:本尋跡小車選用8位89C52單片機為控制器,通過6個紅外光電傳感器 TCRT5000對信號進行釆集,采集到的信號經(jīng)比較器LM393處理后傳給89C52 單片機,經(jīng)單片機處理后,發(fā)出控制命令給L298N,驅(qū)動2臺直流電動機進行 相應的動作。該小車能夠識別出黑色軌跡并能沿著黑色軌跡前進直到終點,并 能顯示出運行時間。1方案論證與比較1.1傳感器的選擇與比較方案一釆用攝像頭,然后用CCD處理技術,對采集的信號進行分析。方案二使用光敏傳感器,能夠采集回來黑與白兩種信號,然后進行處理與 分析。由于釆用攝像頭進行CCD處理所用的硬件搭接較為繁瑣,并且處理起來

2、還 比較麻煩,而光敏傳感器TCRT5000可以雖然智能識別黑與白兩種顏色由于現(xiàn) 場條件,并不能對其造成干擾,而且其反應速度快,響應時間短,故此,我們 選用光敏傳感器TCRT5000o1.2車體的選擇與比較方案一采用4輪小車,前輪由舵機控制轉(zhuǎn)彎,后輪由動力電機控制前進與 后退。方案二釆用三輪小車,前面兩輪由兩個電機分別控制,用其速度差來實現(xiàn) 轉(zhuǎn)彎與調(diào)整,后前輪為萬向輪,用來維持小車的平衡由于釆用4輪車,小車在轉(zhuǎn)彎時會產(chǎn)生轉(zhuǎn)彎半徑,會偏離軌跡,不能按照 黑色軌跡前進,而轉(zhuǎn)彎半徑無法縮小到滿意的程度,由于三輪小車用兩個電機 來控制兩個輪子,故很容易來實現(xiàn)轉(zhuǎn)彎與調(diào)整,是理想的車體模型。1.3前進路徑與

3、返回路徑的最優(yōu)選擇由于小車需要按照黑色軌跡尋到終點,并且按最優(yōu)路徑返回,故小車應能 識別迷宮的路況,普通尋跡小車智能按照黑色軌跡走,但不能識別路況,這樣 小車尋到終點的效率很低,乂不能按照最優(yōu)路徑返回??紤]到以上情況,我們 給小車加上了識別路口程序,并且讓小車按照右手原則前進,在每個路口處讓 小車記錄出所走過的路況,并且記憶,以便于在返航時調(diào)用記錄信息,使小車 順利返回。14傳感器個數(shù)的比較與選擇方案一總共5個傳感器,兩個傳感器用來檢測小車是否偏離軌跡,另外三 個傳感器用來檢測小車是否遇到路口(前方.左方及右方各一個),由前方傳感 器來檢測終點。(如圖1.1)方案二總共6個傳感器,其中兩個傳感

4、器用來檢測小車是否偏離軌跡,另 外三個傳感器用來檢測小車是否遇到路口(前方左方及右方各一個),還有一 個傳感器配合前方的傳感器來檢測終點。(如圖1.2)圖1.1五個傳感器示意圖圖1.2六個傳感器示意圖圖1.3八個傳感器示意圖方案三總共8個傳感器,兩個傳感器用來檢測小車是否偏離軌跡,另外五 個傳感器用來檢測小車是否遇到路口(前方一個,左方及右方各兩個),還有一 個傳感器配合前方的傳感器來檢測終點。檢測路口左右方向時用2個傳感器, 是以使能減少誤判,讓小車更好的尋跡。(如圖1.3)方案一比方案二多一個傳感器,是為了更好的檢測終點,方案一檢測終點的 方法是前當方傳感器檢測到死胡同時在讓其延時繼續(xù)前進

5、如圖1.4,當再檢測到 黑色信號時即使終點,但是實際運作時發(fā)現(xiàn)由于2cm對于運動的小車來說過小, 而且即便檢測到終點在返回時,會再次遇到黑色信號,和死胡同標志容易產(chǎn)生 混淆,不易于小車更好的判別路口,而當有第6個傳感器輔助前方傳感器檢測 到終點時,則能避免以上問題,當檢測到死胡同標志時,只要再繼續(xù)往前走, 輔助檢測傳感器便會檢測到白色信號小車就會認為到達終點如圖1.5,避免了小 車混淆死胡同與終點標志,同時讓終點標志更好的被識別。而方案三,將檢測 左右路口的傳感器增加至每側(cè)2個,以防出現(xiàn)如圖1.6所示的誤判,而圖1.7的 方案三只要兩個傳感器不全進入黑線就不會認為有路口,能大大的避免誤判的 幾

6、率。但是后來在軟件編寫和實際測試的時候,發(fā)現(xiàn)了用軟件可以進行防誤判,而 由于這種防誤判方法的引入,是傳感器的個數(shù)從8個減少到了 6個,其具體如 何防誤判將在后面說明。圖1.4 一個傳感器檢測終點示意圖圖1.5兩個傳感器檢測終點示意圖圖1.6路II誤判示意圖圖17路II防誤判示意圖1.5傳感器位置擺放的比較與選擇1 為了讓小車在檢測到路口時就進行轉(zhuǎn)彎,在轉(zhuǎn)完后其中線仍與軌跡中線 重合,避免了其每次轉(zhuǎn)彎后都進行調(diào)整,我們經(jīng)測量發(fā)現(xiàn)小車輪距為10cm,而 軌跡寬度為2cm,故檢測路口的傳感器與輪子軸承間的距離D= (10-2)/2=4cm, 如圖1.8所示。2.為了讓小車剛剛檢測偏離軌跡就做出調(diào)整,

7、同時乂給小車在走直線時留 有余量,經(jīng)過不斷實踐測試,認為檢測偏離軌跡的兩個傳感器間距以2.1cm為 最佳。如圖19所示3圖1.8檢測轉(zhuǎn)彎路I 1傳感器位置的計算7圖19檢測偏離軌跡的傳感器示意圖3為了兩檢測終點的傳感器能夠準確快速的檢測并識別出終點,設定兩傳感器 間距離為2.1cnioc圖1.10兩檢測終點傳感器間距4總體擺放如下圖1.1L A=l.lcm, B=3.2cm圖1.11總體擺放圖2硬件系統(tǒng)設計2.1總體設計有光敏傳感器進行信號釆集,經(jīng)電壓比較器LM393處理后直接傳給 AT89C52,單片機對信號按照預定的程序進行處理,將處理的結(jié)果通過10 口傳 給74LS08,通過與PWM波合

8、成后給L298N (直流電機驅(qū)動芯片)信號,通過 L298N進行控制小車兩輪子,以實現(xiàn)左右微調(diào),左右轉(zhuǎn)彎,前進與原地旋轉(zhuǎn)等 動作。小車每到路口都進行相關的記憶處理,以便最優(yōu)返回。圖2.1總體設計框架圖2.2單元電路設計2.2.1傳感器單元電路的設計圖2.2傳感器單元電路當傳感器進入黑色軌跡中時,由發(fā)射管發(fā)射的不可見光被吸收,不能被接 收器接收到,故接收一側(cè)電路不導通,LM393的同向輸入為高,輸入比較器輸 出為高,其輸出高電壓為5V,低電壓為0V,故可以直接傳給單片機。而電壓 比較器的輸出端所接的LED能夠?qū)崟r的顯示傳感器的工作狀況。本題目要求小車能夠不偏離中心軌跡,由于軌跡交窄小車相對運動速

9、度快, 故要求傳感器單元必須較為靈敏,相應時間短,反應速度快。我們采用的LM393 電壓比較器,其工作電源電壓范圍寬,單電源、雙電源均可工作,消耗電流小, 輸入失調(diào)電壓小,共模輸入電壓范圍寬,反應時間快,其內(nèi)部結(jié)構(gòu)圖如圖2.3 所示。2.2.2電機驅(qū)動單元電路的設計bEN1EN2翥常VCCVDDOUT1OUT2OUTSOUT4圖2.4電機驅(qū)動電路圖由于要對電機實行加速減速剎車的控制,故采用由L298N和74LS08構(gòu)成 的驅(qū)動電路,由1.0和1.1 口負責控制1號電機的前進與后退,而與他們一起走 與門74LS08的1.4 口負責輸出PWM波,由PWM波負責控制小車的減速與加 速以及制動的控制。

10、同時與門也起到了擴大單片機輸出電流的作用,由于L298N 需要的輸入電流AT89C52無法驅(qū)動,與門在此起到一定的上拉作用。因為要用單片機對電動機進行四象限的控制,由于控制象限的復雜以及驅(qū) 動電機功率的問題,這里我們需要采用電動機驅(qū)動芯片來實現(xiàn),我們釆用的是 L298N這款電機驅(qū)動芯片,該芯片具備控制簡單,反應快,輸出功率大,支持 外接電機工作電源等一系列優(yōu)點。其結(jié)構(gòu)圖如圖2.5所示。圖2.5 L298N內(nèi)部結(jié)構(gòu)圖2.2.3電源模塊單元電路的設計圖2.6電源模塊單元電路圖由于整個控制板都需要5V電壓,考慮到電池隨著使用時間的增強,電壓 會有所下降,故我們選用直流穩(wěn)壓電源9V進行供電,由于多方同

11、時分流,有 可能造成電量不足,為了保持電壓能夠穩(wěn)定在5V,故選用L7805進行穩(wěn)壓。在 其輸出輸入端口各并聯(lián)一個電容,以起到保護芯片的作用。其內(nèi)部結(jié)構(gòu)圖如2.7 所示。$兀 04圖27 L7805內(nèi)部結(jié)構(gòu)圖224液晶顯示單元電路設計PL1JZEX;PL2 軋PL6MS0)PL?tsoo y i p?3jynT CZ Jpmxn;P34TOfTvpnXTALlXIAL2XS7p=.?T p油應(ADLJP0.1 AD2:P0J CADJJPOJ 0.4 AD5 昨 (AD5)m UDW7CADP2CCAW11 (A】沁2 (All)?: 3 (A】2陽 (ABp:5 (AU)P: d (A15p

12、:7vcc GNDRJO7衛(wèi)汕40200091圖2.8液晶顯示單元電路圖釆用1602液晶進行時間和方向的顯示,我們采用單獨的AT89S52來控制 液晶,減少其對小車控制的干擾,然后由2根數(shù)據(jù)線讓其與主控AT89S52進行 通信,以此來顯示小車運行的時間和方向。圖2.8中R38用來控制液晶字幕的 清晰度,R37用來控制液晶屏幕的對比度。3軟件系統(tǒng)設計3.1總體設計小車自上電時程序開始運行,我們依著右手原則為小車尋跡方法,右為先。 自上電后小車進入初始化階段之后轉(zhuǎn)入主函數(shù),我們將小車能遇到的各種情況進行一一排列出來,這樣無論傳感器反饋回來什么樣的信號都有與之對應的命 令,分為以下10種情況:左微調(diào)

13、,右微調(diào),前進,左轉(zhuǎn),右轉(zhuǎn),T型,左T, 右T,十字路口,死胡同。其流程圖如圖3.1所不。113.2各子模塊的設計3.2.1轉(zhuǎn)彎模塊的設計為了讓小車能夠順利并且及時的停止轉(zhuǎn)彎,我們將其轉(zhuǎn)彎的停止標志設為當 檢測前方是否有路的傳感器遇到黑色軌跡,即表示其己完成轉(zhuǎn)彎,這樣避免了 小車轉(zhuǎn)彎過大或者過小的問題。3.2.2終點識別模塊的設計為了讓小車能夠準確的識別終點標志,釆用2個傳感器來檢測終點標志, 當且僅當前后檢測終點的傳感器同時檢測到終點信號時,才認定到達終點,即 當前后前后檢測終點的傳感器323防誤判模塊的設計列出了小車在行走時可能碰到的各種誤判情況,對其一一分析后判別出應 是那種路況,將其對

14、應情況列出,并給出小車應該正確運行的指令。4附加功能增加了小車轉(zhuǎn)彎的轉(zhuǎn)向燈模擬功能,轉(zhuǎn)向燈能隨小車的轉(zhuǎn)向?qū)崟r的閃爍起來,以此一 次來表示小車的運轉(zhuǎn)狀態(tài),還在車尾處額外增加了兩組led小燈,以此表示小車現(xiàn)在處于 的狀態(tài)即狀態(tài)前進最優(yōu)路徑返回歿占起點綠色1010綠色1010藍色0110藍色011015附錄1主控程序清單存include 存include 存include /char pro_left,pro_nght,iJ; 左右占空比標志 extein iiit a24=3,4O0O0,0Q0,0,OOOOOQOQQO;extein iiit n=2Jogo=0;/sbit leftl=PlzO

15、;sbit left2=Pr 1;sbit right 1=P1A2;sbit right2=PlA3;sbit enl=PlA4; sbit en2=PlA5; sbitpl6=PlA6; sbitp!7=PlA7;/左電機正反轉(zhuǎn)/右電機正反轉(zhuǎn)輸出PWM1波控制左電機輸出PWM2波控制左電機/sbitp23=P2A3; sbit p24=P2A4; sbit p25=P2A5; sbitp26=P2A6;sbit lefCtuin=POAO;sbit left=POAl;sbit midb=P0A2;sbit midf=P0A3;sbit right=POA4;sbit iight_aini

16、=POA5;左側(cè)傳感器(識別路II)微調(diào)左位置后中間傳感器(識別路|丨)/前中間(識別路1)微調(diào)右位置右側(cè)傳感器(識別路II)7/sbit p20=P2A2; sbit p21=P2T;左拐直走右拐sbit p22=P2A0:void fiist_stiaight(); 啟動直走void stiaight();直走void sd_straight();左岔直走void stopQ;終點稍停void endQ;回到起點停車void wleft();左微調(diào)void wright();右微調(diào)void ftJeftQ;左轉(zhuǎn)90由黑到白void sd_left();左轉(zhuǎn)90由白到黑void ft_rig

17、ht();右轉(zhuǎn)90由黑到白void sdjightO;右轉(zhuǎn)90由白到黑void ft_180nQ;左轉(zhuǎn)180由黑到白void sd_18Ort0;左轉(zhuǎn)180由白到黑7/void iiifraredQ;初次循跡void comebackQ;返航void memoi-y(mt x);/記憶void delay(int z); 延時 1ms7/void delay(int z)延時 z*lnischai k;while(z-) fbr(k=O ;k121 ;k+);延時 1 ms啟動走直線/void fiist_stiaightQ p20=l;p21=0;p22=l;pro_left=85; pio

18、_right=85; leftl=l; 嚴 2=0;right 1=1;nght2=0;delay(5);/void stiaight() /走直線函數(shù)p20=l;p21=0;p22=l;pro_left=80; pro_right=80; leftl=l;嚴 2=0;right 1=1; nght2=0;/void sd_straightQ 左岔走直線函數(shù) p20=l;p21=0;p22=l;straightQ;if(left_turn= 1 )/&(right_turn=O)&(nudf= 1) sdsUaightQ;elsestraight();/void wleft() 微調(diào)左轉(zhuǎn)函數(shù)

19、pio_left=0;pio_right=85;leftl=O;left2=0;light 1=1; iight2=0;/void wHght() /微調(diào)右轉(zhuǎn)函數(shù) pro_left=85;pro_right=0: leftl=l;left2=0;light 1=0;iight2=0;31/void ftJeftQ p20=0;p21=l;p22=l; pro_left=0;pro_right=80; leftl=O; 嚴 2=0;right 1=1; nght2=0; if(niidf=l) elsesdjeft(); void sd_left() p20=0;p21=l;p22=l;左轉(zhuǎn)90

20、由黑到白左輪不動右輪動左轉(zhuǎn)90由白到黑pro_left=0; pio_right=80;leftl=O;嚴 2=0;right 1=1;nght2=0; if(nudf=0)sd_left();else fiist_straightQ; sUaightQ;左輪不動右輪動/void ft_right() p20=l;p21=l;右轉(zhuǎn)90由黑到白p22=0;pro_left=85; pro_right=0: leftl=l; 嚴 2=0; right 1=0; nght2=0;if(nudf=l) ft.nghtO; elsesdnghtQ; void sdjightQ p20=l;p21=l;p

21、22=0;左輪動右輪不動右轉(zhuǎn)90由白到黑pro_left=80; pio_right=0: leftl=l;/左輪動嚴 2=0;right 1=0;nght2=0;if(nudf=0) sd_nght(); else fiist_straightQ; suaight();右輪不動7/void ft_ 180110 p20=0;p21=0;p22=0;左轉(zhuǎn)由黑到白pro_left=80; pio_right=80; leftl=0; left2=l; right 1=1; nght2=0;if(nudf=l) ft_180rt0; elseif(nudf=0) sd_180rt();左輪反轉(zhuǎn)右輪

22、正轉(zhuǎn)void sd_18Ort0 p20=0;p21=0;左轉(zhuǎn)由白到黑p22=0;左輪反轉(zhuǎn)右輪正轉(zhuǎn)pro_left=80; pio_right=80; leftl=0; left2=l; right 1=1;nght2=0;if(nudf=O)sd_180rt0;elsefiist_straightQ; suaight();/void stopQ 回到起點 while(l) pl7=l;pl6=l; p23=0;p24=0;p25=0;p26=0; pio_left=0;或是全等于0pio_right=0: leftl=l;left2=l;light 1=1;iight2=l;/或是全等于1v

23、oid endQpro_left=0; pro_right=0; leftl=0;嚴 2=0; right 1=0; nght2=0; delay(150);單程剎車/循跡 char flag=10;pl6=0;pl7=l;p23=0;p24=0;p25=l;p26=l;&(nght_niin=0)&(niidf=l)&(niidb=l)&(left=0)&(right=0)flag=7;直線elseif(left_tuin=0)&(right_tuin=0)&(nudf=0)&(midb=0)&(left=0)&(nght=0)flag=4; / memoiy(4); 死胡同else&(ri

24、ght_turn=0)&(midf=0)&(midb=l)flag=3;/memory(3);左拐else&(right_tuin=0)&(midf=0)&(midb=0)flag=13;誤認為左拐左拐elseif(left_turn=0)&(right_turn=l)&(midf=0)&(midb= 1)fhg= 1;/memory( 1);右拐elseif(left_tuin=0)&(right_tuin=l)&(midf=0)&(midb=0)flag=ll;誤認為右拐右拐elseif(left_turn= 1 )&(right_turn=0)&(nudf= 1 )&(midb= 1)f

25、lag=2;/memory(2);左岔else&(right_turn=0)&(nudf=l)&(midb=0)flag=12;誤認為左岔直走elseif(left_turn= 1 )&(right_turn= 1 )&(midf=0)&(midb= 1)flag=l;/memoiy(l); 丁字elseif(left_turn=l)&(right_turn=l)&(midf=O)&(midb=O)flag=ll;誤認為丁字右拐elseif(left_turn=O)&(right_turn=l)&(nudf=l)&(midb= 1)flag=l; /memory(l); 右岔elseif(le

26、ft_turn=O)&(right_turn=l)&(nudf=l)&(midb=O)flag=ll; /誤認為右岔右拐elseif(left_tuin= 1 )&(right_tuin= 1 )&(nndf= 1 )&(midb= 1) flag=l; /memoiy(l);十字else1 )&(right_tuin= 1 )&(nndf= 1 )&(midb=O) flag=ll; 誤判十字 右拐elseif(left_tuin=O)&(right_tuin=O)&(nndf=l)&(midb=O)&(left=O)&(nght=O )flag=O;/memorv(O); 終點elseif

27、(left_turn=O)&(right_turn=O)&(left=O)&(right= 1)flag=5;左偏(light)elseif(left_turn=O)&(right_turn=O)&(1 亡 ft= 1 )&(right=O)flag=6;右偏(left)elseflag=7;直走switch (flag)case 0: pl7=0;pl6=0;p23=0;p24=0;p25=0;p26=0;end();ft_180rt();memoiy(0); logo=l; break; /p!7=0:pl6=0;終點兩個燈全亮case 1: ft_nght();memoiy(1);log

28、o=0;break:右拐case 2: sd_stiaight();memory(2);logo=0;break:直走case 3:memory(3);logo=0;break:左拐case 4: ft_l 80rt();memoiy(4);logo=0;break;死胡同case 5: wrightQ;logo=0;break:左偏case 6: vleft();logo=0;break:右偏case 7: straight();logo=0;break:直走case 11: ft_right();logo=0;break:誤認為右case 12: stiaightQ;logo=0;brea

29、k:誤認為直case 13: ft_left();logo=0;break:誤認為左default: straight();logo=0;break;/記憶程序void memoiy(mt mflag) if(niflag=l)an+=l;if(an=4)an=O; n=n-2;n+;elseif(niflag=2)an+=2; n+;else if(niflag=3)an+=3; n+;elseif(niflag=4)an=O;11;else if(niflag=O)n; void comeback()/p23=I;p24=I;p25=0;p26=0;pl 7=0;pl6=l;if(left

30、_nirn=0)&(right_nirn=O)&(nudf=l)&(midb= 1 )&(left=O)&(nglit=0else1 )&(nudb= 1)i左邊有路iswitch(an)tcase 1: ft_left();case 2: sd_straight();case 3: ft_iightQ;logo=l;n-; logo=l;n-; logo=l;n;break; break; break;) straightO;logo=l;直線elseif(iighcturn= 1 )&(midb= 1)i右邊有路iswitch(an)tcase 1: ft_left();case 2: s

31、d_straight();case 3: ft_iightQ;logo=l;n-; logo=l;n-; logo=l;n;break; break; break;elseif(left_tuin=O)&(right_tuin=O)&(midf=O)&(midb=O)&(left=O)&(right=O )&(n=l) pl7=l;pl6=l;stop();回到起點兩個燈全滅elseif(left_turn=O)&(right_turn=O)&(left=O)&(right=l)wrightQ;logo= 1;左 偏(motoi_right)elseif(left_turn=O)&(right

32、_turn=O)&(left= 1 )&(right=O)wleft();logo= 1;右偏(motor_left)/* elsestraightO;logo=l;*/void uiitQTMOD=0x01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;中斷總開關ETO=1;開啟定時器0TRO=1;/定時器0啟動enl=l;使能1端eii2=l;使能2端void timeO(void)internipt 1i+;片;if(i=projeft) enl=l;else enl=0;if(i=100) enl=enl;i=0;if(j =pro_righ

33、t) eii2= 1;else eii2=0;if(j=100) en2=en2;j=0;TH0=(65536J 00)/256;TL0=(65536J00)%256;/void mam(void)nutQ;delay(l);while(l)if(logo=0)infiared();if(logo=l)comebackQ;void mtO(void)mtermpt 0附錄2液晶驅(qū)動源代碼程序#include#defiiie ucliar unsigned char#defiiie umt unsigned int sbitrs=PlAO;sbit lcden=PlAl;sbit p20=P2A0;sbit p21=P2Al;uchar countaium;chai nuao,shi,fen;uchar code table=n2010-6-22 ROBOT1; uchar code table 1=M0090:

溫馨提示

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

最新文檔

評論

0/150

提交評論