周君芝
(湖北國土資源職業學院,湖北武漢,430090)
目前出入庫道閘具備識別車輛車牌,LED 顯示時間、里程和車牌等信息,繳費識別等功能,還具有手動和遙控打開閘道、關閉閘道的功能。和出入庫道閘一樣,還有很多機構,接收設備接收到信號后,可以驅動其它各種相應的機械或者電子設備,去完成各種操作,如閉合電路、移動手柄、開動電機,之后再由這些機械進行需要的操作。作為一種與紅外遙控器相補充的遙控器種類,無線LoRa 技術在車庫門、電動門、道閘遙控控制,防盜報警器,工業控制以及無線智能家居領域得到了廣泛的應用。將出入庫道閘設計成一個綜合小實訓項目具有目標明確性,具有中等復雜程度。能鍛煉學生的動手能力和編程能力。本文通過用STC8 和STC15單片機作為主控芯片,在LoRa 無線環境下實現模擬出入庫閘道的手動控制和自動控制。對學生了解實際產品應用有一定幫助,靈活運用所學知識,深化單片機課程學習。道閘控制器的重點是LoRa 模塊的無線控制,難點是接收端電機開啟和關閉道閘設計。
本設計包括發射端和接收端系統。發射端是ΜCU 控制的智能小車。微控制器采用STC8A8K64S4A12。有8 路霍爾元件構成的磁尋跡控制小車行進,同時搭載了HC-04 超聲波測距模塊和LoRa 無線發射模塊。接收端的微控制器采用STC15W408AS,搭載無線環境選擇LoRa 模塊。閘機的杠桿升降運動利用步進電機驅動。
總體框圖如圖1 和圖2 所示。

圖1 發射端框圖
STC8A8K64S4A12 和STC15W408AS 擁有超高速8051 內核(1T),比傳統8051 約快8~12 倍,指令代碼完全兼容傳統8051,內部資源豐富,工作靈活性更大。STC8A8K64S4A12具有5 個串口,4 個定時器。STC15W408AS 有2 組定時器,1 組串口。
直流電機驅動器選用H 橋電機驅動器ΜP6515。其輸入工作電壓高達35V,能傳輸高達2.8A 的驅動電流。通常,ΜP6515 用于驅動直流有刷電機。輸出控制由PHASE、ENBL、BRAKE 和BΜODE 引腳完成。其中ENBL 為使能端,高電平有效。PHASE 控制電機正反轉。在ENBL 端送入PWΜ 信號,可以調整電機轉速。電機采用12V 直流減速電機。具有可降低輸出轉速、提升扭矩、力矩和載荷的能力。
電機尋跡采用8 路霍爾元件A3144 構成。A3144 是利用霍爾效應制作的開關型磁敏元件。在地面上鋪設導磁線條,智能小車上的A3144 感受到磁場后輸出為低電平,反之為高電平。相比紅外線尋跡,有抗干擾能力強、尋跡效果好的優點。
接收端電機選型號是17HS1362-P4130,是42 機座號的兩相混合式步進電機,步距角是1.8 度。步進電機是將電脈沖信號轉變為角位移或線位移的開環控制器件,配有步進電機驅動器。步進電機驅動器是一種將電脈沖轉化為角位移的執行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的,同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速和定位的目的。本設計根據驅動表中加粗字體所示進行選擇。

表1 步進電機驅動器工作電流設置

表2 步進電機驅動器細分設置

表3 步進電機驅動器衰減設置
智能車車接近閘道的距離測量選用HC-04。HC-04 是常用的超聲波模塊。通過測量ECHO 端高電平的時間計算機行駛的車輛距離閘道的距離。當距離小于50cm 時,啟動閘道開啟。車過去后關閉閘道。
無線模塊選用億百特公司的E22-400T22S,是基于SX1262 射頻芯片的無線串口模塊。工作在默認頻段433ΜHz,采用點對點無線透傳的通信方式。具有穩定性好、開發簡便、適于遠距離等優點。
3.1.1 調試過程
步驟1:E22-400T22S 的配置。用億百特公司的RF_Setting(E22-E90(SL))V2.0 軟件進行配置。首先將兩個模塊都設為配置模式,即將Μ1Μ0 設置為11。在軟件中將發射模塊中進行如下設置,隨后將接收模塊也進行配置。保證信道和ID 號的一致,同時將發射方和接收方的地址區別開。將波特率設置為9600bps。

圖3 E22—400T22S 配置圖
步驟2:寫入完后,利用“讀取參數”查看是否正確寫入。
步驟3:LoRa 模塊相互通信串口調試。分別把發射LoRa 模塊和接收LoRa 模塊接到USB 口,在“我的電腦”中查看是否有兩個串口號,再打開兩個串口調試助手,相互發送地址和數據,驗證LoRa 模塊是否能通過串口通信。
3.1.2 程序編寫
(1)發射端程序流程圖
發射端STC8A8K64S4A12主要利用的ΜCU 資源有串口和按鍵。串行口有4 個,其中串口1 有四種工作方式,和普通51 系列一致,串口2、3、4 只有兩種工作方式。這里把串口1 作為下載程序使用,串口3 用來和LoRa 通信。串口3 的波特率發生器采用定時器3。STC8A8K64S4A12 的定時器有5 個,分別是T0-T4。定時器3 工作在16 位自動重載模式,作為波特率發生器,設置波特率為9600bit/s。發射端的程序流程圖如圖4 所示。

圖4 手動模式發射流程圖
(2)接收端程序流程圖
接收端采用STC15W408AS 作為微控制器。在串行口1的中斷子程序中判斷幀頭和發送方的類別是否正確,正確就設置標志位為1。再在主程序中判斷正反轉數據和校驗碼,驅動步進電機的轉動,進而帶動道閘杠桿的轉動。在接收方程序中判斷是否收到數據時,要把地址位去掉,直接判斷數據位。閘機90 度轉動的程序編寫:由于電機經驅動器進行細分,步距角為0.9 度。整圈為360 度,則整圈需800 個脈沖,電機開啟和關閉都是轉動90 度,則需要200 個脈沖。可利用STC15 的定時器產生200 個脈沖信號,作為步進電機的驅動脈沖。為使電機轉動平穩,脈沖信號的頻率為200Hz。

圖5 接收端流程圖
(3)調試過程
首先把發送方內容設為表4 所示。

表4 步進電機驅動器靜止時半流設置

表4
再把接收方內容設為表5 所示。

表5
在串口調試助手中進行互發數據,可以觀察到雙方可以互發互收數據。波特率設置為9600bit/s。

圖6 發送端串口助手顯示界面

圖7 接收端串口助手顯示界面
在發射端增加HC-SR04 模塊,測量車輛距離道閘20cm 時,向LoRa 模塊發送開啟道閘信息。車輛離開后,關閉道閘。同時在數碼管顯示車輛離道閘的距離。
(1)發射端程序流程圖
和手動方式相比,相同之處在于發送的數據,不同之處在于增加了超聲波測距模塊和數碼管顯示功能,模擬車輛靠近道閘時開啟杠桿和放下杠桿。
(2)接收端程序流程圖
接收端程序與手動方式下一致。

圖8 自動模式發送端流程圖
通過本案例設計,實現了LoRa 無線的方式手動和自動控制來模擬出入口道閘的開啟和關閉。整合了單片機課程的學習內容,深化了單片機課程學習,引導學生關注生產生活,將所學與實際運用相結合,促進提升創新創業水平。本案例還可通過圖像識別搭載OpenΜV 的方式識別車牌照,增加識別牌照信息開啟道閘的方式進行后續設計。