官术网_书友最值得收藏!

2.2 硬件設(shè)計(jì)

智能搬運(yùn)小車(chē)的硬件有Arduino主控制器、伺服電動(dòng)機(jī)、超聲波傳感器、QTI傳感器及顏色傳感器等。智能搬運(yùn)小車(chē)的硬件結(jié)構(gòu)框圖如圖2.4所示。

圖2.4 智能搬運(yùn)小車(chē)的硬件結(jié)構(gòu)框圖

2.2.1 伺服電動(dòng)機(jī)

伺服電動(dòng)機(jī)是智能搬運(yùn)小車(chē)做移動(dòng)動(dòng)作的動(dòng)力,只能順時(shí)針或逆時(shí)針連續(xù)旋轉(zhuǎn),有三根引線,即B(黑)、R(紅)及W(白),分別代表地線、電源線及信號(hào)控制線。智能搬運(yùn)小車(chē)的機(jī)械臂由角度舵機(jī)控制。

伺服電動(dòng)機(jī)模塊的實(shí)物圖如圖2.5所示。

圖2.5 伺服電動(dòng)機(jī)模塊的實(shí)物圖

伺服電動(dòng)機(jī)與Arduino主控制器的接口連接見(jiàn)表2.1。

表2.1 伺服電動(dòng)機(jī)與Arduino主控制器的接口連接

伺服電動(dòng)機(jī)與Arduino主控制器連接后,編寫(xiě)簡(jiǎn)單的代碼就可以使智能搬運(yùn)小車(chē)移動(dòng)起來(lái),可以前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、后退及掉頭等。

智能搬運(yùn)小車(chē)在運(yùn)行過(guò)程中的具體控制方式如下。

前進(jìn):Arduino主控制器控制兩個(gè)伺服電動(dòng)機(jī)正轉(zhuǎn),同速、同向。

后退:Arduino主控制器控制兩個(gè)伺服電動(dòng)機(jī)反轉(zhuǎn),同速、同向。

左轉(zhuǎn):Arduino主控制器控制左伺服電動(dòng)機(jī)停止轉(zhuǎn)動(dòng),右伺服電動(dòng)機(jī)以一定的速度使右車(chē)輪轉(zhuǎn)動(dòng),實(shí)現(xiàn)左轉(zhuǎn)。

左旋轉(zhuǎn):Arduino主控制器控制左伺服電動(dòng)機(jī)逆時(shí)針轉(zhuǎn)動(dòng),右伺服電動(dòng)機(jī)順時(shí)針轉(zhuǎn)動(dòng),實(shí)現(xiàn)大幅度左轉(zhuǎn)。

右轉(zhuǎn):Arduino主控制器控制右伺服電動(dòng)機(jī)停止轉(zhuǎn)動(dòng),左伺服電動(dòng)機(jī)以一定的速度使左車(chē)輪轉(zhuǎn)動(dòng),實(shí)現(xiàn)右轉(zhuǎn)。

右旋轉(zhuǎn):Arduino主控制器控制右伺服電動(dòng)機(jī)逆時(shí)針轉(zhuǎn)動(dòng),左伺服電動(dòng)機(jī)順時(shí)針轉(zhuǎn)動(dòng),實(shí)現(xiàn)大幅度右轉(zhuǎn)。

掉頭:Arduino主控制器控制一個(gè)伺服電動(dòng)機(jī)正轉(zhuǎn),另一個(gè)伺服電動(dòng)機(jī)反轉(zhuǎn),實(shí)現(xiàn)掉頭。

智能搬運(yùn)小車(chē)系統(tǒng)的初始化、IO設(shè)置及伺服電動(dòng)機(jī)輸出脈寬的驅(qū)動(dòng)程序代碼為

主函數(shù)通過(guò)調(diào)用前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、左旋轉(zhuǎn)及右旋轉(zhuǎn)等子函數(shù)實(shí)現(xiàn)相應(yīng)的動(dòng)作,如調(diào)用loop函數(shù)中的前進(jìn)子函數(shù),則智能搬運(yùn)小車(chē)會(huì)一直前進(jìn),不會(huì)停下來(lái)。

小提示

