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