久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何做一臺自己的手機藍牙遙控車

 共同成長888 2015-07-19

如何做一臺自己的手機藍牙遙控車 

       最近很多人問我有關(guān)藍牙遙控車的事情,,就在這里統(tǒng)一寫一個日志詳細說說怎么做吧,。采用模塊搭建的方法比較簡單。不費事兒~
       材料清單:
普通遙控車一輛  30元 (遙控壞不壞的都行只要電機沒問題)
藍牙串口模塊一個 25元 (淘寶有賣)
電烙鐵一把  價格略,,買一把夠用好多年(焊錫,、松香少量) 
STC的單片機一個 4元 (推薦用個STC89C52RC,雖然大點)
安卓手機一臺帶藍牙  價格略
L298N電機驅(qū)動模塊  14元(淘寶有賣)
18650鋰電池2節(jié)   15元(淘寶,,最好連電池盒也一起買了,。當然買14500電池更好,跟5號電池一樣大,,直接放在車子的電池盒,。注意電壓是3.7V的)
TTL下載線  15元(用來下載程序到單片機中,算是很常見的一個東西了,,沒有的話就淘寶吧)
電阻電容之類的若干 (主要是給單片機做最小系統(tǒng),,不想費勁的話就買個STC89C52RC的最小系統(tǒng)板10元)
導(dǎo)線若干

先上張完成圖:

動力比較足,用電池壓住后輪,,不然打滑嚴重,。

思路:
手機發(fā)送控制指令
經(jīng)藍牙發(fā)送至藍牙串口模塊
串口模塊把數(shù)據(jù)通過單片機串口送入單片機
單片機處理數(shù)據(jù),作出反應(yīng),,是該前進還是后退


 

介紹下電機驅(qū)動模塊

                         
我們使用的是AB/CD兩組直流電機驅(qū)動口,。無視圖上的步進電機,。
在本次制作中AB口驅(qū)動后輪的電機,控制小車前后動作,;
CD口驅(qū)動前輪方向電機,,控制小車左右動作。
 信號輸入端口inA/inB/inC/inD,給一個高電平+5,,就可以驅(qū)動相應(yīng)的電機正反轉(zhuǎn)

稍微介紹下STC89C52RC

P1.4接inA,,P1.5接inB,P1.6接inC,,P1.7接inD,。單片機最小系統(tǒng)要么買個小板子,要么找STC官網(wǎng)的PDF看,,這里就不貼了,。
P3.0和P3.1作為下載口與藍牙串口的通訊口。
單片機晶振使用11. 0592M的,。
 P3.2接LED正極,,LED負極接地,這個LED的作用是判斷單片機是否正常運行,,在程序里設(shè)定LED一亮一滅,,正常運行的話,LED會一亮一滅,。
程序結(jié)構(gòu)如下 :

drive.c
#include "drive.h"
   
void Wleft()
{
    W_1 = 1;
    B_1 = 0;
    L_1 = 1;
    R_1 = 0;
}

void Wright()
{
    W_1 = 1;
    B_1 = 0;
    L_1 = 0;
    R_1 = 1;
}

void Bleft()
{
    W_1 = 0;
    B_1 = 1;
    L_1 = 1;
    R_1 = 0;
}

void Bright()
{
    W_1 = 0;
    B_1 = 1;
    L_1 = 0;
    R_1 = 1;
}

void Forward()
{
    W_1 = 1;
    B_1 = 0;
    L_1 = 0;
    R_1 = 0;   
}

void Backward()
{
    W_1 = 0;
    B_1 = 1;
    L_1 = 0;
    R_1 = 0;    
}

void Stop()
{
    W_1 = 0;
    B_1 = 0;
    L_1 = 0;
    R_1 = 0;   
}

main.c
#include<reg52.h>
#include "drive.h"

#define uchar unsigned char

sbit led_pin = P3^2;    //定義led所接的引腳

uchar k;
uchar rxcode[1];

void led() interrupt 1    //led閃爍函數(shù),,由定時器T0產(chǎn)生中斷,大約1.5秒閃爍一下
{
    uchar i;
    i++;
    if(i==15)
    {
        led_pin = !led_pin;
        i=0;
    }
    TH0 = (65536-50000)/256;
    TL0 = (65536-50000)%256;
}

