国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

OpenMV的3D打印小車系統(tǒng)研究

2022-03-28 08:30鄧春蘭應(yīng)必仕銀錦國
自動(dòng)化與儀表 2022年3期
關(guān)鍵詞:測距障礙物溫濕度

鄧春蘭,應(yīng)必仕,銀錦國,朱 君

(廣西師范大學(xué) 電子工程學(xué)院,桂林541004)

機(jī)器視覺領(lǐng)域的快速發(fā)展,開源模塊層出不窮[1]。OpenMV 具有成本低、性能高并且其內(nèi)部采用OV7725攝像頭芯片等優(yōu)點(diǎn)。本文將開源的OpenMV[2]模塊協(xié)同STM32 單片機(jī)應(yīng)用于智能小車,它主要由控制器、傳感器、攝像頭等元器件制造而成。在給定路線下,小車行駛在路上,攝像頭能根據(jù)路況實(shí)時(shí)采集、更新行駛過程中車體與車道標(biāo)識(shí)線的距離,通過一系列處理后將信息傳遞給單片機(jī),若此時(shí)行駛路徑發(fā)生偏移,就能在短時(shí)間內(nèi)由控制器采用PID 算法回歸正常,通過測量障礙物的距離及時(shí)做出避開障礙物的準(zhǔn)備。此研究方向是基于OpenMV 機(jī)器視覺模塊作為圖像采集與處理平臺(tái),通過STM32F103RCT6單片機(jī)控制智能小車,能按照規(guī)定的路線行駛,能夠自動(dòng)循跡,遇到障礙物時(shí)可自動(dòng)避障。另外,本文設(shè)計(jì)的智能小車以3D 打印[3]的車模為載體,然后和小車的其它部件連接。

1 系統(tǒng)設(shè)計(jì)

L298N 作為驅(qū)動(dòng)芯片[6],通過STM32F103RCT6單片機(jī)控制,從而實(shí)現(xiàn)對(duì)小車速度的精確控制。本設(shè)計(jì)是一輛4 輪車,一個(gè)電機(jī)驅(qū)動(dòng)一個(gè)輪,因此需要使用4 個(gè)電機(jī)驅(qū)動(dòng),本設(shè)計(jì)采用的驅(qū)動(dòng)模塊型號(hào)為L298N,一個(gè)L298N 可以控制2 個(gè)電機(jī)正反轉(zhuǎn),因此本設(shè)計(jì)使用2 塊L298N 控制4 個(gè)電機(jī),從而改變小車的運(yùn)動(dòng)狀態(tài)。該模塊在經(jīng)過初始化后,根據(jù)紅外和超聲波模塊的信號(hào)判斷是否循跡并且是否有障礙物,若沒有則保持原狀態(tài)不變,如果有障礙物則接收來自使能端的PWM 波進(jìn)行循跡或是避障運(yùn)動(dòng)。編碼電機(jī)的起動(dòng)和調(diào)速性好,通過PWM控制調(diào)速,過載能力較強(qiáng),受電磁場干擾??;自身帶有編碼器,可以通過PID 反饋給控制器電機(jī)的運(yùn)行狀態(tài)。

藍(lán)牙模塊的功能是作為手機(jī)與小車之間的橋梁通信,通過藍(lán)牙模塊可以將檢測的溫濕度數(shù)據(jù)傳回手機(jī)應(yīng)用上,實(shí)現(xiàn)對(duì)環(huán)境溫濕度數(shù)據(jù)的實(shí)時(shí)監(jiān)測以及對(duì)小車向前和向后、左轉(zhuǎn)和右轉(zhuǎn)的運(yùn)動(dòng)狀態(tài)控制,設(shè)計(jì)中重要的一個(gè)環(huán)節(jié)。考慮到設(shè)計(jì)方案,手機(jī)藍(lán)牙控制要使智能小車反應(yīng)靈敏、通訊穩(wěn)定并且可靠,HC05 能夠更好地控制小車和溫濕度數(shù)據(jù)傳輸。

溫濕度檢測模塊[7]是為了實(shí)時(shí)監(jiān)測采集環(huán)境中的溫濕度數(shù)據(jù),采集到的數(shù)據(jù)給單片機(jī)再通過藍(lán)牙傳輸模塊顯示到手機(jī)APP 上。DHT11 采用溫濕度傳感和數(shù)字模塊采集技術(shù),可靠性與抗干擾能力極高。DHT11 擁有低功耗、小體積的特點(diǎn),并且采用單線制串行接口,從而更容易集成。以至于它的信號(hào)可以傳輸?shù)?0 m 以上,因此本設(shè)計(jì)選用DHT11 作為溫濕度檢測器。

