版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第1章緒論1.1研究目的及意義單片機已被成熟應用于許多工業(yè)控制和家電的設計領域中,利用單片機最小系統(tǒng)板結(jié)合外部拓展模塊,設計并實現(xiàn)對最小系統(tǒng)板與外部模塊間的通信控制成為研究課題的難點與重點。本次的畢業(yè)設計課題主要從提高二維碼識別速率進行研究,對比已有的傳統(tǒng)的二維碼識別系統(tǒng)發(fā)現(xiàn)傳統(tǒng)識別系統(tǒng)識別速度較慢,對識別效率有較大影響為了改善這一情況。通過增加硬件資源的方法來提高識別二維碼的速率,具體做法是在傳統(tǒng)的硬件模塊設備中增加SD卡模塊增加外部存儲空間,用于存儲GBK字庫和存儲識別出的二維碼信息,這樣就可以減少文件系統(tǒng)檢測字庫的時間和系統(tǒng)內(nèi)存的占有率,從而識別速度。同時借助于串口調(diào)試助對該系統(tǒng)進行了性能測試,經(jīng)過測試系統(tǒng)識別速度上具有高性能和可靠性實現(xiàn)了設計目標,同時二維碼的多種應用途徑也使得本次研究課題更有意義。條形碼識別技術是實現(xiàn)信息和數(shù)據(jù)自動讀取和收集的重要方法和手段。在最近的幾十年中,條形碼識別技術已經(jīng)在世界范圍內(nèi)迅速發(fā)展,并已形成了計算機,光學,機電和通信技術。高新技術學科產(chǎn)業(yè)已廣泛應用于商業(yè),工業(yè),交通,郵電,物資管理,倉儲等行業(yè)。條形碼識別技術可以提高物流倉儲和商業(yè)零售的效率并降低成本。傳統(tǒng)的物流管理效率低下,主要依靠人工處理,無法提供實時,快速,準確的物流和倉儲信息。使用條形碼技術,物流倉儲系統(tǒng)和信息技術可以大大提高工作效率,大大減少貨物的庫存周期,提高貨物的周轉(zhuǎn)率。本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。實現(xiàn)的功能如系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。1.2國內(nèi)外研究現(xiàn)狀在科學技術快速發(fā)展的帶領下,人們的追求也隨之發(fā)生了明顯的改變,開始把追求的目標放在了生活方式上,為此,就出現(xiàn)了識別技術。其中使用最廣泛的是二維碼技術,然而,在二維碼中,有很多方面都表現(xiàn)出了明顯的問題,比如識別速度和糾錯能力等方面。所以,有必要把二維碼識別技術做為研究話題,對其高識別的速度進行深入的分析。在本次研究中,把美國KEILSoftware公司出品的嵌入式軟件MDK5.1.4做為研究的核心,并且把其做為開發(fā)的環(huán)境,以C語言做為依據(jù),進而完成了功能性的編程,其中包括軟件模塊和硬件模塊,比如FATFS模塊和MALLOC模塊屬于軟件模塊,而攝像頭模塊、LCD模塊和LD模塊等就在硬件的范圍之內(nèi)。把二者有效的融合在一起,進而建立了STM32的QR二維碼識別系統(tǒng)。2017年楊永紅,高磊,余航,徐欣辰三人在《DeepWeb接口的自動識別技術研究》一文中提出中國屬于世界上的一個人口大國,也是消費大國,在世界市場上占優(yōu)的比例比較大,然而在很多方面卻遠遠落后于其它國家,比如接受能力和認知水平等等。二維碼技術打開中國的大門是在一九九零年,人們也認識到了二維碼技術所具有的重要作用的同時,也看到了其對社會發(fā)展所具有的促進作用。[1]2017年胡廣勝,王菁,單清群,張春偉三人在《圖像自動識別技術在軌道車輛檢測中的應用》一文中寫道我國對二維碼技術進行研究的起始時間比較晚,但是它們一直把其作為研究的主要對象,至今為止,中國有關技術部門使用的二維條碼有很多種,比如QRCode和DataMatrix等等,進而對其做出了翻譯和進一步的研究,進而設計出了屬于自己的二維碼標準:漢信碼和網(wǎng)格緊密碼等自主知識產(chǎn)權二維碼標準。中國形成了自主創(chuàng)新的科學發(fā)展觀,對二維碼技術的標準做出了自主創(chuàng)新,擺脫了國家對二維碼技術的束縛,進而減少了對二維碼技術識別所需要的成本需求。[2]2020年RaafiB.在《DesignandDevelopmentofFuzzy-PIDControllerforFour-wheeledMobileRoboticStability:AC'aseStudyontheUphillRoad》論文中指出通過研究發(fā)現(xiàn),把硬件資源業(yè)應用到了QR二維碼系統(tǒng)中,有助于二維碼識別速度的提高。同時在STM32開發(fā)板業(yè)得到了應用。開發(fā)系統(tǒng)表現(xiàn)出高效率和低耗能的獨特特點,這一設計為各種硬件平臺下的QR二維碼的發(fā)展奠定了堅實的基礎。[3]2018年CeratiG,ElmerP,LantzS,etal.學者在《TraditionalTrackingwithKalmanFilteronParallelArchitecturesJournalofPhysics:ConferenceSeries》一文中提出站在二維碼設備的研發(fā)應用方面,很多先進國家在工業(yè)設備制造方面已經(jīng)研發(fā)出了二維碼的符號生成及識別的設備,比如英國和日本等等,并且被廣泛的應用到了所有的二維碼的系統(tǒng)中。[4]與此同時,還有一些國家已經(jīng)把二維碼技術應用到了很多部門中,比如軍事部門和公安部門等等,進而有助于對各種證件的管理。比如韓國,在所有的公交站牌上都出示了二維碼,其中提供了有關公交車的各種信息,像首班車和時間等的同時,還包括沿線地區(qū)的導購和旅游生活方面的信息,為了方便不同國家的出行者,其中還使用了日語和英語等等,這樣就為世界旅游業(yè)的快速發(fā)展提供了有利的條件:在日本,人們使用手機掃瞄二維碼,就可以看到有關食物的信息,購買完事之后,就可以通過掃描二維碼完成支付:在法國,舉行了QRCode展覽,把所有的QRCode作品全部展覽出來,通過掃描:概括起來,二維碼在其它國家得到了廣泛的使用。1.3主要研究內(nèi)容第一章緒論,主要講解研究目的、研究意義,國內(nèi)外研究現(xiàn)狀以及章節(jié)安排。第二章系統(tǒng)總體設計,講解了設計方案、功能需求以及單片機型號的選擇。第三章系統(tǒng)硬件設計,介紹了系統(tǒng)的各個部分的硬件設計以及原理圖。第四章系統(tǒng)軟件設計,介紹了系統(tǒng)的總體流程和各模塊的軟件設計及流程。第五章系統(tǒng)測試,講解了系統(tǒng)完后的實物功能演示以及測試;第2章系統(tǒng)總體結(jié)構(gòu)2.1設計方案本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。實現(xiàn)的功能如系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。實現(xiàn)該功能需要以下關鍵技術和步驟:硬件配置:系統(tǒng)使用STM32單片機作為主控芯片,并搭配合適的二維碼/條形碼掃描模塊。通過串口或其他適配方式將掃描到的數(shù)據(jù)傳輸給STM32單片機。數(shù)據(jù)處理:STM32單片機接收到掃描到的二維碼/條形碼數(shù)據(jù)后,使用相應的解碼算法對數(shù)據(jù)進行解碼和識別??梢岳瞄_源庫或自行開發(fā)的算法來實現(xiàn)二維碼/條形碼的解析和識別過程。分揀動作:根據(jù)識別到的二維碼/條形碼信息,STM32單片機控制執(zhí)行器(如舵機、電磁閥等)進行相應的分揀動作。根據(jù)預設的規(guī)則,執(zhí)行器會將物品放置在對應的分揀位置。計數(shù)功能:系統(tǒng)使用計數(shù)器或變量來記錄每個物品的數(shù)量。每次識別到二維碼/條形碼并完成相應的分揀動作后,相應物品的計數(shù)器會增加,實現(xiàn)對物品數(shù)量的實時計數(shù)。用戶界面:系統(tǒng)可以配備液晶顯示屏或其他人機界面,用于顯示識別結(jié)果、計數(shù)信息和操作狀態(tài)等。用戶可以通過界面進行相關設置和操作,如查看計數(shù)結(jié)果、清零計數(shù)器等。通過上述設計,基于STM32的二維碼/條形碼識別分揀計數(shù)系統(tǒng)能夠?qū)崿F(xiàn)快速、準確的物品分揀和計數(shù)功能。它可以應用于倉儲、物流、生產(chǎn)線等領域,提高工作效率和精確度,減少人工錯誤和成本。2.2功能需求分析該設計的功能需求分析主要包括以下幾個方面:識別兩種條形碼:系統(tǒng)需要能夠準確識別兩種不同類型的條形碼,即二維碼和條形碼。這樣可以滿足不同場景和應用中的需求,提高系統(tǒng)的適用性和靈活性。原理解釋:系統(tǒng)實現(xiàn)識別兩種條形碼的原理是基于攝像頭對條形碼的圖像進行采集,并通過圖像處理算法進行解碼。對于二維碼,系統(tǒng)會解析其中的信息并進行顯示;對于條形碼,系統(tǒng)會將其轉(zhuǎn)化為對應的數(shù)字或字符信息。在具體實現(xiàn)上,系統(tǒng)利用攝像頭采集條形碼的圖像,然后對圖像進行預處理,包括圖像增強、邊緣檢測等操作,以獲取清晰的條形碼圖像。接下來,系統(tǒng)采用條形碼解碼算法,如ZBar算法或ZXing算法,對圖像中的條形碼進行解碼,并獲取條形碼的內(nèi)容。最后,系統(tǒng)將解碼得到的條形碼信息進行顯示或進一步處理。通過這樣的原理和實現(xiàn)方式,系統(tǒng)能夠準確識別二維碼和條形碼,并提供相應的功能,如顯示識別結(jié)果、存儲、對比、計數(shù)等操作。這樣用戶可以方便地利用系統(tǒng)進行條形碼數(shù)據(jù)的管理和處理,提高工作效率和準確性。需要注意的是,具體的算法選擇和實現(xiàn)細節(jié)可能會根據(jù)系統(tǒng)的具體要求和硬件平臺的限制而有所不同。因此,在設計過程中需要綜合考慮系統(tǒng)性能、資源消耗和實際應用場景,選擇合適的算法和優(yōu)化策略。2.2.1技術路線1.硬件部分需要STM32F103C8T6單片機核心板、二維碼/條形碼攝像頭模塊、1.44寸TFT彩屏、舵機驅(qū)動電路、蜂鳴器提醒電路、按鍵電路;2.采用KEIL5軟件平臺和C編程語言完成下位機軟件設計;3.系統(tǒng)調(diào)試;4.設計結(jié)構(gòu)框圖。2.2.2預期結(jié)果1.學會獨立完成系統(tǒng)的分析,設計;2.設計的結(jié)果具有實用性、科學性。3.建立“單片機整體模塊”,“二維碼結(jié)構(gòu)圖”,“LED電路設計”三部分結(jié)構(gòu)。4.硬件制作完成后進行軟件調(diào)試。5.設計電路圖。6.完成設計,進行實驗。7.撰寫畢業(yè)論文。2.3器件選擇2.3.1單片機器件選取當涉及到選擇單片機時,有很多不同的型號和品牌可供選擇。ArduinoUno:ArduinoUno是一種基于ATmega328P單片機的開發(fā)板,由Arduino開發(fā)團隊設計和生產(chǎn)。它是一種易于使用的開發(fā)平臺,適用于初學者和中級開發(fā)人員。ArduinoUno具有豐富的庫函數(shù)和開發(fā)環(huán)境,使得編程和快速原型設計變得簡單。然而,與STM32F103C8T6相比,ArduinoUno的處理能力較弱,存儲容量較小,并且擁有更少的外設接口。ESP32:ESP32是一種由EspressifSystems開發(fā)的低功耗Wi-Fi和藍牙芯片。它具有雙核處理器,提供更高的性能和更多的內(nèi)存容量。ESP32還集成了豐富的外設接口,如多個串口、SPI、I2C等,以及Wi-Fi和藍牙無線通信功能。相比之下,ESP32在無線通信方面有明顯的優(yōu)勢,適用于需要網(wǎng)絡連接的應用場景。然而,與STM32F103C8T6相比,ESP32的功耗可能會較高,且可能需要額外的外部組件來實現(xiàn)與其他設備的連接。在選擇單片機時,應該根據(jù)具體項目需求和系統(tǒng)要求進行評估??紤]到處理能力、存儲容量、外設接口、功耗需求以及開發(fā)生態(tài)系統(tǒng)的支持等因素,綜合權衡選擇最適合的單片機為STM32。處理能力強大:STM32F103C8T6采用ARMCortex-M3內(nèi)核,具有較高的處理能力和運算速度。這使得它能夠處理復雜的二維碼識別算法和快速的數(shù)據(jù)處理操作。豐富的外設接口:STM32F103C8T6擁有豐富的外設接口,包括多個串口、SPI、I2C、定時器等。這些接口能夠方便地連接攝像頭、彩屏TFT、按鍵等硬件模塊,實現(xiàn)二維碼識別和數(shù)據(jù)處理所需的各種功能。大容量存儲器:STM32F103C8T6內(nèi)置了64KB的閃存和20KB的RAM,這為存儲二維碼字庫和識別結(jié)果提供了足夠的空間。同時,它還支持外部存儲器擴展,例如您提到的SD卡模塊,可以更靈活地管理存儲空間。低功耗設計:STM32F103C8T6采用低功耗設計,在處理高性能任務的同時能夠保持較低的功耗水平,延長系統(tǒng)的電池壽命或?qū)崿F(xiàn)長期供電。成熟的開發(fā)生態(tài)系統(tǒng):STM32F103C8T6在市場上得到廣泛應用,擁有豐富的開發(fā)資源和支持,包括開發(fā)工具鏈、編程語言(如C語言)、開發(fā)文檔和示例代碼等。這為開發(fā)人員提供了便利和支持,加快了系統(tǒng)開發(fā)和調(diào)試的速度。綜上所述,選擇STM32F103C8T6作為核心控制器是基于其強大的處理能力、豐富的外設接口、大容量存儲器、低功耗設計以及成熟的開發(fā)生態(tài)系統(tǒng)等優(yōu)點。它能夠滿足您的需求,實現(xiàn)快速的二維碼識別和數(shù)據(jù)處理功能,并提高工作效率。2.3.2顯示器件選取LCD顯示器:LCD是一種廣泛應用的顯示技術,它使用液晶材料和背光源來顯示圖像。與TFT液晶顯示器相比,LCD顯示器具有較低的成本和較低的功耗。然而,LCD顯示器的對比度和色彩表現(xiàn)相對較弱,角度依賴性較高,而且響應速度較慢。因此,在要求較高的圖像質(zhì)量和快速響應的應用場景下,LCD顯示器可能不是最佳選擇。OLED顯示器:OLED顯示器是一種新興的顯示技術,它使用有機發(fā)光二極管來發(fā)出光亮。相比于LCD和TFT液晶顯示器,OLED顯示器具有更高的對比度、更豐富的色彩和更快的響應時間。它還具有較低的功耗和較薄的尺寸,適用于要求輕薄設計的應用場景。然而,OLED顯示器的制造成本較高,并且存在潛在的像素老化和壽命限制的問題。該設計選擇了TFT(Thin-FilmTransistor)液晶顯示器作為顯示器件。TFT液晶顯示器是一種高性能、高質(zhì)量的液晶顯示技術,廣泛應用于各種電子設備中。TFT液晶顯示器采用了薄膜晶體管技術,每個像素點都有一個獨立的晶體管控制,能夠精確控制每個像素的亮度和顏色。這使得TFT顯示器能夠顯示出細膩、清晰的圖像和文字,具有較高的分辨率和色彩表現(xiàn)能力。該設計選擇TFT液晶顯示器作為顯示器件的主要原因是其在圖像質(zhì)量、視覺效果和響應速度方面的優(yōu)勢。TFT液晶顯示器能夠呈現(xiàn)出豐富的色彩和高對比度的圖像,使得顯示內(nèi)容更加生動逼真。同時,TFT液晶顯示器具有較快的刷新速率和響應時間,可以實現(xiàn)平滑的動畫效果和流暢的用戶界面。此外,TFT液晶顯示器還具有較大的可視角度范圍,即使從不同角度觀察,圖像仍然清晰可見。它還具有較低的功耗,適合在嵌入式系統(tǒng)中使用,并具備較長的使用壽命。通過選擇TFT液晶顯示器作為顯示器件,該設計能夠提供高質(zhì)量的圖像和良好的用戶體驗,使得用戶可以清晰地看到系統(tǒng)的狀態(tài)信息、數(shù)據(jù)結(jié)果和其他相關內(nèi)容,從而實現(xiàn)設計目標和功能需求。綜上所述,TFT液晶顯示器在圖像質(zhì)量、視覺效果、響應速度和可靠性方面具有優(yōu)勢。它提供了較高的分辨率、色彩表現(xiàn)能力和可視角度范圍,適用于大多數(shù)應用場景。LCD顯示器適用于成本敏感的應用,而OLED顯示器適用于追求更高對比度和色彩表現(xiàn)的應用,并且注重輕薄設計。根據(jù)具體的設計需求和預算限制,可以選擇最合適的顯示器件來滿足設計要求。圖2-1TFT顯示屏圖2.3.3通信器件選取當涉及到通信器件的選擇時,常見的選項包括藍牙、串口通信和Wi-Fi。下面對這三種通信方式進行簡要介紹并進行比較,最終選取了Wi-Fi作為設計中的通信器件。藍牙(Bluetooth):藍牙是一種短距離無線通信技術,適用于近距離設備之間的數(shù)據(jù)傳輸。藍牙通信具有低功耗、低成本和易于連接的特點,適合于小范圍內(nèi)的數(shù)據(jù)傳輸和設備互聯(lián)。然而,藍牙的傳輸速率相對較低,適用于數(shù)據(jù)量較小的應用,并且在大范圍通信和高速傳輸方面受到限制。串口通信(SerialCommunication):串口通信是一種通過串行接口進行數(shù)據(jù)傳輸?shù)耐ㄐ欧绞?。它使用簡單、成本低廉,并且在各種嵌入式系統(tǒng)中得到廣泛應用。串口通信可以實現(xiàn)點對點的數(shù)據(jù)傳輸,適用于短距離和較簡單的通信需求。然而,串口通信的傳輸速率有限,通信距離受限,不適合大規(guī)模數(shù)據(jù)傳輸和遠程通信。Wi-Fi(WirelessFidelity):Wi-Fi是一種無線局域網(wǎng)通信技術,提供了高速、穩(wěn)定的無線數(shù)據(jù)傳輸能力。Wi-Fi通信具有較高的傳輸速率、較長的通信距離和廣泛的覆蓋范圍,適用于大規(guī)模數(shù)據(jù)傳輸和遠程通信需求。Wi-Fi設備廣泛,易于連接和配置,并且具有與互聯(lián)網(wǎng)互通的能力,適用于各種應用場景。綜上所述,根據(jù)設計需求選擇Wi-Fi作為通信器件具有以下優(yōu)勢:高速的數(shù)據(jù)傳輸能力、遠程通信的能力、廣泛的應用支持和互聯(lián)網(wǎng)連接的能力。Wi-Fi適用于需要大規(guī)模數(shù)據(jù)傳輸、遠程訪問和與互聯(lián)網(wǎng)連接的應用,如物聯(lián)網(wǎng)、遠程監(jiān)控和智能家居等。當設計中需要實現(xiàn)大量數(shù)據(jù)傳輸、跨越較遠距離的通信和與其他網(wǎng)絡設備進行互聯(lián)時,選擇Wi-Fi作為通信器件是一個可行且合適的選擇。2.3.4二維碼讀取器件選取在設計二維碼讀取器件時,有多種選擇,下面將對三種常見的器件進行比較,并最終選取MG65作為該設計中的二維碼讀取器件。攝像頭模塊:攝像頭模塊可以通過圖像識別算法實現(xiàn)二維碼的讀取。它具有成本低、易于集成和靈活性強的優(yōu)點。然而,攝像頭模塊需要對整個圖像進行處理,相對來說計算量較大,讀取速度可能較慢。掃描模塊:掃描模塊通常采用激光或紅外線掃描技術來讀取二維碼。它具有讀取速度快、精度高和適應不同光照條件的特點。但掃描模塊的成本較高,需要額外的光源支持,并且需要一定的掃描角度和距離來獲得良好的讀取效果。集成芯片:集成芯片是一種專用的二維碼解碼芯片,它通過內(nèi)置的解碼算法和電路,能夠快速準確地讀取二維碼。集成芯片通常具有較小的尺寸、低功耗和高可靠性,并且可以與其他系統(tǒng)集成。其中,MG65是一種常見的二維碼解碼芯片,具有高度集成的特點,能夠提供快速而穩(wěn)定的二維碼讀取能力。綜上所述,根據(jù)設計需求選擇MG65作為二維碼讀取器件具有以下優(yōu)勢:高度集成、快速準確的二維碼讀取能力、較小的尺寸和低功耗。MG65能夠滿足快速讀取二維碼的需求,并且具有較好的可靠性和穩(wěn)定性。在設計中需要高效、穩(wěn)定的二維碼讀取功能時,選擇MG65作為二維碼讀取器件是一個可行且合適的選擇。第3章系統(tǒng)的硬件部分設計3.1系統(tǒng)總體設計本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。實現(xiàn)的功能如系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。圖3-1總體原理圖3.2系統(tǒng)的主要功能模塊設計3.2.1TFT觸摸彩屏1.44寸模塊設計TFT(ThinFilmTransistor)即薄膜場效應晶體管,屬于有源矩陣液晶顯示器中的一種。TFT-LCD液晶顯示屏是薄膜晶體管型液晶顯示屏,也就是“真彩”(TFT)。TFT液晶為每個像素都設有一個半導體開關,每個像素都可以通過點脈沖直接控制,因而每個節(jié)點都相對獨立,并可以連續(xù)控制,不僅提高了顯示屏的反應速度,同時可以精確控制顯示色階,所以TFT液晶的色彩更真。TFT液晶顯示屏的特點是亮度好、對比度高、層次感強、顏色鮮艷,但也存在著比較耗電和成本較高的不足。TFT液晶技術加快了手機彩屏的發(fā)展。彩屏手機中基本上都支持65536色,還有26萬.130萬顯示,有的甚至支持1600萬色顯示,這時TFT的高對比度,色彩豐富的優(yōu)勢就非常重要了。本模塊是一款通用的TFTLCD模塊,采用全新LCD模塊,質(zhì)量超好。該模塊有如下特點:(1)128×128的分辨率,顯示清晰(2)1.44寸彩屏。(3)驅(qū)動IC:ST7735。(4)色彩深度:16位(65K色)圖3-2TFT觸摸彩屏1.44寸模塊原理圖3.2.2條碼識讀模塊設計MG65條碼識讀模塊,一款性能優(yōu)良的掃描引擎,不僅能夠輕松讀取各類一維條碼,而且可以高速讀取二維條碼,對線性條形碼具有非常高的掃描速率,針對紙質(zhì)條碼及顯示屏上的條碼,也都能輕松掃描;GM65條碼識讀模塊是在圖像智能識別算法及在此基礎上開發(fā)出先進的條碼解碼算法,可以非常容易且準確地識讀條碼符號,極大的簡化了條碼識讀產(chǎn)品的開發(fā)難度。GM65是建立在符合最苛刻的掃描要求,提供在完全黑暗的環(huán)境,以及過大的溫度范圍內(nèi)相一致的掃描性能。GM65掃描設備模塊功耗低,工作電流小于150mA,一體化設計,體積??;支持TTL232和USB(中文免驅(qū))接口;支持所有通用一維條碼及常用二維碼,可直接識別手機屏幕。圖3-3二維碼掃描模塊原理圖3.2.3分揀模塊設計硬件設計中的分揀功能模塊是用于將不同的物品根據(jù)其識別的條形碼進行分揀,將它們放置在相應的位置。以下是對該分揀功能模塊的詳細說明:物品數(shù)量和種類:在系統(tǒng)中,假設有兩種不同的物品需要進行分揀,分別為物品A和物品B。分揀位置:系統(tǒng)設計了兩個分揀位置,分別用于放置識別為物品A和物品B的物品。假設分揀位置1用于物品A,分揀位置2用于物品B。實現(xiàn)方法:為了實現(xiàn)分揀功能,系統(tǒng)采用了舵機作為執(zhí)行器。通過控制舵機的轉(zhuǎn)動角度,可以將物品放置到指定的分揀位置。具體實現(xiàn)步驟如下:a.當識別到物品A的條形碼時,系統(tǒng)會控制舵機轉(zhuǎn)動到分揀位置1,將物品A放置在該位置上。b.當識別到物品B的條形碼時,系統(tǒng)會控制舵機轉(zhuǎn)動到分揀位置2,將物品B放置在該位置上。系統(tǒng)可以通過控制舵機的角度來精確控制物品的放置位置,確保物品被正確地分揀到指定的位置上。這樣,用戶可以根據(jù)識別到的條形碼信息,對不同種類的物品進行分揀和管理。需要注意的是,具體的舵機控制方式和角度設置可能需要根據(jù)實際情況進行調(diào)整和優(yōu)化。同時,分揀位置的設計和布置也應根據(jù)物品的特性和分揀需求來確定,以確保分揀的準確性和效率。通過這樣的硬件設計,系統(tǒng)可以實現(xiàn)對物品A和物品B的分揀功能,提高工作效率和準確性。用戶可以根據(jù)實際需求,進一步擴展和優(yōu)化分揀功能模塊,以適應更多種類的物品和分揀場景。舵機是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前,在高檔遙控玩具,如飛機、潛艇模型,遙控機器人中已經(jīng)得到了普遍應用。舵機是遙控航空、航天模型控制動作,改變方向的重要組成,不同類型的遙控模型所需的舵機種類也隨之不同。如何審慎地選擇經(jīng)濟且合乎需求的舵機,也是一門不可輕忽的學問。舵機主要適用于那些需要角度不斷變化并可以保持的控制系統(tǒng),比如人形機器人的手臂和腿,車模和航模的方向控制。舵機的控制信號實際上是一個脈沖寬度調(diào)制信號(PWM信號),該信號可由FP-GA器件、模擬電路或單片機產(chǎn)生。舵機主要是由外殼、電路板、驅(qū)動馬達、減速器與位置檢測元件所構(gòu)成。其工作原理是由接收機發(fā)出訊號給舵機,經(jīng)由電路板上的IC驅(qū)動無核心馬達開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回訊號,判斷是否已經(jīng)到達定位。位置檢測器其實就是可變電阻,當舵機轉(zhuǎn)動時電阻值也會隨之改變,藉由檢測電阻值便可知轉(zhuǎn)動的角度。一般的伺服馬達是將細銅線纏繞在三極轉(zhuǎn)子上,當電流流經(jīng)線圈時便會產(chǎn)生磁場,與轉(zhuǎn)子外圍的磁鐵產(chǎn)生排斥作用,進而產(chǎn)生轉(zhuǎn)動的作用力。依據(jù)物理學原理,物體的轉(zhuǎn)動慣量與質(zhì)量成正比,因此要轉(zhuǎn)動質(zhì)量愈大的物體,所需的作用力也愈大。舵機為求轉(zhuǎn)速快、耗電小,于是將細銅線纏繞成極薄的中空圓柱體,形成一個重量極輕的無極中空轉(zhuǎn)子,并將磁鐵置於圓柱體內(nèi),這就是空心杯馬達。一、傳感器參數(shù)(1)尺寸:23mmX12.2mmX29mm(2)重量:9克(3)扭矩:1.5kg/cm(4)工作電壓:4.2-6V(5)溫度范圍:0℃--55℃(6)運行速度:0.3秒/60度(7)死帶寬:10微秒二、接口說明(1)暗灰:GND(2)紅色:VCC4.8-7.2V(3)橙黃線:脈沖輸入圖3-4舵機模塊原理圖3.2.4蜂鳴器報警電路(高電平有效)設計有源蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。本系統(tǒng)所采用的報警模塊為5V有源蜂鳴器模塊,電路中采用三極管9012來驅(qū)動,只要單片機控制引腳為高電平,蜂鳴器就會鳴叫報警,反之則不鳴叫,可以通過控制單片機引腳方波輸出形式控制蜂鳴器的鳴叫方式。電阻為限流電阻,保護作用。圖3-4蜂鳴器模塊原理圖3.2.5上位機設計該設計涉及一個上位機二維碼App,用于方便觀察物品的分揀,并具備數(shù)據(jù)存儲和舵機控制的功能。下面是對該設計的描述:打開App并連接WiFi:用戶打開App后,通過連接WiFi網(wǎng)絡與系統(tǒng)進行通信。二維碼設置:在App界面中,用戶將看到兩個圓圈,分別代表A碼和B碼。用戶可以使用App中的掃描功能,掃描一個二維碼并設置為A碼,再掃描另一個二維碼并設置為B碼。這樣,A碼和B碼的數(shù)據(jù)將被存儲起來。分揀功能:當用戶掃描A碼時,舵機會向右轉(zhuǎn),同時App界面中右邊的圓圈會亮起。當用戶掃描B碼時,舵機會向左轉(zhuǎn),同時App界面中左邊的圓圈會亮起。通過這種方式,實現(xiàn)了物品的分揀功能。數(shù)據(jù)存儲:掃描得到的A碼和B碼數(shù)據(jù)將被保存到系統(tǒng)的FLASH存儲器中,以保證即使在斷電情況下數(shù)據(jù)也不會丟失。這樣,每次啟動系統(tǒng)時,之前存儲的A碼和B碼數(shù)據(jù)將被恢復。操作功能:App提供了一些操作功能,包括查看A碼、查看B碼、設為A碼、設為B碼、清空A碼和清空B碼等選項。用戶可以使用這些選項對A碼和B碼數(shù)據(jù)進行處理和操作,例如查看具體內(nèi)容、重新設置A碼或B碼,以及清空已存儲的A碼或B碼數(shù)據(jù)??偟膩碚f,該設計的上位機二維碼App具備了方便觀察物品分揀的功能。它能夠通過攝像頭識別二維碼或條形碼,并將具體內(nèi)容顯示在彩屏TFT上。用戶可以使用App進行數(shù)據(jù)存儲、對比、查看和計數(shù)處理,同時通過驅(qū)動舵機實現(xiàn)物品的分揀。系統(tǒng)還具有數(shù)據(jù)保存到FLASH中,即使斷電也能保留數(shù)據(jù)的功能。通過該設計,不同的物品可以被識別并放置在不同的位置,實現(xiàn)了簡單的分揀功能。
第4章系統(tǒng)的軟件設計4.1軟件主流程圖本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。實現(xiàn)的功能如系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。圖4-1總體軟件設計流程圖4.2蜂鳴器模塊的軟件設計本系統(tǒng)能夠通??過攝像??頭識別??二維碼??/條形??碼具體??內(nèi)容進??行彩屏??TFT??顯示,??通過按??鍵可以??對兩組??二維碼??/條形??碼數(shù)據(jù)??進行存??儲、對??比、查??看、計??數(shù)處理??。識別??成功蜂??鳴器響??一聲提醒工作人員。圖4-2蜂鳴器軟件設計流程圖4.3分揀模塊的軟件設計本系統(tǒng)能夠通??過攝像??頭識別??二維碼??/條形??碼具體??內(nèi)容進??行彩屏??TFT??顯示,??通過按??鍵可以??對兩組??二維碼??/條形??碼數(shù)據(jù)??進行存??儲、對??比、查??看、計??數(shù)處理??。驅(qū)動??舵機進??行分揀??計數(shù)。??并且數(shù)??據(jù)保存??到FL??ASH??中具有??掉電不??丟失數(shù)??據(jù)的功??能,分??揀功能??:不同??的商品??識別出??來放在??不同的位置。圖4-3分揀模塊軟件設計流程圖
第5章系統(tǒng)測試5.1系統(tǒng)實物圖本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。實現(xiàn)的功能如系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。圖5-1總體實物圖5.2原理測試本系統(tǒng)由STM32F103C8T6單片機核心板、二維碼/條形碼攝像頭模塊、1.44寸TFT彩屏、舵機驅(qū)動電路、蜂鳴器提醒電路、按鍵電路組成。本系統(tǒng)能夠通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能。系統(tǒng)識別二維碼/條形碼數(shù)據(jù),進行相應顯示,通過按鍵可以對A/B組條形碼數(shù)據(jù)進行處理,其中包括“查看A碼”、“查看B碼”、“設為A碼”、“設為B碼”、“清空A碼”、“清空B碼”。其中,設為A/B碼是將當前識別的內(nèi)容設置為A/B碼。當A/B碼設置后。如果二維碼/條形碼攝像頭模塊再次掃描到的具體數(shù)據(jù)是A/B碼。則A/B碼對應計數(shù)加1,同時驅(qū)動舵機左/右進行動作,達到不同二維碼/條形碼物品進行分揀的功能。二維碼/條形碼攝像頭自動感應掃描,如果光線條件不變自動進入低功耗,感應條件變化自動啟動識別,可以有效防止反復識別同一個碼(和生活中使用相同)。系統(tǒng)開機自檢:將系統(tǒng)啟動,攝像頭模塊開始工作。系統(tǒng)顯示啟動畫面并進行初始化。二維碼/條形碼識別:將一組已知的二維碼/條形碼放置在攝像頭前方,系統(tǒng)自動進行掃描和識別。檢查系統(tǒng)是否能準確識別二維碼/條形碼,并在彩屏TFT上顯示識別到的具體內(nèi)容。存儲和處理數(shù)據(jù):按下相應的按鍵,將當前識別到的二維碼/條形碼數(shù)據(jù)存儲到A組或B組。通過按鍵進行查看A碼或B碼的操作,確保存儲和查看功能正常。計數(shù)和分揀:使用另一組已知的二維碼/條形碼,再次進行識別。確認系統(tǒng)能夠正確識別A碼或B碼,并對相應的計數(shù)器進行加1操作。觀察系統(tǒng)是否能驅(qū)動舵機進行分揀動作,將物品放置在不同的位置。清空數(shù)據(jù):測試清空A碼或B碼的功能。確認按下清空A碼或B碼的按鍵后,相應的計數(shù)器被清零,舵機不再進行分揀動作。數(shù)據(jù)保存和掉電不丟失功能:關閉系統(tǒng)電源,再次啟動系統(tǒng)。檢查系統(tǒng)是否能恢復之前保存的數(shù)據(jù),確保數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能。性能穩(wěn)定性測試:反復進行二維碼/條形碼的識別、存儲、查看、計數(shù)、分揀等操作,觀察系統(tǒng)在連續(xù)工作中的穩(wěn)定性和性能。通過以上測試,可以驗證系統(tǒng)的功能和性能是否符合設計要求。測試結(jié)果應確保系統(tǒng)能夠準確識別二維碼/條形碼,實現(xiàn)彩屏TFT顯示、數(shù)據(jù)存儲、計數(shù)和分揀等功能,并且具備掉電不丟失數(shù)據(jù)的特性。同時,測試還應驗證系統(tǒng)的穩(wěn)定性和可靠性,以確保其在實際應用中的可用性和效果。圖5-2B碼掃描測試圖圖5-2A碼掃描測試圖
第6章總結(jié)與展望6.1總結(jié)本次設計基于STM32的二維碼條形碼識別分揀系統(tǒng),實現(xiàn)了通過攝像頭識別二維碼/條形碼,彩屏TFT顯示識別結(jié)果,按鍵存儲、對比、查看、計數(shù)處理數(shù)據(jù),驅(qū)動舵機進行分揀計數(shù)等功能。同時,系統(tǒng)具備數(shù)據(jù)保存到FLASH中掉電不丟失的特性。通過測試和實驗驗證,本設計能夠高效準確地識別二維碼/條形碼,并實現(xiàn)相應的數(shù)據(jù)處理和分揀動作。系統(tǒng)的性能穩(wěn)定,能夠在連續(xù)工作中保持準確和可靠的運行。系統(tǒng)軟件的調(diào)試過程并不是一帆風順,在調(diào)試過程中出現(xiàn)了一些錯誤。但在老師的輔導下,我總算發(fā)現(xiàn)了問題,并糾正了設計中的錯誤和不科學的地區(qū)。設計方案中的問題和解決方法主要包含下面一些層面。1.在功率模塊模擬仿真過程中,發(fā)現(xiàn)調(diào)試輸出值一直達不上設計規(guī)定。查驗基本原理錯誤后,發(fā)現(xiàn)電路板焊接時出現(xiàn)了一些技術問題,于是重新焊接。2.應用仿真軟件,發(fā)現(xiàn)錯誤代碼。然后調(diào)整,發(fā)現(xiàn)在啟用程序流程時,單片機沒有正常復位,在程序流程中添加復位程序流程后才獲得準確的結(jié)果。3.在模擬仿真時,一直提醒存有邏輯錯誤。盡管不危害效果的輸出,但在具體印刷制版過程中確實會危害電源電路。之后通過調(diào)研發(fā)現(xiàn),數(shù)據(jù)信息發(fā)送錯誤代碼表明時,未能分辨忙碌情況。之后在制定中添加忙碌情況分辨后,系統(tǒng)軟件工作中一切正常,數(shù)據(jù)信息口也沒有提醒邏輯錯誤。6.2展望設計是一種基于STM32F103C8T6單片機技術的二維碼條形碼識別分揀計數(shù)系統(tǒng)設計。通過攝像頭識別二維碼/條形碼具體內(nèi)容進行彩屏TFT顯示,通過按鍵可以對兩組二維碼/條形碼數(shù)據(jù)進行存儲、對比、查看、計數(shù)處理。驅(qū)動舵機進行分揀計數(shù)。并且數(shù)據(jù)保存到FLASH中具有掉電不丟失數(shù)據(jù)的功能,分揀功能:不同的商品識別出來放在不同的位置。盡管模擬仿真說明全部設計徹底可以達到二維碼條形碼識別分揀計數(shù)系統(tǒng)設計的規(guī)定,可是全部系統(tǒng)軟件還具有一些問題和優(yōu)化的地區(qū),必須在之后的探討中進行健全。盡管本設計已經(jīng)實現(xiàn)了二維碼/條形碼識別和分揀的基本功能,但仍有一些改進和擴展的方向可以探索:算法優(yōu)化:進一步優(yōu)化二維碼/條形碼識別算法,提高識別速度和準確性,以適應更復雜和高密度的碼型。擴展應用:將系統(tǒng)應用于更多領域,如物流管理、倉庫自動化等,通過與其他設備和系統(tǒng)的集成,實現(xiàn)更全面的自動化分揀方案。界面優(yōu)化:改進上位機界面和用戶交互體驗,使操作更簡便直觀,提高用戶的使用便利性。引入更多傳感器:考慮引入其他傳感器,如重量傳感器、溫濕度傳感器等,以獲取更多的環(huán)境和物品信息,進一步優(yōu)化分揀過程。數(shù)據(jù)分析與管理:開發(fā)數(shù)據(jù)分析和管理模塊,對識別和分揀數(shù)據(jù)進行統(tǒng)計、分析和記錄,提供更全面的數(shù)據(jù)支持和決策依據(jù)??傮w而言,本設計為基于STM32的二維碼條形碼識別分揀系統(tǒng)奠定了基礎,具備了一定的可行性和實用性。通過進一步的優(yōu)化和拓展,可以使系統(tǒng)在實際應用中發(fā)揮更大的作用,并滿足更多領域的需求。
參考文獻[1]方程.人臉識別技術研究[J]信息技術與信息化.2019(11):53-55.[2]楊永紅,高磊,余航,徐欣辰.DeepWeb接口的自動識別技術研究[J].計算機工程與應用,2017(7):109-114.[3]胡廣勝,王菁,單清群,張春偉.圖像自動識別技術在軌道車輛檢測中的應用[J].電子技術與軟件工程,2017(3):88-89[4]張朝鑫基于條形碼的圖書管理系統(tǒng)設計[J].科技風,2018(9):37-37.[5]胡煉,羅錫文,曾山,等.基于機器視覺的株間機械除草裝置的作物識別與定位方法[J].農(nóng)業(yè)工程學報.2019,(10).DOI:10.3969/j.issn.1002-6819.2018.10.002.[6]吳勇.機電一體化技術在煤礦行業(yè)的應用研究[J]現(xiàn)代制造2019(36):129-129.[7]李寒,王庫,曹倩,等.基于機器視覺的番茄多目標提取與匹配[J].農(nóng)業(yè)工程學報.2019,(5).DOI:10.3969/j.issn.1002-6819.2018.05.028.[8]閆敏杰,夏寧,萬忠,等.物聯(lián)網(wǎng)在現(xiàn)代農(nóng)業(yè)中的應用[J].中國農(nóng)學通報.2019,(8).[9]李百惠,楊庚.混合高斯模型的自適應前景提取,中國圖象圖形學報,2018:1620-1627.[10]姚世鳳,馮春貴,賀園園,等.物聯(lián)網(wǎng)在農(nóng)業(yè)領域的應用[J].農(nóng)機化研究.2019,(7).DOI:10.3969/j.issn.1003-188X.2019.07.047.[11]CeratiG,ElmerP,LantzS,etal.TraditionalTrackingwithKalmanFilteronParallelArchitecturesJournalofPhysics:ConferenceSeries,2018.[12]PengweiHua,XiaowuLiu,JiguoYu,NaDang,XiaoweiZhang.Energy-efficientadaptiveslice-basedsecuredataaggregationschemeinWSN[J].ProcediaComputerScience,2018,129.[13]KORTUMK,MOLLERM,HIRNEIBC,etal.Smarteyedata:devdtopahealtO0%ofoundationformedicalrescarchusingSmartDataapplications[J].DerOphthalmologeZeitschriftDerDeutschenOphthalmologischenGescllschaft,2019.[14]RaafiB.DesignandDevelopmentofFuzzy-PIDControllerforFour-wheeledMobileRoboticStability:AC'aseStudyontheUphillRoad[J].PTEKJournalofEngineering,2020,6(2):6.[15]ZhouY,DongW,FYuan,etal.ResearchofOnlineWaterQualityMonitoringSystemBasedonZigbeeNetwork[J].AdvancesinInformatioSciences&ServiceSciences,2019,4(5):255-261.[16]張樂,張寶寧,楊紅,劉禧冬,陳玉成.基于STM32的超市指紋識別儲物柜系統(tǒng)設計[J].物聯(lián)網(wǎng)技術,2022,12(09):10-12.[17]趙永紅,黃頌,柳佳,桂邦豪.基于STM32單片機的非接觸式體溫測量與身份識別系統(tǒng)[J].桂林航天工業(yè)學院學報,2022,27(03):322-327.[18]丁一峰,李永鋮,尹宏釗,客鑫林,彭根德.基于STM32的智能身份識別與紅外防疫測溫系統(tǒng)[J].現(xiàn)代信息科技,2022,6(10):57-60.[19]榮海林,姜萬里,孫廣博,左佳旖.基于STM32的用電器分析識別裝置[J].電子技術與軟件工程,2022,(05):113-117.[20]劉東陽,岳雪亭.基于STM32的智能購物車設計[J].工業(yè)控制計算機,2021,34(07):160-161+165.[21]丁多斌,馮向萍,丁燕,孫元明.基于STM32四軸無人機自主巡線設計[J].電子設計工程,2021,29(02):142-145.[22]蔣坤,江世明,李建祥,凌匡.快遞分揀機器人的研究[J].數(shù)碼世界,2020,(05):42.[23]王勇.基于STM32的一維條形碼識讀技術研究[D].天津大學,2016.
附錄電路圖源代碼#include"my_include.h"#defineF_SIZE12#defineMyLCD_Show(m,n,p)LCD_ShowString(LCD_GetPos_X(F_SIZE,m),LCD_GetPos_Y(16,n),p,F_SIZE,false)#defineMyLCD_ShowChar(m,n,p)LCD_ShowChar(LCD_GetPos_X(F_SIZE,m),LCD_GetPos_Y(16,n),p,F_SIZE,false)u16disXplace=0,disYplace=3;//顯示位置變量u16i;u8curMode=0;//當前模式分結(jié)算模式和掃碼模式#defineADDR_FLASH_WRITE_A(FLASH_BASE_ADDR+STM32_FLASH_SIZE*1024-STM_SECTOR_SIZE*1)//A數(shù)據(jù)存儲flash地址#defineADDR_FLASH_WRITE_B(FLASH_BASE_ADDR+STM32_FLASH_SIZE*1024-STM_SECTOR_SIZE*2)//B數(shù)據(jù)存儲flash地址#defineTAB_SIZE_NUM128unsignedcharsaveCodeTab_A[TAB_SIZE_NUM];//存儲A碼unsignedcharsaveCodeTab_B[TAB_SIZE_NUM];//存儲B碼#defineAcountsaveCodeTab_A[TAB_SIZE_NUM-1]//A識別技術變量#defineBcountsaveCodeTab_B[TAB_SIZE_NUM-1]//B識別技術變量unsignedcharmidCurCode[TAB_SIZE_NUM];//暫存識別到的碼chardis0[64];voidscanKeyAnddealKey(void);u8setMode=0;//講當前設置模式charstringTab[][12]={"無","設為A碼<<","設為B碼<<","查看A碼<<","查看B碼<<","清空A碼<<","清空B碼<<"};//設置菜單#defineCTRL_DJDIR_A80//舵機指向A方向#defineCTRL_DJDIR_B-80//舵機指向B方向unsignedcharopenDjDelay=0;//打開舵機時間unsignedcharopenDjFlag=0;//打開舵機標志voidOnGetQrBarCode(const_qrbar_msg_obj*qrbarMsgRec)//處理接收到的數(shù)據(jù){char*strPtr;u8disXplace,disYplace;//顯示位置變量LCD_Fill(0,64,128,128,Color16_BLACK);//清空指定區(qū)域FRONT_COLOR=Color16_WHITE;//顯示顏色MyLCD_Show(0,3,"識別內(nèi)容:");//顯示disXplace=0,disYplace=3;//顯示位置變量for(i=0;i<qrbarMsgRec->length;i++)//傳遞接收到的數(shù)據(jù){if(i%21==0)//超過顯示行換行即另起一行{disXplace=0;disYplace++;}if(qrbarMsgRec->payload[i]!=0x0d&&qrbarMsgRec->payload[i]!=0x0a)//回車換行不進行顯示{MyLCD_ShowChar(disXplace++,disYplace,qrbarMsgRec->payload[i]);//顯示具體字符midCurCode[i]=qrbarMsgRec->payload[i];//保存當前碼數(shù)據(jù)}midCurCode[i+1]='\0';//保存當前碼數(shù)據(jù)}if(strstr((constchar*)saveCodeTab_A,(constchar*)midCurCode)!=NULL)//接收到字符串{Acount++;openDjDelay=20;//打開舵機時間openDjFlag=1;//打開舵機標志My_STMFlash_SaveUseSector(saveCodeTab_A);//將數(shù)據(jù)保存到flash掉電不丟失}if((strstr((constchar*)saveCodeTab_B,(constchar*)midCurCode))!=NULL)//接收到字符串{Bcount++;openDjDelay=20;//打開舵機時間openDjFlag=2;//打開舵機標志My_STMFlash_SaveUseSector(saveCodeTab_B);//將數(shù)據(jù)保存到flash掉電不丟失}setMode=0;//清空設置項My_LEDBlink(PA4,BEEP_ON,2,50,100);//蜂鳴器動作}intmain(void){USARTx_Init(USART1,9600);//串口初始化USARTx_Init(USART2,9600);//初始化My_LED_Init();My_KEY_Init();My_SG90_Init(0,TIM3,TIM_CH_1);//舵機初始化delay_ms(10);My_SG90_SetAngle(0,30);//控制轉(zhuǎn)動方向delay_ms(100);My_SG90_SetAngle(0,0);//控制轉(zhuǎn)動方向My_STMFlash_SectorSaveInit(ADDR_FLASH_WRITE_A,saveCodeTab_A,sizeof(saveCodeTab_A));//初始化flashMy_STMFlash_SectorSaveInit(ADDR_FLASH_WRITE_B,saveCodeTab_B,sizeof(saveCodeTab_B));//初始化flashLCD_Init();//tft初始化LCD_Clear(Color16_BLACK);//清全屏BACK_COLOR=Color16_BLACK;FRONT_COLOR=Color16_LIGHTGRAY;MyLCD_Show(0,1,"InitSystem..");//顯示My_QRBAR_Init();LCD_Clear(Color16_BLACK);//清全屏FRONT_COLOR=Color16_RED;//顯示顏色MyLCD_Show(0,0,"二維碼/條形碼");//顯示FRONT_COLOR=Color16_YELLOW;//顯示顏色sprintf(dis0,"計數(shù):A:%02dB:%02d",Acount,Bcount);MyLCD_Show(0,1,dis0);//顯示MyLCD_Show(0,2,"操作:");//顯示FRONT_COLOR=Color16_WHITE;//顯示顏色MyLCD_Show(0,3,"識別內(nèi)容:");//顯示FRONT_COLOR=Color16_RED;delay_ms(500);My_LEDBlink(PA4,BEEP_ON,2,50,100);//上電硬件動作下while(1){scanKeyAnddealKey();//按鍵掃描及處理if(myReadFlag_tick)//更新顯示{myReadFlag_tick=false;//清空標志FRONT_COLOR=Color16_RED;//顯示顏色MyLCD_Show(6,2,stringTab[setMode]);//顯示FRONT_COLOR=Color16_YELLOW;//顯示顏色sprintf(dis0,"計數(shù):A:%02dB:%02d",Acount,Bcount);//打印MyLCD_Show(0,1,dis0);//顯示if(openDjDelay>0)//打開延時{openDjDelay--;//倒計時if(openDjFlag==1)My_SG90_SetAngle(0,CTRL_DJDIR_A);//控制轉(zhuǎn)動方向elseif(openDjFlag==2)My_SG90_SetAngle(0,CTRL_DJDIR_B);//控制轉(zhuǎn)動方向}else{openDjFlag=0;//清空標志My_SG90_SetAngle(0,0);//控制轉(zhuǎn)動方向}}if(mySendFlag_tick)//更新顯示{mySendFlag_tick=false;//清空標志}My_QrBarCode_Process();//處理串口數(shù)據(jù),次函數(shù)會在接收到數(shù)據(jù)后調(diào)用OnGetQrBarCodeMy_LEDBlinkProcess();//蜂鳴器處理}}voidscanKeyAnddealKey(void)//按鍵掃描及處理{My_KeyScan();if(KeyIsRelease(KEY_1))//按鍵按下{setMode++;//設置模式if(setMode>=7){setMode=0;//循環(huán)設置類型FRONT_COLOR=Color16_WHITE;//顯示顏色MyLCD_Show(0,3,"識別內(nèi)容:");//顯示LCD_Fill(0,64,128,128,Color16_BLACK);//清空指定區(qū)域}My_LEDBlink(PA4,BEEP_ON,1,100,100);//蜂鳴器動作}elseif(KeyIsPress(KEY_2))//按鍵按下{switch(setMode){case0://無操作FRONT_COLOR=Color16_WHITE;//顯示顏色MyLCD_Show(0,3,"識別內(nèi)容:");//顯示LCD_Fill(0,64,128,128,Color16_BLACK);//清空指定區(qū)域break;case1://設為A碼i=0;while(midCurCode[i]!='\0'&&i<TAB_SIZE_NUM){saveCodeTab_A[i]=midCurCode[i];i++;//}saveCodeTab_A[i]='\0';My_LEDBlink(PA4,BEEP_ON,3,50,200);//蜂鳴器動作break;case2://設為B碼i=0;while(midCurCode[i]!='\0'&&i<TAB_SIZE_NUM){saveCodeTab_B[i]=midCurCode[i];
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年大理石石材市場調(diào)研與分析服務協(xié)議2篇
- 二零二五年度?;愤\輸司機合同2篇
- 2025年度信息安全服務銷售合同重要性及網(wǎng)絡安全保障
- 二零二五年度二手車買賣合同含車輛行駛里程驗證約定3篇
- 2024版企業(yè)信用風險緩釋擔保服務合同模板3篇
- 2024版早餐廳承包管理合同協(xié)議書范本
- 二零二五年度GRC構(gòu)件采購合同示例6篇
- 二零二五年度兒童卡通水杯購銷協(xié)議2篇
- 學生會干事期末總結(jié)
- 二零二五年度企業(yè)市場調(diào)研與分析服務合同6篇
- 02S501-2 雙層井蓋圖集標準
- 廣東省湛江市寸金培才學校2022-2023學年下學期七年級數(shù)學期末試卷
- 頑固性高血壓的基因治療新進展
- (正式版)JTT 1495-2024 公路水運危險性較大工程安全專項施工方案審查規(guī)程
- 停車場管理系統(tǒng)說明書
- 醫(yī)院藥劑科年終總結(jié)
- (2024年)AED(自動體外除顫器)使用指南
- 麻醉藥品精神藥品管理
- 抽錯血標本護理不良事件
- 科技成果轉(zhuǎn)化培訓資料
- 社會穩(wěn)定風險評估 投標方案(技術標)
評論
0/150
提交評論