馮洋
(渭南師范學院 物理與電氣工程學院,陜西 渭南 714000)
智能小車在感知效應方面全面模擬人的機器系統,它是人工智能技術的試驗場。智能小車具有識別、檢測、環境數據采集等智能機制,能在非特定環境下,在惡劣條件下代替人工作,具有廣闊的應用前景。本設計通過無線遙控電動小車的運行,實現環境溫濕度的采集、發送、接收、處理、顯示和保存,為數據的后期處理做好準備。
系統設計圖如圖1所示。控制臺通過按鍵發送無線遙控信號,小車接收到信號后進行判斷作出前進、后退、左轉、右轉、停車動作。小車通過溫濕度傳感器實時采集當前環境的溫濕度數據并通過無線信號發送至控制臺,控制臺將數據處理后顯示并通過串口發送至PC保存[1-2]。根據系統設計要求,采集小車設計的模塊有電機驅動、無線模塊、溫濕度傳感器;控制臺設計由按鍵、無線模塊、液晶顯示器、串口等模塊組成。

圖1 系統總體結構圖Fig.1 Structure diagram of the system
本設計中需要操作無線射頻模塊和溫濕度傳感器,會涉及到IIC和SPI協議,所以用單片機進行控制最理想。51系列單片機的使用簡單、對于小型系統的控制靈活,AT89S52單片機IO口、定時計數器、串口等資源基本滿足系統設計要求,故本設計采用AT89S52單片機作為核心。
51系列單片機最小系統一般應該包括:單片機、晶振電路、復位電路。晶振選取11.059 2 MHz,方便產生960 0 bps波特率,用于串口通訊。
L293D是一款單片集成的高電壓、高電流、4通道電機驅動,設計用于連接標準DTL或TTL邏輯電平,驅動電感負載(諸如繼電線圈、DC和步進電機)和開關功率晶體管等等。此芯片可以驅動兩個直流電機,每1個電機需要3個控制信號EN12、IN1、IN2,其中 EN12 是使能信號,IN1、IN2 為電機轉動方向控制信號,IN1、IN2分別為1,0時,電機正轉,反之,電機反轉。選用一路PWM連接EN12引腳,通過調整PWM的占空比可以調整電機的轉速。此專用芯片控制簡單,響應及時。電機驅動電路如圖2所示。

圖2 電機驅動電路圖Fig.2 Diagram of the motor driving circuit
NRF24L01是NORDIC公司最近生產的一款無線通信通信芯片,采用FSK調制,內部集成NORDIC自己的Enhanced Short Burst協議。可以實現點對點或是 1對 6的無線通信。無線通信速度可以達到 2 M(bps)。工作在2.4 GHz世界通用ISM頻段。通過SPI協議與單片機進行通訊,單片機只需4個IO口和一個外部中斷口就可操作此模塊[3-4]。
SPI協議:SPI(Serial Peripheral interface)串行外圍設備接口,是一種高速的,全雙工,同步的通信總線。SPI是一個環形總線結構,通信以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線。也是所有基于SPI的設備共有的,它們是 SDI(數據輸入),SDO(數據輸出),SCK(時鐘),CS(片選)。其時序主要是在sck的控制下,兩個雙向移位寄存器進行數據交換。SDO(MOSI):主設備數據輸出,從設備數據輸入;SDI(MISO):主設備數據輸入,從設備數據輸出;SCLK時鐘信號,由主設備產生;CS:從設備使能信號,由主設備控制。
溫濕度傳感器是系統中最重要的部分,需要響應速度快,采樣間隔短,分辨率高,誤差小。本設計選定DHT21數字溫濕度傳感器,這是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,具有極高的可靠性與卓越的長期穩定性[5-6]。單片機通過IIC協議與傳感器通信,直接輸出數字量,無需轉換。精度高采樣間隔小,滿足實時采樣。4針單排引腳封裝,與單片機連接方便。電路如圖3所示。
IIC總線是由數據線SDA和時鐘SCL構成的串行總線,可發送和接收數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率100 kbps。各種被控制電路均并聯在這條總線上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,IIC總線上并接的每一模塊電路既是主控器(或被控器),又是發送器(或接收器),這取決于它所要完成的功能。CPU發出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調整的類別(如對比度、亮度等)及需要調整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關。