2 方案設(shè)計(jì)

2.1 小車轉(zhuǎn)向控制方法

方案1:利用電機(jī)的速度差轉(zhuǎn)向

差速轉(zhuǎn)向指的是小車通過控制左右驅(qū)動(dòng)輪的轉(zhuǎn)速實(shí)現(xiàn)轉(zhuǎn)向,當(dāng)車輛在左右拐彎時(shí)車輪的軌線都是呈現(xiàn)圓弧狀,如果汽車正在左轉(zhuǎn)彎時(shí),其圓弧的圓心點(diǎn)在左側(cè),在固定時(shí)間不變的時(shí)候,左側(cè)輪子走的軌跡要比右側(cè)輪子走的軌跡要短,因此為了解決這個(gè)差異問題,左側(cè)輪子速度就要調(diào)慢一點(diǎn),右邊輪子速度就要調(diào)快一點(diǎn),采用不同的轉(zhuǎn)速來解決運(yùn)動(dòng)距離的差異問題。它具有超寬的調(diào)速區(qū)間、控制功率相對(duì)較小等一系列優(yōu)點(diǎn)。

基于OpenMV 的小車模擬系統(tǒng)硬件電路部分以STM32F103RCT6 作為核心控制器,由小車模型、電源模塊、OpenMV 模塊、電機(jī)驅(qū)動(dòng)模塊、藍(lán)牙模塊等共同組成。

STM32F103RCT6 控制器是采用Cortex-M3 基礎(chǔ)型MCU72 MHz CPU,Cortex-M3 內(nèi)核是一個(gè)32位的處理器,其寄存器、數(shù)據(jù)路徑、存儲(chǔ)器接口等都是32 位。還采用哈佛結(jié)構(gòu),因此擁有獨(dú)立的數(shù)據(jù)總線和指令總線,使得數(shù)據(jù)訪問與取址不相沖突。當(dāng)數(shù)據(jù)訪問時(shí),指令總線就不再被占用,數(shù)據(jù)總線和指令總線可以在同一個(gè)存儲(chǔ)器空間[4]。

小車框架是小車的重要結(jié)構(gòu),它決定著小車的體積與集成度以及耐壓能力,本設(shè)計(jì)采用具有高強(qiáng)度、低成本、可循環(huán)使用的新型生物塑料聚乳酸(PLA)進(jìn)行3D 打印小車。聚乳酸(PLA)是一種新型的生物降解材料,也具有優(yōu)異的生物降解性,即使在使用兩三年過后都能完全被土壤中微生物降解,轉(zhuǎn)化生成二氧化碳和水,不污染環(huán)境。其次,采用3D 打印小車,首先通過三維設(shè)計(jì)軟件設(shè)計(jì)小車的結(jié)構(gòu)框架,這種通過三維設(shè)計(jì)的方法就可以按照設(shè)計(jì)者的想法完完整整的設(shè)計(jì)出來,然后在利用3D 打印技術(shù),制造出智能車結(jié)構(gòu)框架,此方法制造出來的小車外形美觀、體積小。

電源模塊是給整個(gè)小車系統(tǒng)供電,為保證小車工作穩(wěn)定,采用電壓為+12.6 V 的12680 型鋰電池進(jìn)行供電。將電池電壓降壓、穩(wěn)壓到+5 V 后給單片機(jī)系統(tǒng)及其它模塊供電;穩(wěn)壓模塊則是提供穩(wěn)定高精度電壓,輸出+5 V 直流電壓和+12 V 直流電壓。

OpenMV 攝像頭模塊的核心是STM32F765CPU,集成OV7725 攝像頭芯片,運(yùn)用Python 編程能高效地實(shí)現(xiàn)核心機(jī)器視覺算法,實(shí)現(xiàn)OpenMV 模塊的機(jī)器視覺的功能[5]。其中,采用攝像頭拍攝設(shè)計(jì)跑道上的雙黑線并通過機(jī)器視覺算法分析得出小車與雙黑線中線的偏轉(zhuǎn)角度,實(shí)現(xiàn)車道保持功能;也可以采用攝像頭識(shí)別跑道上的交通燈信息,并將實(shí)時(shí)的交通燈狀態(tài)通過串口上傳至主控器,主控制器根據(jù)攝像頭模塊上傳的數(shù)據(jù)作出判斷,從而控制小車的速度與啟停狀態(tài)。

