版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于STM32的智能售餐機(jī)設(shè)計(jì)與實(shí)現(xiàn)目錄TOC\o"1-2"\h\u25027基于STM32的智能售餐機(jī)設(shè)計(jì)與實(shí)現(xiàn) 1139201緒論 1296431.1研究背景 1185521.2國內(nèi)外的研究現(xiàn)狀 2101281.3研究的意義 2100122系統(tǒng)總體設(shè)計(jì)和主要芯片介紹 3300662.1系統(tǒng)總體設(shè)計(jì) 3310262.2主要芯片介紹 4247303stm32智能售餐系統(tǒng)的硬件系統(tǒng)設(shè)計(jì) 4219163.1硬件系統(tǒng)總體設(shè)計(jì) 4110953.2電源模塊電路設(shè)計(jì) 5103913.3主控制模塊設(shè)計(jì) 680493.4輔助控制模塊設(shè)計(jì) 8289963.5主輔控制模塊通信設(shè)計(jì) 946353.6WiFi模塊電路的設(shè)計(jì) 10813.7觸摸屏模塊電路的設(shè)計(jì) 10185393.8支付模塊電路的設(shè)計(jì) 11269093.9PLC電氣系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn) 12185504stm32智能售餐系統(tǒng)軟件設(shè)計(jì) 1383974.1系統(tǒng)主程序設(shè)計(jì) 13175514.2WiFi模塊程序設(shè)計(jì) 15253844.3觸摸屏模塊程序設(shè)計(jì) 16310284.4觸摸屏界面設(shè)計(jì) 16294934.5支付模塊程序設(shè)計(jì) 17234734.6單片機(jī)通信模塊程序設(shè)計(jì) 18158584.7PLC通信模塊程序設(shè)計(jì) 2198545總結(jié) 2322431參考文獻(xiàn) 251緒論1.1研究背景隨著時(shí)代的進(jìn)步,人們的就餐方式也改變了很多,原來是點(diǎn)外賣或者餐廳就食,而現(xiàn)在更多的是選擇智能售餐。自動(dòng)售餐機(jī)和之前的方式比起來,有很多優(yōu)勢。首先,它占地面積比較小,這樣也就大大的降低了它的成本,從而也就節(jié)省了所需要的人力物力,這也是它最有優(yōu)勢的一點(diǎn)。其次,智能售餐機(jī)主要用的是單片機(jī)技術(shù),單片機(jī)操作簡單易懂,功能穩(wěn)定,可靠性高,它的應(yīng)用在日常生活中也比較廣泛。售餐機(jī)有很多種不同口味的美食,所以深受年輕人的喜愛。自動(dòng)售餐機(jī)也是存在一些問題的,首先它的成本高所以它也比較難修復(fù)。其次,它不夠智能化,只能選擇用現(xiàn)金進(jìn)行支付。第三,它不夠吸引用戶。它的普及率沒有那么高。為了解決上述問題,設(shè)計(jì)一種比較智能的自動(dòng)售餐機(jī)是很有必要的。1.2國內(nèi)外的研究現(xiàn)狀國外在18世紀(jì)就出現(xiàn)了第一臺(tái)自動(dòng)售餐機(jī),它在英國。自動(dòng)售貨機(jī)在日本的普及率也十分高。而自動(dòng)售餐機(jī)在國內(nèi)起步就比較晚。直到上世紀(jì)末,才從國外引進(jìn)。一開始,只有那些比較發(fā)達(dá)的城市才有。隨著經(jīng)濟(jì)的蓬勃發(fā)展,售貨機(jī)在國內(nèi)的大小城市也隨處可見了。售貨機(jī)也有很多種,比如零食售貨機(jī),盒飯售貨機(jī)等等。我國國內(nèi)現(xiàn)狀:目前自動(dòng)售餐機(jī)大約有2萬臺(tái),但是品類有些單一,所以主要有自動(dòng)飲料售貨機(jī)為主,隨處可見的食品飲料售餐機(jī)可以說明智能售餐機(jī)也有相同大量的發(fā)展空空間,但是由于某些原因,現(xiàn)在智能售餐機(jī)未能廣泛應(yīng)用,主要原因有:技術(shù)質(zhì)量不是太好,生產(chǎn)維護(hù)的成本較高,收益問題也是一大部分,例如我們看過了北京自動(dòng)售餐機(jī)的現(xiàn)狀,主要原因有:分量少,價(jià)格貴,品類少,銷量低等,所以我們可以根據(jù)這些反饋的問題詳細(xì)的做出應(yīng)對策略,克服其缺點(diǎn),突出其優(yōu)點(diǎn)。所以,我們的工作還有許多,怎樣保證食品的新鮮度,還有智能售餐機(jī)還有克服食物變冷的問題,所以加入保溫加熱功能也是非常好的。其實(shí)它還是有點(diǎn)大于缺點(diǎn)的,所以我們希望不斷研究智能售餐機(jī),將他推廣到全國去,這樣大家節(jié)約時(shí)間,老板節(jié)約人力物力,可以達(dá)到雙贏的目的,全球經(jīng)濟(jì)一體化,促進(jìn)經(jīng)濟(jì)的發(fā)展,也促進(jìn)這科技的發(fā)展,促進(jìn)了自動(dòng)售餐機(jī)的發(fā)展。1.3研究的意義以前人們的選擇大部分都是餐廳或者外賣。但是對于生活比較忙碌的人來說,他們沒有空閑的時(shí)間和精力去餐廳就食或者外賣。快餐廳要想在充滿競爭力大的環(huán)境下生存下去,就要提高用戶的就餐體驗(yàn)。避免不了的是,在飯點(diǎn)的時(shí)間段,由于用餐的人數(shù)快速增長,導(dǎo)致餐廳需要花費(fèi)更多的人力物力來配送餐品。這種情形下,如果不多錄用服務(wù)生,那么用戶就需要等待更長時(shí)間導(dǎo)致用戶體驗(yàn)感變差。但是如果多錄用服務(wù)生配送餐品,那么餐廳的成本會(huì)增加。自動(dòng)售餐機(jī)的出現(xiàn)就是為了解決上述問題。目前在國內(nèi),自動(dòng)售餐機(jī)還不能夠出現(xiàn)在快餐廳里。原因有以下幾點(diǎn);首先,大部分的售餐機(jī)都有著復(fù)雜的結(jié)構(gòu),它們的成本也比較高,維修起來也不是很方便。其次,現(xiàn)在的售餐機(jī)還不夠智能化。在如今這個(gè)主要以掃碼支付的時(shí)代里明顯是不適用的。第三,現(xiàn)在的售餐機(jī)沒有鮮明的特色,吸引不到用戶。現(xiàn)在,國內(nèi)售餐機(jī)數(shù)量雖然很多,但是功能還不夠完善,還沒有得到大范圍的推廣。因此,設(shè)計(jì)一款更加智能化自動(dòng)售餐機(jī),還是很有必要的。2系統(tǒng)總體設(shè)計(jì)和主要芯片介紹2.1系統(tǒng)總體設(shè)計(jì)2.1.1系統(tǒng)總體設(shè)計(jì)方框圖圖2.1智能售餐機(jī)整體系統(tǒng)設(shè)計(jì)2.1.2系統(tǒng)總體設(shè)計(jì)方案本次設(shè)計(jì)主要是通過STM32單片機(jī)和PLC聯(lián)合起來實(shí)現(xiàn)智能售餐機(jī)的功能。在設(shè)計(jì)包括了主控制和輔控制兩個(gè)結(jié)構(gòu)。其中,STM32F103ZET6單片機(jī)是是主控制器,它的主要作用是控制其他模塊;輔助控制器是西門子S7-200,它的主要作用是讓食物所處的環(huán)境保持一個(gè)穩(wěn)定的溫度,同時(shí)保證機(jī)器能夠準(zhǔn)確地出貨。各個(gè)模塊相互之間能夠很好地配合,用戶使用起來也更加方便,機(jī)器里系統(tǒng)能夠穩(wěn)定的運(yùn)行,可靠性也很強(qiáng)。售賣盒裝餐品是智能售餐機(jī)的主要作用。用戶可以點(diǎn)擊機(jī)器的觸摸屏,屏上會(huì)出現(xiàn)售賣的餐品,用戶選好自己想要的商品后,通過掃碼來完成支付。支付完成以后,機(jī)器內(nèi)部會(huì)接受到指令,然后餐品就會(huì)從機(jī)器中掉落出來。智能售餐機(jī)系統(tǒng)設(shè)計(jì)如圖2.1。STM32單片機(jī)要實(shí)現(xiàn)的功能是:顧客可以通過它的人機(jī)交互畫面能夠看到相應(yīng)的信息。然后顧客通過接觸觸摸屏選擇自己想要的商品進(jìn)行購買,通過掃碼來完成支付操作。PLC主要是要和單片機(jī)保持通信,然后接收信號,保證出貨的過程不會(huì)出錯(cuò)。同時(shí),讓食物保持在同樣的溫度避免影響口感。2.2主要芯片介紹主控制芯片STM32:有112個(gè)高速I/O端口,且中斷信號可以傳送到所有端口中。對于系統(tǒng)的輸入信號而言,系統(tǒng)各端口均可以與5v以內(nèi)的電壓相連,但是對于模擬輸入信號來說,系統(tǒng)不能保證。該最小系統(tǒng)最多能包含11個(gè)計(jì)數(shù)器。在這11個(gè)計(jì)時(shí)器中包含著16位計(jì)時(shí)器、高級控制計(jì)時(shí)器以及看門狗定時(shí)器等。16位計(jì)時(shí)器能夠完成脈沖調(diào)制解調(diào)以及脈沖的計(jì)數(shù)等主要功能。高級控制計(jì)時(shí)器主要對脈沖調(diào)制解調(diào)波形的輸出。輔控制芯片PLC:PLC全稱為可編程序控制器。它的系統(tǒng)結(jié)構(gòu)一共有八個(gè)部分。本次設(shè)計(jì)用到的PLC優(yōu)勢有;方便攜帶,功能全面,相當(dāng)可靠。3stm32智能售餐系統(tǒng)的硬件系統(tǒng)設(shè)計(jì)3.1硬件系統(tǒng)總體設(shè)計(jì)設(shè)計(jì)中包含了三個(gè)模塊:電源,主控制和輔控制。如圖3.1硬件系統(tǒng)總框圖。Stm32是最重要的部分,它起到了一個(gè)控制的作用,它能夠?qū)崿F(xiàn)人機(jī)交互的功能,能夠?qū)崿F(xiàn)移動(dòng)支付,同時(shí)也可以交互數(shù)據(jù),PLC主要是控制步進(jìn)電機(jī)來確保售餐機(jī)的正常使用。圖3.1硬件系統(tǒng)總體框圖3.2電源模塊電路設(shè)計(jì)電源模塊的主要功能是為單片機(jī)和PLC提供電,單片機(jī)和PLC需要不同的電源。所以這個(gè)設(shè)計(jì)需要能夠轉(zhuǎn)換電壓的電源。了解相關(guān)知識(shí)后,最后決定采用具有穩(wěn)壓電源的作為核心控制元件。圖3.2DC24V開關(guān)電源電路3.3主控制模塊設(shè)計(jì)如圖3.3所示為單片機(jī)核心板電路圖,本設(shè)計(jì)所需要的串口要與其他模塊進(jìn)行通信。為了防止中間的過程會(huì)出現(xiàn)問題,本設(shè)計(jì)采用混合的方式。單片機(jī)的處理器要和其他電路一起組合起來才能形成最小控制系統(tǒng)。最小控制系統(tǒng)一般由mcu、電源控制電路、復(fù)位控制電路電路組成。圖3.3STM32F103ZET6核心板電路圖主控模塊需要兩種不同的電源搭配起來使用。圖3.4所示的就是stm32的電路圖設(shè)計(jì),這個(gè)模塊一共有兩個(gè)有降壓作用的芯片。其中一個(gè)芯片對32單片機(jī)電源有保護(hù)作用。U12中的AMS1117-3.芯片是將5V電壓下降到了至3.3V的電源一個(gè)電壓,對所需模塊進(jìn)行供電。圖3.3STM32電源模塊電路圖圖3.4為復(fù)位電路圖。一切正常時(shí),RESET是高電平這是因?yàn)殡娙萜鰿12的隔直通交作用。當(dāng)單片機(jī)處于非正常運(yùn)行狀態(tài)時(shí),此時(shí)RESET處于低電平的狀態(tài)。正常情況下,RESET屬于低電平狀態(tài)。電容能夠完成復(fù)位功能。圖3.4STM32復(fù)位電路電路圖圖3.5為時(shí)鐘電路圖。本文設(shè)計(jì)一共有兩個(gè)時(shí)鐘,一個(gè)高速外部控制時(shí)鐘,一個(gè)內(nèi)部的他們是相互配合的作用。當(dāng)外部的失效時(shí),內(nèi)部的就可以替換它,這樣就不會(huì)影響工作。圖3.5時(shí)鐘電路圖3.4輔助控制模塊設(shè)計(jì)PLC主要是確保溫度的恒定以及機(jī)器的正常使用。售餐機(jī)更加智能化,和傳統(tǒng)售貨機(jī)還是很不同的,出貨方式也有所區(qū)別,原來的有三種方式:彈簧式:類售貨機(jī)的利用率最大,通過對貨道彈簧進(jìn)行旋轉(zhuǎn)以達(dá)到一定速度的目標(biāo)而完成賣貨,商品從貨道被推開后自由下降落體到賣貨口[12]。它雖然結(jié)構(gòu)簡單,但是出貨時(shí)可能會(huì)損傷到貨品,影響到用戶的購買體驗(yàn)。(2)升降的放置式:它雖然售出的商品種類多,但是它需要的時(shí)間更久。(3)履帶式:這種出貨的方式主要適合于銷售尺寸比較大,形狀相對規(guī)則,可以沿著正立擺放的各類商品。通過位于貨道上或者商品后面的一個(gè)機(jī)械推貨設(shè)備完成輸送到門店出,并且在輸送過程中每個(gè)操作人員都配備了一個(gè)非常精確的傳感器對其進(jìn)行了控制。它們雖然具有準(zhǔn)確、高效、自動(dòng)化等特性,但由于其結(jié)構(gòu)復(fù)雜程度太高,成本昂貴,且不容易進(jìn)行維護(hù)。因?yàn)楸井a(chǎn)品設(shè)計(jì)目的就是對一些打包或者真空形式的飯菜和餐物進(jìn)行銷售,其密封性和質(zhì)量遠(yuǎn)遠(yuǎn)不如普通零食或者飲料的低,所以我們在充分考慮到出貨的方式時(shí),要求我們在能夠保證平穩(wěn)的條件和前提下盡量地加快其出貨的速度。這三種設(shè)計(jì)方式比較起來,升降橫移式出貨成本更加低廉,操作更加簡單,維修的成本也更低,經(jīng)濟(jì)性更高。3.5主輔控制模塊通信設(shè)計(jì)SSTM32單片機(jī)和西門子PLC是此次設(shè)計(jì)的核心部分。從軟硬件基礎(chǔ)架構(gòu)上而言,二者都應(yīng)該是可以支持串口數(shù)據(jù)通信,只是這需要對通信協(xié)議的使用形式與否進(jìn)行一定界限。故本設(shè)計(jì)工程所需要設(shè)計(jì)的兩條plc均線都采用了自由口式直接通信,完成了與plstm32的直接通訊。在本文的系統(tǒng)設(shè)計(jì)中,主部分控制器將先給一個(gè)指令輔助向主控制器先行下達(dá)一個(gè)新的指令,之后再接著就是等待另一個(gè)指令輔助向主控制器下達(dá)返回的指令數(shù)據(jù)。STM32單片機(jī)和S7-200PLC的通信是通過串口完成的,在主控制器STM32部分使用的是RS485接口,S7-200PLC部分使用的是COM口。且S7-200的COM口支持RS485通信,所以采用RS485串口通信方式實(shí)現(xiàn)STM32與S7-200的通信。3.6圖就是核心板的電路圖。鑒于同時(shí)考慮到一個(gè)rs485的輸入電平和一個(gè)stm32不能直接相互連接,本次接口設(shè)計(jì)電路采用一個(gè)sp3485芯片接口做為輸入電壓水平信號轉(zhuǎn)換接口芯片,完成了新的rs485接口設(shè)計(jì)電路。SP3485芯片外接的R25為終端電阻,用于減少終端干擾。r22和r19為兩個(gè)偏置電阻,可以有效地抑制靜默狀態(tài)下各個(gè)動(dòng)機(jī)工作點(diǎn)之間的漂移,使485總線保留至邏輯1。rs485_rx/rs485_tx將其連接到mcu的usart2_tx/usart2_rx上面,rs485_re則主要是直接將一個(gè)mcu的pd7口上,通過控制這個(gè)信號的頻率和高低電平來進(jìn)行控制sp3485的輸出發(fā)送和接收。圖3.6RS485接口電路圖3.6WiFi模塊電路的設(shè)計(jì)數(shù)據(jù)交互是通過國WiFi來實(shí)現(xiàn)的,為了成本以及能夠方便操作,本設(shè)計(jì)選擇的是綜合性能比較好的模塊。這個(gè)模塊的優(yōu)點(diǎn)是方便售餐機(jī)通過互聯(lián)網(wǎng)完成數(shù)據(jù)交互。3.7是原理框圖圖3.7ESP8266與STM32F103ZET6連接圖3.7觸摸屏模塊電路的設(shè)計(jì)本項(xiàng)目工程設(shè)計(jì)中所用的需要設(shè)備使用的液晶觸摸屏主要是具有alientek-tftlcd兩個(gè)模塊。安裝在其上的新型電容式數(shù)控觸摸屏就是采用4.3寸的新型電容式數(shù)控觸摸屏,它主要設(shè)計(jì)使用的元件是一塊投射式觸控電容屏,感應(yīng)矩陣由一對橫向水平和一個(gè)豎向的兩列兼容電極感應(yīng)元件相互組成,用于對屏進(jìn)行溫度感應(yīng)和移動(dòng)觸摸。因此,該模塊不需要添加單獨(dú)的驅(qū)動(dòng)器,并且在指令方面與ILI9341兼容。本設(shè)計(jì)是通過fsmc(靜態(tài)存儲(chǔ)器控制器)接口來實(shí)現(xiàn)觸摸屏和單片機(jī)之間的互相連接,可以顯著提高LCD的刷屏速率。模塊采用16位8080的并口和外部接入。觸摸屏與STM32的接口電路如圖3.8所示。圖3.8LCD模塊接口電路圖3.8支付模塊電路的設(shè)計(jì)在這個(gè)快消費(fèi)的時(shí)代,支付方式也從原來的現(xiàn)金支付變成了手機(jī)掃碼支付。所以,要在售餐機(jī)的功能里加上移動(dòng)支付。移動(dòng)支付是現(xiàn)在社會(huì)的主要支付方式,它的效率更高,過程也更加簡單明了。移動(dòng)支付主要是兩個(gè)方式,一個(gè)是用戶通過支付寶微信一類的主動(dòng)去掃商品的碼,另一種是出示付款碼,這第二種更加的直觀,對于用戶也更加方便。所以,選擇第二種方式來進(jìn)行設(shè)計(jì)。本文選取掃碼槍作為移動(dòng)支付設(shè)備,來實(shí)現(xiàn)智能售餐機(jī)的移動(dòng)支付環(huán)節(jié)。由于本文所設(shè)計(jì)的核心板內(nèi)存不足以支持OV攝像頭進(jìn)行圖像處理,完成掃碼識(shí)別。所以通過外接掃碼設(shè)備完成掃碼識(shí)別??紤]到成本以及應(yīng)用條件,本文采用MC2500影像式二維碼識(shí)讀模組來完成支付模塊的設(shè)計(jì)。該模塊具有識(shí)別QR二維碼的功能,功耗極低,并且具有照明燈,可以在夜間或者其他光線較暗的時(shí)候提高模塊的識(shí)讀性能和弱光照環(huán)境時(shí)的適應(yīng)能力。該模塊支持RS232串口,所以可以通過RS232串口實(shí)現(xiàn)支付模塊與32單片機(jī)的通信。圖3.9MC2500模塊與STM32連接圖3.9PLC電氣系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)設(shè)計(jì)主要包括幾個(gè)部分:第一,合理分配電能的輸入輸出;第二,畫出各個(gè)部分的電路框圖。設(shè)計(jì)之前,我們要準(zhǔn)確的劃分清楚輸入的輸出位置。本文涉及到了PLC的三個(gè)輸入六個(gè)輸出,三個(gè)輸入分別是有著開關(guān)作用的繼電器開關(guān)(IO.0);檢查能否成功取到餐的開關(guān)(IO.1)以及檢查商品有沒有運(yùn)送到出口的開關(guān)。如圖3.1所示。表3.1輸入分配表六個(gè)輸出分別用于升降電機(jī)脈沖輸出(Q0.0)外接步進(jìn)電機(jī)驅(qū)動(dòng)器1的脈沖信號輸入端;橫移電機(jī)脈沖輸出(Q0.1)外接步進(jìn)電機(jī)驅(qū)動(dòng)器2的脈沖信號輸入端;升降電機(jī)正反轉(zhuǎn)信號(Q0.2)外接繼電器KA1;橫移電機(jī)正反轉(zhuǎn)信號(Q0.3)外接繼電器KA2;冷卻風(fēng)扇動(dòng)作指示信號(Q0.4)外接繼電器KA3;加熱電阻器動(dòng)作指示(Q0.5)外接繼電器KA4。所以輸出分配表如表3.2所示.表3.2輸出分配表根據(jù)I/O的分配量表來確定plc的電氣接線圖。如圖3.10所示,本工程設(shè)計(jì)中所采用的tb6600型步進(jìn)電機(jī)驅(qū)動(dòng)器可以劃分為三個(gè)區(qū)域:脈沖信號的輸入,包括脈沖信號的輸入是正/負(fù)(pul+/pul-),電機(jī)的正、逆方向運(yùn)行是由正/負(fù)(dir+/dir-),電機(jī)的脫機(jī)是由正/負(fù)(EN+/EN-)。電機(jī)開關(guān)繞頭分組開關(guān)接口的接點(diǎn)a+/a-/b+/b-各個(gè)相與電動(dòng)機(jī)開關(guān)繞組的接口a+/a-/b+/b-相。輸入端和信號端的電源接線一般有共陰極或者是共陽極兩種。由于s/s7-200plc的脈沖輸出輸入電壓控制范圍一般為+24v,所以本文建議采用共陰極的連接法:pul-,dir-,en-將兩個(gè)脈沖能量輸出控制電路分別連接在一個(gè)脈沖控制器輸入系統(tǒng)的兩個(gè)gnd端,通過d和en+輸出接入信號可以同時(shí)使脈沖能量轉(zhuǎn)換輸出方向信號。EM231為擴(kuò)展模塊,將數(shù)字信號通過總線傳遞至PLC中。圖3.10PLC電氣接線圖4stm32智能售餐系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)主程序設(shè)計(jì)從軟件設(shè)計(jì)來講,主要是兩個(gè)設(shè)計(jì)。一個(gè)是關(guān)于單片機(jī)的軟件設(shè)計(jì);另一個(gè)是關(guān)于PLC的軟件設(shè)計(jì)。這兩個(gè)設(shè)計(jì)完成好了,整個(gè)設(shè)計(jì)也就成功了。關(guān)于單片機(jī)的軟件設(shè)計(jì),最好的選擇就是編程語言。這個(gè)部分的軟件設(shè)計(jì)要做到的就是要和其他模塊聯(lián)系起來,完成通信的過程,以及設(shè)計(jì)各個(gè)模塊自己內(nèi)部的程序。第二個(gè)部分的軟件設(shè)計(jì)就是PLC。本文所采用的方法就是先繪制一個(gè)圖。然后做一個(gè)輔助作用的軟件設(shè)計(jì)包括讓餐品溫度恒溫的程序設(shè)計(jì)以及能夠與單片機(jī)通信起來的軟件設(shè)計(jì)整個(gè)的設(shè)計(jì)思路如圖4.1。圖4.1智能售餐系統(tǒng)軟件整體系統(tǒng)設(shè)計(jì)4.2WiFi模塊程序設(shè)計(jì)WiFi模塊通過ESP8266模塊實(shí)現(xiàn),在使用該模塊時(shí)需要對STM32相連的引腳進(jìn)行初始化。本設(shè)計(jì)采用串口1(USART1)完成ESP8266和MCU的通信,所以首先要對串口1進(jìn)行初始化。初始化操作不僅要將串口接收和發(fā)出端的寄存器清空,還要將串口的引腳進(jìn)行使能,并設(shè)置輸出模式然后設(shè)置數(shù)據(jù)格式、有無校驗(yàn)位以及中斷優(yōu)先級等。(1)可以使用u1_printf函數(shù)的方式來進(jìn)行發(fā)送信息,但是一定要注意確保每次發(fā)送的信息不會(huì)超過系統(tǒng)所設(shè)置的最大字節(jié)量,并且該函數(shù)需要在透傳模式下進(jìn)行開啟。voidu1_printf(char*fint,...){u16i,j;va_listap;va_start(ap,fint);vsprintf((char*)USART1_TX_BUF,fmt,ap);va_end(ap);i=strlen((cnstchar*)USART1_TX_BF);//此次發(fā)送數(shù)據(jù)的長度for(j=0;j<i;j++)//循環(huán)發(fā)送數(shù)據(jù){while(USART_GetFlagStatus(USART1,USART_FlG_TC)=RESET;//循環(huán)發(fā)送USART_SendData(USART1,USART1_TX_BUF[j]);}}(2)對于發(fā)送長度指定的數(shù)據(jù),本設(shè)計(jì)使用的是atk_8266_send_data函數(shù)。這個(gè)函數(shù)是向ATK-ESP8266模塊發(fā)送指定的數(shù)據(jù)。u8atk_8266_send_data(u8*data,u8*ack,u16waittime){USART1_RX_STA=0;u3_printf(“%s”,data);//發(fā)送命令if(ack&&waittime)//需要等待應(yīng)答{while(--waittime)//等待倒計(jì)時(shí){delay_ms(10);if(USART1_RX_STA&0X8000)//接收到期待的應(yīng)答結(jié)果{If(atk_8266_check_cmd(ack)break;//得到有效數(shù)據(jù)USART_RX_STA=0;}}if(waittime==0)res=1;}returnres;}4.3觸摸屏模塊程序設(shè)計(jì)本次設(shè)計(jì)用到的是分辨率為800*400的電容式觸摸屏模塊,使用帶有圖像寄存器的驅(qū)動(dòng)芯片,不需要任何其他驅(qū)動(dòng)器對背光模塊進(jìn)行驅(qū)動(dòng)。(1)選擇STM32F103ZET6與TFTLCD模塊相連接的IO端口:此步驟為將觸摸屏模塊與單片機(jī)的IO端口連接,并進(jìn)行初始化操作,以便于對LCD進(jìn)行驅(qū)動(dòng),本文使用FSMC作為IO口與觸摸屏相連。(2)初始化TFTLCD模塊:tftlcd模塊主要為設(shè)計(jì)硬復(fù)位lcd的操作,因?yàn)樵撃K的設(shè)計(jì)是連接到mcu的reset端口和lcd模塊的rst端口,所以我們可以通過核心板上的reset端口來進(jìn)行l(wèi)cd的硬復(fù)位。初始化程序序列立即將一系列設(shè)定值寫到lcd控制器中。在初始化后,lcd才能夠正常工作。voidLCD_SetCursor(u16Xpos,u16Ypos){LCD_WR_REG(lcddev.setxcmd);LCD_WR_DATA(Xpos>>8);LCD_WR_REG(lcddev.setxcmd+1);LCD_WR_DATA(Xpos&0XFF);LCD_WR_REG(lcddev.setxcmd);LCD_WR_DATA(Ypos>>8);LCD_WR_REG(lcddev.setxcmd+1);LCD_WR_DATA(Ypos&0XFF);}4.4觸摸屏界面設(shè)計(jì)本設(shè)計(jì)的觸摸屏界面在無人購買時(shí)顯示的是菜單界面。用戶通過點(diǎn)擊觸摸屏所呈現(xiàn)商品來進(jìn)入購買界面,在該界面添加購買的數(shù)量,同時(shí)被選擇的餐品會(huì)顯現(xiàn)在購買界面中。然后用戶點(diǎn)擊觸摸屏選擇支付方式,觸摸屏跳轉(zhuǎn)到支付界面,最后通過用戶出示二維碼完成購買,接著界面跳轉(zhuǎn)回菜單界面。購買流程如圖4.2所示。圖4.2智能售餐機(jī)購買流程圖4.5支付模塊程序設(shè)計(jì)本設(shè)計(jì)使用的是MC2500二維碼識(shí)讀模塊,該模塊需要進(jìn)行模塊的系統(tǒng)設(shè)置才能完成掃碼過程,且設(shè)置過程需要通過掃描參數(shù)手冊中的QR碼進(jìn)行設(shè)置[39]。由于該模塊是通過串口3與STM32進(jìn)行通信,所以也需要對串口3進(jìn)行初始化等操作,此處不再詳述。支付模塊的設(shè)計(jì)流程圖如圖4.3所示。圖4.3支付模塊設(shè)計(jì)的流程圖4.6單片機(jī)通信模塊程序設(shè)計(jì)本設(shè)計(jì)通過STM32串口與PLC通信,通過485串口通信方式完成PLC與STM32的數(shù)據(jù)交互,因此需要對STM32的串口設(shè)置。單片機(jī)通信模塊程序設(shè)計(jì)如圖4.4所示。圖4.4單片機(jī)通信模塊程序設(shè)計(jì)單片機(jī)與PLC通信時(shí)的數(shù)據(jù)發(fā)送和接收過程的流程圖如圖4.5所示。圖4.5數(shù)據(jù)發(fā)送和接收過程的流程圖通信程序的實(shí)現(xiàn):單片機(jī)采用485通訊工作方式,波特率設(shè)為9600bps。通過一個(gè)串口2進(jìn)行數(shù)據(jù)接收和發(fā)送。串口2的時(shí)鐘輸出信號來源于apb1,最大工作頻率可達(dá)36mhz。本設(shè)計(jì)通過rs485_init函數(shù)將485通信進(jìn)行初始化,用于實(shí)現(xiàn)對端口數(shù)據(jù)的收發(fā)控制。rs485_send_data和rs485_receive_data分別是指用于向485總線部發(fā)送數(shù)據(jù)并讀取該信號從485總線部接收的數(shù)據(jù)。部分代碼如下://RS485//buf:發(fā)送區(qū)首地址//len:發(fā)送的字節(jié)數(shù)voidRS485_Send_Data(u8*buf,u8len){u8t;RS485_TX_EN=1;//設(shè)置為發(fā)送模式for(t=0;t<len;t++)//循環(huán)發(fā)送數(shù)據(jù){while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);USART_SendData(USART2,buf[t]);}while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);RS485_RX_CNT=0;RS485_TX_EN=0;//設(shè)置為接收模式}//RS485查詢接收到的數(shù)據(jù)//buf:接收緩存首地址//len:讀到的數(shù)據(jù)長度voidRS485_Receive_Data(u8*buf,u8*len){u8rxlen=RS485_RX_CNT;u8i=0;*len=0;//默認(rèn)為0delay_ms(10);//等待10ms,若超過10ms沒有接收到數(shù)據(jù),則接收結(jié)束if(rxlen==RS485_RX_CNT&&rxlen)//接收到了數(shù)據(jù),且接收完成了{(lán)for(i=0;i<rxlen;i++){buf[i]=RS485_RX_BUF[i];}*len=RS485_RX_CNT;//記錄本次數(shù)據(jù)長度RS485_RX_CNT=0;//清零}}4.7PLC通信模塊程序設(shè)計(jì)plc與其他單片機(jī)的網(wǎng)絡(luò)通信數(shù)據(jù)傳輸方式主要采用了自由口方式進(jìn)行數(shù)據(jù)通信,經(jīng)過基于plc的系統(tǒng)編程后就已經(jīng)能夠直接實(shí)現(xiàn)自定義的通信協(xié)議。在本文中,由于單片機(jī)發(fā)送數(shù)據(jù)的格式為起始字符為“g”,數(shù)據(jù)長度為16個(gè)字符,結(jié)束字符為“G”。作為從機(jī),PLC主要用于從微處理器接受數(shù)據(jù),故PLC接收數(shù)據(jù)的格式要配置的與單片機(jī)發(fā)送數(shù)據(jù)相對應(yīng)。PLC接收單片機(jī)發(fā)送的數(shù)據(jù)流程圖如圖4.6所示。圖4.6PLC接收單片機(jī)發(fā)送的數(shù)據(jù)流程圖PLC部分通信部分程序如下所示:LDSM0.1//在收到指令后調(diào)用校驗(yàn)和子程序CALLinitialize//校驗(yàn)子程序LDB=VB134,VB199//指令中的站地址與本機(jī)站地址相符AB=VB102,5//指令類型為讀指令A(yù)M0.0//BCC校驗(yàn)碼校驗(yàn)正確CALLRead//調(diào)用讀子程序LDB=VB134,VB199//指令中的站地址與本機(jī)站地址匹配AB=VB102,6//指令類型為寫指令A(yù)M0.0//BCC校驗(yàn)碼校驗(yàn)正確CALLRead//調(diào)用寫子程序LDM0.1//在指令接受后調(diào)用BCC校驗(yàn)碼和校驗(yàn)子程序CALLVerifyLDSM0.1//當(dāng)端口空閑時(shí)啟動(dòng)RCVRCVVB100,0本文使用Initialize子程序的SBR_0來實(shí)現(xiàn)上述功能。子程序部分如下所示:LDSM0.0MOVB9,SMB30//端口0“9600(bit/s),N(無校驗(yàn)),8(ASCII//編碼數(shù)據(jù)位),1(停止位)”LDSM0.0//RCV指令初始化MOVB16#EC,SMB87//允許接受,檢測起始字符和接收字符,超時(shí)檢測MOVB103,SMB88//起始字符gMOVB71,SMB89//結(jié)束字符GMOVW+1000,SMW92//定時(shí)超時(shí)1000msMOVB35,SMB94//最大接收字符RSMB87.2,1LDSM0.0ATCHRCVcomplete,23//連接口0接受完成的中斷LDSM0.0ATCHXTMcomplete,9//連接口0發(fā)送完成的中斷LDSM0.0ENI//中斷允許LDSM0.0MOVB1,VB199//PLC的地址LDSM0.0MOVB&VB102,VD149//裝入地址指針MOVB0,VB179//校驗(yàn)寄存器清零MOVB&VB156,VD181//裝入地址指針MOVB0,VB180//校驗(yàn)碼寄存器清零5總結(jié)在了解了國內(nèi)外自動(dòng)售餐機(jī)的差異以及現(xiàn)在餐廳存在的問題之后,從用戶的就餐體驗(yàn)的角度出發(fā),分析了智能售餐機(jī)的工作原理,為了能讓智能售餐機(jī)更加普及以及完善它現(xiàn)有的功能,對智能售餐機(jī)進(jìn)行了進(jìn)一步的設(shè)計(jì),設(shè)計(jì)要完成的工作主要是以下幾點(diǎn):調(diào)查了國內(nèi)市場上的智能售餐機(jī)發(fā)展?fàn)顩r:通過調(diào)研了解各個(gè)地方的智能售餐機(jī)在的地方,發(fā)現(xiàn)國內(nèi)智能售餐機(jī)主要是集中在人流量比較大的地方,而對于那些就餐時(shí)間人比較多的食堂快餐廳一類的地方,智能售餐機(jī)就不太適合開在這樣的地方了。因?yàn)?,它需要很高的成本,一臺(tái)售餐機(jī)的價(jià)格也比較昂貴,它的內(nèi)部構(gòu)造也十分的復(fù)雜。維修起來也很困難,所以目前,它尚未能夠得到大面積的推廣。再看國外,售餐機(jī)發(fā)展速度就很快。而我們國內(nèi)市場也是有巨大潛力的。所以,這個(gè)設(shè)計(jì)的實(shí)現(xiàn)還是很有意義的。(2)分析了智能售餐機(jī)的基本工作原理,確定了總體設(shè)計(jì)方案:以stm32f103zet6為主要控制器,作為售餐機(jī)前端的控制核心,控制WiFi模塊、能夠準(zhǔn)確識(shí)別二維碼的模塊,觸摸的功能模塊,實(shí)現(xiàn)了能夠進(jìn)行移動(dòng)支付以及能用戶和機(jī)器互動(dòng)的功能設(shè)計(jì)。同時(shí)還負(fù)責(zé)與售餐機(jī)的輔助控制器plc的通訊;以西門子s7-200plc為其輔助控制器,控制出貨結(jié)構(gòu)的精確動(dòng)作以及恒溫系統(tǒng)進(jìn)行控制。主輔控制器的聯(lián)動(dòng)控制完成了對智能售餐機(jī)的設(shè)計(jì)。(3)針對智能售餐機(jī)的硬件結(jié)構(gòu)特點(diǎn)進(jìn)行了設(shè)計(jì):針對stm32的核心板塊進(jìn)行了基于原理框圖的設(shè)計(jì),根據(jù)原理框圖,來焊接每一部分的pcb板。對PLC各個(gè)過程所需要的電路圖進(jìn)行了整體的分析,以及給控制器連接好每一條線以及安裝。(4)為了實(shí)現(xiàn)軟件之間的通信功能,進(jìn)行了程序。通過MDK5對STM32進(jìn)行程序設(shè)計(jì),通過STEP7-Micro/WIN對PLC的軟件部分進(jìn)行程序設(shè)計(jì)。通過程序設(shè)計(jì),能夠?qū)崿F(xiàn)讓用戶感受到人機(jī)交互畫面的功能。本文是在傳統(tǒng)售貨機(jī)的基礎(chǔ)上進(jìn)行了優(yōu)化設(shè)計(jì),其中主要包括兩點(diǎn):(1)本設(shè)計(jì)采用了主輔控制器的聯(lián)動(dòng)控制來完成對智能售餐機(jī)的設(shè)計(jì),聯(lián)動(dòng)設(shè)計(jì)解決了單個(gè)處理器和多個(gè)外設(shè)通信時(shí),通信沖突的問題。用一個(gè)帶有輔助驅(qū)動(dòng)控制器的兩種方式加起來直接同時(shí)完成了中餐飲品的出貨進(jìn)場和產(chǎn)品出貨管理功能,輔助驅(qū)動(dòng)控制器和一個(gè)主輔助控制器之間可以通過rs485的數(shù)據(jù)通訊控制方式直接同時(shí)完成數(shù)據(jù)通訊,一方面節(jié)約了主控制器的系統(tǒng)資源,另一方面也對系統(tǒng)的穩(wěn)定性進(jìn)行一定的提升。(2)在考慮到設(shè)備所應(yīng)用的場景為人流量巨大的快餐店,在支付方式的選擇上,因?yàn)楝F(xiàn)金支付不夠便利,刷卡支付不夠大眾化,所以在設(shè)計(jì)支付模塊中,采用二維碼識(shí)讀模塊,顧客通過出示二維碼進(jìn)行支付,不僅節(jié)約了時(shí)間還免除了可能出現(xiàn)的假幣情況。大大增加了設(shè)備的便利性。本文研究的智能售餐機(jī)是基于STM32微處理器和西門子PLC進(jìn)行設(shè)計(jì)的。相較于現(xiàn)有的自動(dòng)售餐機(jī),本設(shè)計(jì)初步實(shí)現(xiàn)了移動(dòng)支付功能以及優(yōu)化的人機(jī)交互界面。但目前只是探索階段,隨著社會(huì)科技的飛速發(fā)展,顧客對于智能售餐機(jī)功能的要求會(huì)越來越高。而且在進(jìn)行系統(tǒng)設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計(jì)算機(jī)公共基礎(chǔ)》課件
- 2025年度南京辦公室裝修項(xiàng)目造價(jià)咨詢合同3篇
- 2025年度燃?xì)庑袠I(yè)員工離職經(jīng)濟(jì)補(bǔ)償及爭議處理合同-@-1
- 課題申報(bào)參考:逆向跨國并購后企業(yè)內(nèi)部控制合規(guī)管理模式構(gòu)建研究
- 二零二五年度國際能源資源合作合同4篇
- 課題申報(bào)參考:面向社交網(wǎng)絡(luò)大數(shù)據(jù)的沂蒙精神傳播態(tài)勢及優(yōu)化路徑研究
- 2025版精密機(jī)床購置及售后服務(wù)合同2篇
- 二零二五年度醫(yī)療健康商標(biāo)轉(zhuǎn)讓與知識(shí)產(chǎn)權(quán)合同
- 2025年度個(gè)人與公司間技術(shù)秘密保護(hù)協(xié)議
- 2025版內(nèi)衣品牌跨界合作營銷合同4篇
- 如何提高售后服務(wù)的快速響應(yīng)能力
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項(xiàng)練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- 種子輪投資協(xié)議
- 員工工資條模板
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級數(shù)學(xué)下冊全冊課件
- 華為攜手深圳國際會(huì)展中心創(chuàng)建世界一流展館
評論
0/150
提交評論