楊敏
一、引言
隨著科技的發(fā)展進(jìn)步和人民生活水平的不斷提高,智能手機(jī)正在飛速發(fā)展。手機(jī)已成為人民生活中的依賴品,它集通信、生活、娛樂于一體,給生活帶來極大的方便,一機(jī)在手,萬物盡在掌握之中。為結(jié)合科技與教學(xué),激發(fā)學(xué)生課堂上的興趣,本文就手機(jī)APP藍(lán)牙控制智能小車實例介紹,通過借助手機(jī)APP平臺,運(yùn)用藍(lán)牙技術(shù),實現(xiàn)用手機(jī)對小車實時遙控完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等動作,生動形象,有利于促使學(xué)生對科技與生活結(jié)合的理解,同時也為生活上的遙控玩具和智能家居的制作提供新的路徑。
二、系統(tǒng)設(shè)計
(一)設(shè)計總思路
本設(shè)計的小車系統(tǒng)以STC89C52單片機(jī)為核心,以手機(jī)APP屏幕界面的按鈕遙控小車的轉(zhuǎn)動,中間采用藍(lán)牙技術(shù)作為客服端發(fā)送接收數(shù)據(jù),單片機(jī)根據(jù)HC-05為藍(lán)牙接收模塊接收到的數(shù)據(jù)信號指令進(jìn)行分析處理,輸出對應(yīng)的指令信號,再由L298驅(qū)動電路相應(yīng)的小車電機(jī)正、反轉(zhuǎn),實現(xiàn)控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止等動作,同時顯示電路顯示對應(yīng)用的動作碼。電源提供給單片機(jī)5V直流電,L298需要從外部接兩個電壓,分給電機(jī)和L298芯片。設(shè)計總電路結(jié)構(gòu)框架圖如圖1所示。
(二)設(shè)計功能
本系統(tǒng)能自行設(shè)計手機(jī)APP,并能借助藍(lán)牙技術(shù)傳輸命令,通過手機(jī)APP的控件控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等動作,實現(xiàn)了手機(jī)APP與單片機(jī)通過藍(lán)牙技術(shù)實現(xiàn)了有機(jī)結(jié)合,操作簡便有趣。
三、硬件設(shè)計
(一)單片機(jī)及電機(jī)主電路
本系統(tǒng)以STC89C52單片機(jī)為主控單元,STC89C52單片機(jī)是一種8K字節(jié)可編程可擦除只讀存儲器的微處理器,具有高速、電壓低、功耗低、抗干擾能力強(qiáng)等特點的單片機(jī),簡單、廉價、實用。整個小車系統(tǒng)采用了4輪驅(qū)動,使用L298N芯片電機(jī)驅(qū)動模塊實現(xiàn)對左右兩組電機(jī)的實時驅(qū)動控制;L298N驅(qū)動模塊采用ST公司原裝全新的L298N芯片,具有工藝、穩(wěn)定性高的特點,其控制端口共有六個,通過與單片機(jī)的I/O連接,將接收單片機(jī)I/O口的高低電平信號即可驅(qū)動控制電機(jī)的正、反轉(zhuǎn)以及停止的操作。外圍電路還采用了兩組由4個二極管組成的橋式整流電路,保證輸出穩(wěn)定的控制電機(jī)的電壓。主電路如圖2所示。
(二)藍(lán)牙模塊
本小車系統(tǒng)的藍(lán)牙模塊采用是HC-05芯片集成模塊,如圖3所示左圖藍(lán)牙接口和右圖HC-05藍(lán)牙模塊。HC-05芯片里已經(jīng)封裝帶有藍(lán)牙協(xié)議,我們在使用時只需通過串口連接就能實現(xiàn)手機(jī)與51單片機(jī)的無線通信。該藍(lán)牙模塊有6個引腳,包括VCC、GND、TXD、RXD,藍(lán)牙模塊的引腳TXD與RXD分別與單片機(jī)的RXD與TXD引腳相連接, VCC和GND分別接電源和地給模塊進(jìn)行供電,控制信號通過RXD與TXD數(shù)據(jù)無線傳輸,手機(jī)與藍(lán)牙模塊配對連接就可以實現(xiàn)對小車的無線控制。該模塊供電電壓范圍寬為3.3V~5.5V,寬波特率范圍4800~1382400,并且模塊兼容5V/3.3V單片機(jī)系統(tǒng),具有成本低,兼容性好,功耗低等優(yōu)點。
(三)顯示電路
為能較好地判斷出小車工作的狀態(tài),本電路加入顯示電路,采用七段數(shù)碼管顯示。該電路主要用來顯示電機(jī)控制的顯示碼,根據(jù)顯示碼就能對應(yīng)知道小車正在運(yùn)行的狀態(tài)。顯示電路如圖4所示。小車運(yùn)行狀態(tài)與顯示代碼對應(yīng)表如表2所示。
四、軟件設(shè)計
(一)手機(jī)藍(lán)牙APP開發(fā)軟件
本設(shè)計采用的手機(jī)APP開發(fā)軟件為廣州市教育信息中心開發(fā)的APP INVENTOR 公共平臺。該系統(tǒng)平臺屬免費開放平臺,只要打開網(wǎng)址http://app.gzjkw.net/login/進(jìn)行注冊申請帳號或使用QQ帳號即可登陸使用,該平臺編程采用的是積木式程序開發(fā)編程,可任意開發(fā)各種手機(jī)APP程序,簡單易用。平臺上APP的操作主要分組件設(shè)計和邏輯設(shè)計二部分,組件設(shè)計主要是對用戶界面的控件(如按鈕等)的布局設(shè)計,而邏輯設(shè)計是對控件添加上邏輯功能,然后通過客戶端(如藍(lán)牙)進(jìn)行傳送控制信息數(shù)據(jù),以實現(xiàn)對小車的控制操作。最后組件設(shè)計和邏輯設(shè)計完成后,再點擊打包APK生成手機(jī)APP二維碼。生成的二維碼就可以下載保存到電腦,或手機(jī)直接安裝。手機(jī)安裝好后,就可以進(jìn)入控制界面,系統(tǒng)用戶登陸界面如圖5所示。
(1)該系統(tǒng)的客戶端開發(fā)主要涉及到客戶端界面的設(shè)計和邏輯功能代碼的設(shè)計,本小車系統(tǒng)的設(shè)計組件如圖6所示。
(2)邏輯設(shè)計如圖7所示。
(二)單片機(jī)程序
本小車系統(tǒng)設(shè)計的主程序主要是由單片機(jī)的控制實現(xiàn)的,由手機(jī)藍(lán)牙向藍(lán)牙模塊發(fā)送控制指令信息,單片機(jī)通過讀取藍(lán)牙模塊輸入的控制信息進(jìn)行存儲和分析,分析完畢后,向驅(qū)動電機(jī)模塊發(fā)出控制指令,來實現(xiàn)控制電機(jī)驅(qū)動,控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止等動作。這個過程,先由單片機(jī)進(jìn)行初始化,單片機(jī)不斷對HC-05藍(lán)牙模塊的串口讀取數(shù)據(jù)信息,如果串口 圖8有數(shù)據(jù)指令發(fā)送,那就單片機(jī)將串口的數(shù)據(jù)讀出,并對讀出的數(shù)據(jù)信息進(jìn)行分析判斷,再向驅(qū)動模塊輸出對應(yīng)的小車動作指令,以驅(qū)動小車運(yùn)行。如果讀得的數(shù)據(jù)信息為0x31、0x32、0x33、0x34、0x35,那么對應(yīng)的小車的運(yùn)行狀態(tài)分別為前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。
(1)流程圖如圖8所示。
(2)小車控制系統(tǒng)單片機(jī)程序如下:
#include
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
void delays(unsigned int k)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<120;j++); //1ms@sTc 11.0592
}
void UartInit(void) //9600bps@11.0592MHz
{
EA=1;
ES=1;
PCON |= 0x80;//使能波特率倍速位SMOD
SCON = 0x50;//8位數(shù)據(jù),可變波特率
TMOD &= 0x0F;//清除定時器1模式位
TMOD |= 0x20;//設(shè)定定時器1為8位自動重裝方式
TL1 = 0xFA;//設(shè)定定時初值
TH1 = 0xFA;//設(shè)定定時器重裝值
ET1 = 0;//禁止定時器1中斷
TR1 = 1;//啟動定時器1
}
unsigned char ch;
void serilas() interrupt 4
{
if(RI==1)
{
RI=0;
ch=SBUF;
SBUF=ch;
while(TI==0);
TI=0;
}
}
void main()
{
UartInit();
while(1)
{
if(ch==0x31)
{P0=0x9f;P12=1;P13=0;P14=1;P15=0;} //前進(jìn)
if(ch==0x32)
{P0=0x25;P12=0;P13=1;P14=0;P15=1;} //后退
if(ch==0x33)
{P0=0x0d; P12=0;P13=1;P14=1;P15=0;delays(500);P13=0;P14=0;} //左轉(zhuǎn)
if(ch==0x34)
{P0=0x99;P12=1;P13=0;P14=0;P15=1;delays(500);P12=0;P15=0;} //右轉(zhuǎn)
if(ch==0x35)
{P0=0x49;P12=0;P13=0;P14=0;P15=0;} //停止
}
}
五、系統(tǒng)調(diào)試
(一)手機(jī)APP控件安裝
通過手機(jī)掃描APP二維碼,下載控制模塊App并安裝安裝完畢后,手機(jī)的控制界面圖如圖9所示:
(二)下載單片機(jī)程序并調(diào)試
采用Keil編寫輸入C程序,編譯運(yùn)行通過后,生成HEX文件,再通過USB下載口把HEX文件下載到單片機(jī)中,上電后即可以進(jìn)行調(diào)試。調(diào)試程序如下:首先打開手機(jī)APP的小車系統(tǒng)控制界面,點擊藍(lán)牙選擇按鈕,選擇與小車HC-05的藍(lán)牙進(jìn)行配對,配對成功后,就可以按手機(jī)上的控制小車的動作按鈕,手機(jī)通過藍(lán)牙將動作按鈕對應(yīng)用的控制信息數(shù)據(jù)發(fā)送到小車藍(lán)牙上,單片機(jī)讀取數(shù)據(jù)信息并根據(jù)信息發(fā)出控制小車的信號,由驅(qū)動電路驅(qū)動控制小車電機(jī)的轉(zhuǎn)動,實現(xiàn)小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止等功能動作;同時數(shù)碼管也顯示出小車對應(yīng)的動作代碼。例如:按下手機(jī)上的前進(jìn)按鈕,小車四輪正轉(zhuǎn)進(jìn)行前進(jìn)動作,數(shù)碼管上顯示數(shù)字“1”。
(1)藍(lán)牙配對
打開手機(jī)藍(lán)牙,再打開手機(jī)控制小車APP,點擊藍(lán)牙選擇按扭,選擇HC-05藍(lán)牙,選擇成功如圖10所示:
(2)實物調(diào)試如圖11所示左圖為小車前進(jìn)圖,右圖為小車停止圖,此實物圖是建立在整個小車成品系統(tǒng)上調(diào)試的,單獨也可以調(diào)試。
六、結(jié)束語
本設(shè)計系統(tǒng)主要是實現(xiàn)了目前流行的手機(jī)對小車的無線控制,雖然整個系統(tǒng)功能還不夠完美,還可以增加路障檢測等功能來完善。但是無線控制的功能已經(jīng)是實現(xiàn)的,實用性較強(qiáng),可以為廣大教師單片機(jī)課程趣味性提供一個實例,也可以為智能化和無線控制技術(shù)的研發(fā)提供一個新方法和思路。同時在撰寫論文及調(diào)試的過程中,大大地擴(kuò)寬了筆者的知識面,反復(fù)的調(diào)試過程中,也鍛煉提高了筆者的分析問題和解決問題的能力。endprint