方案2:利用舵機(jī)轉(zhuǎn)向

通過輸入一個(gè)周期性的脈沖信號(hào)來控制舵機(jī),此周期性脈沖信號(hào)的低電平時(shí)間應(yīng)在10 ms~25 ms之間,而高電平時(shí)間通常在2 ms~3 ms 之間,因此不嚴(yán)謹(jǐn),所以導(dǎo)致使用舵機(jī)在小角度轉(zhuǎn)彎時(shí)靈敏度并不高。

考慮到舵機(jī)小角度轉(zhuǎn)彎靈敏度低的問題,因此采用電機(jī)的速度差轉(zhuǎn)向。

2.2 電機(jī)PID 算法控制

PID 是一種很常見的控制算法[8],就是“比例、積分、微分”。不同組合形式適用于不同系統(tǒng)的控制原理,從而使偏差趨于零[9]。控制算法如圖1所示,計(jì)算公式為

圖1 PID 控制原理圖Fig.1 Schematic diagram of PID control

本設(shè)計(jì)電機(jī)PID 調(diào)節(jié)主要為了實(shí)現(xiàn)小車在車道保持行駛時(shí)的控制其運(yùn)動(dòng)方向和速度,即保持小車前進(jìn)方向與車道中線的偏轉(zhuǎn)角為0°。PID 控制器的輸出值是控制編碼電機(jī)運(yùn)行的PWM 信號(hào),即PID 控制器輸出的PWM 信號(hào)會(huì)控制編碼電機(jī)運(yùn)行。設(shè)定小車正常直線運(yùn)動(dòng)時(shí)的PWM 閾值,當(dāng)小車轉(zhuǎn)彎時(shí),根據(jù)OpenMV 模塊拍攝處理并返回至主控制器的小車偏轉(zhuǎn)角在與最初設(shè)定的值做差可得PID調(diào)節(jié)的輸入偏差值,保證左右車輪實(shí)現(xiàn)差速轉(zhuǎn)彎,從而保證小車順利通過彎道。

2.3 障礙物測距與避障

采用OpenMV 測距[10],如圖2所示。Apix是固定的像素,Bpix是攝像頭中球所占的像素(直徑的像素),Lm是長度,a是視角的一半,Rm是球真實(shí)的半徑,L′為焦距。

圖2 OpenMV 測距原理圖Fig.2 OpenMV ranging principle diagram

由左邊的攝像頭的幾何關(guān)系可得:

由式(2)和式(3)可得:

由圖2 右邊真實(shí)的圖可得:

將式(5)帶入式(4)可得最終式子為

式(6)體現(xiàn)的是攝像頭里的像素和實(shí)際長度成反比,簡化就L′離等于一個(gè)常數(shù)比上直徑的像素。

本文采用OpenMV,不僅可以測得障礙物的距離,還可以測量障礙物的大小,具有一舉兩得的功能,并且具有高集成度和準(zhǔn)確性,因此本設(shè)計(jì)采用OpenMV 測距。

3 結(jié)果與分析

按照上述設(shè)計(jì)方案,完成的循跡避障智能小車控制系統(tǒng)模型,在規(guī)定時(shí)間內(nèi)需要從指定位置出發(fā),能夠?qū)崿F(xiàn)循跡避障功能,經(jīng)過多次改變測試環(huán)境,本次設(shè)計(jì)能夠?qū)崿F(xiàn)通過藍(lán)牙控制小車的運(yùn)動(dòng)狀態(tài),能夠?qū)崟r(shí)監(jiān)測環(huán)境中的溫濕度數(shù)據(jù)并將其顯示到手機(jī)APP 上,監(jiān)測到的溫濕度數(shù)據(jù)基本準(zhǔn)確,也能通過手機(jī)APP 控制小車前進(jìn)、后退、左移和右移。

3.1 循跡

本設(shè)計(jì)采用OpenMV 攝像頭對(duì)給定道路標(biāo)識(shí)雙黑線進(jìn)行識(shí)別,保證小車能夠在規(guī)定范圍內(nèi)安全前行。廣角攝像頭主要負(fù)責(zé)車道保持功能(即雙黑線循跡),將獲得的軌跡進(jìn)行處理,可以得到該軌跡的偏離角度,然后通過偏轉(zhuǎn)角的判斷,給主控制器發(fā)送轉(zhuǎn)向信號(hào),左轉(zhuǎn)或右轉(zhuǎn),小車則進(jìn)行PID 調(diào)節(jié),實(shí)現(xiàn)車道保持功能。攝像頭采集的圖像如圖3所示。

