基于arduino的分揀小車設(shè)計(jì)【含三維圖紙、說明書】
基于arduino的分揀小車設(shè)計(jì)【含三維圖紙、說明書】,含三維圖紙、說明書,基于,arduino,分揀,小車,設(shè)計(jì),三維,圖紙,說明書,仿單
摘 要
本論文主要介紹基于Arduino 平臺設(shè)計(jì)的能夠用于小型物流分揀運(yùn)輸且可以和手機(jī)設(shè)備進(jìn)行藍(lán)牙通訊的小車的設(shè)計(jì)過程。在論文中先后闡述了該設(shè)計(jì)的背景和在國內(nèi)外的研究狀況,通過系統(tǒng)思路設(shè)定,經(jīng)分析當(dāng)前主流控制板的優(yōu)缺點(diǎn)后決定使用Arduino UNO控制板對系統(tǒng)進(jìn)行控制,運(yùn)用Solidworks軟件完成分揀小車的三維建模及各零件的裝配過程。為了實(shí)現(xiàn)分揀小車的預(yù)期功能,選擇超聲波傳感器作為距離判斷的元件,通過L298N電機(jī)驅(qū)動模塊控制小車的轉(zhuǎn)向和轉(zhuǎn)速,依據(jù)電阻電橋的特性且結(jié)合HX711 A/D轉(zhuǎn)換芯片完成電子秤的設(shè)計(jì),對分揀小車上承載物件的信息通過LCD12864顯示屏呈現(xiàn)。此外根據(jù)Arduino平臺和 Android平臺耦合性強(qiáng)的特性,選用藍(lán)牙模塊實(shí)現(xiàn)Android手機(jī)設(shè)備和搭載Arduino控制板的分揀小車之間的通信。完成電路連接后初步編寫程序流程框圖后用IDE實(shí)現(xiàn)對分揀小車的軟件控制,經(jīng)過程序編譯、上傳,利用IDE串口監(jiān)視器的便利性和分揀小車的實(shí)物模型完成整體程序的調(diào)試后,本論文設(shè)計(jì)的分揀小車能夠?qū)崿F(xiàn)自動搬運(yùn)、稱重、顯示、尋軌跡等預(yù)期功能。
關(guān)鍵詞:分揀;Arduino;藍(lán)牙通信;循跡
I
ABSTRACT
This dissertation mainly introduces the design process of a car designed based on the Arduino platform that can be used for small-scale logistics sorting and transportation and can communicate with mobile devices via Bluetooth. In the thesis, the background of the design and the research status at home and abroad were explained successively. After the analysis of the current advantages and disadvantages of the mainstream control, the design of the system was controlled using the Arduino UNO control board and the sorting was performed using Solidworks software. The three-dimensional modeling of the car and the assembly process of each part. In order to achieve the desired function of sorting trolleys, ultrasonic sensors are selected as distance-determining components. The L298N motor drive module is used to control the steering and rotation speed of the car, and the electronic scale is designed based on the characteristics of the resistance bridge and combined with the HX711 A/D conversion chip. The information on the carrying objects on the sorting cart is presented through the LCD12864 display. In addition, according to the strong coupling between the Arduino platform and the Android platform, the Bluetooth module is used to implement communication between the Android mobile device and the sorting cart equipped with the Arduino control panel. After the circuit connection is completed, the program flow diagram is preliminarily written to use the IDE to implement software control of the sorting cart. After the program is compiled and uploaded, the convenience of the IDE serial monitor and the physical model of the sorting cart are used to complete debugging of the entire program. The sorting cart designed by the dissertation can realize the expected functions such as automatic handling, weighing, display, and tracking.
Keywords: Sorting; Arduino; Bluetooth communication; tracking
目 錄
摘 要 I
ABSTRACT II
1 緒論 1
1.1設(shè)計(jì)研究的背景及意義 1
1.2國內(nèi)外發(fā)展?fàn)顩r 1
2 系統(tǒng)整體設(shè)計(jì) 4
2.1系統(tǒng)思路設(shè)計(jì) 4
2.2控制芯片的選擇 4
2.3 Arduino相關(guān)介紹及型號選擇 5
2.4分揀小車的三維建模 6
3 小車硬件介紹 10
3.1 Arduino UNO 10
3.2超聲波模塊 11
3.3電機(jī)驅(qū)動模塊(L293N) 12
3.4 5KG壓力傳感器和HX711模塊 13
3.5 LCD 12864顯示屏 17
3.6 藍(lán)牙模塊 19
3.7擺臂舵機(jī) 20
4 分揀小車程序編寫 21
4.1分揀小車整體控制流程 21
4.2避障功能的流程框圖 21
4.3循跡功能的流程框圖 22
4.4稱重功能的流程框圖 23
4.5 LCD屏顯示功能的流程框圖 24
4.6藍(lán)牙通信功能的流程框圖 25
4.7舵機(jī)擺臂功能的流程框圖 25
5 系統(tǒng)調(diào)試 26
5.1串口監(jiān)視器使用 26
5.2 藍(lán)牙模塊AT設(shè)置 26
5.3調(diào)試中遇到的問題 27
6 總結(jié) 28
參考文獻(xiàn) 29
致 謝 30
附錄1:外文譯文 31
附錄2:外文原文 36
附錄3:系統(tǒng)程序 41
IV
基于arduino的分揀小車設(shè)計(jì)
1 緒論
1.1設(shè)計(jì)研究的背景及意義
自動分揀設(shè)備和系統(tǒng)的概念首先是從美國、日本等發(fā)達(dá)國家在二戰(zhàn)后出現(xiàn)的,之后在國外各大物流中心被廣泛運(yùn)用。自動分揀系統(tǒng)的作業(yè)過程可以簡單地描述如下:物流中心每天需要接收成百上千家供應(yīng)商或貨主通過各種運(yùn)輸工具送來的成千上萬種商品,在在最短的時(shí)間內(nèi)將這些商品卸下并按商品品種、貨主、儲位或發(fā)送地點(diǎn)進(jìn)行快速準(zhǔn)確的分類,將這些商品運(yùn)送到指定地點(diǎn)(如指定的貨架、加工區(qū)域、出貨站臺等),同時(shí),當(dāng)供應(yīng)商或貨主通知物流中心按配送指示發(fā)貨時(shí),自動分揀系統(tǒng)在最短時(shí)間內(nèi)從龐大的高層貨架存儲系統(tǒng)中準(zhǔn)確找到要出庫的商品所在位置,并按所需數(shù)量出庫,將從不同儲位上取出的不同數(shù)量的商品按配送進(jìn)點(diǎn)的不同運(yùn)送到不同的理貨區(qū)域或配送站臺集中,以便裝車配送[1]。
2016 年以來,我國的快遞市場迅猛發(fā)展,每天各快遞公司需要接收和分揀的郵件數(shù)量不計(jì)其數(shù)。尤其是當(dāng)各大購物網(wǎng)站促銷時(shí),更大大增加了對物流行業(yè)能力的考驗(yàn)。一方面是用工慌的問題依然沒有得到解決,面對郵件多工作人員少的情況,依舊在采用著傳統(tǒng)的物流分揀方案。第二方面是郵件數(shù)量多且繁雜的問題,導(dǎo)致分揀效率低且容易丟失貨物。如今物流行業(yè)一般采用三種分揀方案,第一種是采用全自動化設(shè)備進(jìn)行分揀,雖然效率極高,但同時(shí)企業(yè)成本也大大提高,不能適用于全部的物流分揀中心。第二種是采用傳送膠帶機(jī)的方式,不僅分揀線長且效率較低,但是具有柔性強(qiáng),占用場地小等有點(diǎn)。其次是純?nèi)斯みM(jìn)行分揀,這種方案效率極低,所以運(yùn)用的場合較少。
降低物流成本是物流分揀、運(yùn)輸、包裝中的核心問題,只有降低物流總成本,才能提高企業(yè)和社會經(jīng)濟(jì)效益的目的。改變傳統(tǒng)的物流分揀方式,引進(jìn)全新的分揀設(shè)備,加快分揀效率的同時(shí)降低分揀失誤的概率。設(shè)計(jì)一套自動化程度高、成本適中且效率高的分揀設(shè)備和系統(tǒng)來提高作業(yè)設(shè)備的柔性,能符合不同規(guī)模的分揀中心的需求,這是一件迫在眉睫的事情。
1.2國內(nèi)外發(fā)展?fàn)顩r
從國內(nèi)外近幾年物流自動分揀系統(tǒng)的發(fā)展?fàn)顩r來看,國內(nèi)采用自動化分揀設(shè)備的時(shí)間相對于國外較晚且設(shè)備的自動化程度不及國外高,但是其運(yùn)用的方面還是比較廣泛。在國外自動化分揀系統(tǒng)出現(xiàn)在各個(gè)領(lǐng)域,大大提高了整個(gè)物流行業(yè)的發(fā)展水平。尤其是美國、日本和一些歐洲地區(qū)的發(fā)達(dá)國家,自動化分揀設(shè)備的自動化程度越來越高,因?yàn)槊總€(gè)國家的貨物都要進(jìn)行運(yùn)送,包括國內(nèi)貿(mào)易和進(jìn)出口貿(mào)易。物流運(yùn)輸?shù)男室矝Q定著一個(gè)國家的經(jīng)濟(jì)發(fā)展?fàn)顩r,所以物流自動分揀系統(tǒng)已經(jīng)是國家不可缺少的一部分?,F(xiàn)如今的自動分揀系統(tǒng)主要運(yùn)用在各大中型物流集散地、貨物中心、流通中心、郵局分揀等場所,其系統(tǒng)都會隨著交流自動控制技術(shù)的發(fā)展而進(jìn)行技術(shù)更新,特別是在電子技術(shù)迅猛發(fā)展和計(jì)算機(jī)被廣泛使用的時(shí)代。自動化分揀系統(tǒng)的概念雖然出現(xiàn)的早,但在20世紀(jì)70年代才被引入中國,最初運(yùn)用在郵政系統(tǒng)方面。之后被用于其他運(yùn)輸領(lǐng)域并在長期的實(shí)踐中不斷技術(shù)創(chuàng)新。例如,郵電部相關(guān)部門相繼開發(fā)和研制出具國際水平的CORE-NT物料自動分揀系統(tǒng),性價(jià)比很高的扁平郵件高速物料自動分揀系統(tǒng);上海郵政通用技術(shù)公司研制成功了速遞郵件網(wǎng)絡(luò)化物料自動分揀系統(tǒng)等。
1.2.1國內(nèi)發(fā)展?fàn)顩r
在物流中心分揀系統(tǒng)的研究中,主要有三方面內(nèi)容。一方面是物流分揀設(shè)備和控制技術(shù)的研究,如用于郵政系統(tǒng)的交叉帶式分揀機(jī)研究、應(yīng)用于煙草行業(yè)的通道式分揀機(jī)研究等等。第二方面是對物流中心存儲策略和分揀路徑優(yōu)化的研究,如用BOM表進(jìn)行倉儲位置優(yōu)化的研究,用蟻群算法實(shí)現(xiàn)分揀路徑的優(yōu)化等等。第三方面是對分揀作業(yè)數(shù)據(jù)信息與分析決策問題,華南理工大學(xué)、中國人民大學(xué)、華中科技大學(xué)、浙江大學(xué)等國內(nèi)高等院校的學(xué)者都進(jìn)行了定性與定量的研究。如馬士華、文堅(jiān)的分批策略根據(jù)時(shí)間延遲思想,綜合考慮了揀貨作業(yè)環(huán)節(jié)和分揀包裝環(huán)節(jié)的工作效率,提出了一種消除因時(shí)窗分批不平衡而導(dǎo)致的等待時(shí)問和閑忙不均的動態(tài)時(shí)窗設(shè)計(jì)與判斷方法,從而保證分揀系統(tǒng)的連續(xù)性和均衡性。李凱就卷煙分揀的幾種優(yōu)化模型展開了較深入的探討,并以仿真的手段進(jìn)行了驗(yàn)證。朱巖就卷煙分揀機(jī)的控制策略和不同設(shè)備參數(shù)下的分揀系統(tǒng)整體性能進(jìn)行了研究,并通過仿真程序模擬驗(yàn)[2]。 如今,國際競爭日益加劇,為了發(fā)展我國物流業(yè),國內(nèi)的許多企業(yè)和政府部門也在做更大的努力,也已取得了一定的成效。例如,郵電部相關(guān)部門相繼開發(fā)和研制出具國際水平的CORE-NT物料自動分揀系統(tǒng),性價(jià)比很高的扁平郵件高速物料自動分揀系統(tǒng);上海郵政通用技術(shù)設(shè)備公司研制成功了速遞郵件網(wǎng)絡(luò)化物料自動分揀系統(tǒng)等。郵政系統(tǒng)還推出了新的信封標(biāo)準(zhǔn)以更好的配合自動化的信件物料自動分揀系統(tǒng)。太原剛玉倉儲設(shè)備公司和貴陽普天通信機(jī)械廠已設(shè)計(jì)生產(chǎn)貨架電子標(biāo)簽揀選系統(tǒng)、小車式數(shù)字顯示揀選系統(tǒng)、郵件自動分揀系統(tǒng)等;珠海普天慧科信息技術(shù)有限公司研發(fā)出PTL(Pick-to-?light&Put-to-1ight)電子標(biāo)簽揀選系統(tǒng),除具備電子標(biāo)簽揀選系統(tǒng)的一般優(yōu)點(diǎn)之外,還具有彈性控制揀貨作業(yè)流程、即時(shí)現(xiàn)場監(jiān)控緊急訂單處理和缺貨通知等強(qiáng)大的功能。
雖然在郵政系統(tǒng)外的其它行業(yè),國內(nèi)對物料自動分揀系統(tǒng)的使用還非常少,但有關(guān)部門和企業(yè)正在為此做出不懈的努力??梢钥隙?隨著物流大壞境的逐步改善物料自動分揀系統(tǒng)在我國流通領(lǐng)域一定會大有用武之地。
1.2.2國外發(fā)展?fàn)顩r
以美國、日本及歐洲為代表的發(fā)達(dá)國家,在分揀系統(tǒng)的應(yīng)用上呈現(xiàn)出自動化程度越來越高的特點(diǎn)。自動分揀系統(tǒng)已成為發(fā)達(dá)國家大中型物流中心、配送中心或流通中心不可缺少的一部分。在分揀系統(tǒng)等物流中心子系統(tǒng)規(guī)劃設(shè)計(jì)中,各發(fā)達(dá)國家的規(guī)劃原則有很大的差異。日本的物流中心大都規(guī)模適中,采用先進(jìn)的自動分揀系統(tǒng)和無線通訊設(shè)備,美國主要采用立體倉庫以節(jié)約地價(jià)支出,但分揀等設(shè)備大都采用機(jī)械化或半自動化,不盲目采用全自動設(shè)備。他們共同的特點(diǎn)是均實(shí)現(xiàn)較成熟的電腦網(wǎng)絡(luò)化管理,保證了配送的及時(shí)準(zhǔn)確性,節(jié)約勞動力成本。國外的學(xué)者專家如Goetschalckx和?Ratliff提出利用動態(tài)規(guī)劃法來求解寬通道內(nèi)的揀貨路徑問題,?Roodbergen和?Koster研究在多橫向通道倉儲系統(tǒng)環(huán)境下,針對各種分揀策略比較在不同通道數(shù)目、不同貨物品項(xiàng)及不同通道寬度的揀貨路徑的問題,?ElizabethJewkes等對商品儲存位置等對分揀的影響展開研究, Loon c.Tang等論述了分批與存儲分配策略對分揀的影響,Richard
L. Daniels等對倉庫訂單分揀的研究,M.I. Johansson對貨物存儲位置的分配對減少分揀時(shí)間的作用進(jìn)行了研究,美國麻省理工院Dimitr1s. Bertsimas和Robert.M. Freund及 W.L.Winston,Jeremy.Shapiro,Lacksonen?T).Whitley等學(xué)者也做了相關(guān)的研究工作[2]。
就目前來講,國外的自動分揀系統(tǒng)發(fā)展極為迅速。如:?Auchan,Mark將分揀系統(tǒng)歸納為5個(gè)子系統(tǒng):訂單挑選、感應(yīng)、合并前聚集、合并、搬運(yùn)分揀,以此使訂單與不同傳送帶有機(jī)地的結(jié)合起來,形成一個(gè)高效的物料分揀系統(tǒng)。Mase1D.T研究了如今關(guān)于評估環(huán)形物料分揀系統(tǒng)的分揀時(shí)間的解析公式,這個(gè)類型的分揀系統(tǒng)主要是用來分揀固定形狀的貨物;?Norman?Saene?jr從配送中心里物料搬運(yùn)這個(gè)方面研究了如何構(gòu)建物料分揀系統(tǒng)傳送帶、如何搭配傳送帶以及如何構(gòu)建一個(gè)良好的物流分揀搬運(yùn)系統(tǒng)。
2 系統(tǒng)整體設(shè)計(jì)
2.1系統(tǒng)思路設(shè)計(jì)
本設(shè)計(jì)題目為基于Arduino的分揀小車設(shè)計(jì),目的在于通過藍(lán)牙通串口方式連接Arduino和Android兩平臺之間的通信。操作者只需將手機(jī)和小車上的藍(lán)牙接通,即可在Android手機(jī)上操控小車。每一個(gè)物流集散地都對應(yīng)著一個(gè)數(shù)字,例如小型物件的目的地為北京,而在系統(tǒng)程序中北京對應(yīng)的串口數(shù)字為2,操作者將物件放至小車上并在手機(jī)上按下“2”后,小車會自動稱重,在LCD屏幕上顯示出物件的重量和運(yùn)輸?shù)馁M(fèi)用及所要到達(dá)的集散地。稱重結(jié)束后小車會自動按照運(yùn)輸路徑將物件送至對應(yīng)貨箱中,再原路返回。在運(yùn)輸過程中可能會遇上其他小車或著障礙物出現(xiàn)在前方,這時(shí)小車需停止運(yùn)輸直至前方檢測不到障礙物,這就是系統(tǒng)設(shè)計(jì)中一套完整的運(yùn)輸過程和小車運(yùn)行狀態(tài),分揀小車的整體設(shè)計(jì)框架如下所示。
藍(lán)牙模塊
舵機(jī)
超聲波傳感器
控制板
電機(jī)驅(qū)動
電機(jī)
顯示屏
稱重芯片
2.2控制芯片的選擇
如今在簡單的軟件編程方面,一般主流的有Arduino、樹莓派等軟硬件開源的控制芯片,另外就是以C51和STM32為代表的控制芯片。這幾類單片機(jī)都會經(jīng)常用在不同的場合,每一款都有各自的優(yōu)缺點(diǎn),下面將簡單介紹一下。
Arduino是一款比較容易上手的控制芯片,備受電子愛好初學(xué)者的青睞。由于軟硬件開源的原因,經(jīng)常被用來做一些有創(chuàng)意的物品,比如智能澆花系統(tǒng)、藍(lán)牙小車、避障小車等。在軟件編程方面,只需將現(xiàn)成的庫文件放在Arduino的Libraries文件夾中即可,編程時(shí)只需調(diào)用即可,無需了解庫文件是怎么寫的。因此Arduino適合電子知識功底比較薄弱的學(xué)者使用,編寫程序的過程也比較簡單且能快速學(xué)會使用編程軟件。
樹莓派是一款比Arduino性能更強(qiáng)大的控制板,同樣它的許多軟硬件都是開源的。它存儲數(shù)據(jù)的空間較大,且運(yùn)算速度比較快,性能比較優(yōu)越。但是它的價(jià)格比較昂貴,開發(fā)成本比較高,讓一些想接觸它的初學(xué)者望而卻步。
C51和STM32這一類的單片機(jī)較Arduino和樹莓派開源程度沒那么高,許多工程文件和驅(qū)動代碼需要自己寫,甚至有些時(shí)候使用時(shí)需要把驅(qū)動代碼從集成的工程文件中剝離出來,并且在硬件方面需要自己選型、設(shè)計(jì)PCB板、焊接、調(diào)試硬件。但此類單片機(jī)的開發(fā)成本是最低的雖然對開發(fā)者的要求高于前二者。
因此,在考慮開發(fā)成本和難易程度及對設(shè)計(jì)內(nèi)容的匹配程度來看,Arduino是最合適選擇。
2.3 Arduino相關(guān)介紹及型號選擇
Arduino起初是2005年由意大利的一位老師老師Massimo Banzi和到西班牙的芯片工程師David Cuartielles共同創(chuàng)作出的項(xiàng)目,之后國外運(yùn)用它的人越來越多。此外還得益于Arduino的開放性、易用性、交流性等幾大特點(diǎn),電子愛好者可以在網(wǎng)上找到其他作者作品的開源硬件及軟件,并且可以隨意修改使用,在國內(nèi)還有專門的交流網(wǎng)站“Arduino中文社區(qū)”。
Arduino是一個(gè)以ATmega單片機(jī)為基礎(chǔ)的控制板,整體還包括穩(wěn)壓電路、A/D轉(zhuǎn)換器、I/O等。和其他控制平臺一樣,Arduino有許多的型號,每一個(gè)都有不同的I/O口和其他接口,對應(yīng)著不同的功能和場合。其中運(yùn)用最廣泛的就是Arduino UNO(如圖2.1)。
圖2.1 UNO控制板
其次是比UNO接口多,體積大且價(jià)格較高的Mega2560(如圖2.2)
圖2.2 Mega2560控制板
還有有兩款比UNO體積小,但接口沒有那么多的Mini(如圖2.3)和Nano(如圖2.4)
圖2.3 Mini控制板 圖2.4 Nano控制板
Arduino UNO 相對于其他Arduino控制板價(jià)格較為便宜,且I/O口的個(gè)數(shù)適中,所以UNO是用來做搭載本設(shè)計(jì)的最好選擇。
系統(tǒng)整體除了需要Arduino UNO芯片控制以外,還需要其他的硬件來支撐分揀小車的完成。其中藍(lán)牙藍(lán)牙模塊是用來連接手機(jī)和小車之間的通訊橋梁,在稱重環(huán)節(jié)需要壓力傳感器和HX711芯片組成的稱重模塊對物件的重量進(jìn)行測量,測量出的結(jié)果需要LCD屏幕將信息顯示出來。驅(qū)動電機(jī)則要靠驅(qū)動模塊來完成,在小車行走中依靠超聲波傳感器進(jìn)行避障,在小車到達(dá)目的地需要把物件揚(yáng)起時(shí)用舵機(jī)來執(zhí)行此動作。
2.4分揀小車的三維建模
(1)設(shè)計(jì)底盤尺寸,預(yù)留減速電機(jī)支座孔位、車身框架孔位、平行梁安裝孔位、控制板和電機(jī)驅(qū)動板安裝孔位及走線孔等如圖2.5。
圖2.5 小車底盤
(2)安裝電機(jī)、電機(jī)支架及平行梁如圖2.6 。
圖2.6 安裝底盤后效果
(3)設(shè)計(jì)小車整體框架如圖2.7
圖2.7 小車框架
(4)設(shè)計(jì)小車包圍如圖2.8、2.9、2.10、2.11
圖2.8車前板 圖2.9小車后板
圖2.10小車左板 圖2.11小車右板
(5)設(shè)計(jì)顯示屏支架(如圖2.12)、舵機(jī)支架(如圖2.13)和小車卸貨翻板(如圖2.14)
圖2.12顯示屏支架 圖2.13 舵機(jī)支架
圖2.14 小車卸貨翻板
(6)對小車進(jìn)行整體三維裝配,效果圖如圖2.15、2.16
圖2.15小車前側(cè)效果圖 圖2.16小車后側(cè)效果圖
(7)安裝舵機(jī),確定舵機(jī)擺臂的長度(如圖2.17)
圖2.17舵機(jī)安裝示意圖
根據(jù)測量數(shù)據(jù),將擺臂的長度設(shè)計(jì)為67mm并進(jìn)行安裝如圖2.18。
圖2.18舵機(jī)擺臂安裝
3 小車硬件介紹
3.1 Arduino UNO
Arduino控制板是以ATmega AVR單片機(jī)為最小系統(tǒng)開發(fā)的,而ATmega單片機(jī)又分為很多種類,但它們的特性都有以下幾條:
(1)內(nèi)置閃存,用于存放代碼
(2)靜態(tài)隨機(jī)訪問存儲器(SRAM)用于儲存運(yùn)行時(shí)的數(shù)據(jù),斷電丟失
(3)可擦除只讀存儲器(EEPROM)用于長期保存數(shù)據(jù),斷電不丟失
(4)有數(shù)字I/O口
(5)A/D轉(zhuǎn)換器(ADC),可把模擬輸入信號轉(zhuǎn)變?yōu)閿?shù)字輸入信號
而UNO采用的是ATmega328微控制器,閃存(Flash)為32KB,SRAM為2KB,EEPROM為1KB,雖然存儲空間比較小,但應(yīng)付簡單的程序存儲還是足夠的。UNO有14個(gè)數(shù)字I/O口(D0~D13),用于數(shù)字信號的輸入輸出,其中有6個(gè)PWM口,可輸出模擬信號,調(diào)節(jié)電機(jī)轉(zhuǎn)速等;另外有6個(gè)模擬信號輸入口(A0~A5),也可以做數(shù)字信號的輸入輸出。在6個(gè)模擬信號輸入口中有兩個(gè)接口為IIC通信的接口(SCL、SDA),分別對應(yīng)著A5和A4,控制板的接口位置可見圖3.1。
圖3.1 Arduino UNO 控制板接口分布
3.2超聲波模塊
超聲波傳感器模塊上面通常有兩個(gè)超聲波元器件,一個(gè)用于發(fā)射,一個(gè)用于接收,如圖3.2 。
圖3.2 超聲波模塊
一般常見的超聲波模塊是收、發(fā)分離的超聲波模塊,電路板上有四個(gè)引腳,分別是VCC(正電源)、Trig(觸法)、Echo(回應(yīng))和GND(接地)。根據(jù)廠商提供的技術(shù)文檔指出,此模塊的主要參數(shù)如下。
(1)工作電壓與電流:5V、15mA
(2)感應(yīng)距離:2-400cm
(3)感應(yīng)角度:不大于15°
(4)被測物的面積不要小于500cm2并且盡量平整
在超聲波模塊的觸發(fā)腳位輸入10微秒以上的高電位,即可發(fā)射超聲波,發(fā)射超聲波之后,與接收到回傳的超聲波之前,響應(yīng)腳位將呈現(xiàn)高電位,觸發(fā)腳和接收腳的電位變化可見圖3.3。因此,程序可從“響應(yīng)”腳位的高電位脈沖持續(xù)時(shí)間,換算出被測物體的距離。
圖3.3 觸發(fā)腳與接受腳電位變化
3.3電機(jī)驅(qū)動模塊(L293N)
3.3.1 電機(jī)驅(qū)動選擇
由于Arduino的微處理輸出功率有限,無法直接驅(qū)動電機(jī)等大型負(fù)載,所以需要其他的驅(qū)動裝置進(jìn)行驅(qū)動。其中晶體管就是最基本的驅(qū)動元件,但它只能通過PWM調(diào)節(jié)電機(jī)轉(zhuǎn)速,若需調(diào)節(jié)電機(jī)轉(zhuǎn)向則需要其他的電機(jī)驅(qū)動模塊。如ULN2003A、754410、L293D、L298N等,L293D和L298N相對于其他驅(qū)動使用較為簡便,且容易買到,但L293D是兼容Arduino開發(fā)的,會占用許多I/O口,因此本設(shè)計(jì)采用L298N進(jìn)行實(shí)驗(yàn)。
3.3.2 H橋式電機(jī)控制電路介紹
電機(jī)驅(qū)動模塊中都有若干個(gè)H橋電路,可以控制電機(jī)的正轉(zhuǎn)與反轉(zhuǎn),電路中有4個(gè)三極管,其作用類似于開關(guān)。它連接著一路電機(jī)的A、B兩個(gè)輸入口,只有當(dāng)A、B兩個(gè)輸入呈相反電位時(shí)電機(jī)才會轉(zhuǎn)動,兩輸入口電位顛倒,引起電流方向變化,電機(jī)又進(jìn)行反轉(zhuǎn),簡單的電路示意圖可見圖3.4 。
圖3.4 H橋電路示意圖
3.3.3 L298N電機(jī)驅(qū)動介紹
L298N電機(jī)驅(qū)動模塊中內(nèi)置2個(gè)H橋控制電路,可以控制兩路直流電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向,其引腳說明如圖3.5。
圖3.5 L298N 引腳圖
L298N電機(jī)驅(qū)動模塊有兩種供電方式,一種是從Arduino控制板上取電,需要正向給電壓的腳與控制板上的vin口相連接,輸入的電壓為5V;而另外一種可以采用干電池或鋰電池等外部電源對驅(qū)動板進(jìn)行供電,但最大的供電電壓不要超過24V。這兩種方式都能驅(qū)動電機(jī),但輸出的功率有所不同,外部電壓供電的方式可以帶動更大的電機(jī)負(fù)載。
在編程時(shí)若想控制一路直流電機(jī)的正反轉(zhuǎn)和轉(zhuǎn)速,需對電機(jī)驅(qū)動的3個(gè)引腳進(jìn)行狀態(tài)控制,引腳輸入A和輸入可以控制電機(jī)的轉(zhuǎn)向,而使能EN引腳只能控制電機(jī)轉(zhuǎn)速。三個(gè)狀態(tài)參數(shù)決定著電機(jī)的運(yùn)行狀況,參數(shù)及電機(jī)運(yùn)行狀況如下表1
表1 電機(jī)轉(zhuǎn)向與3個(gè)引腳電位關(guān)系
使能
輸入A
輸入B
電機(jī)運(yùn)行狀況
高
高
低
正轉(zhuǎn)
高
低
高
反轉(zhuǎn)
高
高
高
電機(jī)停止
高
低
低
電機(jī)停止
低
電機(jī)不轉(zhuǎn)
所以只有當(dāng)在電機(jī)驅(qū)動模塊使能腳上輸入高電位,且兩個(gè)輸入引腳存在高低電位差時(shí),電機(jī)才能轉(zhuǎn)動。當(dāng)兩個(gè)輸入引腳的高低電位交換時(shí),導(dǎo)致驅(qū)動中的電流方向變換,使電機(jī)反向轉(zhuǎn)動。
3.4 5KG壓力傳感器和HX711模塊
設(shè)計(jì)中采用5KG壓力傳感器和HX711 24bit A/D芯片的組合來測量物件的重量。
3.4.1 壓力傳感器原理
壓力傳感器就是《工程測試技術(shù)》中提及的電阻直流電橋應(yīng)用的實(shí)例,所謂電橋就是將電阻、電感、電容等物理量很小的數(shù)值變化量變換為電壓或電流等容易測量且直觀的數(shù)值變化量,再將其數(shù)據(jù)信息放大后可直接測量出對應(yīng)的數(shù)值。
在設(shè)計(jì)中感知物體重量的元件為平行梁稱重傳感器(如圖3.6),由于它測量精準(zhǔn),在制作生產(chǎn)中較為容易,抗壓能力比其他傳感器強(qiáng),所以通常用來作為測量重物的傳感器。
圖3.6 平行梁稱重傳感器
平行梁上下各貼有兩個(gè)電阻應(yīng)變片,阻值分別為R1=R2=R3=R4=1KΩ,傳感器受力時(shí)各應(yīng)變片工作狀態(tài)如圖3.7。
圖3.7 傳感器受力時(shí)各應(yīng)變片狀態(tài)
電阻應(yīng)變片的阻值隨著彈性元件上壓力的變化而變化,當(dāng)平行梁受壓力時(shí)梁上兩個(gè)應(yīng)變片受拉力,梁下兩個(gè)應(yīng)變片受壓力。根據(jù)電阻的計(jì)算公式可知,當(dāng)材料的的長度及橫截面積發(fā)生變化時(shí),阻值也產(chǎn)生變化,所以輸出的電壓也是變化的(電橋中的連線可見圖3.8)。因此可以根據(jù)電壓的變化來計(jì)算出阻值變化,進(jìn)一步推算出平行梁上施加的力。
圖3.8 傳感器電橋
3.4.2 HX711模塊介紹
依據(jù)電阻橋的特點(diǎn),電阻的變化和輸出電壓的關(guān)系,而輸出電壓=輸入電壓×靈敏度。輸入電壓為5V,靈敏度為1mV/V,則滿量程時(shí)輸出電壓為5mV。這就說明當(dāng)測量5Kg的重物時(shí),輸出的電壓為5mV。由于輸出的電壓太小,用普通的方法是難以測出來的,所以需要用能測量傳感器輸出電壓值的HX711芯片(如圖3.9),芯片內(nèi)包含著一個(gè)可以放大電壓信號的電路和一個(gè)進(jìn)行數(shù)模轉(zhuǎn)換的電路,它可以把微小電壓值轉(zhuǎn)換為數(shù)字量。
圖3.9 HX711芯片
HX711是一塊高精度的24位A/D轉(zhuǎn)換的芯片,它內(nèi)部包含了穩(wěn)壓電路,時(shí)針振蕩器電路等,可以抵抗外部的干擾,對系統(tǒng)輸入的數(shù)據(jù)處理速度比較快。就是因?yàn)樾酒w積小且把許多電路都集成在上面,降低了在制造方面的成本,提高了系統(tǒng)的穩(wěn)定性和可靠性。
在控制方面也十分簡便,只需要控制板發(fā)出信號控制芯片的管腳即可實(shí)現(xiàn)對芯片的整體控制,無需按照通常對其他芯片一樣地對寄存器進(jìn)行編程操作。HX711芯片在選擇數(shù)據(jù)輸入通道時(shí)有兩通道可選擇,一個(gè)為A通道,一個(gè)為B通道。其中選擇A通道時(shí)數(shù)據(jù)的增益為128或64,當(dāng)增益為128時(shí)對應(yīng)的輸入電壓為±20mV,選擇64增益時(shí)所輸入的電壓為±40mV。而選擇B通道時(shí)數(shù)據(jù)的增益為32,對應(yīng)的輸入電壓為±80mV,一般情況下用它對系統(tǒng)的參數(shù)進(jìn)行檢測工作。如果在編程時(shí)選擇了A通道作為數(shù)據(jù)輸入口且數(shù)據(jù)的增益為128,那么芯片電路中對應(yīng)的最大輸入電壓為±20mV,經(jīng)過128增益后變?yōu)椤?.56V,再通過24bit A/D轉(zhuǎn)換器轉(zhuǎn)換為相對應(yīng)的數(shù)字量,其內(nèi)部圖如圖3.10和引腳說明如圖3.11 。
圖3.10 HX711內(nèi)部電路
圖3.11 HX711 芯片引腳
雖然HX711芯片的引腳數(shù)較多,但芯片與控制板進(jìn)行連接時(shí)只接出了4個(gè)引腳,分別為GND、VCC、DOUT和SCK引腳。說明若要連接Arduino與芯片之間的通訊不用考慮其他引腳的控制方法,只需通過控制DOUT、SCK引腳的高低電平狀態(tài)即可輸入和輸出數(shù)據(jù),決定輸入通道和增益。
當(dāng)引腳PD_SCK的狀態(tài)一直為低電平,而DOUT引腳的狀態(tài)一直為高電平時(shí),意味著芯片中A/D轉(zhuǎn)換器還沒有為數(shù)據(jù)轉(zhuǎn)換做好準(zhǔn)備。當(dāng)引腳DOUT的狀態(tài)改變時(shí),說明A/D轉(zhuǎn)換器已經(jīng)可以開始進(jìn)行數(shù)據(jù)轉(zhuǎn)換的工作, PD_SCK先輸入24個(gè)脈沖信號,相對應(yīng)著向DOUT引腳輸出24位數(shù)據(jù)。24個(gè)脈沖信號結(jié)束,意味著HX711把24位ADC值全部輸出。之后PD_SCK又輸入1-3個(gè)脈沖信號,也就是第25-27個(gè)時(shí)針脈沖,來選擇下一次ADC轉(zhuǎn)換的通道和增益(可見表2)。由此可說明PD_SCK引腳需要輸入25-27個(gè)時(shí)針脈沖信號。需要說明的是,在芯片斷電復(fù)位后默認(rèn)選擇A通道及增益為128,此后的通道及增益選擇由PD_SCK引腳輸入第25-27個(gè)時(shí)針脈沖決定。
表2 第25-27個(gè)脈沖與通道、增益的關(guān)系
PD_SCK時(shí)針脈沖數(shù)
輸入通道
增益選擇
25
A
128
26
B
32
27
A
64
3.4.3 A/D轉(zhuǎn)換過程:
(1)計(jì)算芯片提供電壓:
芯片與壓力傳感器連接時(shí)需連接4個(gè)引腳,其中兩個(gè)為A通道的正負(fù)端,另外兩個(gè)為E+和E-。傳感器中電橋的輸入的電壓由E+和E-兩端的電壓決定,稱為VAVDD。VAVDD的數(shù)值可通過VAVDD=VBG(R1+R2)/R2公式計(jì)算得出??芍猇BG=1.25V(模塊基準(zhǔn)電壓),其中R1、R2為芯片電路中的分壓電阻,阻值分別為20KΩ和8.2KΩ,所以通過計(jì)算VAVDD=4.3V。
(2)計(jì)算AD輸出最大值:
在5KG傳感器電路中可輸出的最大電壓=4.3×1mV=4.3mV,經(jīng)過芯片128增益放大后=550.4mV。再由24bitA/D轉(zhuǎn)化器進(jìn)行轉(zhuǎn)換后最大數(shù)值=550.4×224/4.3=2147483。此數(shù)據(jù)過于太大,存放在long數(shù)據(jù)類型中較占空間,所以將數(shù)據(jù)進(jìn)一步處理除以100后存放在int 數(shù)據(jù)類型中,因此最大的AD數(shù)值為21474。
(3)將重力值轉(zhuǎn)換為AD數(shù)值:
假設(shè)物體為A Kg,輸出的AD數(shù)值為y
由于物體的重量與輸出的電壓具有正比的關(guān)系,所以測量A Kg的重物時(shí)電橋所產(chǎn)生的電壓=A×4.3/5mV=0.86AmV。
經(jīng)128增益后輸出電壓=0.86A×128=110.08mV
輸出電壓經(jīng)過24bit A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換后輸出數(shù)值=110.08×224/4.3=429496.7296A
所以y=429496.7296A
A=y/429.4967296 g
3.5 LCD 12864顯示屏
由于普通的LCD屏與Arduino控制板的接口需要6個(gè)接口且Arduino UNO 的數(shù)字信號I/O口的數(shù)量有限,大部分I/O口還得分配給其他硬件連接使用。所以設(shè)計(jì)實(shí)驗(yàn)中采用帶IIC通信的LCD12864顯示屏顯示稱重的數(shù)據(jù)(如圖3.12),它不僅使用方便,只需3根接線就可與控制板的模擬信號輸入口連接,其余的引腳可以不用連接,不占用字
信號I/O口(引腳說明見表3)
圖3.12 LCD顯示屏及引腳示意圖
表3 LCD12864引腳說明
序號
符號
說明
1
A0
IIC地址信號A0
2
A1
IIC地址信號A1
3
BUSY
忙信號,高電位為忙,低電位為閑,忙狀態(tài)下不接收指令
4
SDA
IIC數(shù)據(jù)信號
5
SCL
IIC時(shí)針信號
6
RST
復(fù)位信號,低電平有效
7
VDD
電壓正
8
GND
電源地
各引腳與Arduino模擬信號口連接方式:
BUSY--------------A3
SDA---------------A4(SDA)
SCL---------------A5(SCL)
VDD---------------5V
GND---------------GND
3.6 藍(lán)牙模塊
HC-05藍(lán)牙模塊是一個(gè)即能發(fā)送數(shù)據(jù)也能接收數(shù)據(jù)的通訊模塊(見圖3.13),HC-05的使用方法比較簡單,這就意味著當(dāng)藍(lán)牙模塊與藍(lán)牙設(shè)備連接成功后無需考慮內(nèi)部的通信方式,直接把藍(lán)牙當(dāng)做串口來使用。當(dāng)藍(lán)牙模塊與手機(jī)設(shè)備連接成功時(shí)可共用一個(gè)數(shù)據(jù)傳輸串口通道,這就說明手機(jī)從藍(lán)牙串口通道發(fā)送數(shù)據(jù)后,藍(lán)牙模塊可從通道中接收手機(jī)設(shè)備發(fā)出的數(shù)據(jù)。
圖3.13 HC-05藍(lán)牙模塊
藍(lán)牙模塊上雖然有六個(gè)引腳,但配對和傳輸數(shù)據(jù)時(shí)只需將其中的4個(gè)引腳與Arduino控制板連接。4個(gè)引腳與Arduino控制板的接口連線如下:
RXD---------------TX(D1)
TXD---------------RX(D0)
VCC---------------5V
GND---------------GND
HC-05模塊參數(shù):
(1)輸入電壓:3.7V-6V,禁止超過7V
(2)接口電平3.3V,可以直接連接各種單片機(jī)
(3)可以通過AT命令切換主機(jī)和從機(jī)模式
(4)空曠地帶有效傳輸距離10米
3.7擺臂舵機(jī)
為了實(shí)現(xiàn)小車自動揚(yáng)起卸貨板進(jìn)行卸貨的功能,需安裝一個(gè)舵機(jī)來完成此動作,小車的卸貨能力與使用的舵機(jī)力矩有關(guān)。設(shè)計(jì)實(shí)驗(yàn)中用到的是可180度轉(zhuǎn)動的MG996R模擬舵機(jī)(如圖3.14),可提供13Kg·cm的力矩,轉(zhuǎn)動范圍為0度到180度,其角度可以通過PWM(脈沖寬度調(diào)制)的方法來進(jìn)行調(diào)節(jié)。
圖3.14 MG996R模擬舵機(jī)
舵機(jī)內(nèi)包括小型電機(jī)、減速齒輪和位置反饋電路,因此舵機(jī)也屬于伺服電機(jī)的范疇。舵機(jī)會隨著脈沖持續(xù)的時(shí)間來轉(zhuǎn)動,不同的脈沖時(shí)間對應(yīng)著不同的角度,比如說1ms的脈沖可以是舵機(jī)轉(zhuǎn)到一個(gè)極端,而2ms可以使舵機(jī)轉(zhuǎn)到另外一個(gè)極端。
控制一個(gè)舵機(jī)需要大約20ms的時(shí)鐘脈沖,而在全部的時(shí)鐘脈沖中只需一小部分的高電平就可控制舵機(jī)的旋轉(zhuǎn)角度,這個(gè)高電平的持續(xù)時(shí)間為0.5ms-2.5ms。設(shè)計(jì)中所用到的舵機(jī)轉(zhuǎn)動時(shí)的脈沖寬度變化及對應(yīng)的角度如圖3.15
圖3.15 脈沖寬度與舵機(jī)角度
4 分揀小車程序編寫
4.1分揀小車整體控制流程
根據(jù)小車系統(tǒng)整體設(shè)計(jì),將控制板與各硬件相連接,從手機(jī)設(shè)備到每個(gè)執(zhí)行元件之間的控制流程如下所示:
超聲波模塊
藍(lán)牙模塊
手機(jī)設(shè)備
發(fā)送 感知距離
數(shù)據(jù)
讀取數(shù)據(jù)
電機(jī)驅(qū)動
減速電機(jī)
控制板
發(fā)送指令 控制
AD值 轉(zhuǎn)化為
顯示屏
重 量 顯示信息
HX711模塊
壓力傳感器
感知電壓變化
4.2避障功能的流程框圖
讀出接收腳高電位的時(shí)間
避障過程中采用超聲波傳感器來檢測距離,若檢測到分揀小車前方有障礙物并且距離小于30cm,小車就執(zhí)行停車程序。在程序中使用定時(shí)中斷函數(shù)每隔100ms調(diào)用距離判斷函數(shù),框圖如下:
每隔100毫秒調(diào)用距離判斷程序
用時(shí)間等效換算為障礙物距離
定義變量distance
將距離存儲在變量中進(jìn)行判斷
超聲波模塊觸發(fā)腳高電平持續(xù)5微秒
若距離小于30厘米則分揀小車停止2秒
超聲波模塊接收腳寫入低電平
4.3循跡功能的流程框圖
簡單地可以把路徑簡化為直走、轉(zhuǎn)彎、直走、停、掉頭、直走、轉(zhuǎn)彎、直走等,每條路徑都是在執(zhí)行直走、轉(zhuǎn)彎的過程,只是對應(yīng)動作的時(shí)間不同。但執(zhí)行一條路徑時(shí)就要具體到控制每一路電機(jī)的高低電平差和使能量及動作持續(xù)時(shí)間。具體路徑控制流程圖如下:
直走動作執(zhí)行2秒
左路電機(jī)輸入腳A寫入高電平,左路電機(jī)輸入腳B寫入低電平
右路電機(jī)輸入腳A寫入高電平,右路電機(jī)輸入腳B寫入低電平
左路電機(jī)使能腳輸入速度值,右路電機(jī)使能腳輸入速度值
右轉(zhuǎn)動作執(zhí)行700毫秒(右路電機(jī)輸入A、B腳電位顛倒)
直走動作執(zhí)行2秒
停車5秒(兩路電機(jī)輸入腳輸入相同電位,使能輸入為0)
掉頭(等效于右轉(zhuǎn)動作持續(xù)1400毫秒)
直 走
左轉(zhuǎn)動作執(zhí)行700毫秒(左路路電機(jī)輸入A、B腳電位顛倒)
直走回到起始位置
4.4稱重功能的流程框圖
HX711芯片是24bit A/D轉(zhuǎn)換的,所以需要從高到低地將數(shù)據(jù)輸出,然后將AD值等比轉(zhuǎn)化為重量值即可,具體轉(zhuǎn)化過程可見以下流程圖。
定義變量count并賦初始值
DOUT 引腳寫入高電平(表示A/D轉(zhuǎn)換器未做好準(zhǔn)備)
SCK引腳寫入低電位
讀取DOUT電位變化(為低則開始轉(zhuǎn)換)
計(jì)數(shù)器開始計(jì)數(shù)
SCK引腳寫入高電位開始輸入數(shù)據(jù),SCK引腳寫入低電位結(jié)束數(shù)據(jù)輸入,將DOUT引腳輸出的數(shù)據(jù)存儲在count變量中
計(jì)數(shù)器滿24停止輸入數(shù)據(jù)
提取出前24位數(shù)據(jù)
再次輸入第25個(gè)脈沖決定下一次通道和增益
返回count變量中的24位A/D數(shù)值
利用公式計(jì)算承載的重量
4.5 LCD屏顯示功能的流程框圖
需在LCD12864顯示屏上顯示出稱重物件的重量,并按照路徑對應(yīng)的單價(jià)計(jì)算出相應(yīng)的運(yùn)費(fèi),并顯示出貨物所到達(dá)的城市。通過流程圖來說明一件貨物的重量、運(yùn)費(fèi)、目的地顯示的過程:
創(chuàng)建第一個(gè)數(shù)組名并定義其數(shù)組中數(shù)據(jù)個(gè)數(shù)
利用dtostrf()函數(shù)將重量值存儲在數(shù)組中
在顯示屏右側(cè)第一行顯示重量,并在后面顯示”Kg”單位
創(chuàng)建第二個(gè)數(shù)組名并定義其數(shù)組中數(shù)據(jù)個(gè)數(shù)
重量值乘單價(jià)所得到的值存在“money”變量中
利用dtostrf()函數(shù)將金額數(shù)存儲在數(shù)組中
在顯示屏右側(cè)第二行顯示重量,并在后面顯示”yuan”單位
在顯示屏右側(cè)第三行顯示目的地
讀取藍(lán)牙串口的數(shù)據(jù)
4.6藍(lán)牙通信功能的流程框圖
將讀取數(shù)據(jù)存儲在變量“c”中
判斷變量中的數(shù)是否等于程序中的數(shù)
若不等于則分揀小車停止不動
若等于則執(zhí)行相對應(yīng)的程序
4.7舵機(jī)擺臂功能的流程框圖
在分揀小車到達(dá)目的地時(shí),舵機(jī)轉(zhuǎn)動一定角度,將載物板揚(yáng)起,物件順勢滑落至集裝箱中。舵機(jī)擺動的指令可見下面流程框圖說明:
定義舵機(jī)轉(zhuǎn)動至90度
擺動至90度后延遲2秒
定義舵機(jī)轉(zhuǎn)動至45度
延遲2秒
再次舵機(jī)轉(zhuǎn)動至90度并延遲2秒(防止第一次擺動時(shí)物件未滑落)
再次定義舵機(jī)轉(zhuǎn)動到45度(舵機(jī)位置歸中)
5 系統(tǒng)調(diào)試
5.1串口監(jiān)視器使用
在Arduino控制板與電腦連接的狀態(tài)下打開IDE的菜單欄“工具”列表中的“串口監(jiān)視器”。
在程序調(diào)試的過程中,可以把程序分幾部分上傳到控制板后進(jìn)行分步測試。比如說超聲波測距,可以在串口上顯示距離,在稱重測試時(shí),也可以打開串口監(jiān)視器就能顯示重量。
5.2 藍(lán)牙模塊AT設(shè)置
藍(lán)牙模塊需要T設(shè)置A后才能與設(shè)備正常匹配,比如說恢復(fù)出廠設(shè)置、更改藍(lán)牙名稱、設(shè)置主從模式、設(shè)置密碼。在調(diào)試中使用Arduino控制板進(jìn)行設(shè)置,連接圖如圖6.1 。
圖5.1 藍(lán)牙AT設(shè)置連接
AT設(shè)置程序如下:
#include
SoftwareSerial BT(10, 11);
char val;
void setup() {
Serial.begin(38400);
Serial.println("BT is ready!");
BT.begin(38400); // HC-05默認(rèn),38400
}
void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}
if (BT.available()) {
val = BT.read();
Serial.print(val);
}
}
編譯下載到控制板之后打開串口監(jiān)視器,把波特率設(shè)為38400,在發(fā)送框輸入以下幾個(gè)命令:
AT+ORGL 恢復(fù)出廠設(shè)置
AT+NAME=cho5 修改藍(lán)牙模塊名稱為ch05
AT+ROLE=0 藍(lán)牙模式設(shè)置為從模式
AT+CMODE=1 ?藍(lán)牙連接模式為任意地址連接模式
AT+PSWD=0000 藍(lán)牙配對密碼為0000
輸入指令后出現(xiàn)“OK”即完成AT設(shè)置,可以與手機(jī)藍(lán)牙連接。
5.3調(diào)試中遇到的問題
(1)在電機(jī)與舵機(jī)一塊調(diào)試時(shí),發(fā)現(xiàn)電機(jī)能轉(zhuǎn)動但舵機(jī)不能轉(zhuǎn)動,在程序沒有問題的條件下,將舵機(jī)引腳接到了PWM的11引腳。重新下載程序后執(zhí)行問題就迎刃而解,通過上網(wǎng)了解后發(fā)現(xiàn)是引腳沖突所導(dǎo)致的問題。
(2)藍(lán)牙AT設(shè)置中,串口提示欄顯示錯(cuò)誤,因?yàn)镮DE串口監(jiān)視器的默認(rèn)波特率為9600,。將串口波特率改為38400后再輸入設(shè)置指令就可完成設(shè)置,原因是藍(lán)牙AT設(shè)置時(shí)通訊的波特率為38400,若為其他波特率則無法完成AT設(shè)置。
(3)在測試藍(lán)牙通信時(shí),藍(lán)牙模塊的RXD、TXD數(shù)據(jù)傳輸線接在了控制板的D0、D1口后下載程序,IDE提示出現(xiàn)問題,程序無法下載到控制板內(nèi)。拔掉兩根數(shù)據(jù)傳輸線后再次下載程序IDE提示上傳成功,原來是上傳程序時(shí)D0、D1數(shù)據(jù)傳輸口被占用導(dǎo)致程序無法下載成功。
6 總結(jié)
在整個(gè)系統(tǒng)設(shè)計(jì)中遇到了許多的困難,無論是在軟件方面還是硬件方面。從最初控制板的選擇,在51單片機(jī)和Arduino之間糾結(jié),由于第二者的開源性,最終選擇Arduino UNO進(jìn)行整體系統(tǒng)控制。之后慢慢地開始接觸各種電子元件,網(wǎng)上查找資料了解其功能特性,一邊學(xué)習(xí)Arduino的設(shè)計(jì)語言一邊掌握硬件的使用方法。各元器件與控制板連接后用IDE進(jìn)行程序設(shè)計(jì),逐步完善和修改錯(cuò)誤后使得各硬件能實(shí)現(xiàn)目標(biāo)功能,比如使用超聲波傳感器測量距離并通過串口顯示數(shù)據(jù);利用電機(jī)驅(qū)動控制直流電機(jī)的轉(zhuǎn)向及轉(zhuǎn)速;通過藍(lán)牙控制LED的亮滅等。最后將所有程序結(jié)合起來完成分揀小車的系統(tǒng)控制,不斷地調(diào)試完善小車功能。通過整體硬件和軟件的搭建,分揀小車能夠完成由手機(jī)設(shè)備發(fā)送數(shù)據(jù)后,自動稱重并在顯示屏上顯示相關(guān)信息,之后按照預(yù)先設(shè)置好的軌跡進(jìn)行貨物運(yùn)輸,將貨物送至指定地點(diǎn)的整體運(yùn)行動作,并且擁有在運(yùn)輸途中實(shí)時(shí)避障停車的功能。
本次課題設(shè)計(jì)讓我收獲頗多,雖然學(xué)習(xí)的道路是很崎嶇的,但是設(shè)計(jì)的結(jié)果是比較令人滿意的。從一開始不知道如何下手,到現(xiàn)在能夠簡單地控制小車,并且能夠在實(shí)驗(yàn)中發(fā)現(xiàn)問題,解決問題,這都是寶貴的學(xué)習(xí)經(jīng)歷。其次能結(jié)合大學(xué)本科四年所學(xué)的知識運(yùn)用在具體設(shè)計(jì)中,比如說稱重中運(yùn)用到了《工程測試技術(shù)》中的電阻橋,達(dá)到了學(xué)以致用的目的。畢業(yè)設(shè)計(jì)是每次課程設(shè)計(jì)結(jié)合起來的最終效果,正是每學(xué)期的課程設(shè)計(jì),才能在畢業(yè)論文設(shè)計(jì)中有條不紊地將工作進(jìn)行下去。所以畢業(yè)設(shè)計(jì)是本科四年的能力體現(xiàn)與總結(jié),學(xué)習(xí)到了新的知識,更重要的是回顧了以前學(xué)過的課程。
參考文獻(xiàn)
[1]黃啟明.自動分揀系統(tǒng)及其應(yīng)用前景分析[J].物流技術(shù),2002(05):7-15.
[2]李娜娜,王莉,戴建民.卷煙配送中心自動分揀系統(tǒng)的規(guī)劃設(shè)計(jì)[J].物流科技,2008(04):133-135.
[3]蔣家志,劉國.多機(jī)器人智能倉儲系統(tǒng)中智能調(diào)度的研究[J/OL].機(jī)電工程技術(shù).2017(09)
[4]任芳,王玉.自動分揀機(jī)器人在義烏申通的應(yīng)用實(shí)踐[J].物流技術(shù)與應(yīng)用.2017,22(08)
[5]萬龍,吳仁杰.分揀機(jī)器人在郵政企業(yè)應(yīng)用前景淺析[J].中國郵政.2017(07)
[6]王喜文.機(jī)器人技術(shù)在物流中的應(yīng)用:分揀、搬運(yùn)到送貨[J].物聯(lián)網(wǎng) 術(shù).2017,7(03)
[7]彭攀來,馬婭婕,劉智旸. 基于Arduino的移動機(jī)器人控制系統(tǒng)設(shè)計(jì)[J]. 自動化與儀表. 2016(03)
[8]王志凌,聞凱,陳杰.基于Android的小型移動機(jī)器人控制系統(tǒng)[J]. 國外電子測量技術(shù). 2014(09)
[9]劉力.基于Ardunio和Android的藍(lán)牙遙控車[J].科技視界.2016(14)
[10]李瑞,李曉明.基于Mobile-Android小型移動機(jī)器人平臺控制系統(tǒng)[J]. 機(jī)電工程. 2013(11)
[11]馬鳴,張華.基于Android的藍(lán)牙遠(yuǎn)程控制PC系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦知識與技術(shù). 2012(28)
[12]蔡睿妍.Arduino的原理及應(yīng)用[J]. 電子設(shè)計(jì)工程. 2012(16)
[13]林兆花,徐天亮.機(jī)器人技術(shù)在物流業(yè)中的應(yīng)用[J]. 物流技術(shù). 2012(13)
[14]鄭昊,鐘志峰,郭昊,許駿.基于Arduino/Android的藍(lán)牙通信系統(tǒng)設(shè)計(jì)[J]. 物聯(lián)網(wǎng)技術(shù). 2012(05)
[15]鄭金花.我國快遞行業(yè)發(fā)展現(xiàn)狀及策略分析[J].現(xiàn)代商貿(mào)工業(yè).2011,23(12)
[16]鄒偉,李麗,王秀,翟長遠(yuǎn),張睿. 超聲波傳感器測距實(shí)驗(yàn)平臺設(shè)計(jì)與實(shí)驗(yàn)[J]. 傳感器與微系統(tǒng). 2011(10)
[17] Kim. Large scale transportation service network design:Models, algorithms and applications[D]. Massachusetts Institute of Technology.1997.
[18] Kuby, Gray. The hub network design problem with stopovers and feeders: The case of federal express [J].TransportationResearch A.1993,27,(1)
致 謝
時(shí)光飛逝,眼看著畢業(yè)季的到來,這也意味著我們即將離開學(xué)校走向社會。隨著畢業(yè)論文的工作慢慢地接近尾聲,我對學(xué)校的老師和同學(xué)們有些依依不舍,正是由于他們的存在才造就了如今的我。因此我首先要感謝學(xué)校為我創(chuàng)造了良好的學(xué)習(xí)環(huán)境,能讓我在大學(xué)四年里有所學(xué)有所用,豐富了知識,增長了眼觀。提高了水平。最重要的是感謝學(xué)校創(chuàng)
收藏