付琛楓++陳錦儒
摘要:基于stm32單片機的環(huán)境實時監(jiān)測與全息投影系統(tǒng)分為上位機跟下位機兩部分,下位機利用各種傳感器對環(huán)境信息進行采集,并通過無線模塊將數(shù)據(jù)傳輸?shù)缴衔粰C,并且通過ISD1810對即將碰壁情況進行提示。上位機利用無線模塊nrf24l01接收下位機數(shù)據(jù)后通過TFT_LCD彩色液晶屏進行顯示,接著通過對按鍵事件進行編碼將事件傳遞到下位機,下位機識別后對L298N進行控制,從而實現(xiàn)小車的行動。論文研究了各類環(huán)境監(jiān)測傳感器與單片機的通信、無線通信、電機的驅(qū)動和視頻傳輸?shù)燃夹g(shù),最終實現(xiàn)了環(huán)境信息采集、投影技術(shù)和車組的控制等功能。
關(guān)鍵詞:實時監(jiān)測;環(huán)境監(jiān)測;小車;全息投影;無線通信
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)11-0161-03
Abstract: Based on STM32 microcontroller real-time monitoring of the environment and the holographic projection system is divided into into two parts: host computer and slave computer, lower computer using various sensor to collect environmental information, and transfer the data to the host computer through the wireless module, and through the isd1810 to be rebuffed situation hints. Host computer using wireless module nRF24L01 receive lower position machine data through the LCD TFT color LCD screen to display, followed by the key event for encoding events will be transmitted to the lower computer and lower computer recognition of L298N control, in order to achieve the car's action. All kinds of environment monitoring sensor and MCU communication, wireless communication, motor driver and video transmission technology is studied in this paper, the ultimate realization of the control environment information collection, projection technology and crew.
Key words: real-time monitoring, environmental monitoring; the car; holographic projection;wireless communication
隨著社會的前進步伐的加快、經(jīng)濟的發(fā)展和科學(xué)技術(shù)的進步,關(guān)于環(huán)境監(jiān)測和遠程控制技術(shù)的研究越來越成為人們的焦點。監(jiān)測和遠程控制為我們的生活帶來了很大的方便,尤其是遠程控制在工業(yè)、科研和國防等領(lǐng)域的應(yīng)用也是越來越廣。這些技術(shù)或多或少地已經(jīng)融入到我們的生活中,給我們的生活帶來了諸多的便利,然而也有些技術(shù)也不是很成熟。所以對監(jiān)測和遠程控制的研究,符合電子的發(fā)展趨勢。
近些年來,隨著多媒體技術(shù)的飛速發(fā)展,環(huán)境的監(jiān)測已經(jīng)從大屏幕顯示環(huán)境質(zhì)量情況轉(zhuǎn)變成通過微機處理器進行聲音、圖像、文字等多媒體的方式進行演示了。并且越來越多的信息采集和遠程控制系統(tǒng)都采用了無線傳輸數(shù)據(jù),與有線數(shù)據(jù)傳輸相比主要比其成本低、安裝簡易并且方便攜帶。無線技術(shù)的應(yīng)用已經(jīng)被各行各業(yè)所接受,融入到各個領(lǐng)域,無線圖像傳輸也尤其被看好。
1 系統(tǒng)的整體方案
采用stm32芯片作為上下位機,由于核心片的引腳足夠多,解決了引腳不足的問題。并且它的一些功能引腳也能當(dāng)普通引腳使用。有IIC引腳采集HMC5843數(shù)據(jù),也能通過硬件實現(xiàn)SPI時序驅(qū)動無線模塊;同時也有AD采集功能驅(qū)動MQ135,也擁有定時器能夠?qū)崿F(xiàn)PWM輸出驅(qū)動電機和對超聲波測距的過程進行計時。不僅引腳多,而且功能也豐富,對設(shè)計的進行和擴展提供了很大的方便,成本也比較客觀,并且stm32的處理速度非???,可達72M。因此該系統(tǒng)設(shè)計總框圖如上所示。
2 系統(tǒng)的硬件設(shè)計
整個系統(tǒng)主要分成兩大部分—上位機與下位機。其中上位機的功能要求:接收無線模塊的數(shù)據(jù),然后進行譯碼顯示,在顯示屏上面顯示溫濕度、空氣中有毒氣體的含量、前方障礙物的距離、陀螺儀反饋回來的方位數(shù)據(jù)。并且通過按鍵,對按鍵進行編碼,從而控制發(fā)送的數(shù)據(jù)。下位機的功能要求:實現(xiàn)檢測環(huán)境的參數(shù),溫度、濕度、有毒氣體成分、方位等參數(shù)的檢測,并對通過超聲波對前方距離障礙物的距離進行檢測,并通過語音播放的功能進行提示,只要距離過短就進行提示。最后通過無線模塊發(fā)送這些數(shù)據(jù),并且通過接收無線模塊的數(shù)據(jù),對數(shù)據(jù)進行分析,從而控制電機的轉(zhuǎn)動。
根據(jù)功能要求,系統(tǒng)電路模塊主要分成四大部分:主控芯片、檢測電路、驅(qū)動電路以及數(shù)據(jù)傳輸電路。分析了各個主要單元電路所需要的模塊,并根據(jù)讀取它們數(shù)據(jù)的方式確定了與主控芯片相連接的引腳,從而確定了系統(tǒng)各硬件電路的原理圖。
2.1 系統(tǒng)控制的核心電路
為了縮短開發(fā)周期,上位機跟下位機的主控制器都采用stm32F103RBT6為核心控制器;上位機直接用原子開發(fā)板的mini板當(dāng)上位機,自帶TFT_LCD彩色液晶屏當(dāng)顯示屏。下位機無需接復(fù)雜的電路,則采用stm32最小系統(tǒng)板直接充當(dāng)控制器。其電路圖如圖3所示。
2.2 數(shù)據(jù)傳輸電路設(shè)計
本次設(shè)計中主要用到NRF24L01無線模塊進行數(shù)據(jù)傳輸,是一種單片式收發(fā)芯片;內(nèi)置硬件鏈路層;具備自動應(yīng)答和自動重發(fā)功能,這在程序里面可以大大地方便我們編程,以及加快雙機的通訊速度。工作原理主要是通過上位機、下位機進行有序的模式轉(zhuǎn)換,按照預(yù)定的規(guī)律進行切換,達到避免干擾的目的,從而實現(xiàn)數(shù)據(jù)的雙向傳輸。其電路連接圖如下所示:
3 系統(tǒng)的軟件設(shè)計
整個軟件系統(tǒng)分成兩大部分:上位機部分以及下位機部分,其軟件設(shè)計流程圖如下所示。
上位機部分又分成三小部分,其分別為:1)是無線通信協(xié)議——通過SPI通信的協(xié)議對nrf24l01這個模塊進行驅(qū)動,從而達到與下位機雙工通訊的目的;2)是數(shù)據(jù)更新所需要的液晶屏驅(qū)動程序——讀取從下位機傳輸回來的數(shù)據(jù),然后更新對應(yīng)的數(shù)據(jù)庫,然后重新顯示對應(yīng)的參數(shù);3)是按鍵掃描模塊驅(qū)動——判斷按鍵是否按下這一事件,然后利用程序?qū)Π存I鍵值進行對應(yīng)的編碼與下位機達成一致,接著通過通信的方式,從而實現(xiàn)通過按鍵發(fā)射信號,從而控制小車的運動。
下位機部分也主要分為三小部分,氣分別為:1)雙機通信的無線協(xié)議——通過SPI協(xié)議進行驅(qū)動和使用無線模塊,實現(xiàn)上位機對下位機的控制;2)檢測環(huán)境情況的傳感器控制——利用定時器進行定時操作,從而實現(xiàn)超聲波測距;使用ADC數(shù)據(jù)采集,實現(xiàn)對氣體中某些有害物質(zhì)的濃度進行檢測;通過固定的時序?qū)貪穸冗M行采集、 通過IIC協(xié)議進行讀取電子羅盤的數(shù)據(jù);通過IO口模式的轉(zhuǎn)換實現(xiàn)語音播報功能;3)電機運動系統(tǒng)的程序設(shè)計轉(zhuǎn)化改變電機轉(zhuǎn)動方向,從而實現(xiàn)小車的運動。
3.1 圖像采集系統(tǒng)的設(shè)計
環(huán)境圖像采集采用wifi這種無線通信方式利用手機連接小車上邊的wifi模塊,攝像頭的數(shù)據(jù)進行采集通過芯片對攝像頭的數(shù)據(jù)進行采集和編碼,再通過wifi模塊發(fā)送到手機上。手機上采用的是自己編寫好的android程序,生成對應(yīng)的apk文件,只需要安裝到手機上,打開手機的wifi掃描熱電,并連接對應(yīng)的wifi,再打開對應(yīng)的軟件就能觀察到從下位機發(fā)送回來的圖像信號,由于圖像信號更新比較快就形成了對應(yīng)的視頻。
3.2運動控制系統(tǒng)設(shè)計
在硬件上,運動控制系統(tǒng)采用的是L298N。根據(jù)該芯片的資料里面的邏輯功能圖,我們只要通過定時器的功能復(fù)用,是定時器的功能引腳輸出一定占空比的PWM到使能引腳EN上,再通過普通IO口設(shè)置為推挽輸出,輸出對應(yīng)的電平變化,就能驅(qū)動電機的轉(zhuǎn)動。然而小車的方向變化則需要控制轉(zhuǎn)速跟電機的正反轉(zhuǎn),這個也只需要改變PWM的占空比跟輸出對應(yīng)電平變化到L298N的輸入引腳上。
3.3數(shù)據(jù)傳輸軟件設(shè)計
上下位機的數(shù)據(jù)傳輸我們采用的nrf24l01模塊,它與主控芯片的通信方式為SPI,首先在程序里面,我們對所連接的引腳進行初始化,將對應(yīng)的引腳的輸入輸出方式設(shè)置成與之功能對應(yīng)的模式。通過硬件SPI對對應(yīng)的數(shù)據(jù)寄存器和狀態(tài)寄存器寫入和讀出數(shù)據(jù),從而實現(xiàn)無線數(shù)據(jù)傳輸。主要的功能是讀取接收狀態(tài)寄存器、讀取數(shù)據(jù)寄存器,寫發(fā)送數(shù)據(jù)寄存器和寫數(shù)據(jù)寄存器。
無線模塊發(fā)送數(shù)據(jù)函數(shù)如下:
u8 NRF24L01_TxPacket(u8 *txbuf);
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta);
該函數(shù)主要要實現(xiàn)數(shù)據(jù)的一次發(fā)送,通過傳遞進去的指針*txbuf找打?qū)?yīng)的數(shù)組的首地址,在將數(shù)組里面的數(shù)據(jù)發(fā)送出去。當(dāng)然數(shù)據(jù)的長度由TX_PLOAD_WIDTH的宏定義進行控制,再將數(shù)據(jù)寫進數(shù)據(jù)寄存器后就拉高對應(yīng)的CE引腳進行啟動發(fā)送,接著進行讀取狀態(tài)寄存器的狀態(tài)值,查詢是否發(fā)送成功。然后再讓函數(shù)返回對應(yīng)的成功或者失敗值。這樣讓程序一直處于發(fā)送狀態(tài)直到發(fā)送成功。
無線模塊接收數(shù)據(jù)函數(shù)如下:
u8 NRF24L01_RxPacket(u8 *rxbuf)
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,s數(shù)據(jù),接著執(zhí)行讀取數(shù)據(jù),將數(shù)據(jù)存儲到rxbuf數(shù)組中、清除狀態(tài)并且返回0。如果未接收到數(shù)據(jù)就直接返回1。我們直接通過判斷該函數(shù)的返回值從而判斷是否接收到數(shù)據(jù)來實現(xiàn)對數(shù)據(jù)的刷新。
4 系統(tǒng)的調(diào)試
在硬件調(diào)試方面,由于系統(tǒng)的電路比較復(fù)雜,在電路連接時也比較麻煩,在整個電路中可能出現(xiàn)一處錯誤,就會給整個系統(tǒng)帶來很多錯誤,并且對檢測也有很大的影響。其中容易出問題的就是通信問題,因此檢測通信模塊是整個硬件系統(tǒng)的重中之重。其檢測方法如下:首先檢查主控板引腳的好壞,其次通過設(shè)置對應(yīng)的IO口為輸出模式,輸出對應(yīng)的電平,然后使用電表進行測試,檢測引腳是否有輸出;同時通過引腳設(shè)定更換無線通信模塊所接的引腳,檢查能否實現(xiàn)雙機正常通信。
在軟件系統(tǒng)調(diào)試方面,由于經(jīng)常用到全局變量,不僅要在主程序里面調(diào)用,我們也有可能在其他函數(shù),甚至其他文件里面對變量進行重新賦值的操作,因此經(jīng)常出現(xiàn)變量的沖突。同時通過在線調(diào)試系統(tǒng)對數(shù)據(jù)的變化進行觀察,有些數(shù)的值的變化不如我們所期望的,進而發(fā)現(xiàn)系統(tǒng)中的漏洞。為了放在主控芯片在運行程序出現(xiàn)亂跑現(xiàn)象,在程序內(nèi)部加入了看門狗程序,保證軟件系統(tǒng)運行的可靠性與穩(wěn)定性。
通過硬件系統(tǒng)測試和軟件系統(tǒng)測試,再到最后的整機測試,基本上實現(xiàn)了預(yù)期的目標,達到我們想要的結(jié)果,實現(xiàn)了無線數(shù)據(jù)傳輸、檢測環(huán)境參數(shù)、控制電機驅(qū)動等功能。
5 結(jié)束語
本文主要論述了環(huán)境實時監(jiān)測車組與全息投影系統(tǒng)的硬件結(jié)構(gòu)與軟件設(shè)計的算法,在整個制作過程中,遇到各種各樣的問題,通過上網(wǎng)查閱、圖書館尋找和查閱相關(guān)材料。目前筆者已經(jīng)完成該產(chǎn)品的制作,并已經(jīng)進入實驗測試階段。在測試的過程中,本次設(shè)計的產(chǎn)品不僅工作穩(wěn)定、響應(yīng)速率快,并且控制精準等優(yōu)點。相信不久將來就會投入生產(chǎn),該產(chǎn)品的市場價值大。
參考文獻:
[1] 李群芳.單片微型計算機與接口技術(shù)[M].4版.北京:電子工業(yè)出版社,2012:188-190.
[2] 陳正振.電子電路設(shè)計與制作[M].河南:科學(xué)出版社,2007:160-165.
[3] 王益權(quán).電動機原理與使用技術(shù)[J].北京科學(xué)出版社,2001(9):13-16.