圖3 攝像頭采集圖像Fig.3 Image captured by camera

3.2 圖像處理

OpenMV 攝像頭在對(duì)采集到的圖像進(jìn)行處理時(shí)主要采用膨脹腐蝕處理[11]和二值化處理[12],處理結(jié)果如圖4 和圖5所示。

圖4 膨脹處理Fig.4 Expansion treatment

圖5 二值化處理Fig.5 Binarization processing

OpenMV 攝像頭采集到的圖像包含目標(biāo)物體、噪聲和背景等,如果要想從這種多值化的數(shù)字圖像中提取準(zhǔn)確的路徑,就需要設(shè)定一個(gè)閾值Y,相當(dāng)于一個(gè)分割線,采集到的圖像數(shù)據(jù)被分成小于Y和大于Y兩個(gè)的像素群。將小于Y的像素群的像素值自定義為白色,則大于Y的像素群的像素值自定義為黑色。

膨脹則是將與物體接觸的全部背景點(diǎn)合并到該物體中,使邊界向外部擴(kuò)張的過程,能夠用來填補(bǔ)物體中的空洞;被看作膨脹的對(duì)偶運(yùn)算的是腐蝕,腐蝕是一種消除邊界點(diǎn)的方法,使邊界在向內(nèi)部收縮的過程,能夠用來消除無意義且小的物體,因此會(huì)使得二值圖像減小一圈。

3.3 藍(lán)牙模塊測試

將手機(jī)藍(lán)牙打開,另一邊小車上打開電源開關(guān)和藍(lán)牙開關(guān),藍(lán)牙模塊[13]指示燈閃爍,手機(jī)連接到藍(lán)牙后,指示燈變成雙閃,在手機(jī)上按鍵發(fā)送控制信號(hào),小車能夠按照設(shè)置按鍵的指令進(jìn)行向前、向后、向前左、向前右、向后左、向后右的動(dòng)作變換。用濕潤的手指捏住溫濕度傳感器,觀察到手機(jī)APP 端溫度數(shù)據(jù)明顯升高,從28 ℃變到了31 ℃,濕度從76%變到了95%。測試過程和數(shù)據(jù)如圖6 和圖7所示。

圖6 改變溫濕度前Fig.6 Before changing the temperature and humidity

圖7 改變溫濕度后Fig.7 After changing the temperature and humidity

3.4 小車速度

速度是影響智能車速度快慢的一個(gè)重要因素。在限時(shí)的比賽中,首先速度控制必須配合方向控制,即在直道或類似直道時(shí),應(yīng)該將PWM 波提到最高,讓通過主電機(jī)的電流達(dá)到最大,從而讓智能小車以最快的速度行駛;當(dāng)進(jìn)入彎道時(shí),應(yīng)該根據(jù)彎道的曲率大小,適當(dāng)?shù)妮^低小車的基礎(chǔ)速度,使得小車不容易沖出賽道,對(duì)于該基礎(chǔ)速度的設(shè)定,采用PID 控制,以小車與中線的偏差大小為輸入,以速度的設(shè)定量為輸出,實(shí)現(xiàn)不同賽道類型下的自主速度調(diào)整。

小車轉(zhuǎn)彎采用差速轉(zhuǎn)向PID 算法,相比舵機(jī)轉(zhuǎn)向其靈活性提高了很多。小車?yán)貌钏匐姍C(jī)實(shí)現(xiàn)轉(zhuǎn)彎,其原理是利用兩個(gè)電機(jī)的轉(zhuǎn)速不同構(gòu)成轉(zhuǎn)速差。

3.5 避障

采用紅外模塊進(jìn)行避障[14],將5 個(gè)紅外線光電傳感器分別裝在車體前方的左中右位置,左邊和右邊各2 個(gè),中間1 個(gè)。當(dāng)車左邊的傳感器檢測到障礙物時(shí),主控制器控制右輪電機(jī)停止左輪轉(zhuǎn)動(dòng),車向右方轉(zhuǎn)向,當(dāng)車右邊的傳感器檢測到障礙物時(shí),主控制器控制左輪電機(jī)停止轉(zhuǎn)動(dòng),車向左方轉(zhuǎn)向,當(dāng)前面有障礙物時(shí)規(guī)定車右轉(zhuǎn)。如表1~表3所示。