①伺服電動(dòng)機(jī)在使用前一定要先調(diào)零,即連續(xù)輸入1.5ms的高電平脈沖、20ms的低電平脈沖,當(dāng)伺服電動(dòng)機(jī)靜止不動(dòng)時(shí),則完成調(diào)零;否則,要用螺釘旋具微調(diào)伺服電動(dòng)機(jī)的調(diào)零旋鈕(順時(shí)針或逆時(shí)針轉(zhuǎn)動(dòng))進(jìn)行調(diào)零。

②伺服電動(dòng)機(jī)的調(diào)速:當(dāng)連續(xù)輸入1.7ms的高電平脈沖、20ms的低電平脈沖時(shí),伺服電動(dòng)機(jī)沿順時(shí)針以最大的速度旋轉(zhuǎn);當(dāng)連續(xù)輸入1.3ms的高電平脈沖、20ms的低電平脈沖時(shí),伺服電動(dòng)機(jī)沿逆時(shí)針以最大的速度旋轉(zhuǎn);當(dāng)伺服電動(dòng)機(jī)需要按照順時(shí)針或逆時(shí)針的某個(gè)角度轉(zhuǎn)動(dòng)時(shí),則調(diào)節(jié)相應(yīng)的輸入脈沖寬度即可。

③由于伺服電動(dòng)機(jī)的型號(hào)參數(shù)不可能完全相同,前進(jìn)、后退等動(dòng)作很難一致,在移動(dòng)的過(guò)程中不可能走直線,往往有一定的偏差,因此在尋線時(shí)需要添加其他的傳感器,如QTI傳感器進(jìn)行輔助判斷。

2.2.2 QTI傳感器

QTI傳感器是采用光電接收器探測(cè)物體表面反射光強(qiáng)度的傳感器,當(dāng)QTI傳感器對(duì)著暗淡的物體表面時(shí),反射光強(qiáng)很低;當(dāng)QTI傳感器對(duì)著明亮的物體表面時(shí),反射光強(qiáng)很高。不同的光強(qiáng)對(duì)應(yīng)著不同的電平輸出信號(hào)。由此可以約定,當(dāng)QTI傳感器探測(cè)到黑色物體時(shí)輸出高電平,探測(cè)到白色物體時(shí)輸出低電平。QTI傳感器有三個(gè)引腳,即GND、Vcc、SIG,分別代表地、電源、信號(hào)控制,與Arduino主控制器的相關(guān)引腳連接就可以獲取QTI傳感器的信號(hào)。QTI傳感器的實(shí)物圖如圖2.6所示。

圖2.6 QTI傳感器的實(shí)物圖

QTI傳感器與Arduino主控制器的接口連接見(jiàn)表2.2。

表2.2 QTI傳感器與Arduino主控制器的接口連接

QTI傳感器根據(jù)紅外光信號(hào)照射到被測(cè)物體表面后反射回來(lái)的不同灰度值,簡(jiǎn)單識(shí)別所處的環(huán)境,再根據(jù)環(huán)境做相應(yīng)的動(dòng)作。

前行:在黑色軌跡上行走時(shí),保持前行狀態(tài)。

后退:在黑色軌跡上行走時(shí),保持后退狀態(tài)。

右轉(zhuǎn):當(dāng)尋跡傳感器檢測(cè)到智能搬運(yùn)小車(chē)在黑色軌跡上向左偏離時(shí),可通過(guò)Arduino主控制器控制智能搬運(yùn)小車(chē)右轉(zhuǎn),直到智能搬運(yùn)小車(chē)回到正常軌跡上。

左轉(zhuǎn):當(dāng)尋跡傳感器檢測(cè)到智能搬運(yùn)小車(chē)在黑色軌跡上向右偏離時(shí),可通過(guò)Arduino主控制器控制智能搬運(yùn)小車(chē)左轉(zhuǎn),直到智能搬運(yùn)小車(chē)回到正常軌跡上。

停車(chē):當(dāng)尋跡傳感器檢測(cè)到前方為全白,即檢測(cè)到智能搬運(yùn)小車(chē)到站時(shí),可通過(guò)Arduino主控制器控制智能搬運(yùn)小車(chē)停車(chē)。

