找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6866|回復: 7
收起左側

迷你藍牙小坦克

  [復制鏈接]
ID:102668 發(fā)表于 2016-1-11 03:16 | 顯示全部樓層 |閱讀模式
一個很精致的小坦克(轉自電子牛人小七)



炮塔是可以旋轉的哦

前面還有小機槍:噠噠噠。。。一掃一大片,嘿嘿。還有個小鋼鏟,估計開坦克的那家伙開到哪,就在哪兒種菜。

除了鏟子,還有很多工具,做工都很精致
蓋子還可以打開哦

上面的圖看不出有多大?那跟打火機做個對比吧

坦克是履帶帶動的,最左邊的那個是主動輪,是馬達驅動的,最右邊的是從動輪,中間的那些小輪應該叫承重輪吧,不是很清楚這些叫法。是不是覺得這么小了還做得那么精致很難得?更難得的是:這些輪子全部都可以轉動




履帶細節(jié)

拆開炮塔,里面有個黑色的塑料罩子


拿開它




拆開了

看懂了一堆三極管組成的H橋,用于驅動小電機的


好古董的電池。。。不知道這個小坦克是不是也是2002年產(chǎn)的



動力來源,兩個小電機,分別驅動左邊和右邊的主動輪,帶動履帶來讓坦克行走。

當兩邊都正轉的時候,坦克就前進
當左邊正轉,右邊反轉時,坦克就原地右轉
當左邊反轉,右邊正轉時,坦克就原地左轉
當兩邊都反轉的時候,坦克就后退



把所有的電路都拆下來,準備改造它


  由于驅動電機需要用到H橋,而我們手頭上只有L298,這玩意兒太大,塞進去就沒空間放其他東西了,所以專門找了 L9110 這個小芯片。。。

熱轉印,準備做電路板,除了坦克所需的PCB外,還做了些其他的東西。。。






焊上 貼片的 STC11F102E 和 11.0592MHZ晶振,以及兩個 L9110 來驅動電機
一個L9110 可以控制電機的正轉或者反轉

藍牙模塊需要3.3V的電壓,所以要做一個3.3V穩(wěn)壓電路給它

裝在這里剛剛好  





尾部裝上小開關,在不用的時候可以斷掉電源


把藍牙模塊接上


在這期間對電路的接線改了一下,所以和上面的相比會有些變化,這個接口是用來充電和下載程序的。對了,那塊黑黑的電池原來是 palm 手機的,單獨用來給小電機供電。


裝上外殼,準備收工了


尾部原來充電的地方改成了指示燈


來一個帥氣的側面照
雖然它各種霸氣外漏,但歸根到底還是一個死物,所以我們要用程序讓它動起來



首先是 drive.h 頭文件,聲明了幾個接口,分別是左轉,右轉,前進,后退。具體由drive.c來實現(xiàn)相應的功能。

#ifndef __DRIVE_H__
#define __DRIVE_H__

void Left();
void Right();
void Forward();
void Backward();
void Stop();

#endif
然后是 drive.c,里面負責控制相應的電路,來實現(xiàn)小電機的轉向,從而實現(xiàn)小坦克的左右轉,前后退等

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

sbit L_A = P1^7;
sbit L_B = P1^6;
sbit R_A = P1^5;
sbit R_B = P1^4;

void Left()
{
    L_A = 1;
    L_B = 0;

    R_A = 0;
    R_B = 1;
}

void Right()
{
    L_A = 0;
    L_B = 1;

    R_A = 1;
    R_B = 0;
}


void Forward()
{
    L_A = 1;
    L_B = 0;

    R_A = 1;
    R_B = 0;   
}

void Backward()
{
    L_A = 0;
    L_B = 1;

    R_A = 0;
    R_B = 1;   
}

void Stop()
{
    L_A = 0;
    L_B = 0;

    R_A = 0;
    R_B = 0;   
}
最后是 main.c 也就是主模塊。

#include<reg51.h>
#include "drive.h"

sfr P1M1 = 0x91;    //這兩個是讓P1口設置為推挽輸出
sfr P1M0 = 0x92;               

sbit L_A = P1^7;      //定義L9110所接的引腳,關于L9110的詳細驅動方式見其PDF(其實跟L298差不多)
sbit L_B = P1^6;
sbit R_A = P1^5;
sbit R_B = P1^4;
sbit led_pin = P3^5;   //定義led所接的引腳

unsigned char cmd;    //全局變量,用于存放藍牙傳過來的命令

void led() interrupt 1   //led閃爍函數(shù),由定時器T0產(chǎn)生中斷,大約1.5秒閃爍一下
{
    unsigned char 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;
    cmd = SBUF;       //把收到的命令放到全局變量里面
}

void com_init()    //串口初始化函數(shù),波特率9600bps
{
    TMOD = 0x00;
    TMOD = 0x21;
    TH1  = 0xfd;
    TL1  = 0xfd;
    TR1  = 1;

    REN  = 1;
    SM0  = 0;
    SM1  = 1;
    EA   = 1;
    ES   = 1;
}

void led_init()    //定時器0初始化函數(shù),用于led閃爍
{

    TH0  = (65536-50000)/256;
    TL0  = (65536-50000)%256;
    ET0  = 1;
    TR0  = 1;
}

void main()    //主函數(shù)
{
P1M1 = 0x00;    //設置P1口為推挽輸出模式
P1M0 = 0xff;
com_init();    //串口初始化
led_init();    //led閃爍定時器初始化


    while(1)       //死循環(huán),等待藍牙傳命令過來
    {
    switch(cmd)    //判斷收到的命令是干嘛的,其中 1 是前進 2是后退 3是右轉 4是左轉,0是停止,以后還可以擴展其他的功能
        {
        case 1:Forward();break;        //前進
        case 2:Backward();break;    //后退
        case 3:Right();break;        //右轉
        case 4:Left();break;        //左轉
        case 0:Stop();break;        //停止
        }
    }
}

程序寫完后在keil 里編譯一下,然后下載到單片機就OK了。

我的手機是安卓的,所以用藍牙連接我們的小坦克,通過藍牙給它發(fā)送 1、2、3、4 小坦克就會執(zhí)行相應的命令了

回復

使用道具 舉報

ID:58106 發(fā)表于 2016-1-11 08:00 | 顯示全部樓層
樓主V5  頂一個!
回復

使用道具 舉報

ID:103242 發(fā)表于 2016-1-14 18:54 | 顯示全部樓層
大哥····這是我的帖子啊····你搬過來也不寫轉載??
回復

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
ID:72781 發(fā)表于 2016-1-16 00:57 | 顯示全部樓層
mhy137701272 發(fā)表于 2016-1-14 18:54
大哥····這是我的帖子啊····你搬過來也不寫轉載??

可是明明你一個帖子都沒發(fā)過?你在那個論壇發(fā)的貼?
回復

使用道具 舉報

ID:102668 發(fā)表于 2016-1-16 04:06 | 顯示全部樓層
mhy137701272 發(fā)表于 2016-1-14 18:54
大哥····這是我的帖子啊····你搬過來也不寫轉載??

原來您就是作者啊,佩服 佩服,已經(jīng)注明了。
回復

使用道具 舉報

ID:103810 發(fā)表于 2016-1-19 19:35 | 顯示全部樓層
有視頻就好了
回復

使用道具 舉報

ID:130345 發(fā)表于 2017-8-31 10:33 | 顯示全部樓層
很強啊
回復

使用道具 舉報

ID:230223 發(fā)表于 2017-8-31 14:28 | 顯示全部樓層
很好        
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表