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