圖3 溫濕度傳感器接口Fig.3 Diagram of the temperature and humidity sensor interface
IIC總線在傳送數據過程中共有3種類型信號,它們分別是:開始信號、結束信號和應答信號。開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。應答信號:接收數據的IC在接收到8 bit數據后,向發送數據的IC發出特定的低電平脈沖,表示已收到數據。CPU向受控單元發出一個信號后,等待受控單元發出一個應答信號,CPU接收到應答信號后,根據實際情況作出是否繼續傳遞信號的判斷。若未收到應答信號,判斷為受控單元出現故障。
DHT21數字溫濕度傳感器數據格式:
40 bit數據=16 bit濕度數據+16 bit溫度數據+8 bit校驗和
(濕度高8位+濕度低8位+溫度高8位+溫度低8位)的末8位=校驗和
當溫度低于0℃時溫度數據的最高位置1。
小車程序主要實現對控制臺控制信號接收和處理,控制電機轉動。軟件設計[7-8]中首先對無線模塊,溫濕度傳感器定時器等進行初始化,然后用查詢的方式判斷是否接收到站臺指令,如果接收到對指令進行判斷根據指令類型控制小車行進。小車程序流程圖如圖4所示。

圖4 小車控制程序流程圖Fig.4 Flow chart of small car control
中斷程序中完成溫濕度采集和發送。使用定時器中斷,每隔三秒產生一次中斷。中斷流程圖如圖5所示。

圖5 中斷程序流程圖Fig.5 Flow chart of interruption program
控制臺程序包括鍵盤掃描、判斷鍵值、發送命令、接收數據、處理數據、顯示溫濕度、串口發送數據至PC。程序中首先對無線模塊、液晶顯示、串口進行初始化。然后執行鍵盤掃描和接收數據程序。鍵盤掃描程序中根據鍵值判斷是否有鍵按下,如果有則根據鍵值發送指令,如果沒有則跳過向下執行。然后判斷是否接收到溫濕度數據,如果沒有返回重新執行程序,如果接收到對數據進行處理然后更新液晶屏并通過串口把數據發送至PC保存。控制臺流程圖如圖6所示。

圖6 控制臺程序流程圖Fig.6 Flow chart of console
經過軟硬件的設計和調試,系統達到設計要求。能夠通過無線遙控小車行駛,在行駛中實時采集當前環境溫濕度數據并發送給控制臺,無線控制距離15米。控制臺能正確發送指令和接收數據,能夠通過液晶顯示采集到的溫濕度數據,能夠通過串口發送數據到PC保存。
[1]祝常紅.數據采集與處理技術[M].北京:電子工業出版社,2008.
[2]王文華.基于80C51單片機的智能小車設計[J].山西電子技術,2010(4):9-13.
WANG Wen-hua.Thedesignofintelligentcarbased on80C51[J].Shanxi Electronic Technology,2010(4):9-13.
[3]喻斌.短距離無線通信詳解/基于單片機控制[M].北京:北京航空航天大學出版社,2009.
[4]劉志強.物聯網/無線傳感網原理與實踐[M].北京:北京航空航天大學出版社,2011.
[5]孟臣,李敏,李愛傳.I2C總線數字式溫濕度傳感器SHT11及其在單片機系統的應用[J].電子設計工程,2004(2):50-54.
MENG Chen,LI Min, LI Ai-chuan.Digital temperature and humidity sensor SHT11 based on I2C bus and its application in the single-chip microcomputersystem[J].Electronic Design Engineering,2004(2):50-54.
[6]于拴道,張江亞,唐堯華.環境溫、濕度及光照三合一傳感器設計[J].電子科技,2011(6):112-115.
YU Shuan-dao,ZHANG Jiang-ya,TANG Yao-hua.Design of triple sensor integrating temperature,humidity and lighting[J].Electronic Science and Technology,2011(6):112-115.
[7]戴佳,戴衛恒.51單片機C語言應用程序設計[M].北京:電子工業出版社,2006.
[8]謝維成,楊加國.單片機原理與應用及C51程序設計[M].北京:清華大學出版社,2006.