電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制.doc
《電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制.doc(20頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第五屆合肥學(xué)院電子設(shè)計(jì)大賽 設(shè)計(jì)報(bào)告 競賽題目:智能電動(dòng)車(I題) 參賽隊(duì)伍:電子信息與電氣工程系 隊(duì)員姓名:翁同玖 嚴(yán)旭東 湯川 隊(duì)員學(xué)號(hào): 0 7 0 5 0 7 6 0 1 8 0 7 0 5 0 7 6 0 0 5 0 7 0 5 0 7 6 0 1 7 【摘 要】: 本設(shè)計(jì)以單片機(jī)作為主控芯片,控制兩個(gè)步進(jìn)電機(jī)的正反轉(zhuǎn),實(shí)現(xiàn)了小車的不同方向運(yùn)動(dòng)。利用紅外對(duì)管做成的紅外傳感器來檢測(cè)路面信息,完成了小車的巡線功能。避障與尋光均采用紅外對(duì)管來實(shí)現(xiàn)。采用LCD1602液晶顯示屏來顯示時(shí)間與路程等信息。 【關(guān)鍵詞】: 巡線 避障 尋光 顯示 Abstract: This design uses single slice of machine as the lord controls chip and control two steps to enter electrical engineering of positive and negative turn, carried out different direction sport of small car.Make use of a red outside to examine a road noodles information to the red unauthorized biography machine that the tube makes into, completed the cruising of small car line function.Avoid Zhang with look for the light all adopt red outside to tube to carry out.Adopt LCD1602 the LCDs show to hold to show informations, such as time and road...etc.. Keyword: Search online Avoid object Search light Show Information 目 錄 1.總體概括 1 2.方案的論證與比較 1 2.1 主控芯片的選擇 1 2.2 智能巡線設(shè)備的選擇 1 2.3 顯示設(shè)備的選擇 2 2.4 聲光信號(hào)設(shè)備的選擇 2 3 電路設(shè)計(jì) 3 3.1單元電路設(shè)計(jì) 3 3.1.1 尋光電路的設(shè)計(jì) 3 3.1.2 紅外檢測(cè)電路設(shè)計(jì) 3 3.1.3 金屬探測(cè)電路的設(shè)計(jì) 4 3.2 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì) 5 4.軟件設(shè)計(jì) 7 4.1主程序流程圖 7 4.2程序清單 8 5.調(diào)試結(jié)果 8 6總結(jié)與體會(huì) 8 7.參考文獻(xiàn): 8 1.總體概括 具體的系統(tǒng)方框圖如下所示: 圖1 系統(tǒng)框圖 2.方案的論證與比較 2.1 主控芯片的選擇 方案一:采用單個(gè)單片機(jī)作為主控芯片。由于AT89S52具有32個(gè)I/O口,能滿足小車各部分對(duì)I/O口的需求,另外只用一個(gè)單片機(jī)可以很好的控制小車。 方案二:采用雙單片機(jī)作為主控芯片。利用兩塊AT89S52分別對(duì)小車的各部分進(jìn)行監(jiān)測(cè)和控制,雖然減輕了單個(gè)單片機(jī)的負(fù)擔(dān),提高了系統(tǒng)的工作效率,但是存在很多的I/O的資源浪費(fèi),并且兩個(gè)單片機(jī)不容易控制,所以不采用該方案。使用方案一 2.2 智能巡線設(shè)備的選擇 方案一:采用普通發(fā)光二極管及光敏電阻組成的發(fā)射接收方案。該方案在實(shí)際使用時(shí),容易受到外界光源的干擾,有時(shí)甚至檢測(cè)不到。主要是因?yàn)榭梢姽獾姆瓷湫Ч乇淼钠教钩潭?、地表材料的反射情況都有直接關(guān)系。雖然可采取超高亮度發(fā)光二極管降低一定的干擾,但這又增加額外的功率損耗。 方案二:采用反射式紅外對(duì)管,雖然易受環(huán)境的影響,識(shí)別的可靠程度不高,但是由于其結(jié)構(gòu)簡單,體積小巧,易于安裝,完全能用多個(gè)該傳感器構(gòu)成高精度的控制輻射網(wǎng)絡(luò)提高識(shí)別的可靠性、準(zhǔn)確性,考慮到實(shí)際應(yīng)用環(huán)境,因此我們采用方案二。 2.3 顯示設(shè)備的選擇 方案一:采用傳統(tǒng)數(shù)碼管作為顯示設(shè)備。傳統(tǒng)數(shù)碼管具有低能耗、低損耗、低壓、長壽命、耐老化、防曬、防潮、防火、防高(低)溫的特點(diǎn);對(duì)外界環(huán)境要求低,易于維護(hù);同時(shí)其精度比較高,精確可靠,操作簡單,程序編寫容易,資源占用少。本設(shè)計(jì)要求顯示的內(nèi)容較多,如果利用傳統(tǒng)數(shù)碼管來顯示,則需要好幾塊數(shù)碼管,這樣占用單片機(jī)很多的I/O口,并且不夠美觀,也不易區(qū)分各塊數(shù)碼管顯示的是什么內(nèi)容。所以,該方案不被采用。 方案二:采用液晶顯示屏(LCD)顯示時(shí)間和路程。液晶顯示器具有功耗低、無輻射危險(xiǎn)、平面直角顯示以及影像穩(wěn)定等,可視面積大,畫面效果好,也可以顯示漢字,分辨率高,抗干擾能力強(qiáng),顯示內(nèi)容多等特點(diǎn)。因此,只要用一塊液晶顯示器就可以顯示設(shè)計(jì)要求的全部內(nèi)容。此外,液晶顯示器與單片機(jī)連接電路較簡單,且占用的I/O口較少?;谝陨戏治?,我們采用該方案,用LCD1602進(jìn)行顯示。 2.4 聲光信號(hào)設(shè)備的選擇 本設(shè)計(jì)要求小車在直道上檢測(cè)到金屬時(shí)發(fā)出聲光指示信息,在發(fā)聲方面,我們使用蜂鳴器代替揚(yáng)聲器,因?yàn)閾P(yáng)聲器功耗比較大,體積也較大,而本設(shè)計(jì)對(duì)聲音信號(hào)要求不高,所以我們使用功耗與體積都較小的蜂鳴器。在發(fā)光方面,我們選擇普通的發(fā)光二極管。 3 電路設(shè)計(jì) 3.1單元電路設(shè)計(jì) 3.1.1 尋光電路的設(shè)計(jì) 該單元電路主要是實(shí)現(xiàn)小車尋光入庫,考慮到光源是放在車庫里,而且光源離地面有一定的高度,為了使小車能夠精確駛?cè)霂熘?,我們采用三個(gè)光敏傳感器。用金屬支架將三個(gè)光敏傳感器固定在車的中間部分,并使光敏傳感器盡可能與光源保持水平,這三個(gè)傳感器組成一個(gè)120度的扇形,相鄰兩個(gè)之間的角度為60度。其中一路如圖所示: 圖2 尋光電路圖 其他兩個(gè)電路與此電路相同。接收管未接收到光源發(fā)出的紅外光時(shí),接收管不導(dǎo)通,正向輸入的電壓大于基準(zhǔn)電壓,通過電壓比較器進(jìn)行比較輸出高電平,接收管接收到光源發(fā)出的紅外光后,接收管導(dǎo)通,正向輸入的電壓將會(huì)小于基準(zhǔn)電壓,通過電壓比較器進(jìn)行比較輸出低電平。單片機(jī)可直接對(duì)接收到的信號(hào)進(jìn)行判斷是否檢測(cè)到光源,并通過對(duì)檢測(cè)到的信號(hào)進(jìn)行處理來決定小車的運(yùn)動(dòng)方向。 3.1.2 紅外檢測(cè)電路設(shè)計(jì) 該設(shè)計(jì)采用紅外對(duì)管構(gòu)成的紅外傳感器,具體電路如圖所示: 圖3 紅外對(duì)管電路 我們?cè)谛≤嚨那岸说撞堪惭b三對(duì)相同的紅外對(duì)管,用來檢測(cè)地面信號(hào),每個(gè)紅外對(duì)管都有一個(gè)發(fā)射管和一個(gè)接收管,發(fā)射管發(fā)射紅外線到地面,如果遇到黑線則光信號(hào)會(huì)被吸收,否則會(huì)被反射回來。檢測(cè)到黑線接收管不導(dǎo)通,輸出高電平,否則輸出低電平。單片機(jī)根據(jù)接收到的高低電平來決定小車如何行駛。另外在小車的正前端安裝一對(duì)紅外對(duì)管,用來檢測(cè)前方是否有障礙物。探測(cè)原理與檢測(cè)地面的原理相同,當(dāng)小車前端的紅外對(duì)管發(fā)射出的紅外光線被反射回來時(shí),說明前方有障礙物,此時(shí)小車會(huì)進(jìn)行相應(yīng)的反應(yīng)。 3.1.3 金屬探測(cè)電路的設(shè)計(jì) 此部分電路的功能是檢測(cè)軌道上的鋁錢幣,在此我們使用的金屬傳感器是電感接近式開關(guān)。該傳感器由LC高頻振蕩器和放大處理電路組成,利用金屬物體在接近這個(gè)能產(chǎn)生電磁場的振蕩感應(yīng)頭時(shí),使物體內(nèi)部產(chǎn)生渦流。這個(gè)渦流反作用于接近開關(guān),使接近開關(guān)振蕩能力衰減,內(nèi)部電路的參數(shù)發(fā)生變化,由此識(shí)別出有無金屬物體接近,進(jìn)而控制開關(guān)的通或斷。 其工作原理圖如下所示: 圖4 接近式開關(guān)原理圖 當(dāng)小車遇到鋁錢幣時(shí),控制開關(guān)將會(huì)發(fā)生變化,輸出電壓為零伏,否則輸出的是1.12V。由于兩者都屬于低電平,在此我們?cè)俅问褂秒妷罕容^器,使兩種不同情況下,分別輸出高低電平,并將其傳給單片機(jī)。單片機(jī)根據(jù)接收到的信號(hào)判斷是否有鋁錢幣。 3.2 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì) 本設(shè)計(jì)使用的步進(jìn)電機(jī)是四項(xiàng)六線式,用L297和L298N驅(qū)動(dòng)芯片驅(qū)動(dòng),其中一個(gè)的驅(qū)動(dòng)電路如圖所示(另外一個(gè)于此相同): 圖5 .步進(jìn)電機(jī)驅(qū)動(dòng)電路 單片機(jī)AT89S52通過I/O口向L297的17和18腳發(fā)送驅(qū)動(dòng)控制信號(hào),從而控制步進(jìn)電機(jī)的速度及正反轉(zhuǎn)。 4.軟件設(shè)計(jì) 4.1主程序流程圖 4.2程序清單 #include "xiaoche.h" #include "lcd1602.h" //unsigned int s=10; //unsigned int s2,i2=1,j2=1,k2=1; unsigned int jj=0; unsigned int kk=0; unsigned int d[5]={0}; void Delay(unsigned int t) //延時(shí)1 { while(t--); } void go(void) //直行 { cwright=1; cwleft=1; m=2; step_mode=0; } void back() //后直行 { m=2; cwright=0; cwleft=0; step_mode=0; } void tleft() //左拐 { //cwleft=0; //cwright=1; m=0; step_mode=0; } void tleft_1(void) { m=4; cwleft=0; cwright=1; step_mode=0; } void tright() //右拐 { //cwleft=1; //cwright=0; m=1; step_mode=0; } void tright_1(void) { m=5; cwleft=1; cwright=0; step_mode=0; } void searchline (void) //巡線+金屬探測(cè) { unsigned int s=10; unsigned int i,j,k,z; kk=1; while(1) { i=s_L; j=s_M; k=s_R; z=js; s=z*8+i*4+j*2+k; switch(s) { case 7:shengguang();break; case 5:shengguang();break; case 2:go();shengguang();break; case 4:tright();shengguang();break; case 6:tright();shengguang();break; case 1:tleft();shengguang();break; case 3:tleft(); shengguang();break; //case 0:go();shengguang();break; case 15: case 13: case 10:go();break; case 12:tright();break; case 14:tright();break; case 9:tleft();break; case 11:tleft(); break; case 8:go();break; } if(s==0){Stop_0(5); break; } // go();shengguang(); // if(s==8){break;} Display(); //if(ii==1){a=d[0];} //if(ii==2){d2=a;} //if(ii==3){d3=a;} //if(ii==4){ //{Stop_0(10);} //Display(); //stop(); shengguang(); //Delay1ms(1000); //break; } } void searchlight () { unsigned int s1,i1=1,j1=1,k1=1; unsigned int s2,i2=0,j2=0,k2=0; while(1) { i1=left2 ; j1=forest3; k1=right1; s1=i1*4+j1*2+k1; i2=s_L; j2=s_M; k2=s_R; s2=4*i2+2*j2+k2; switch(s1) { case 7:go();break; case 5:go();break; case 2: case 4:tleft();break; case 6:tleft();break; case 1:tright();break; case 3:tright(); break; //case 0:go();break; }Display(); if(s1==0){break;} //go(); if(s2==7){break;} } } //金屬探測(cè) void shengguang() { unsigned int i=0; ii++; d[ii]=a; light=1; alrm=1; for(i=0;i<5;i++) { alrm=!alrm; light=!light; Delay(10000); } alrm=1; light=1; } void init() { TMOD=0x11;//T0,T1都使用16位定時(shí)器,不受外部外部引腳電平控制 TH0=0xfc; TL0=0x17; TH1=0x3c; TL1=0xb0;//定時(shí)50ms EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void time() interrupt 3 using 1 { TH1=0x3c; TL1=0xb0; TCount++; if(TCount==20) { TCount=0; second++; if(second==90) { stop(); } } } void Delay1ms(Word n) //延時(shí)2 { Word a; for(;n>0;n--) for(a=0;a<120;a++) ; } void Stop_0(Word n) //停車1 { while(n--) { Display(); stop(); Delay1ms(500); alrm=!alrm; light=!light; Delay(1000); } alrm=1; light=1; } void stop(void) //停車2 { m=3; step_mode=0; } void step() interrupt 1 { if(!step_mode){step_time=3000;step_mode=1;} if(jj)step_time=1800; if(kk)step_time=1500; TH0=(Byte)((65535-step_time)/256); TL0=(Byte)((65535-step_time)%256); if(m==0){moto_clkl=~moto_clkl;c++;} if(m==1){moto_clkr=~moto_clkr;c++;} if(m==2){moto_clkl=~moto_clkl;moto_clkr=~moto_clkr;c++;} if(m==3); if(m==4){moto_clkl=~moto_clkl;moto_clkr=~moto_clkr;c++;} if(m==5){moto_clkl=~moto_clkl;moto_clkr=~moto_clkr;c++;} //if(step_time>1000)step_time-=200; //c++;b++; if(c==37){a+=1;c=0;} } void Display1() { Lcd_Init(); Lcd_DisplayString(0,0,"Time:"); Lcd_DisplayOneChar(7,0,s); Lcd_DisplayString(9,0,"Num:"); Lcd_DisplayString(0,1,"D1 :"); Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30); Lcd_DisplayOneChar(6,0,second%10+0x30); Lcd_DisplayOneChar(5,0,second/10+0x30); Lcd_DisplayOneChar(4,1,d[1]/100+0x30); Lcd_DisplayOneChar(5,1,d[1]%100/10+0x30); Lcd_DisplayOneChar(6,1,d[1]%10+0x30); } void Display2() { Lcd_Init(); Lcd_DisplayString(0,0,"Time:"); Lcd_DisplayOneChar(7,0,s); Lcd_DisplayString(9,0,"Num:"); Lcd_DisplayString(0,1,"D2 :"); Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30); Lcd_DisplayOneChar(6,0,second%10+0x30); Lcd_DisplayOneChar(5,0,second/10+0x30); Lcd_DisplayOneChar(4,1,d[2]/100+0x30); Lcd_DisplayOneChar(5,1,d[2]%100/10+0x30); Lcd_DisplayOneChar(6,1,d[2]%10+0x30); } void Display3() { Lcd_Init(); Lcd_DisplayString(0,0,"Time:"); Lcd_DisplayOneChar(7,0,s); Lcd_DisplayString(9,0,"Num:"); Lcd_DisplayString(0,1,"D3 :"); Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30); Lcd_DisplayOneChar(6,0,second%10+0x30); Lcd_DisplayOneChar(5,0,second/10+0x30); Lcd_DisplayOneChar(4,1,d[3]/100+0x30); Lcd_DisplayOneChar(5,1,d[3]%100/10+0x30); Lcd_DisplayOneChar(6,1,d[3]%10+0x30); } void Display4() { Lcd_Init(); Lcd_DisplayString(0,0," Over! Thank you!"); } void Display() { //init(); Lcd_DisplayOneChar(13,0,ii+0x30); Lcd_DisplayOneChar(6,0,second%10+0x30); Lcd_DisplayOneChar(5,0,second/10+0x30); Lcd_DisplayOneChar(4,1,a/100+0x30); Lcd_DisplayOneChar(5,1,a%100/10+0x30); Lcd_DisplayOneChar(6,1,a%10+0x30); } main() {// unsigned int s2,i2=1,j2=1,k2=1; //step_intset(); Lcd_Init(); Lcd_DisplayString(0,0,"Time:"); Lcd_DisplayOneChar(7,0,s); Lcd_DisplayString(9,0,"Num:"); Lcd_DisplayString(0,1,"Dis:"); Lcd_DisplayString(7,1,"cm"); //unsigned int s2=1,i2=1,j2=1,k2=1; init(); searchline(); go();Display(); kk=0; while(forest); jj=1; stop();Display(); Delay1ms(500); back();Display(); Delay1ms(60); tleft_1();Display(); Delay1ms(390); stop();Display(); Delay1ms(200); go();Display(); Delay1ms(2000); tright_1();Display(); Delay1ms(370); go();Display(); Delay1ms(1000); go();Display(); //Delay1ms(2000); // Delay1ms(1500); while(!forest); go();Display(); while(forest); //stop();Display(); //Delay1ms(300); tright_1();Display(); Delay1ms(360); jj=0; //go();Display(); //Delay1ms(100); go();Display(); while(right); jj=1; stop();Delay1ms(500); go();Display(); Delay1ms(900); tleft_1();Display(); Delay1ms(390); go();Display(); Delay1ms(1000); //tleft_1();Display(); //Delay1ms(340); //go();Display(); // Delay1ms(300); searchlight (); // go(); // i2=s_L; // j2=s_M; // k2=s_R; // s2=4*i2+2*j2+k2; // while (s2==7); // jj=0; // stop();Display(); // Delay1ms(1000); //go();Display(); //if(s2==7) //{ stop();Display(); Delay1ms(100); back(); Display(); Delay1ms(1000); tleft_1();Display(); Delay1ms(750); back(); Display(); Delay1ms(2200); //} //go();Display(); //Delay1ms(200); //stop();Display(); EA=0; Delay1ms(1000); Display1(); Delay1ms(3000); Display2(); Delay1ms(3000); Display3(); Delay1ms(3000); Display4(); //Delay1ms(3000); while(1); } 5.調(diào)試結(jié)果 1)小車?yán)眉t外對(duì)管能夠成功進(jìn)行巡線、避障。 ①:小車的電機(jī)驅(qū)動(dòng)脈沖在 1500 左右,小車可以在躲避障礙物時(shí)候,準(zhǔn)確的轉(zhuǎn)外實(shí)現(xiàn)延時(shí)并且尋光功能。 ②:小車的電機(jī)驅(qū)動(dòng)脈沖在 1500左右,是小車的性能達(dá)到最優(yōu),正在巡線轉(zhuǎn)彎的車體抖動(dòng)達(dá)到最小值。 ③:小車的避障的紅外對(duì)管與地面的距離在4cm以及角度在85左右,能夠準(zhǔn)確實(shí)現(xiàn)避障,且車體轉(zhuǎn)彎達(dá)到90 2)小車?yán)眉t外對(duì)管尋光進(jìn)入車庫。 ①:當(dāng)小車駛出障礙區(qū),加以脈沖在1800左右,可以使其在尋光過程中,避免車身旋轉(zhuǎn)角度過大。 ②:小車的尋光的紅外對(duì)管(車身左側(cè))與地面的距離在6cm以及角度在95左右,能夠準(zhǔn)確實(shí)現(xiàn)尋光,和車身180度旋轉(zhuǎn),倒入車庫 3)小車的顯示模塊。 ①:小車的總路程、總時(shí)間、被檢測(cè)的金屬數(shù)目以及被檢測(cè)金屬與其實(shí)位置的距離,適時(shí)顯示小車行駛的路程和時(shí)間 6總結(jié)與體會(huì) 經(jīng)過近四周左右的時(shí)間,我們終于完成了小車的制作和程序的編寫。制作過程中,我們克服了許多困難,通過參考前人的經(jīng)驗(yàn),完成了小車主體的器件分布規(guī)劃和焊接。期間出現(xiàn)了很多錯(cuò)誤,但都被及時(shí)發(fā)現(xiàn)并糾正了。從中我們體會(huì)到前期規(guī)劃的重要性,在焊之前考慮一下器件的焊接順序和可能出現(xiàn)的問題,這樣在焊的時(shí)候才會(huì)比較流暢,布線也比較清楚,查錯(cuò)也很容易。 編程是整個(gè)小車制作的重點(diǎn),我們通過對(duì)小車電路、比賽規(guī)則、外部環(huán)境等情況的研究,編寫出了相應(yīng)的程序,經(jīng)過幾次調(diào)試最終完成了比賽用程序。通過編寫程序,我們感到AT89S52的功能的確很強(qiáng)大。 對(duì)于這次比賽,很感謝學(xué)校和系里領(lǐng)導(dǎo)給了我們參與這次比賽的機(jī)會(huì),也很感謝實(shí)驗(yàn)室的學(xué)長和指導(dǎo)老師給予我們的幫助,通過實(shí)際操作加深了我們對(duì)理論知識(shí)的理解和運(yùn)用能力,相信我們的努力能使我們?nèi)〉煤玫某煽儭? 7.參考文獻(xiàn): 【1】《51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講》 戴佳 戴衛(wèi)恒 編 電子工業(yè)出版社 【2】《全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)作品匯編》 全國大學(xué)生電子設(shè)計(jì)競賽組委會(huì) 編 北京理工大學(xué)出版社 【3】《全國大學(xué)生電子設(shè)計(jì)競賽制作實(shí)訓(xùn)》 黃智偉 編 北京航空航天大學(xué)出版社 【4】《全國大學(xué)生電子設(shè)計(jì)競賽系統(tǒng)設(shè)計(jì)》 黃智偉 編 北京航空航天大學(xué)出版社 【5】《常用電子元器件設(shè)別/檢測(cè)/選用一讀通》趙廣林 編 電子工業(yè)出版社 【6】《電子技術(shù)基礎(chǔ) 模擬部分(第五版)》康華光 編 高等教育出版社- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 電子設(shè)計(jì) 大賽 智能 小車 步進(jìn) 電機(jī) 控制
鏈接地址:http://m.appdesigncorp.com/p-7851419.html