版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
--可編輯可編輯-可編輯課程結課總結報告課程名稱:機器人的制作實驗一基于arduino控制器的輪式機器人循跡避障功能設計實驗二應變式傳感器電子秤實驗實驗三基于C51單片機控制器的輪式機器人電機控制系統(tǒng)實驗四基于ARM控制器的博創(chuàng)平臺輪式機器人循跡避障功能實現實驗五攝像頭實現輪式機器人循跡功能的應用實驗六應用卓越聯盟實驗室設備進行設計和實現作品說明指導教師許曉飛系別機電工程學院專業(yè)機械電子工程學生姓名鄧銀濤班級/學號機電1401/2014010339成績
實驗一基于ardunio控制器的輪式機器人循跡避障功能設計實驗目的1.了解ardunio平臺,并熟練使用此軟件完成小車的各種活動2.了解HC-SR04超聲波測距模塊的原理,并且熟練使用此模塊作為小車的傳感器進行工作3.了解并且熟悉紅外線傳感器循跡原理實驗器材:Adrunio軟件,超聲波傳感器,紅外線傳感器,導線,底板,電機,電池,單片機等實驗內容:1.將硬件組裝成小車,即輪式機器人2.利用ardunio使小車完成循跡功能步驟:(1)寫好后綴為.txt的c語言循跡文件(2)將文件導入單片機中(3)根據具體路況,運行并且進行調試紅外線傳感器的靈敏程度3.利用ardunio使小車完成避障功能步驟:(1)寫好后綴為.txt的c語言避障文件(2)將文件導入單片機中(3)運行并且進行調試小車躲避障礙物的距離實驗程序1.循跡程序:小車循跡程序思路圖#include<Servo.h>intLeft_motor_back=8;//左電機后退(IN1)intLeft_motor_go=9;//左電機前進(IN2)intRight_motor_go=10;//右電機前進(IN3)intRight_motor_back=11;//右電機后退(IN4)intkey=7;//定義按鍵數字7接口constintSensorRight=3; //右循跡紅外傳感器(P3.2OUT1)constintSensorLeft=4; //左循跡紅外傳感器(P3.3OUT2)intSL;//左循跡紅外傳感器狀態(tài)intSR;//右循跡紅外傳感器狀態(tài)voidsetup(){//初始化電機驅動IO為輸出方式pinMode(Left_motor_go,OUTPUT);//PIN8(PWM)pinMode(Left_motor_back,OUTPUT);//PIN9(PWM)pinMode(Right_motor_go,OUTPUT);//PIN10(PWM)pinMode(Right_motor_back,OUTPUT);//PIN11(PWM)pinMode(key,INPUT);//定義按鍵接口為輸入接口pinMode(SensorRight,INPUT);//定義右循跡紅外傳感器為輸入pinMode(SensorLeft,INPUT);//定義左循跡紅外傳感器為輸入}voidrun(inttime)//前進voidrun(){digitalWrite(Right_motor_go,HIGH);//右電機前進digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,255);//PWM比例0~255調速analogWrite(Right_motor_back,0);digitalWrite(Left_motor_go,HIGH);//左電機前進digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,255);//PWM比例0~255調速analogWrite(Left_motor_back,0);//delay(time*50);//執(zhí)行時間,可以調整}//voidleft(inttime)//左轉(左輪不動,右輪前進)voidleft(){digitalWrite(Right_motor_go,HIGH); //右電機前進digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,200);analogWrite(Right_motor_back,0);//PWM比例0~255調速digitalWrite(Left_motor_go,LOW);//左輪后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,0);analogWrite(Left_motor_back,100);//PWM比例0~255調速//delay(time*50); //執(zhí)行時間,可以調整}voidright(inttime)//右轉(右輪不動,左輪前進)voidright(){digitalWrite(Right_motor_go,LOW);//右電機后退digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,0);analogWrite(Right_motor_back,100);//PWM比例0~255調速digitalWrite}2.避障程序:charL1=9;//zhengcharL2=8;charR1=10;//zhengcharR2=11;intechopin=13;inttrigpin=12;voidsetup()//初始化動作的區(qū)塊,定義串行端口和腳位{pinMode(echopin,INPUT);//pwmpinMode(trigpin,OUTPUT);}voidloop()//版子重復執(zhí)行動作的區(qū)塊{intcurrDist;longrandnumber;currDist=MeasureDistance();//讀取前端距離delay(5);if(currDist>10){straight();}if(currDist<=10){randomSeed(analogRead(0));randnumber=random(0,10);if(randnumber>5){back();delay(1000);turnright();delay(800);}else{back();delay(1000);turnleft();delay(800);}}}intMeasureDistance(){digitalWrite(trigpin,LOW);delay(2);digitalWrite(trigpin,HIGH);delay(10);digitalWrite(trigpin,LOW);intdistance=pulseIn(echopin,HIGH);distance=distance/58.0;//計算距離344*100/1000000*pulseIn()/2delay(60);//循環(huán)間隔60uSreturn(distance);}voidstraight(){analogWrite(L1,100);//2550zhengzhuananalogWrite(L2,0);analogWrite(R1,100);//2550zhengzhuananalogWrite(R2,0);}voidturnright(){analogWrite(L1,100);//2550zhengzhuananalogWrite(L2,0);analogWrite(R1,0);//2550zhengzhuananalogWrite(R2,0);}voidturnleft(){analogWrite(L1,0);//2550zhengzhuananalogWrite(L2,0);analogWrite(R1,100);//2550zhengzhuananalogWrite(R2,0);}voidback(){analogWrite(L1,0);//2550zhengzhuananalogWrite(L2,100);analogWrite(R1,0);//2550zhengzhuananalogWrite(R2,100);}實驗過程中遇到的問題及解決辦法循跡中:1.電機速度差異控制:發(fā)現左右輪寫入同一數值時,小車行進方向偏離直線,——對左右兩輪寫入不同數值,多次測試,指導左右輪速度相等。2.電機驅動器給arduino供電出現問題,改用充電寶給arduino供電,直接從gnd和5v輸出腳給電機驅動器供電3.一個電機有兩根信號輸入線,一根控制正轉,一根控制反轉。兩個輪子一起測轉地眼暈,容易出錯。避障中:1.超聲裝置避障距離的確定——將HC-SR04超聲波避障程序中數值改短,提高避障靈敏性2.硬件的安裝:超聲裝置無法固定——曾嘗試過用膠帶,廢舊車輪等但不理想,并未得到很好的解決實驗結果小車可以成功的進行循跡和避障實驗二電子秤實驗一單臂實驗數據處理源碼:axis([0200050])coords=[020406080100120140160180200;02.85.17.59.912.414.817.219.622.024.6]gridholdplot(coords(1,:),coords(2,:),'*')x=coords(1,:)y=coords(2,:)'b=size(coords)c=ones(1,b(2))MT=[c;x]M=MT'f=inv(MT*M)*MT*y['y=',num2str(f(2)),'x+',num2str(f(1))]x=-max(x):max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y));fprintf('電阻傳感器的系數靈敏度S=%5.3f%%\n',abs(f(2)))fprintf('非線性誤差f=%5.3f%%\n',mistake)plot(x,y,'--')xlabel('x/g')ylabel('V/mv')title('單臂實驗')legend(['y=',num2str(f(2)),'x+',num2str(f(1))])Matlab處理結果電阻傳感器的系數靈敏度S=0.122%非線性誤差f=3.607%半橋實驗源碼:axis([0200050])coords=[020406080100120140160180200;04.08.813.718.623.518.433.238.243.147.9]gridholdplot(coords(1,:),coords(2,:),'*')x=coords(1,:)y=coords(2,:)'b=size(coords)c=ones(1,b(2))MT=[c;x]M=MT'f=inv(MT*M)*MT*y['y=',num2str(f(2)),'x+',num2str(f(1))]x=-max(x):max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y));fprintf('電阻傳感器的系數靈敏度S=%5.3f%%\n',abs(f(2)))fprintf('非線性誤差f=%5.3f%%\n',mistake)plot(x,y,'--')xlabel('x/g')ylabel('V/mv')title('半橋實驗')legend(['y=',num2str(f(2)),'x+',num2str(f(1))])Matlab處理結果電阻傳感器的系數靈敏度S=0.238%非線性誤差f=1.615%全橋實驗源碼:axis([02000100])coords=[020406080100120140160180200;07.415.323.130.938.846.754.662.670.578.4]gridholdplot(coords(1,:),coords(2,:),'*')x=coords(1,:)y=coords(2,:)'b=size(coords)c=ones(1,b(2))MT=[c;x]M=MT'f=inv(MT*M)*MT*y['y=',num2str(f(2)),'x+',num2str(f(1))]x=-max(x):max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y));fprintf('電阻傳感器的系數靈敏度S=%5.3f%%\n',abs(f(2)))fprintf('非線性誤差f=%5.3f%%\n',mistake)plot(x,y,'--')xlabel('x/g')ylabel('V/mv')title('全橋實驗')legend(['y=',num2str(f(2)),'x+',num2str(f(1))])Matlab數據處理電阻傳感器的系數靈敏度S=0.393%非線性誤差f=0.774%實驗三基于C51單片機控制器的輪式機器人電機控制系統(tǒng)實驗目的了解PWM波控制電機的原理?;贑51單片機利用PWM波控制電機。實驗器材C51單片機、L298N驅動芯片、直流電機、杜邦線、普通導線、keil軟件、STC下載器、示波器實驗內容用keil新建一個“.c”文件,編寫程序并對程序進行調試。將程序燒錄進單片機內。進行硬件連接C51引腳如圖所示:L298N引腳如圖所示:用單片通過P1.0、P1.1和L298的第一對輸入端IN1和IN2相連,然后又L298的第一對輸出端OUT1和OUT2與直流電機相連;單片通過P1.5、P1.6和L298的第二對輸入端IN3和IN4相連,然后又L298的第二對輸出端OUT3和OUT4與直流電機相連。給單片機上電。用示波器觀察波形。程序內容1、PWM波控制電機啟動#include"reg51.h"#include"intrins.h"#defineFOSC11059200LtypedefunsignedcharBYTE;typedefunsignedintWORD;voiddelay_ms(intx);/*DeclareSFRassociatedwiththePCA*/sfrCCON=0xD8;//PCAcontrolregistersbitCCF0=CCON^0;//PCAmodule-0interruptflagsbitCCF1=CCON^1;//PCAmodule-1interruptflagsbitCR=CCON^6;//PCAtimerruncontrolbitsbitCF=CCON^7;//PCAtimeroverflowflagsfrCMOD=0xD9;//PCAmoderegistersfrCL=0xE9;//PCAbasetimerLOWsfrCH=0xF9;//PCAbasetimerHIGHsfrCCAPM0=0xDA;//PCAmodule-0moderegistersfrCCAP0L=0xEA;//PCAmodule-0captureregisterLOWsfrCCAP0H=0xFA;//PCAmodule-0captureregisterHIGHsfrCCAPM1=0xDB;//PCAmodule-1moderegistersfrCCAP1L=0xEB;//PCAmodule-1captureregisterLOWsfrCCAP1H=0xFB;//PCAmodule-1captureregisterHIGHsfrPCAPWM0=0xf2;sfrPCAPWM1=0xf3;sbitIN1=P1^0; sbitIN2=P1^1;sbitIN3=P1^5; sbitIN4=P1^6;voidmain(){CCON=0;//InitialPCAcontrolreCL=0;//ResetPCAbasetimerCH=0;CMOD=0x02;//SetPCAtimerclocksourceasFosc/2CR=1;//PCAtimerstartrunwhile(1) { inti; IN1=0;IN2=1;IN3=0;IN4=1; for(i=100;i>=0;i--) { CCAP0H=CCAP0L=i;//PWM0portoutput50%dutycyclesquarewave CCAPM0=0x42;//PCAmodule-0workin8-bitPWMmodeandnoPCAinterrupt CCAP1H=CCAP1L=i; CCAPM1=0x42;delay_ms(100); } for(i=0;i<=100;i++) { CCAP0H=CCAP0L=i;//PWM0portoutput50%dutycyclesquarewave CCAPM0=0x42;//PCAmodule-0workin8-bitPWMmodeandnoPCAinterrupt CCAP1H=CCAP1L=i; CCAPM1=0x42;delay_ms(100); } IN1=1;IN2=0;IN3=1;IN4=0; for(i=100;i>=0;i--) { CCAP0H=CCAP0L=i;//PWM0portoutput50%dutycyclesquarewave CCAPM0=0x42;//PCAmodule-0workin8-bitPWMmodeandnoPCAinterrupt CCAP1H=CCAP1L=i; CCAPM1=0x42;delay_ms(100); } for(i=0;i<=100;i++) { CCAP0H=CCAP0L=i;//PWM0portoutput50%dutycyclesquarewave CCAPM0=0x42;//PCAmodule-0workin8-bitPWMmodeandnoPCAinterrupt CCAP1H=CCAP1L=i; CCAPM1=0x42;delay_ms(100); }}}voiddelay_ms(intx){ inty; for(;x>0;x--) for(y=0;y<1000;y++);}控制方向#include"reg51.h"#include"intrins.h"#defineFOSC11059200LtypedefunsignedcharBYTE;typedefunsignedintWORD;sbitIN1=P1^0;sbitIN2=P1^1;voidmain(){IN1=0;IN2=1;}PWM波對電機調速#include"reg51.h"#include"intrins.h"#defineFOSC11059200LtypedefunsignedcharBYTE;typedefunsignedintWORD;/*DeclareSFRassociatedwiththePCA*/sfrCCON=0xD8;//PCAcontrolregistersbitCCF0=CCON^0;//PCAmodule-0interruptflagsbitCCF1=CCON^1;//PCAmodule-1interruptflagsbitCR=CCON^6;//PCAtimerruncontrolbitsbitCF=CCON^7;//PCAtimeroverflowflagsfrCMOD=0xD9;//PCAmoderegistersfrCL=0xE9;//PCAbasetimerLOWsfrCH=0xF9;//PCAbasetimerHIGHsfrCCAPM0=0xDA;//PCAmodule-0moderegistersfrCCAP0L=0xEA;//PCAmodule-0captureregisterLOWsfrCCAP0H=0xFA;//PCAmodule-0captureregisterHIGHsfrCCAPM1=0xDB;//PCAmodule-1moderegistersfrCCAP1L=0xEB;//PCAmodule-1captureregisterLOWsfrCCAP1H=0xFB;//PCAmodule-1captureregisterHIGHsfrPCAPWM0=0xf2;sfrPCAPWM1=0xf3;voidmain(){CCON=0;//InitialPCAcontrolregisterCL=0;//ResetPCAbasetimerCH=0;CMOD=0x02;//SetPCAtimerclocksourceasFosc/2CCAP0H=CCAP0L=0x80;//PWM0portoutput50%dutycyclesquarewaveCCAPM0=0x42;//PCAmodule-0workin8-bitPWMmodeandnoPCAinterruptCCAP1H=CCAP1L=0xff;//PWM1portoutput0%dutycyclesquarewavePCAPWM1=0x03;CCAPM1=0x42;//PCAmodule-1workin8-bitPWMmodeandnoPCAinterruptCR=1;//PCAtimerstartrunwhile(1);}五、實驗心得本次實驗中我學會用軟件來延時實現PWM的輸出,從而實現對電機的控制。實驗四基于ARM控制的博創(chuàng)平臺輪式機器人循跡蔽障功能實驗目的了解NorthStar平臺,并熟練使用此軟件完成小車的各種活動了解RobotServoTerminal機器人舵機調試系統(tǒng)并掌握使用了解并且熟悉灰度傳感器循跡原理實驗材料ARM控制器灰度傳感器紅外探測器舵機電機等實驗內容小車硬件的組裝蔽障功能的實現循跡功能的實現循跡功能的實現NorthStar循跡程序#include"Apps/SystemTask.h"uint8SERVO_MAPPING[4]={1,2,3,4};intmain(){intlgray=0;intrgray=0;MFInit();MFInitServoMapping(&SERVO_MAPPING[0],4);MFSetPortDirect(0x00000FF8);MFSetServoMode(1,1);MFSetServoMode(2,1);MFSetServoMode(3,1);MFSetServoMode(4,1);while(1){lgray=MFGetAD(0);rgray=MFGetAD(1);//右偏if((lgray<=460)&&(rgray>=350)){//左轉MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,-512);MFServoAction();DelayMS(400);}else{//左偏if((lgray>=460)&&(rgray<=350)){//右轉MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(400);}else{//meipianif((lgray>=460)&&(rgray>=350)){MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(400);}else{MFSetServoRotaSpd(1,0);MFSetServoRotaSpd(2,0);MFSetServoRotaSpd(3,0);MFSetServoRotaSpd(4,0);MFServoAction();DelayMS(100);}}}}}蔽障功能的實現程序#include"Apps/SystemTask.h"uint8SERVO_MAPPING[5]={1,2,3,4,5};intmain(){intio0=0;intio1=0;MFInit();MFInitServoMapping(&SERVO_MAPPING[0],5);MFSetPortDirect(0x00000FFC);MFSetServoMode(1,1);MFSetServoMode(2,1);MFSetServoMode(3,1);MFSetServoMode(4,1);MFSetServoMode(5,0);while(1){io0=MFGetDigiInput(0);io1=MFGetDigiInput(1);if((io0==1)&&(io1==1)){MFSetServoRotaSpd(1,1023);MFSetServoRotaSpd(2,-1023);MFSetServoRotaSpd(3,1023);MFSetServoRotaSpd(4,-1023);MFSetServoPos(5,512,512);MFServoAction();DelayMS(500);}else{if(io0==0){//后退MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,512);MFSetServoPos(5,512,512);MFServoAction();DelayMS(1000);//右轉MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,512);MFSetServoPos(5,512,512);MFServoAction();DelayMS(2000);}else{//后退MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,512);MFSetServoPos(5,512,512);MFServoAction();DelayMS(1000);//左轉MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,-512);MFSetServoPos(5,512,512);MFServoAction();DelayMS(2000);}}}}實驗中遇到的問題以及解決方案1、NorthStar編程完成后下載時遇到的問題解決方案及拓展步驟(1)打開NorthStar軟件點擊幫助(3)點擊幫助主題(4)點開附錄以及里邊的常見問題及解決將出現一些列常見問題(5)點擊遇到的問題,按照操作步驟即可解決環(huán)境對灰度傳感器影響較大,賽道多次取點進行傳感器灰度值測量,之后修改程序內AD值條件。(1)用NorthStar打開循跡的程序(2)打開工具菜單下的查詢傳感器出現傳感器頁面,調整好下載模式以及端口的設置,點擊啟動服務(4)完成之后調整好查詢數據模式電機查詢AD,會在相應AD口內看到數據的變化。(5)測完后取黑線與地面值的中間值調整if條件。實驗拓展將紅外蔽障功能,以及灰度傳感器巡線功能同時裝在小車上,通過一個自制紅外開關來控制小車的程序選擇。程序#include"Apps/SystemTask.h"uint8SERVO_MAPPING[4]={1,2,3,4};intmain(){intlgray=0;intyou=0;intkey=0;intrgray=0;intzuo=0;MFInit();MFInitServoMapping(&SERVO_MAPPING[0],4);MFSetPortDirect(0x00000FF8);MFSetServoMode(1,1);MFSetServoMode(2,1);MFSetServoMode(3,1);MFSetServoMode(4,1);while(1){MFGetDigiInput(0);if(key==0){MFGetDigiInput(1);MFGetDigiInput(2);if((zuo==1)&&(you==1)){//前進MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(1000);}else{if(you==0){//后退MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,-512);MFServoAction();DelayMS(400);//左轉MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,-512);MFServoAction();DelayMS(400);}else{//后退MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,-512);MFServoAction();DelayMS(400);//右轉MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(400);}}}else{lgray=MFGetAD(0);rgray=MFGetAD(1);//右偏if((lgray<=460)&&(rgray>=350)){//左轉MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,-512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,-512);MFServoAction();DelayMS(400);}else{//左偏if((lgray>=460)&&(rgray<=350)){//右轉MFSetServoRotaSpd(1,512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(400);}else{//meipianif((lgray>=460)&&(rgray>=350)){MFSetServoRotaSpd(1,-512);MFSetServoRotaSpd(2,512);MFSetServoRotaSpd(3,-512);MFSetServoRotaSpd(4,512);MFServoAction();DelayMS(400);}else{MFSetServoRotaSpd(1,0);MFSetServoRotaSpd(2,0);MFSetServoRotaSpd(3,0);MFSetServoRotaSpd(4,0);MFServoAction();DelayMS(100);}}}}}}通過本次實驗對NorthStar熟練掌握,進而對今后使用博創(chuàng)平臺實現視覺系統(tǒng)等一系列功能掌握。實驗五攝像頭實現輪式機器人電機控制系統(tǒng)一.實驗目的1.了解OpenCv的使用方法,并以此為平臺實現基于OpenCv攝像頭巡線小車的制作2.掌握基于HSV顏色模型的圖像閾值分割算法3.使用OpenCv圖像去噪相關算法:膨脹腐蝕濾波等4.掌握串口通訊,并實現PC機與Arduino以藍牙模塊為載體通訊二.實驗器材OpenCv,HC-05主從一體藍牙模塊,Arduino,小車底盤,usb攝像頭實驗內容三.實驗內容1.HSV顏色模型HSV(Hue-Saturation-Value),色相(H)是色彩的基本屬性,就是平常所說的顏色名稱,如紅色,黃色等;飽和度(S)是色彩的純度,越高色彩越純,低則逐漸變灰;明度(V),指色彩的亮度。HSV以人類更熟悉的方式封裝了關于顏色的信息:“這是什么顏色?深淺如何?明暗如何?”HSV把顏色描述為在圓柱坐標系的點,這個圓柱的中心軸取值為自底部的黑色到頂部的白色,而在它們中間是灰色;繞這個軸的角度對應色相,取值范圍0—360°,到這個軸的距離對應飽和度,取值范圍0.0—1.0,而沿這個軸的高度對應亮度,取值范圍0(黑色)—1.0(白色)。2.閾值分割策略閾值化的基本思想是:給定一個數組和一個閾值,然后根據數組中的每個元素的值是低于還是高于閾值而進行一些處理。:檢查源圖像的每一個像素點的范圍。在下限和上限之間的像素點,被置為255;否則置0。即感興趣區(qū)域為白色,不感興趣區(qū)域全為黑色。受光照影響,不同時刻表示同一顏色的空間模型取值不同。因此在圖像處理之前先手動標定圖像,把合適的H,S,V取值范圍輸出到文本文件里,供后續(xù)處理讀取。3.圖像去噪分割得到二值化圖像之后,可以很明顯看到圖中仍然有很多細微的點噪聲存在,而且目標內部出現空洞,周圍存在毛刺,所以需要對噪聲進行進一步處理,下面介紹濾出噪聲的常用方法。3.1膨脹膨脹是將與物體接觸的所有背景點合并到該物體中,使邊界向外部擴張的過程。可以用來填補物體中的空洞。膨脹的算法:用3X3的結構元素,掃描圖像的每一個像素;用結構元素與其覆蓋的二值圖像做“與”操作;如果都為0,結果圖像的該像素為0,否則為1;結果使二值圖像擴大一圈。函數這個函數膨脹源圖像,存儲結果到目標圖像。參數詳解:源圖像,圖像通道的數量是任意的,但圖像深度應為CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。目標圖像,尺寸和類型與源圖像相同膨脹操作核。若為NULL時,表示是使用參考點位于中心3x3的核。一般使用函數配合參數使用。函數會返回指定形狀和尺寸的結構元素(內核矩陣)。其中函數的第一個參數表示內核的形狀,如下:矩形:MORPH_RECT交叉形:MORPH_CROSS橢圓形:MORPH_ELLIPSE錨的位置,默認值(-1,-1),表示錨位于中心迭代使用erode()函數的次數,默認值為1用于推斷圖像外部像素的某種邊界模式,默認值:BORDER_DEFAULT使用erode函數時,一般我們只需要設置前三個參數,后面四個參數都有默認值。例:3.2腐蝕腐蝕是一種消除邊界點,使邊界向內收縮的過程??梢杂脕硐《鵁o意義的物體。腐蝕的算法:用3x3結構元素,掃描圖像的每一個像素;用結構元素與其覆蓋的二值圖像做“與”操作;如果都為1,結果圖像該像素為1,否則為0;結果使二值圖像減小一圈。4.串口通訊串口通信(SerialCommunications)的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數據的同時用另一根線接收數據。它很簡單并且能夠實現遠距離通信。串口進行通信的方式有兩種:同步通信方式和異步通信方式。同步通信方式要求通信雙方以相同的時鐘頻率進行,而且準確協(xié)調,通過共享一個單個時鐘或定時脈沖源保證發(fā)送方和接收方的準確同步,效率較高;異步通信方式不要求雙方同步,收發(fā)方可采用各自的時鐘源,雙方遵循異步的通信協(xié)議,以字符為數據傳輸單位,發(fā)送方傳送字符的時間間隔不確定,發(fā)送效率比同步傳送效率低。4.1串口通訊過程4.2串口通訊重要函數(1)(2)DCB結構包含了串口的各項參數設置,下面僅介紹幾個該結構常用的變量4.HC-05藍牙一體化模塊HC-05嵌入式藍牙串口通訊模塊(以下簡稱模塊)具有兩種工作模式:命令響應工作模式和自動連接工作模式,在自動連接工作模式下模塊又可分為主(Master)、從lave)和回環(huán)(Loopback)三種工作角色。當模塊處于自動連接工作模式時,將自動根據事先設定的方式連接的數據傳輸;當模塊處于命令響應工作模式時能執(zhí)行下述所有AT命令,用戶可向模塊發(fā)送各種AT指令,為模塊設定控制參數或發(fā)布控制命令。通過控制模塊外部引腳(PIO11)輸入電平,可以實現模塊工作狀態(tài)的動態(tài)轉換。實驗成果四.實驗心得通過這個實驗嘗試并學習了以前只聽過沒做過的東西,在做的過程中遇到很多問題,但都在與同學的討論下找到了解決方法。在調試藍牙模塊時不能進入AT模式,被這個問題絆了兩個晚上;給電腦裝了藍牙驅動后,卻不能連接到藍牙模塊,一直認為是驅動裝錯了,后來用手機測試成功連接上了,意識到是電腦有問題;巡線時小車突然動不了了,一開始認為是電機或驅動壞了,后面才知道是因為控制方法不當使電機在下次啟動時進入死區(qū),后來改進為PWM控制;這是非常有意義的一次實驗課。實驗六應用卓越聯盟實驗室設備進行設計和實現作品說明1.Protell99SE的使用及電路板的雕刻一.實驗目的1.了解Protell99se的使用方法,并以此為平臺設計電路板2.了解將原理圖轉化為雕刻機所需的輸出格式,并運用雕刻機制作出自己獨有的電路板二.實驗器材Pretell99se設計軟件,電路原理圖,pcb電路板雕刻機等三.實驗內容將Protell99軟件安裝進電腦查看所給文件的電路圖設計出自己組獨有的pcb電路板將電路板雕刻出來Protell99制作原理圖庫的方法將元件庫文件和原理圖文件放在同一個設計中在原理圖所在的設計數據庫文件夾下新建一個原理圖庫文件,取名為mylibrary。名字可任取。打開原理圖庫文件,默認狀態(tài)下此庫文件里已經存在一個名為component_1的元件選擇繪圖工具框中的繪制矩形工具繪制元件的邊框(即繪制元件的符號或外形)左鍵點擊繪圖工具欄里的繪制管腳圖標,按下Tab鍵進入管腳屬性編輯對話框。1管腳名字為com,其他管腳名隱藏,管腳編號為1~9。依次放置9個管腳,在放置管腳時,管腳的一端有一個小黑點,旋轉管腳使小黑點朝外雙擊矩形方框進行邊框屬性設置。BorderWidth選擇SmallBorderColor選擇合適的顏色。用上述方法繪制8個電阻形狀的矩形框,放置在上面畫好的邊框里點擊畫圖工具欄里的畫線工具,將畫好的電阻和管腳連接好。修改元件描述保存后退出編輯。當所有的元件制作完成后,保存并關掉元件庫文件(2)單獨創(chuàng)建一個元件庫(倉庫),注意這個元件庫還是Protel設計數據庫文件。1)新建一個設計,取名為“mylibrary”或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠區(qū)品牌形象設計與推廣服務合同4篇
- 二零二五版二手房抵押貸款合同貸款額度追加服務合同3篇
- 二零二五版?zhèn)€人借款給公司擔保責任協(xié)議3篇
- 2025年度智能家居淋浴房定制安裝合同協(xié)議書范本4篇
- 2025屆山西省農業(yè)大附屬中學中考生物全真模擬試卷含解析
- 2025年度道路維修專用鏟車租賃合同規(guī)范4篇
- 二零二五年度科研機構研究員聘用合同3篇
- 2025年度蔬菜種植基地與農業(yè)保險公司合作合同范本3篇
- 二零二五年度摩托車輪胎零售合作協(xié)議書2篇
- 2025年度鋁合金裝飾材料批發(fā)銷售合同4篇
- 師德師風警示教育培訓內容
- 2024年氫工藝作業(yè)考試題庫及答案(700題)
- 安徽省淮南四中2025屆高二上數學期末統(tǒng)考模擬試題含解析
- 2025屆重慶南開中學數學高二上期末教學質量檢測試題含解析
- 2024年重點信訪人員穩(wěn)控實施方案
- 保險專題課件教學課件
- 常見癥狀腹痛課件
- 《生活垃圾的回收與利用》(教案)-2024-2025學年四年級上冊綜合實踐活動教科版
- 汽車租賃行業(yè)的利潤空間分析
- 電商代運營合作協(xié)議書2024年
- 2024年中考英語閱讀理解D篇真題匯編(附答案)0117
評論
0/150
提交評論