51單片機藍牙小車
這是是我大二做的一個課程設計,小菜鳥一個,歡迎大家指正和參考。
摘要 本次設計選擇基于藍牙遙控的多功能智能小車為對象。選用STC98C52RC單片機作為主控芯片,電機驅動采用L293N ,電源部分采用兩節(jié)3.7V鋰電池供電.采用C語言模塊化編程,提高開發(fā)效率.藍牙控制功能.用按鍵或遙控器來控制小車.
關鍵詞 51單片機 L293N_電機驅動 藍牙遙控
目 錄
1 前言 1
11 系統(tǒng)研究背景 1
12 系統(tǒng)研究的意義和目的 1
2 系統(tǒng)概述 2
21 系統(tǒng)的結構 2
22 系統(tǒng)的功能 2
23 開發(fā)環(huán)境 2
3 系統(tǒng)實現(xiàn) 3
31 傳感器技術 3
32 其它相關技術 3
33 硬件實現(xiàn) 3
34 軟件實現(xiàn) 3
35 系統(tǒng)測試 3
4 系統(tǒng)使用說明 4
5 總結 5
6 參考文獻 6
1. 前言
1.1. 系統(tǒng)研究背景
藍牙屬于短距離內進行無線控制和收發(fā)的通信技術,伴隨著科技的飛躍性發(fā)展,也讓藍牙找到了發(fā)展的空間,它可以代替和取代落后的數(shù)字化硬件設備之間繁瑣的電纜連接。在藍牙創(chuàng)造的初期,沒有人預料到藍牙會有如此大的潛力和前景,而現(xiàn)在的發(fā)展也是完全超出了我們的預期,因為藍牙的安全性高,制造成本低廉和所消耗的功率也是同類產品中最低的,所以被很多人使用,越來越受到了廣大消費者的歡迎,基于藍牙技術的產品也在不斷的更新和投入市場。 藍牙技術是近年來出現(xiàn)的新技術是一種短距離無線通信和信息傳輸?shù)男滦屯ㄓ嵖萍,它使?shù)據(jù)線的硬件設備接收更方便快捷。它可以廣泛應用于世界各地,是一個藍牙設置一個通用的范圍,頻率調制技術的使用,以防止外部干擾和多一些。低成本,低功耗和小輻射,和加密設置,讓藍牙的安全性更高;應用范圍廣,這些特點使得藍牙技術被廣泛的應用在我們日常生活中的藍牙也支持一對一和一對多傳輸?shù)耐ㄐ胚B接,和多個藍牙成為微網(wǎng),也有網(wǎng)絡的特點。 在現(xiàn)在的智能時代,小車智能控制,方便了人們的使用。在51單片機的基礎下,通過藍牙來控制小車的駕駛。
1.2. 系統(tǒng)研究的意義和目的
因為無線技術的廣泛使用,我們在研究無線和有線通信技術的方法中了解到藍牙系統(tǒng)的小區(qū)域性有很大的技術突破,在國際上也得到了廣泛的采納,在市場上也有很大的需求。這也使藍牙技術的發(fā)展成為了趨勢之一,藍牙可以發(fā)送和接受語音和數(shù)據(jù),滿足了大多數(shù)人的需求,它也融合了其他相關產品的特點,也是這樣技術變得更多樣性。然而,藍牙的安全性不足,而且在小區(qū)域范圍內的一點對多點的通信受到了很大的限制,這些都是其本身需要改進和完善的 可以使人們更方便,更簡單的控制小車。實現(xiàn)了無線控制小車,擺脫了有線控制的不方便,更智能。
2. 系統(tǒng)概述2.1. 系統(tǒng)的結構
系統(tǒng)框圖.jpg (63.08 KB, 下載次數(shù): 142)
下載附件
2018-10-9 18:46 上傳
2.2. 系統(tǒng)的功能
51單片機的基礎下,通過藍牙來控制驅動,此驅動能把5~12V的電壓,一部分給小車輪子轉動,一部分通過降壓,穩(wěn)壓,最終降為5V來供給此驅動,單片機和傳感器供電。
2.3. 開發(fā)環(huán)境 AT89C5RC單片機開發(fā)環(huán)境。 AT89C52是一種8位單片機,它是在MCS-51單片機系列上加強了一些功能后升級得到的產物。它的作用基本上就是把外界的數(shù)據(jù)和命令在中斷和時鐘的幫助下,在自身內部儲存器上把使用者的數(shù)據(jù)進行處理。AT89C52 由8位的內部處理器,內部數(shù)據(jù)儲存器(RAM,有256個字節(jié))內部儲存器有8K的大小,輸入和輸出雙向口有32個,16位的定時器和5個兩級中斷,全雙工串行通信口一個和時鐘電路組成。 AT89C52能夠自主地執(zhí)行給它的指令,也就是你把所需要的指令寫在單片機的內部儲存器上,它會一步步執(zhí)行。AT89C52可以在功耗特別低的情況下工作,就是設置成空閑選擇和掉電模式兩種狀態(tài)來實現(xiàn)低功耗。
AT89C52.png (62.06 KB, 下載次數(shù): 128)
下載附件
2018-10-9 18:48 上傳
單片機與外界的通訊是依靠它自身的I/O 口進行的,對單片機I/O 口的控制就是對單片機的控制。I/O 口的存在不僅可以實現(xiàn)數(shù)據(jù)的傳輸,還可以改變電平和信號的性質,最重要的一點就是I/O 口可以實現(xiàn)與外部不同電路的連接來使單片機工作。 AT89C52單片機上我們通常使用的是4個獨立的雙向通用I/O 口:P0口、P1口、P2和P3口。由于外部設備的工作速率比較慢或者很快的時候,我們可以采用同步傳送的方式,而單片機存在的異步傳送是為了更加簡練的和硬件連接進行傳出。也可以通過中斷傳送和DMA傳送來完成。AT89C52單片機還可以實現(xiàn)外部接口單獨的編址和外部端口和存儲器的統(tǒng)一編制兩種方式。AT89C52單片機上一共有32個I/O 口,不同的I/O 口實線的作用和運行的方式都有其自己的方式,我也要通過這次課程設計,更好地了解,更熟練的運用。
3. 系統(tǒng)實現(xiàn)3.1. 相關技術技術藍牙技術,驅動模塊, 3.2. 硬件實現(xiàn)HC-06藍牙模塊 其TX接單片機的RX,RX接單片機的TX,VCC接5V(或3.3V),GND接單片機的地。HC-06藍牙模塊是通過一款手機APP(藍牙串口助手)作為中間媒介,在藍牙串口助手發(fā)送相關的數(shù)據(jù)到串口,串口再把相關信息送到藍牙模塊,藍牙模塊再把相關信號送到單片機中。
HC-06藍牙模塊.png (177.78 KB, 下載次數(shù): 140)
下載附件
2018-10-9 18:50 上傳
HC-06藍牙模塊2.png (114.32 KB, 下載次數(shù): 118)
下載附件
2018-10-9 18:50 上傳
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.png (304.36 KB, 下載次數(shù): 130)
下載附件
2018-10-9 18:50 上傳
3.3. 軟件實現(xiàn)
程序流程圖.jpg.png (69.05 KB, 下載次數(shù): 122)
下載附件
2018-10-9 18:51 上傳
程序流程圖
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為單片機接收到的數(shù)據(jù),單片機接收到的數(shù)據(jù)都存放在SBUF里; RI=0; if (i==0x02){forward();} //如果藍牙助手發(fā)送0x02,小車前進 if (i==0x08){back();} //如果藍牙助手發(fā)送0x08,小車后退 if (i==0x01){left();} //如果藍牙助手發(fā)送0x01,小車左轉 if (i==0x03){right();} //如果藍牙助手發(fā)送0x03,小車右轉 if (i==0x05){stop();} //如果藍牙助手發(fā)送0x05,小車停止 } } 3.4. 系統(tǒng)測試小車能實現(xiàn)基本功能,成功地用藍牙控制小車。測試了一段時間,單片機工作穩(wěn)定,藍牙穩(wěn)定的控制,小車較好的按照控制方向行走。
4. 系統(tǒng)使用說明1. 為小車裝上兩節(jié)鋰電池,來供電。 2. 打開總開關,在手機端,打開一個藍牙通訊助手(在手機應用商店可以找到下載),連接上此小車的藍牙(HC-06),如圖:
實物1.jpg (151.4 KB, 下載次數(shù): 110)
下載附件
2018-10-9 18:55 上傳
3. 然后就可以在手機端按相應的前進,后退,左轉,右轉,停止等,如圖:
APP.jpg (63.54 KB, 下載次數(shù): 142)
下載附件
2018-10-9 18:48 上傳
解析:前進,后退,左轉,右轉,停止,都對應著程序中相應的信息,如圖; 當手機端發(fā)送 0x02 給藍牙模塊,就會執(zhí)行 forward()函數(shù); 小車會向前走 當手機端發(fā)送 0x08 給藍牙模塊,就會執(zhí)行 back();函數(shù);,小車會向后走 當手機端發(fā)送 0x01 給藍牙模塊,就會執(zhí)行 left();函數(shù);,小車會向左走 當手機端發(fā)送 0x03 給藍牙模塊,就會執(zhí)行 right()函數(shù);,小車會向右走 當手機端發(fā)送 0x05 給藍牙模塊,就會執(zhí)行stop()函數(shù);,小車會停止 具體的編輯如圖:
APP2.jpg (68.63 KB, 下載次數(shù): 113)
下載附件
2018-10-9 18:49 上傳
最后這是小車的整體模型;
整體圖.jpg (157.51 KB, 下載次數(shù): 102)
下載附件
2018-10-9 18:55 上傳
注:上面有個RC522讀卡器的,哪個是方便后面的課設,在這里,大家可以忽略哈。
5. 總結 本設計采用的是STC89C52RC單片機,這主要是因為該單片機的穩(wěn)定性比較好和執(zhí)行指令的速度很快。還可以采用其它系列的單片機。電機驅動采用L293N ,穩(wěn)定電壓,充足地向直流電機供電和穩(wěn)定控制;電源部分采用兩節(jié)3.7V鋰電池供電,電壓穩(wěn)定,電流充足,還可以循環(huán)充電,節(jié)能環(huán)保。采用C語言模塊化編程,提高開發(fā)效率.藍牙控制功能.用按鍵或遙控器來控制小車,簡單方便經(jīng)過自己不斷的搜索努力以及老師的耐心指導和熱情幫助,本設計已經(jīng)基本完成。 過這次課程設計,使我深刻地認識到學好專業(yè)知識的重要性,也理解了理論聯(lián)系實際的含義,并且檢驗了大學兩年的學習成果。雖然在這次設計中對于知識的運用和銜接還不夠熟練。但是我將在以后的工作和學習中繼續(xù)努力、不斷完善。這兩個月的設計是對過去所學知識的系統(tǒng)提高和擴充的過程,為今后的發(fā)展打下了良好的基礎。 由于自身水平有限,設計中一定存在很多不足之處,敬請各位批評指正.
6. 參考文獻C語言程序設計 :清華大學出版社作者:譚浩強 51單片機C語言教程:電子工業(yè)出版社 ,作者:郭天祥
感謝觀看
|