999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CCD自動巡線智能小車設計

2019-12-05 02:37:08司開波呂林濤
宇航計測技術 2019年5期

司開波 黃 健 呂林濤

(西京學院信息工程學院,陜西西安 710123)

1 引 言

在智能車設計中,通常要實現自動循跡功能,因此人們研究了多種方法。文獻[1]采用光電傳感器TCRT5000,以STC12C5A60S2為控制核心,實現了對黑白線的自動循跡。文獻[2]采用新型數字式電感傳感器LDC1000實現了對細鐵絲構成的跑道的自動循跡。

文獻[1]采用的方法,也是常用的一種循跡方法。采用光電傳感器,根據白線反射光強,黑線反射光弱的原理識別黑白線,達到自動巡線的功能。但該方法對黑線的寬度和當前光照強度有要求,如果當前自然光照強度大,很難識別黑白線;如果黑線寬度較細,也較難識別;如果是彎道,由于角度變化,識別也比較困難。而本文提出的CCD線陣傳感器,包含128個光電二極管的線性陣列,構成128個像素,每個像素的光敏面積是3 524.3μm2,像素之間的間隔是8μm。每個像素點具有256(8bit)級灰度輸出。相比于單個或多個光電傳感器TCRT5000,輸出精度更高,采集的信息點更多,采集范圍更寬。因此,實現的自動循跡功能更強。

2 系統設計

2.1 線性CCD工作原理

該傳感器是包含128個光電二極管的線陣,光電二極管在光的照射下產生光電流。如圖1所示構成了光電二極管積分電路,二極管上累積的電荷量與光強度和光照時間成正比。當開關S1在1上時,積分電容上流過的電流和光電流相等,對光電流進行積分。當S1切換到2時,釋放積分電容上累積的電荷。S2采樣輸出,當S2切換到1上時,使得采樣電容電壓等于運放輸出電壓,切換到3時,輸出電壓,在2時,其它光電二極管輸出電壓[3-5]。CCD內部有移位寄存器和邏輯控制器,可依次輸出128個像素點的電壓。

圖1 光電二極管積分原理圖Fig.1 Photodiode Integration Principle Diagram

2.2 系統設計框圖

系統設計框圖如圖2所示,主控采用高性能微處理器STM32F103ZET6,主頻72MHz,具有豐富的資源和I/O接口。采用3.3V供電,CCD線陣首先采集黑線的信息,通過A/D接口送給主控STM32,主控對數據進行處理,用中值算法尋找黑線中心位置,并與小車中心點位置比較。當車身偏左時,控制小車右轉;當車身偏右時,控制小車左轉;當正在黑線的正上方時,小車直行。電機驅動采用TB6612,用編碼器測速,用速度PID控制PWM波輸出,使得小車行進穩定、可靠。并增加藍牙串口模塊,可將小車行進的相關數據發送給上位機,便于調試。

圖2 系統框圖Fig.2 System block diagram

3 硬件電路設計

3.1 CCD硬件電路設計

CCD與STM32的連接圖如圖3所示。STM32的PA4引腳控制數據的起始位,PA2提供讀寫的時鐘信號,PA3作為模擬A/D輸入引腳,可連續讀取128個像素點的輸出電壓,作為軟件處理中的原始數據[4-7]。

圖3 CCD與STM32連接圖Fig.3 Connection Chart of CCD and STM32

3.2 TB6612電機驅動電路設計

TB6612電機驅動電路圖如圖4所示,TB6612適合驅動小型直流電機,可同時驅動2路直流電機,峰值電流可達到2A,相比于L298具有體積小、性能高等優點。圖中PF13,PF14,PC6控制1路電機,PF13,PF14控制電機的轉向,PC6輸出PWM波,控制電機的轉速。對應的輸出為OUT1和OUT2。PF15,PG0,PC7控制另外1路電機,PF15,PG0控制電機的轉向,PC7輸出PWM波,控制電機的轉速。對應的輸出為OUT3和OUT4。VM為電機驅動所需電壓,要高于6V,設計中采用7V[8]。VCC為芯片工作電壓,是5V。

圖4 TB6612電機驅動硬件原理圖Fig.4 Hardware schematic diagram of TB6612 motor drive

對電機測速時,采用編碼器,每旋轉1圈,輸出390個脈沖,將其接入STM32F103ZET6的定時器2,測量每秒鐘脈沖的個數實現測速。