void com() interrupt 4    //串口中斷函數(shù),,當藍牙傳命令過來的時候執(zhí)行
{
    RI = 0;
    rxcode[k]=SBUF;        //把收到的命令放到全局變量里面
    k++;
    if(k==1)
        k=0;
}
   
void com_init()            //串口初始化函數(shù),,波特率9600bps
{
    TMOD = 0x21;
    TH1  = 0xfd;
    TL1  = 0xfd;
    TR1  = 1;
       
    REN  = 1;
    SM0  = 0;
    SM1  = 1;
   
    ES   = 1;
    EA   = 1;
}

void led_init()            //定時器0初始化函數(shù),用于led閃爍
{
    TH0  = (65536-50000)/256;
    TL0  = (65536-50000)%256;
    ET0  = 1;
    TR0  = 1;
}

void main()                //主函數(shù)
{
    Stop();
    com_init();            //串口初始化
    led_init();            //led閃爍定時器初始化
    while(1)            //死循環(huán),,等待藍牙傳命令過來
        {
        switch(rxcode[0])    //判斷收到的命令是干嘛的
            {
            case 2:Forward();break;        //前進
            case 1:Backward();break;    //后退
            case 4:Wright();break;        //前右
            case 3:Wleft();break;        //前左
            case 5:Bright();break;         //后右
            case 6:Bleft();break;         //    后左
            case 0:Stop();break;        //停止
            }
           }
}

drive.h
#ifndef __DRIVE_H__
#define __DRIVE_H__

#include <reg52.h>

//定義L298N所接的引腳
sbit R_1 = P1^7;
sbit L_1 = P1^6;
sbit B_1 = P1^5;
sbit W_1 = P1^4;

void Wleft();
void Wright();
void Bleft();
void Bright();
void Forward();
void Backward();
void Stop();

#endif

編譯生成HEX文件

 
打開 STC-ISP,,準備把程序?qū)懭氲絾纹瑱C
+5接在單片機供電,gnd接地,,RX,TX對應(yīng)P3.0 P3.1 
TTL下載器就是這個

 

選擇好固件,,串口號,點擊下載,,再給單片機上電
如果用最小系統(tǒng)板的話 大概是這個樣子

如果沒有錯誤的話會出現(xiàn)這個
Chinese:正在嘗試與 MCU/單片機 握手連接 ...
MCU Type is: STC89C52RC
MCU Firmware Version: 4.3C
Chinese:MCU 固件版本號: 4.3C
Double speed / 雙倍速:          12T/單倍速
振蕩放大器增益:                  full gain
下次下載時 P1.0/P1.1 與下載無關(guān)
內(nèi)部擴展AUX-RAM:        允許訪問(強烈推薦)
下次下載用戶應(yīng)用程序時將數(shù)據(jù)Flash區(qū)擦除: NO
用戶軟件啟動內(nèi)部看門狗后:     復(fù)位關(guān)看門狗
ALE pin 仍為 ALE
內(nèi)部時鐘頻率:11.049428M.
外部時鐘頻率:11.049428M.
Chinese:正在重新連接 ...
Current Baud is: / 當前波特率為: 19200 bps.
We are erasing MCU flash...
正在擦除應(yīng)用程序區(qū)... ( 00:01 )
正在下載... ( 開始時間: 14:40:06 )
Program OK / 下載 OK
Verify  OK / 校驗 OK
erase times/擦除時間 :  00:01
program times/下載時間: 00:01
Encrypt OK/ 已加密

這樣就可以了,。把硬件都裝上

最好在驅(qū)動模塊的輸出串個5歐姆的水泥電阻,不然動力太足,。

這樣就OK了,。只要使用藍牙串口發(fā)送1就可以前進,2就可以后退。3,、4,、5、6.安卓的程序需要的話可以喊我,,這里傳不上來,。

大體上就是這樣的思路。具體做的話,,元件的安裝,、電路板的安放都需要根據(jù)小車的實際情況來。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多