摘要 本次設計選擇基于藍牙遙控的多功能智能小車為對象。選用STC98C52RC單片機作為主控芯片,電機驅動采用L293N ,電源部分采用兩節3.7V鋰電池供電.采用C語言模塊化編程,提高開發效率.藍牙控制功能.用按鍵或遙控器來控制小車.
關鍵詞
51單片機
L298N_電機驅動
藍牙遙控
目 錄
1 前言 1
11 系統研究背景 1
12 系統研究的意義和目的 1
2 系統概述 2
21 系統的結構 2
22 系統的功能 2
23 開發環境 2
3 系統實現 3
31 傳感器技術 3
32 其它相關技術 3
33 硬件實現 3
34 軟件實現 3
35 系統測試 3
4 系統使用說明 4
5 總結 5
6 參考文獻 6
1. 前言
1.1. 系統研究背景
藍牙屬于短距離內進行無線控制和收發的通信技術,伴隨著科技的飛躍性發展,也讓藍牙找到了發展的空間,它可以代替和取代落后的數字化硬件設備之間繁瑣的電纜連接。在藍牙創造的初期,沒有人預料到藍牙會有如此大的潛力和前景,而現在的發展也是完全超出了我們的預期,因為藍牙的安全性高,制造成本低廉和所消耗的功率也是同類產品中最低的,所以被很多人使用,越來越受到了廣大消費者的歡迎,基于藍牙技術的產品也在不斷的更新和投入市場。
藍牙技術是近年來出現的新技術是一種短距離無線通信和信息傳輸的新型通訊科技,它使數據線的硬件設備接收更方便快捷。它可以廣泛應用于世界各地,是一個藍牙設置一個通用的范圍,頻率調制技術的使用,以防止外部干擾和多一些。低成本,低功耗和小輻射,和加密設置,讓藍牙的安全性更高;應用范圍廣,這些特點使得藍牙技術被廣泛的應用在我們日常生活中的藍牙也支持一對一和一對多傳輸的通信連接,和多個藍牙成為微網,也有網絡的特點。
在現在的智能時代,小車智能控制,方便了人們的使用。在51單片機的基礎下,通過藍牙來控制小車的駕駛。
1.2. 系統研究的意義和目的
因為無線技術的廣泛使用,我們在研究無線和有線通信技術的方法中了解到藍牙系統的小區域性有很大的技術突破,在國際上也得到了廣泛的采納,在市場上也有很大的需求。這也使藍牙技術的發展成為了趨勢之一,藍牙可以發送和接受語音和數據,滿足了大多數人的需求,它也融合了其他相關產品的特點,也是這樣技術變得更多樣性。然而,藍牙的安全性不足,而且在小區域范圍內的一點對多點的通信受到了很大的限制,這些都是其本身需要改進和完善的
可以使人們更方便,更簡單的控制小車。實現了無線控制小車,擺脫了有線控制的不方便,更智能。
2. 系統概述2.1. 系統的結構 
系統框圖
2.2. 系統的功能 51單片機的基礎下,通過藍牙來控制驅動,此驅動能把5~12V的電壓,一部分給小車輪子轉動,一部分通過降壓,穩壓,最終降為5V來供給此驅動,單片機和傳感器供電。
2.3. 開發環境 AT89C5RC單片機開發環境。
AT89C52是一種8位單片機,它是在MCS-51單片機系列上加強了一些功能后升級得到的產物。它的作用基本上就是把外界的數據和命令在中斷和時鐘的幫助下,在自身內部儲存器上把使用者的數據進行處理。AT89C52 由8位的內部處理器,內部數據儲存器(RAM,有256個字節)內部儲存器有8K的大小,輸入和輸出雙向口有32個,16位的定時器和5個兩級中斷,全雙工串行通信口一個和時鐘電路組成。
AT89C52能夠自主地執行給它的指令,也就是你把所需要的指令寫在單片機的內部儲存器上,它會一步步執行。AT89C52可以在功耗特別低的情況下工作,就是設置成空閑選擇和掉電模式兩種狀態來實現低功耗。
AT89C52
單片機與外界的通訊是依靠它自身的I/O 口進行的,對單片機I/O 口的控制就是對單片機的控制。I/O 口的存在不僅可以實現數據的傳輸,還可以改變電平和信號的性質,最重要的一點就是I/O 口可以實現與外部不同電路的連接來使單片機工作。
AT89C52單片機上我們通常使用的是4個獨立的雙向通用I/O 口:P0口、P1口、P2和P3口。由于外部設備的工作速率比較慢或者很快的時候,我們可以采用同步傳送的方式,而單片機存在的異步傳送是為了更加簡練的和硬件連接進行傳出。也可以通過中斷傳送和DMA傳送來完成。AT89C52單片機還可以實現外部接口單獨的編址和外部端口和存儲器的統一編制兩種方式。AT89C52單片機上一共有32個I/O 口,不同的I/O 口實線的作用和運行的方式都有其自己的方式,我也要通過這次課程設計,更好地了解,更熟練的運用。
3. 系統實現3.1. 相關技術技術 藍牙技術,驅動模塊,
3.2. 硬件實現 HC-06藍牙模塊
其TX接單片機的RX,RX接單片機的TX,VCC接5V(或3.3V),GND接單片機的地。HC-06藍牙模塊是通過一款手機APP(藍牙串口助手)作為中間媒介,在藍牙串口助手發送相關的數據到串口,串口再把相關信息送到藍牙模塊,藍牙模塊再把相關信號送到單片機中。
HC-06藍牙模塊
HC-06藍牙模塊和51單片機連接
L298N電機驅動模塊,
該該電機可以驅動2路直流電機,使能端ENA,ENB,為高電頻有效,
通過單片機的輸入信號給IN1和IN2來控制左輪,輸入信號給IN3和IN4來控制右輪。
IN1和IN2,分別給0,1 :正轉
IN1和IN2,分別給1,0 :反轉
IN1和IN2,分別給1,1 :停止
IN1和IN2,分別給0,0 :停止
IN3和IN4,分別給0,1 :正轉
IN3和IN4,分別給1,0 :反轉
IN3和IN4,分別給1,1 :停止
IN3和IN4,分別給0,0 :停止
L298N的主要引腳功能如下:
+5V:芯片電壓5V;
VCC:電機電壓,最大可接50V;
GND:共地接法;
Output1—Output2:輸出端,接電機1;
Output3—Output4:輸出端,接電機2;
EN1、EN2:高電平有效,EN1、EN2分別為 IN1和IN2、IN3和IN4的使能端;
Input1~ Input4:輸入端,輸入端電平和輸出端電平是對應的;
L298N
3.3. 軟件實現
程序流程圖
51單片機,源程序:
sbit in1 = P1^0;//左電機
sbit in2 = P1^1;//左電機
sbit in3 = P1^2;//右電機
sbit in4 = P1^3;//右電機
char i;
/*前進*/
void forward()
{
in1=1;
in2=0;
in3=1;
in4=0;
}
/*后退*/
void back()
{
in1=0;
in2=1;
in3=0;
in4=1;
}
/*左轉*/
void left()
{
in1=1;
in2=1;
in3=1;
in4=0;
}
/*右轉*/
void right()
{
in1=1;
in2=0;
in3=1;
in4=1;
}
/*停止*/
void stop()
{
in1=1;
in2=1;
in3=1;
in4=1;
}
void main (void)
{
TMOD=0x20; //設置T1為工作方式2
TH1=0xfd; //裝入初值,比特率為9600bps
TL1=0xfd;
TR1=1; //開啟T1
REN=1; //接收允許
SM0=0; //方式1
SM1=1;
EA=1; //開全局中斷
ES=1; //開串口中斷
while(1)
{i=SBUF;//SBUF為單片機接收到的數據,單片機接收到的數據都存放在SBUF里;
RI=0;
if (i==0x02){forward();} //如果藍牙助手發送0x02,小車前進
if (i==0x08){back();} //如果藍牙助手發送0x08,小車后退
if (i==0x01){left();} //如果藍牙助手發送0x01,小車左轉
if (i==0x03){right();} //如果藍牙助手發送0x03,小車右轉
if (i==0x05){stop();} //如果藍牙助手發送0x05,小車停止
}
}
3.4. 系統測試 小車能實現基本功能,成功地用藍牙控制小車。測試了一段時間,單片機工作穩定,藍牙穩定的控制,小車較好的按照控制方向行走。
4. 系統使用說明
1. 為小車裝上兩節鋰電池,來供電。
2. 打開總開關,在手機端,打開一個藍牙通訊助手(在手機應用商店可以找到下載),連接上此小車的藍牙(HC-06),如圖:

藍牙 HC-06模塊
3. 然后就可以在手機端按相應的前進,后退,左轉,右轉,停止等,如圖:
APP
解析:前進,后退,左轉,右轉,停止,都對應著程序中相應的信息,如圖;
當手機端發送 0x02 給藍牙模塊,就會執行 forward()函數; 小車會向前走
當手機端發送 0x08 給藍牙模塊,就會執行 back();函數;,小車會向后走
當手機端發送 0x01 給藍牙模塊,就會執行 left();函數;,小車會向左走
當手機端發送 0x03 給藍牙模塊,就會執行 right()函數;,小車會向右走
當手機端發送 0x05 給藍牙模塊,就會執行stop()函數;,小車會停止
具體的編輯如圖:
APP2
最后這是小車的整體模型;
整體圖
注:上面有個RC522讀卡器的,哪個是方便后面的課設,在這里,大家可以忽略哈。
5. 總結 本設計采用的是STC89C52RC單片機,這主要是因為該單片機的穩定性比較好和執行指令的速度很快。還可以采用其它系列的單片機。電機驅動采用L293N ,穩定電壓,充足地向直流電機供電和穩定控制;電源部分采用兩節3.7V鋰電池供電,電壓穩定,電流充足,還可以循環充電,節能環保。采用C語言模塊化編程,提高開發效率.藍牙控制功能.用按鍵或遙控器來控制小車,簡單方便經過自己不斷的搜索努力以及老師的耐心指導和熱情幫助,本設計已經基本完成。
過這次課程設計,使我深刻地認識到學好專業知識的重要性,也理解了理論聯系實際的含義,并且檢驗了大學兩年的學習成果。雖然在這次設計中對于知識的運用和銜接還不夠熟練。但是我將在以后的工作和學習中繼續努力、不斷完善。這兩個月的設計是對過去所學知識的系統提高和擴充的過程,為今后的發展打下了良好的基礎。 由于自身水平有限,設計中一定存在很多不足之處,敬請各位批評指正.
6. 參考文獻 C語言程序設計 :清華大學出版社作者:譚浩強
51單片機C語言教程:電子工業出版社 ,作者:郭天祥
希望對你有幫助。
為了大家方便,我上傳了手機APP在網盤:https://pan.baidu.com/s/1UNjlUhUQa25K2RNW8hjwOQ
提取碼:wn7k
APk 51hei下載地址:
com.shenyaocn.android.BlueSPP_44.apk.7z
(1.9 MB, 下載次數: 100)
2020-5-19 16:13 上傳
點擊文件名下載附件
|