QTI傳感器采集數(shù)據(jù)的驅(qū)動(dòng)程序代碼為

該代碼段僅給出了如何在系統(tǒng)初始化、外設(shè)初始化后讀取QTI傳感器采集數(shù)據(jù)的實(shí)例程序代碼。如果希望智能搬運(yùn)小車(chē)按照設(shè)定的路線移動(dòng),則需要配合特定的場(chǎng)地或環(huán)境條件編寫(xiě)專(zhuān)門(mén)的尋跡算法,使智能搬運(yùn)小車(chē)根據(jù)識(shí)別場(chǎng)地環(huán)境的灰度值,按照既定或復(fù)雜的路線進(jìn)行尋線移動(dòng)。

小提示

QTI傳感器非常適合尋線、探測(cè)場(chǎng)地邊緣等場(chǎng)合。在安裝時(shí),QTI傳感器與探測(cè)物體的距離以10mm為佳,中間兩個(gè)QTI傳感器的中心距離以11mm為宜,也可以是中心點(diǎn)對(duì)著場(chǎng)地尋線的邊緣,旁邊兩個(gè)QTI在開(kāi)槽桿件的兩端。若智能搬運(yùn)小車(chē)在前進(jìn)的過(guò)程中出現(xiàn)抖動(dòng)現(xiàn)象,則可以通過(guò)微調(diào)QTI傳感器的安裝位置來(lái)消除抖動(dòng)。

2.2.3 超聲波傳感器

超聲波傳感器主要用于測(cè)距定位或感知是否有障礙物,在智能搬運(yùn)小車(chē)中主要用于定位距離或掃描是否有色塊。超聲波傳感器的測(cè)距驅(qū)動(dòng)程序代碼為

在上述HC-SR04超聲波傳感器模塊測(cè)距驅(qū)動(dòng)程序代碼中,首先調(diào)用init()函數(shù)實(shí)現(xiàn)系統(tǒng)和外設(shè)初始化,隨后調(diào)用測(cè)距子函數(shù)實(shí)現(xiàn)超聲波測(cè)距,以達(dá)到避障和距離定位的目的。

小提示

HC-SR04超聲波傳感器模塊在安裝時(shí)要平視(在仰視或俯視時(shí)都會(huì)引起誤差),有效測(cè)量范圍為2~450cm,測(cè)距精度可達(dá)2mm。

2.2.4 顏色傳感器

自然界中的各種顏色都是由不同比例的紅、綠、藍(lán)三原色混合而成的。顏色傳感器就是通過(guò)檢測(cè)某個(gè)顏色中的三原色比例進(jìn)行顏色識(shí)別的。智能搬運(yùn)小車(chē)采用的是TCS230顏色傳感器。TCS230顏色傳感器的實(shí)物圖如圖2.7所示。在識(shí)別顏色時(shí),TCS230顏色傳感器依次選定顏色濾波器(紅、綠、藍(lán)),只有對(duì)應(yīng)顏色的入射光可以通過(guò),其他顏色的入射光被阻止,從而得到對(duì)應(yīng)顏色的光強(qiáng)。

圖2.7 TCS230顏色傳感器的實(shí)物圖

TCS230顏色傳感器自帶兩個(gè)高亮的白色LED燈,可有助于提高顏色識(shí)別的準(zhǔn)確性;輸入引腳S0、S1用于選擇輸出比例因子或電源關(guān)斷模式,不同的輸出比例因子可控制不同的輸出頻率,以適應(yīng)不同的需求;輸入引腳S2、S3用于選擇濾波器的類(lèi)型;輸入引腳LED用于點(diǎn)亮兩個(gè)LED燈;OUT為頻率輸出引腳,典型輸出頻率范圍為2Hz(0.5s)~500kHz(2μs);GND為接地引腳;+5V和VDD引腳接5V電源。在工作時(shí),TCS230顏色傳感器首先打開(kāi)LED燈,選擇輸出比例因子;然后依次選定不同的顏色濾波器,每選定一個(gè)顏色濾波器,就檢測(cè)由輸出引腳輸出的不同頻率(光強(qiáng))的方波脈沖數(shù);最后根據(jù)得到的三原色脈沖數(shù)的比例識(shí)別顏色。S0~S3為T(mén)CS230顏色傳感器的工作控制引腳。表2.3給出的是S0~S3的組合選項(xiàng)。