3.3 串口藍牙電路設計

圖5 藍牙接口電路設計Fig.5 Bluetooth interface circuit design

串口藍牙電路圖如圖5所示,圖中藍牙連接到STM32F103ZET6的串口2上,要實現藍牙通信,必須是一對。上位機的連接方法與圖5所示相同。通信之前,首先用串口調試助手對2個藍牙模塊進行設置,設置好后2個藍牙模塊會自動配對。通過串口2的PD5(RXD)和PD6(TXD)實現數據的收發。可將CCD數據,電機測速數據等發送給上位機,方便調試。

4 軟件編程

4.1 軟件流程圖

在KEIL MDK5.0下用C語言編程,軟件流程圖如圖6所示。

圖6 軟件流程圖Fig.6 Software flow chart

軟件編程時,首先對定時器、串口等進行初始化,然后通過A/D循環采集128個像素點的數據。通過顏色識別找到黑線的2個邊緣,記下此時像素點的位置I和J(I

K=I+(J-I)/2

(1)

PWM+=Kp[e(k)-e(k-1)]+Ki×e(k)

+Kd[e(k)-2e(k-1)+e(k-2)]

(2)

式中:Kp——比例系數;Ki——積分系數;Kd——微分系數;e(k)——當前位置誤差;e(k-1)——上一次位置誤差;PWM——脈沖寬度。

4.2 關鍵代碼

以下是找到黑線并計算中心代碼,該段代碼在定時器Timer1中每隔100ms調用一次。對小車的控制采用動態閾值智能控制方法,當到達閾值范圍內,控制小車直行,否則控制小車左轉或者右轉,按流程圖所示進行。這樣可以避免小車左右搖擺,這樣就能在幾秒內將小車調整到中心位置。

void Find_CCD_Zhongzhi(void)

{static u8 i,j,Left,Right,Last_CCD_Zhongzhi;static u16 value1_max,value1_min;value1_max=ADV[0];//動態閾值算法,讀取最大和最小值

for(i=5;i<123;i++)//兩邊各去掉5個點

{if(value1_max<=ADV[i])

value1_max=ADV[i];}

value1_min=ADV[0];//最小值

for(i=5;i<123;i++)

{if(value1_min>=ADV[i])

value1_min=ADV[i];}

CCD_Yuzhi=(value1_max+value1_min)/2;//計算出本次中線提取的閾值

for(i = 5;i<118; i++)//尋找左邊跳變沿

{if(ADV[i]>CCD_Yuzhi&&ADV[i+1]>CCD_Yuzhi&&ADV[i+2]>CCD_Yuzhi&&ADV[i+3]

{Left=i;

break;}

}

for(j = 118;j>5; j--)//尋找右邊跳變沿

{if(ADV[j]CCD_Yuzhi&&ADV[j+4]>CCD_Yuzhi&&ADV[j+5]>CCD_Yuzhi)

{Right=j;

break;}

}

CCD_Zhongzhi=(Right+Left)/2;//計算中線位置if(myabs1(CCD_Zhongzhi-Last_CCD_Zhongzhi)>70)//計算中線的偏差,如果太大

CCD_Zhongzhi=Last_CCD_Zhongzhi;//則取上一次的值

Last_CCD_Zhongzhi=CCD_Zhongzhi;//保存上一次的偏差

}

5 測試結果處理

設計并調試好硬件電路和軟件程序后,就可以進行測試了。測試時,首先對鏡頭進行調焦,調焦如式(3)或式(4)所示

f=v×D/V

(3)

f=h×D/H

(4)

式中:f——鏡頭的焦距長度;v——拍攝對象成像后的縱向尺寸;V——拍攝對象實際的縱向尺寸;D——鏡頭和拍攝對象之間的距離;h——拍攝對象成像后的橫向尺寸;H——拍攝對象實際的橫向尺寸。

測試時,所選用的鏡頭的成像區域為8.128mm×0.063 5mm,焦距可調。

測試時跑道如圖7所示。相距最遠的2條黑線的外邊沿間距是25cm,即橫向尺寸H為25cm。鏡頭與目標距離D為80cm,鏡頭焦距f為6mm,經過式(4)計算,可得到成像后的橫向尺寸h如式(5)所示

h=f×H/D=6mm×25cm/80cm=1.875mm

圖7 測試用跑道示意圖Fig.7 Test Runway

而鏡頭的成像區域為8.128mm×0.0635mm,橫向長度為8.128mm,對應128個像素點,則1.875mm對應像素點是29.5,接近于30個。

通過藍牙發送數據給上位機,可以得到如圖8所示的測試數據。

圖8 測試數據1Fig.8 Test data 1

圖8顯示了經過軟件處理后的數據,最小值是18,最大值是86,中間值是52,并顯示了灰度圖和二值化圖。

圖9顯示了當焦距為8mm時測量數據,鏡頭與目標距離D為30cm時測得的數據。從圖中可得到最小值是20,最大值是127,中間值是73,并顯示了灰度圖和二值化圖。

在實際測量中,由于環境亮度有所不同,測量值會有所不同.因為像素的亮度與曝光時間(積分時間)和環境亮度成正比,所以當光線比較暗時,增加曝光時間;當光線比較亮時,減少曝光時間。曝光時間可用軟件調整。

圖9 測試數據2Fig.9 Test data 2

對圖9所示數據提高曝光時間,焦距保持8mm,鏡頭與目標距離D不變,仍為30cm。得到測試數據如圖10所示。

圖10 測試數據3Fig.10 Test data 3

從圖中可以看到,增大曝光時間后,最大值、最小值、中間值明顯增大,中間值變為135。因此,當光線較暗時,可增加曝光時間,增強識別能力。

6 結束語

文中仔細研究了CCD識別顏色的基本工作原理。設計了硬件電路,在MDK下編寫了C程序,采用中值算法得到了黑線的中線位置,通過PID算法控制了小車的行駛,實現了用攝像頭循跡,為智能小車的自動循跡提供了一種新方法。測試結果表明:該方法相比于普通光電傳感器,具有性能可靠、穩定、速度快等優點。

主站蜘蛛池模板: 91成人免费观看| 亚洲国产中文精品va在线播放| 国产小视频网站| 999在线免费视频| a毛片在线播放| 久久精品国产亚洲AV忘忧草18| 免费一极毛片| 日韩成人午夜| 综合久久久久久久综合网| 思思热在线视频精品| 国产视频久久久久| 国产精品大尺度尺度视频| 精品伊人久久久大香线蕉欧美 | 亚洲成人一区在线| 58av国产精品| 亚洲精品日产精品乱码不卡| 日韩欧美中文字幕在线韩免费| 亚洲欧美成人综合| 99re在线免费视频| 永久毛片在线播| 久久semm亚洲国产| 亚洲色欲色欲www网| 亚洲黄色视频在线观看一区| 九九视频免费在线观看| 国产在线观看人成激情视频| 免费99精品国产自在现线| 久久天天躁夜夜躁狠狠| 女人18毛片久久| 天天做天天爱夜夜爽毛片毛片| 国产浮力第一页永久地址| 丁香五月婷婷激情基地| 精品一区二区无码av| 啪啪啪亚洲无码| 欧美成人怡春院在线激情| 五月天久久综合| 精品国产成人国产在线| 亚洲一区二区视频在线观看| 四虎永久在线精品影院| 久久精品视频一| 色成人亚洲| 欧美国产日产一区二区| 国产黄色片在线看| 色综合天天操| 免费一级毛片不卡在线播放| 免费aa毛片| 日韩人妻无码制服丝袜视频| 国产流白浆视频| 欧美日韩国产在线播放| 亚洲视频欧美不卡| 天天色天天操综合网| 毛片在线播放网址| 大学生久久香蕉国产线观看| 四虎AV麻豆| 91精品专区| 亚洲综合九九| 尤物国产在线| 欧美一区中文字幕| 免费日韩在线视频| 国产亚洲精品无码专| 久久黄色毛片| 97视频免费看| 国产一区二区福利| 久久公开视频| 免费女人18毛片a级毛片视频| 1024国产在线| 亚洲天堂福利视频| 狠狠色丁香婷婷综合| 亚洲第一区欧美国产综合| 成人另类稀缺在线观看| 亚洲有无码中文网| 国产一级片网址| 午夜人性色福利无码视频在线观看| 欧美高清视频一区二区三区| 久久a级片| 精品视频在线观看你懂的一区 | 丝袜亚洲综合| 亚洲色大成网站www国产| 国产欧美日韩视频怡春院| 日韩欧美中文字幕在线精品| 激情五月婷婷综合网| 国产特级毛片aaaaaa| 国产在线视频欧美亚综合|