宋亦薪,陳 超,徐 斌,譚 軍,代杭佚,包宋建
(重慶文理學(xué)院電子電氣工程學(xué)院, 重慶 永川 402160)
?
基于單片機的無線遙控小車研究與實現(xiàn)
宋亦薪,陳超,徐斌,譚軍,代杭佚,包宋建
(重慶文理學(xué)院電子電氣工程學(xué)院, 重慶永川402160)
本文介紹了一種由STC12C5A60S2單片機控制的無線遙控小車,采用控傳和圖傳獨立設(shè)計的思想,即數(shù)據(jù)收發(fā)模塊進行控制和溫度數(shù)據(jù)的傳輸,圖傳模塊負責(zé)作業(yè)環(huán)境的圖像傳輸.控傳部分以STC12C5A60S2單片機為核心,利用NRF24L01+模塊數(shù)據(jù)收發(fā),L298N電機驅(qū)動兩路直流電機,使小車完成相應(yīng)動作;DS18B20負責(zé)檢測溫度,由小車收發(fā)模塊發(fā)射,LCD1602液晶模塊顯示.系統(tǒng)采用模塊化設(shè)計,結(jié)構(gòu)緊湊,便于優(yōu)化,且可靠性能高.
單片機;NRF24L01+;L298N;DS18B20
無線遙控小車是一種新型無線遙控裝置,綜合了射頻技術(shù)、微型計算機技術(shù)和智能控制等技術(shù).隨著現(xiàn)代控制技術(shù)和通信技術(shù)的不斷發(fā)展,除傳統(tǒng)的FM、PCM和紅外遙控技術(shù)外,現(xiàn)在又出現(xiàn)了如藍牙、WIFI等新的控制方式.這些技術(shù)在反恐、防化、搶險救災(zāi)及污染治理等方面有著廣闊的應(yīng)用前景[1].本文設(shè)計的無線遙控小車能夠輕松自如地前進、后退、加速、減速、左轉(zhuǎn)、右轉(zhuǎn),將所處環(huán)境的溫度通過無線通信顯示在遙控器LCD1602液晶顯示屏上.系統(tǒng)采用模塊化設(shè)計、結(jié)構(gòu)緊湊,各個功能模塊之間互不影響,智能化水平較高.
1.1系統(tǒng)總體框圖
本設(shè)計采用控傳和圖傳分開獨立設(shè)計,即用NRF24L10+無線收發(fā)模塊進行小車控制和溫度數(shù)據(jù)傳輸,5.8 g圖傳模塊只負責(zé)作業(yè)環(huán)境的實時圖像傳輸.控傳部分設(shè)計一個無線智能遙控小車控制系統(tǒng),分為按鍵遙控系統(tǒng)與車載系統(tǒng)兩大部分,分別以STC12A60S2單片機最小系統(tǒng)為主控核心,通過NRF24L01+無線通信模塊實現(xiàn)無線數(shù)據(jù)收發(fā)[2],用內(nèi)置兩個H橋的L298 N芯片驅(qū)動直流電機驅(qū)動模塊實現(xiàn)對小車的控制.系統(tǒng)采用12 V電池組.將電壓降為+5 V和+3.3 V后分別供控制回路和無線收發(fā)模塊使用.在手動按鍵控制下,按鍵電路產(chǎn)生一個動作指令(如前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等),單片機按照相應(yīng)的算法進行運算,運算結(jié)果通過SPI通信總線傳送給無線收發(fā)模塊,再由無線收發(fā)模塊通過射頻發(fā)射.信號數(shù)據(jù)被無線收發(fā)模塊接收采集,則無線收發(fā)模塊通過SPI通信總線傳送單片機進行處理,根據(jù)處理結(jié)果控制電機驅(qū)動模塊,驅(qū)動小車完成相應(yīng)基本動作.溫度檢測模塊由小車上的DS18B20傳感器、無線收發(fā)模塊以及遙控板上的LCD1602液晶模塊構(gòu)成.系統(tǒng)原理示意圖如圖1所示.
圖1 系統(tǒng)原理示意圖
2.1遙控系統(tǒng)
以STC12A60S2單片機為主要控制芯片的最小系統(tǒng)為核心,當(dāng)按鍵電路產(chǎn)生一個指令,通過無線通信模塊實現(xiàn)無線數(shù)據(jù)收發(fā),首先發(fā)射動作指令,遠程控制小車完成相應(yīng)動作.然后接收小車上的DS18B20溫度傳感器檢測到的實時溫度值,通過無線通信模塊發(fā)送給遙控器,再由遙控器上的LCD1602模塊顯示.
2.1.1單片機最小系統(tǒng)
STC12系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,在指令代碼上面完全兼容傳統(tǒng)的8051,但速度卻比傳統(tǒng)的80C51單片機快8~12 倍,工作頻率范圍為0~35 MHz,相當(dāng)于傳統(tǒng)8051的0~420 MHz.其工作電壓為5.5~ 3.3 V(5 V 單片機),內(nèi)置MAX810專用復(fù)位電路,兩路PWM,A/D 轉(zhuǎn)換,一路SPI接口,八路10 位精度ADC,轉(zhuǎn)換速度可達250 K/s[3].單片機管腳圖如圖2所示.
2.1.2NRF24L01無線收發(fā)模塊
NRF24L01+是NORDIC公司最近生產(chǎn)的一款工作在2.4~2.5 GHz世界通用ISM 頻段的超低功耗單片通信芯片,采用FSK 調(diào)制,內(nèi)部集成NORDIC公司的Enhanced Short Burst 協(xié)議.無線通信速度最快可以達到2 Mbps.該芯片使用很方便,單片機電子DIY愛好者和專業(yè)人員只需要為單片機系統(tǒng)預(yù)留5個GPIO接口,1個IRQ(中斷輸入)引腳就可以輕松實現(xiàn)無線通信,非常適宜通過配置某些單片機自帶的SPI 接口,或者用普通I/O接口模擬SPI 接口構(gòu)建單片機無線通信系統(tǒng)[4].NRF24L01無線通信模塊電路接口如圖3所示.
圖2 單片機最小系統(tǒng)
圖3 NRF24L01模塊接口電路
2.1.3LCD1602液晶顯示模塊
液晶模塊以其功耗極低、輕巧超薄、顯示信息量大等諸多優(yōu)點,在小型、便攜、數(shù)字、智能化儀器儀表中都有廣泛應(yīng)用.本設(shè)計使用LCD1602液晶模塊作為顯示模塊.LCD1602接口電路如圖4所示.
圖4 LCD1602接口電路
2.1.4按鍵電路
本設(shè)計采用按鍵控制,有編程方便、硬件電路結(jié)構(gòu)簡單的特點.當(dāng)UP鍵按下時小車前進,Down小車后退,Left小車左轉(zhuǎn),Right小車右轉(zhuǎn),當(dāng)Pause鍵按下時小車即停止動作.按鍵電路如圖5所示.
圖5 遙控按鍵電路
2.2小車系統(tǒng)
小車控制電路同樣以STC12系列的單片機作為主控芯片,DS18B20溫度傳感器負責(zé)檢測和收集環(huán)境溫度,由小車上的單片機傳輸給無線收發(fā)模塊發(fā)射,并接受遙控器指令,單片機按照處理結(jié)果控制L298N機電驅(qū)動模塊,驅(qū)動兩路直流電機,使小車完成動作響應(yīng).
2.2.1電機驅(qū)動模塊
L298N是一款集成的高電壓、高電流、雙路全橋式電機驅(qū)動芯片,可接受標準TTL邏輯電平信號VSS. VSS可接4.5~7 V電壓.4腳VS接電源電壓,VS電壓范圍VIH為2.5~46 V.輸出電流可達2.5 A,可驅(qū)動電感性負載.1腳和15腳下管的發(fā)射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號[5].L298可驅(qū)動2個電動機,OUT1、OUT2和OUT3、OUT4之間可分別接電動機.我們選用驅(qū)動兩組直流電機.5,7,10,12腳接單片機輸入控制電平,然后驅(qū)動電機的正轉(zhuǎn)或反轉(zhuǎn).EnA、EnB為L298N電機驅(qū)動模塊的使能控制,同樣接單片機,控制電機運行或停止工作.
本設(shè)計的動力驅(qū)動部分采用ST公司原裝全新的L298N 芯片為核心驅(qū)動模塊,可直接驅(qū)動兩路3~35 V 直流電機,并提供了5 V 輸出接口(電機驅(qū)動電壓可以最低輸入為6 V),可以給5 V單片機電路系統(tǒng)供電(低紋波系數(shù)),支持3.3 V 單片機或嵌入式控制,直流電機的速度和方向可以被方便地控制,也可以控制一路2 相步進電機或一路5 線4相步進電機.模塊原理圖如圖6所示.
圖6 L298N直流電機驅(qū)動模塊原理圖
2.2.2DS18B20溫度檢測電路
數(shù)字化溫度傳感器DS18B20是Dallas半導(dǎo)體公司生產(chǎn)的支持“一線總線”接口的溫度傳感器.溫度測量范圍在-50 °C~+120 °C內(nèi),精度為±0.5 °C[6].現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高系統(tǒng)的抗干擾性,適合惡劣環(huán)境的溫度檢測,支持范圍在3~5.5 V 之間的電壓,系統(tǒng)設(shè)計更靈活、簡便.溫度檢測接口電路原理圖如圖7所示.
圖7 接口電路原理圖
2.2.3電源電路
本系統(tǒng)按鍵遙控器電路和車載系統(tǒng)的最小系統(tǒng)使用+5 V電源,而無線收發(fā)模塊需要使用+3.3 V電源.由于要使用兩種不同的電源,故本系統(tǒng)采用電池組分別變換成+5 V和+3.3 V電壓對系統(tǒng)供電.電路原理圖如圖8所示.
圖8 電源電路原理
3.1圖傳系統(tǒng)簡述
圖傳系統(tǒng)是可以實時監(jiān)測環(huán)境指標變化的可視遙控裝置,代替作業(yè)人員進入作業(yè)環(huán)境進行實時環(huán)境監(jiān)測,甚至代替作業(yè)人員進行作業(yè).但由于51內(nèi)核單片機的I/O數(shù)據(jù)傳輸能力相對較低,故很難支撐較高的數(shù)據(jù)傳輸速率.本系統(tǒng)在無線智能遙控小車原來設(shè)計的基礎(chǔ)上,特別在原來遙控小車的基礎(chǔ)上增加了一個5.8 g實時圖傳系統(tǒng).即用NRF24L01+無線收發(fā)模塊進行小車控制和溫度實時數(shù)據(jù)收發(fā),5.8 g圖傳模塊只負責(zé)作業(yè)環(huán)境的實時圖像傳輸.
3.2圖傳系統(tǒng)結(jié)構(gòu)設(shè)計
系統(tǒng)由微型攝像頭實時采集圖像,再由5.8 g無線圖傳發(fā)射模塊發(fā)射圖像數(shù)據(jù).當(dāng)5.8 g無線圖傳接收模塊接收到圖像數(shù)據(jù)信號時,由TFT顯示屏顯示實時圖像,或經(jīng)USB視頻采集卡將采集到的圖像傳輸給顯示設(shè)備實時顯示出來.圖傳系統(tǒng)結(jié)構(gòu)示意圖如圖9所示.
圖9 圖傳系統(tǒng)結(jié)構(gòu)示意圖
本系統(tǒng)的控制程序設(shè)計采用模塊化程序結(jié)構(gòu)設(shè)計,主要分為兩大部分:遙控部分和小車部分.每個部分都由若干個子程序和主程序組成.
4.1遙控程序設(shè)計
遙控部分由若干子程序組成,分別為遙控主程序和延時子程序、按鍵子程序、無線收發(fā)子程序和液晶顯示子程序等.
4.1.1遙控器主程序
系統(tǒng)上電或復(fù)位后,系統(tǒng)程序首先初始化,并提示“temperature”.系統(tǒng)延時6 s后判斷定時器計時是否到200 ms[7].如果定時器計時到200 ms,程序自動進入發(fā)射模式并關(guān)閉中斷,掃描按鍵,發(fā)射由按鍵產(chǎn)生的按鍵值并檢測是否達到最大重發(fā)次數(shù).如果達到,則清除狀態(tài)寄存器、其他數(shù)據(jù)寄存器和中斷標志位并返回主程序開啟中斷;若沒有到達最大重發(fā)次數(shù),系統(tǒng)將一直重發(fā),直至達到最大重發(fā)次數(shù)并清除狀態(tài)寄存器和數(shù)據(jù)寄存器,返回遙控主程序開啟中斷.當(dāng)定時器沒有計時到200 ms,程序進入接收模式,此時程序?qū)⑴袛嗍欠窠邮盏綌?shù)據(jù)包.如接收到數(shù)據(jù)包,單片機將根據(jù)接收到的數(shù)據(jù),再由LCD1602液晶模塊顯示小車實時監(jiān)測到的環(huán)境溫度,并清除狀態(tài)寄存器、其他數(shù)據(jù)寄存器及中斷標志位并返回主程序.若沒有接收到信號,系統(tǒng)將直接返回主程序.小車部分的主程序流程圖如圖10所示.
4.1.2無線收發(fā)模塊子程序
主程序首先計時,再判斷定時器是否計時到200 ms;如果到了200 ms,程序進入發(fā)射模式關(guān)閉中斷,并讀寄存器,判斷是否收到數(shù)據(jù).若是則讀取數(shù)據(jù)并置位、發(fā)送數(shù)據(jù),檢測是否發(fā)射成功.若發(fā)射成功則清除狀態(tài)寄存器及TX數(shù)據(jù)寄存器并返回主程序,若沒有發(fā)射成功則系統(tǒng)將會一直發(fā)射,再檢測是否達到最大重發(fā)次數(shù).若達到最大重發(fā)次數(shù)則清除狀態(tài)寄存器及TX數(shù)據(jù)寄存器、中斷標志位并返回主程序.若沒有達到最大重發(fā)次數(shù),程序?qū)⒁恢敝匕l(fā)數(shù)據(jù),直到達到最大重發(fā)次數(shù)并清除狀態(tài)寄存器及其他數(shù)據(jù)寄存器和中斷標志位并返回主程序開啟中斷.發(fā)射程序流程圖如圖11所示.
圖10 遙控主程序流程圖
圖11 發(fā)射程序流程圖
主程序判斷定時器是否計時到200 ms.沒有到200 ms程序進入接收模式并讀RX寄存器,判斷是否收到數(shù)據(jù),若是則讀取數(shù)據(jù)并通過單片機處理數(shù)據(jù),檢測是不是達到最大重發(fā)次數(shù).若到達最大重發(fā)次數(shù)則擦除狀態(tài)寄存器及數(shù)據(jù)寄存器和中斷標志位并返回主程序.沒有到達最大重發(fā)次數(shù),程序?qū)⒅苯忧宄龜?shù)據(jù)寄存器、中斷標志位并返回小車主程序.接收程序流程圖如圖12所示.
圖12 接收程序流程圖
4.2小車程序設(shè)計
小車程序分別由延時子程序、無線收發(fā)子程序、溫度檢測子程序、電機驅(qū)動子程序和小車主程序構(gòu)成.
4.2.1小車主程序
程序上電或復(fù)位后程序初始化,系統(tǒng)延時6 s后判定定時器是不是計時到200 ms.如果到了200 ms,程序進入發(fā)射模式并關(guān)閉中斷,發(fā)射由DS18B20采集的溫度值并檢測是否達到最大重發(fā)次數(shù).如果達到則清除狀態(tài)寄存器及其他數(shù)據(jù)寄存器、中斷標志并返回主程序開啟中斷;若沒有到達最大重發(fā)次數(shù),程序?qū)⒁恢敝匕l(fā),直到到達最大重發(fā)次數(shù)并擦除狀態(tài)寄存器及其他數(shù)據(jù)寄存器、中斷標志并返回主程序開啟中斷.當(dāng)定時器沒有計時到200 ms,程序進入接收模式,此時程序?qū)⑴袛嗍欠窠邮盏綌?shù)據(jù).如接收到信號,單片機將根據(jù)接收到的數(shù)據(jù)指令驅(qū)動小車完成相應(yīng)的動作,并清除狀態(tài)寄存器及其他數(shù)據(jù)寄存器、中斷標志并返回主程序.若沒有接收到信號,程序?qū)⒅苯臃祷刂鞒绦?小車主程序流程圖如圖13所示.
4.2.2電機驅(qū)動子程序
電機驅(qū)動子程序的主要功能是將單片機接收到的按鍵動作指令通過PWM函數(shù)產(chǎn)生一組PWM波控制L298N電機驅(qū)動模塊驅(qū)動電機并響應(yīng)相應(yīng)的反應(yīng)動作.電機驅(qū)動子程序流程圖如圖14所示.
圖13 小車主程序流程圖
圖14 電機驅(qū)動子程序流程圖
5.1測試儀表
測試采用秒表、刻度尺、卷尺、溫度計等.
5.2測試方法
(1)將小車放在空曠地域,開啟電源開關(guān),由手持無線遙控器在100 m/200 m/500 m范圍內(nèi)控制小車前進、后退、加速、減速、左轉(zhuǎn)、右轉(zhuǎn).
(2)將小車放在200 cm×200 cm大小的木板上,在木板上制定坐標X軸、Y軸,設(shè)置好坐標后讓小車自動跑到該位置.
(3)將小車所處的環(huán)境溫度通過無線通信顯示在遙控器LCD1602液晶顯示屏上.
5.3測試結(jié)果
經(jīng)多次測量在0.5 km以內(nèi)控制小車情況良好.在200 cm×200 cm的制定坐標的范圍內(nèi)電動小車能將其位置的坐標值實時傳送至手持無線遙控器.手持無線遙控器給定坐標后小車能夠找到目標地點并到達指定地點,定點誤差小.溫度的采集與傳輸精度在誤差范圍內(nèi).
本設(shè)計是基于STC12C5A60S2單片機的無線遙控小車,雖然還有不足,但總體設(shè)計相對較好,可以連續(xù)擴展和改良.如可將按鍵控制改成搖桿電位器控制,可以加裝其他傳感器如一氧化碳、甲烷檢測等,還可以加裝機器手臂,讓小車可以抓取工具.
圖15 遙控器與小車系統(tǒng)實物
[1]黃建能,楊光杰.無線遙控小車[J].現(xiàn)代電子技術(shù),2012(23):126-128.
[2]劉汪,董曉慶.基于單片機的無線遙控小車[J].科技信息,2013(4):155.
[3]陳雙燕.遠程溫度檢測系統(tǒng)的設(shè)計[J].武夷學(xué)院學(xué)報,2014(2):66-69.
[4]包宋建,李文森.基于單片機的四旋翼飛行器智能控制及圖像實時傳輸系統(tǒng)設(shè)計[J].重慶文理學(xué)院學(xué)報,2013,32(5):53-56.
[5]馮洋.智能環(huán)境數(shù)據(jù)采集小車[J].電子設(shè)計工程,2015(21):12-14.
[6]包宋建.一種視頻幀宏塊噪聲判斷的自適應(yīng)邊緣檢測技術(shù)[J].重慶文理學(xué)院學(xué)報,2014,33(2):117-120.
[7]余福兵.電阻爐智能溫度控制器的設(shè)計[D].內(nèi)蒙古:內(nèi)蒙古科技大學(xué),2012:14-16.
(責(zé)任編輯穆剛)
Research and realization of intelligent wireless remote control car based on SCM
Song Yixin, CHEN Chao, XU Bin, TAN Jun, DAI Hangyi, BAO Songjian
(School of Electronics Engineering, Chongqing University of Arts and Sciences, Yongchuan Chongqing 402160, China)
The paper introduces a wireless remote control car controled by the STC12C5A60S2 single-chip microcomputer, and the system was designed with control preaches and independent imagine transmission devices, that is to say, the data transceiver module controls the temperature and sends it to the computer. And the imagine module is responsible for sending the work conditions and STC12C5A60S2 is the core of control parts; the car completes the corresponding action based on the use of NRF 242L01 data transceiver module and the electricity of L298N motor driven. DS18B20 is responsible for measuring temperature. Then the transceiver module launches the data which is seen on LCD1602. The system is designed with modular parts and compact structures. What’s more, it is convenient to update with high reliability.
single chip microcomputer; NRF24L01+; L298N;DS18B20
2015-10-26
重慶文理學(xué)院校級科研項目“基于單片機的無線遙控小車研究與實現(xiàn)”(XSKY2015052).
宋亦薪(1985—),男,重慶璧山人,碩士研究生,主要從事電力系統(tǒng)運行、信息控制方面的研究;陳超(1993—),男,重慶梁平人,主要從事電力系統(tǒng)運行、信息控制方面的研究.
包宋建(1974—),男,重慶永川人,講師,碩士,主要從事視頻編碼、嵌入式系統(tǒng)控制方面的研究.
TP242
A
1673-8004(2016)05-0069-06