表2.3 S0~S3的組合選項(xiàng)

在理論上,白色是由等量的紅色、綠色及藍(lán)色混合而成的。TCS230顏色傳感器對(duì)三原色的敏感性不同,導(dǎo)致輸出的R、G、B光強(qiáng)不相等,在使用前必須進(jìn)行白平衡調(diào)整。所謂白平衡,就是告訴智能搬運(yùn)小車(chē)什么是白色,使TCS230顏色傳感器對(duì)“白色”中三原色R、G、B的輸出是相等的。

通過(guò)白平衡調(diào)整可以得到在識(shí)別顏色時(shí)需要用到的選通信道時(shí)間基準(zhǔn)。白平衡的調(diào)整過(guò)程為:在TCS230顏色傳感器前的適當(dāng)位置(一般為2cm左右)放一個(gè)白色物體,打開(kāi)LED燈,選擇輸出比例因子,依次選定紅色、綠色及藍(lán)色的濾波器,在每個(gè)通道(也稱信道)的脈沖計(jì)數(shù)為255時(shí)就關(guān)閉通道,分別得到在每個(gè)通道中所用的時(shí)間。這個(gè)時(shí)間就是識(shí)別顏色時(shí)要用的時(shí)間基準(zhǔn)。識(shí)別顏色就是根據(jù)時(shí)間基準(zhǔn)計(jì)算脈沖數(shù)。其具體過(guò)程為:打開(kāi)LED燈;選擇輸出比例因子(與白平衡時(shí)相同);依次選定不同的顏色濾波器,顏色濾波器的選通時(shí)間與在白平衡處理過(guò)程中獲得的相應(yīng)通道的時(shí)間基準(zhǔn)相同;根據(jù)得到的脈沖數(shù)來(lái)識(shí)別顏色。

TCS230顏色傳感器與Arduino主控制器的接口連接見(jiàn)表2.4。

表2.4 TCS230顏色傳感器與Arduino主控制器的接口連接

在RGB模式下,某一種色彩是由紅、藍(lán)、綠三原色組成的。該色彩的三原色會(huì)在某個(gè)范圍內(nèi)變化,適當(dāng)擴(kuò)大三原色的變化范圍,測(cè)試色彩就不會(huì)出錯(cuò)。為了防止出錯(cuò),可設(shè)置出錯(cuò)條件,在出錯(cuò)的情況下再進(jìn)行三原色值的調(diào)整,直到測(cè)試出正確的色彩。TCS230顏色傳感器相應(yīng)的代碼設(shè)置、顏色識(shí)別驅(qū)動(dòng)代碼為

主函數(shù)先調(diào)用白平衡函數(shù)可以得到三個(gè)基準(zhǔn)顏色濾波器的時(shí)間基準(zhǔn),再通過(guò)顏色測(cè)試函數(shù)Robot checkColor()進(jìn)行測(cè)試時(shí)間值對(duì)比,可得出相應(yīng)顏色的時(shí)間值,根據(jù)這些顏色的三原色范圍值,即可快速測(cè)出色塊的顏色。

小提示

TCS230顏色傳感器安裝后,與色塊的距離是固定的,是不可以改變的,否則所調(diào)節(jié)的白平衡不對(duì),識(shí)別的顏色也會(huì)出錯(cuò)。如果使用上述程序代碼的顏色判斷函數(shù),則TCS230顏色傳感器的最佳安裝高度為27mm。

主站蜘蛛池模板: 日喀则市| 克东县| 昂仁县| 宜宾市| 东平县| 武清区| 澄城县| 南召县| 卢湾区| 马关县| 乌拉特前旗| 罗城| 改则县| 西青区| 武胜县| 尚志市| 彭水| 辽源市| 华池县| 靖宇县| 灯塔市| 镇江市| 兰考县| 定安县| 加查县| 红河县| 武定县| 日照市| 肇东市| 江华| 阜城县| 任丘市| 平定县| 闽清县| 长岭县| 津南区| 犍为县| 丽水市| 赣州市| 望奎县| 巩留县|