表1 小車一定時(shí)間內(nèi)避障個(gè)數(shù)Tab.1 Number of obstacles avoided by car in a certain period of time

表3 小車避障效果Tab.3 Obstacle avoidance effect of car

從表1 中可以看出隨著時(shí)間增加,如果小車速度不變,障礙物等距離放置,小車避障的能力維持在一個(gè)相對(duì)穩(wěn)定的范圍內(nèi)。

從表2 中的數(shù)據(jù)可以看出,小車測距時(shí)間隨著距離的邊長而增加。當(dāng)距離從0.1 m 增加至0.6 m時(shí),測距所花的時(shí)間相差不大,當(dāng)超過0.6 m 后,測距所花時(shí)間變化較大。因此,當(dāng)測距距離小于0.6 m時(shí),小車的OPenMV 測距效果較好。

表2 小車測距效果Tab.2 Ranging effect of trolley

從表3 中的數(shù)據(jù)可得小車?yán)@過的障礙物個(gè)數(shù)與距離的關(guān)系,當(dāng)初始距離過小或過大時(shí)避障效果都比較小,是因?yàn)榫嚯x過小,小車反應(yīng)時(shí)間太短來不急就會(huì)直接撞到障礙物;距離過大時(shí),小車朝著終點(diǎn)開去就會(huì)錯(cuò)過障礙物??梢钥闯?,當(dāng)初始距離近似為0.5 m 時(shí),小車的避障能力最好。

4 結(jié)語

本文采用的基于OpenMV 以STM32F103RCT6為主控制器設(shè)計(jì)的機(jī)器視覺的智能小車,采用3D打印技術(shù)并選用PLA 材質(zhì)打印小車有效地解決了小車設(shè)計(jì)制造框架的普通性、提高效率、降低消耗的問題。實(shí)現(xiàn)了從標(biāo)記的指定位置出發(fā),使用OpenMV 攝像頭模塊系統(tǒng)進(jìn)行圖像和數(shù)據(jù)采集,通過OpenMV 測距,從而得到障礙物的位置信號(hào)。能對(duì)小車行進(jìn)速度與方向的控制、避障等。還實(shí)現(xiàn)通過藍(lán)牙模塊通信協(xié)議檢測溫濕度數(shù)據(jù),以及控制小車的行駛方向。本設(shè)計(jì)前期也采用DT50 激光傳感器進(jìn)行測距,但也需要OpenMV 進(jìn)行數(shù)據(jù)采集,然后進(jìn)行一系列的卡爾曼濾波、中值濾波等方式來去除噪聲信號(hào),算法處理較為復(fù)雜,因此最終方案就直接采用集成度高的OpenMV 進(jìn)行測距。本設(shè)計(jì)已經(jīng)通過多次實(shí)驗(yàn)驗(yàn)證,具有靈敏度高、穩(wěn)定性強(qiáng)等特點(diǎn),在未來智能小車會(huì)融合多個(gè)專業(yè)領(lǐng)域。

猜你喜歡
測距障礙物溫濕度
基于RSSI測距的最大似然估計(jì)的節(jié)點(diǎn)定位算法
文物展柜內(nèi)環(huán)境溫濕度的調(diào)控與監(jiān)測
基于AT89C51的數(shù)字型蠶用溫濕度計(jì)的設(shè)計(jì)
高低翻越
基于STM32的多通道超聲波測距系統(tǒng)設(shè)計(jì)
趕飛機(jī)
基于單片機(jī)的超聲波測距導(dǎo)盲杖設(shè)計(jì)
月亮為什么會(huì)有圓缺
基于溫濕度控制的天氣預(yù)測裝置
基于DSP和μcos的溫濕度檢測系統(tǒng)的設(shè)計(jì)
宿州市| 潞城市| 蓬莱市| 莫力| 新竹县| 博白县| 宁阳县| 石景山区| 贵港市| 呼和浩特市| 城固县| 修水县| 郁南县| 五华县| 罗定市| 南雄市| 花垣县| 博罗县| 泸州市| 韶山市| 黑河市| 白河县| 衡东县| 扎赉特旗| 陵川县| 峨眉山市| 荥阳市| 股票| 贵阳市| 绍兴市| 邻水| 阜康市| 镇沅| 伊川县| 呼图壁县| 凌海市| 东海县| 鹤岗市| 西青区| 临朐县| 嘉荫县|