需要模塊: 1. STC89C52RC單片機+最小系統(tǒng) 2. HC06藍牙從機模塊 3. L298電機驅(qū)動模塊 4. 電源(7v) 5. 電機+車輪 以上都可以在淘寶上購買的到。不過建議DIY的同志還是自己買單個原件焊接,比較有學(xué)習(xí)意義。 第一步 ——車體 小車車體建議自己制作,一是簡單,而是可以節(jié)省成本,找一塊塑料板,買一瓶502膠水,把在網(wǎng)上買的電機直接粘上去就可以了,很穩(wěn)固。淘寶也有成品的車體,我就是直接買成品的。自己動手太浪費時間也不好看,但是就沒有成就感了。
第二步——控制系統(tǒng) 動手制作一個單片機最小系統(tǒng),安上芯片,非常的簡單 51單片機最小系統(tǒng)的電路圖大家應(yīng)該都知道——
第三部——電機驅(qū)動 底盤和最小系統(tǒng)搞好了,小車還是跑不起來——缺少電機驅(qū)動。 單片機的I/O是驅(qū)動不了電機的,我選用的是L298N電機專用驅(qū)動芯片。 我當(dāng)時是偷懶,所以就在網(wǎng)上買了一個電機驅(qū)動,6塊錢吧,買單個L298芯片好像是3塊錢,感覺買一個現(xiàn)成的更劃算 電機模塊原理圖如下:
有興趣的可以根據(jù)這圖畫一塊PCB,自己動手做。 第四步——HC06藍牙轉(zhuǎn)串口模塊 既然使用手機藍牙控制,那小車上必須要有一個藍牙模塊與手機藍牙通信。在這里選用了HC06藍牙轉(zhuǎn)串口模塊。
HC06藍牙轉(zhuǎn)串口模塊的作用是將從手機藍牙發(fā)送過來的指令接收到后轉(zhuǎn)換成串口的形式通過單片機的串口傳給單片機。只需將該模塊的TXD接上51單片機的RXD引腳就行(當(dāng)然還有電源),TXD不用接,因為我們只用它接收手機藍牙信號,不發(fā)送數(shù)據(jù)。它出廠默認設(shè)置的波特率9600 ,不重新設(shè)置它的波特率的話,在寫單片機串口程序時,也要將波特率設(shè)置為9600。 第五步——電源 你可以根據(jù)實際情況選擇電源,用電池組或小型蓄電池,我用的是兩塊3.7V的電池串聯(lián)來給電機驅(qū)動供電,然后用一塊手機電池3.7V給單片機和藍牙串口供電。 最后一步: 用安卓手機下載一個叫“藍牙串口”的軟件,一般人只要玩玩都會用, 手機通過藍牙向單片機發(fā)送一個數(shù)據(jù)(字符),單片機檢測到便執(zhí)行相應(yīng)的指令。程序看文件夾下“參考程序” 附加功能:給小車加了四個燈,通過手機可以打開,關(guān)閉。 在車子前進和后退時四個燈會閃爍。轉(zhuǎn)向時也會有相應(yīng)的轉(zhuǎn)向燈。
做成功后可以在上面添加別的模塊,比如避障,尋跡,測距。。。 教你做Android手機藍牙遙控車
安卓手機遙控小車,顧名思義就是用安卓手機來控制小車前后左右運動。
需要模塊:
HC06藍牙轉(zhuǎn)串口模塊的作用是將從手機藍牙發(fā)送過來的指令接收到后轉(zhuǎn)換成串口的形式通過單片機的串口傳給單片機。只需將該模塊的TXD接上51單片機的RXD引腳就行(當(dāng)然還有電源),TXD不用接,因為我們只用它接收手機藍牙信號,不發(fā)送數(shù)據(jù)。它出廠默認設(shè)置的波特率9600 ,不重新設(shè)置它的波特率的話,在寫單片機串口程序時,也要將波特率設(shè)置為9600。
也可以買HC05藍牙?磦人喜歡
第五步——電源
你可以根據(jù)實際情況選擇電源,用電池組或小型蓄電池,我用的是兩塊3.7V的電池串聯(lián)來給電機驅(qū)動供電,然后用一塊手機電池3.7V給單片機和藍牙串口供電。
最后一步:
用安卓手機下載一個叫“藍牙串口”的軟件,一般人只要玩玩都會用,
手機通過藍牙向單片機發(fā)送一個數(shù)據(jù)(字符),單片機檢測到便執(zhí)行相應(yīng)的指令。程序看文件夾下“參考程序”
附加功能:給小車加了四個燈,通過手機可以打開,關(guān)閉。
在車子前進和后退時四個燈會閃爍。轉(zhuǎn)向時也會有相應(yīng)的轉(zhuǎn)向燈。
做成功后可以在上面添加別的模塊,比如避障,尋跡,測距。。。
我自己也做了APP 和 單片機程序。 發(fā)送字符匹配的
單片機源程序如下:
- /**************************************************************************************
- * 串口通信實驗 *
- 實現(xiàn)現(xiàn)象:下載程序后打開串口調(diào)試助手,將波特率設(shè)置為4800,選擇發(fā)送的數(shù)據(jù)就可以顯示
- 在串口助手上。具體操作參考操作視頻
- 注意事項:無。
- ***************************************************************************************/
- #include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
- typedef unsigned int u16; //對數(shù)據(jù)類型進行聲明定義
- typedef unsigned char u8;
- u8 a;
- sbit in1=P2^0;
- sbit in2=P2^1;
- sbit in3=P2^2;
- sbit in4=P2^3;
- /*******************************************************************************
- * 函數(shù)名 :UsartInit()
- * 函數(shù)功能 :設(shè)置串口
- * 輸入 : 無
- * 輸出 : 無
- *******************************************************************************/
- void UsartInit()
- {
- SCON=0X50; //設(shè)置為工作方式1
- TMOD=0X20; //設(shè)置計數(shù)器工作方式2
- PCON=0X80; //波特率加倍
- TH1=0XF4; //計數(shù)器初始值設(shè)置,注意波特率是4800的
- TL1=0XF4;
- ES=1; //打開接收中斷
- EA=1; //打開總中斷
- TR1=1; //打開計數(shù)器
- }
- /*******************************************************************************
- * 函 數(shù) 名 : main
- * 函數(shù)功能 : 主函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main()
- {
- UsartInit(); // 串口初始化
- while(1)
- {
- switch(a)
- {
- case'a':in1=0;in2=1; in3=1; in4=0; break; // 前進
- case'b':in1=1;in2=0; in3=0; in4=1; break; // 后退
- case'c':in1=0;in2=1; in3=0; in4=0; break; // 左轉(zhuǎn)
- case'd':in1=0;in2=0; in3=1; in4=0; break; // 右轉(zhuǎn)
- case'e':in1=0;in2=0; in3=0; in4=0; break; // 停止
- }
- }
- }
- /*******************************************************************************
- * 函數(shù)名 : Usart() interrupt 4
- * 函數(shù)功能 : 串口通信中斷函數(shù)
- * 輸入 : 無
- * 輸出 : 無
- *******************************************************************************/
- void Usart() interrupt 4
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
藍牙串口小車.rar
(33.04 KB, 下載次數(shù): 723)
2018-1-30 17:02 上傳
點擊文件名下載附件
單片機程序 下載積分: 黑幣 -5
APP.rar
(224.63 KB, 下載次數(shù): 356)
2018-1-30 17:02 上傳
點擊文件名下載附件
手機藍牙APP 下載積分: 黑幣 -5
|