欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
迷你藍牙小坦克
[打印本頁]
作者:
51hei社區(qū)
時間:
2016-1-11 03:16
標題:
迷你藍牙小坦克
一個很精致的小坦克(轉自電子牛人小七)
炮塔是可以旋轉的哦
前面還有小機槍:噠噠噠。。。一掃一大片,嘿嘿。還有個小鋼鏟,估計開坦克的那家伙開到哪,就在哪兒種菜。
除了鏟子,還有很多工具,做工都很精致
蓋子還可以打開哦
上面的圖看不出有多大?那跟打火機做個對比吧
坦克是履帶帶動的,最左邊的那個是主動輪,是馬達驅動的,最右邊的是從動輪,中間的那些小輪應該叫承重輪吧,不是很清楚這些叫法。是不是覺得這么小了還做得那么精致很難得?更難得的是:這些輪子全部都可以轉動
履帶細節(jié)
拆開炮塔,里面有個黑色的塑料罩子
拿開它
拆開了
看懂了一堆三極管組成的H橋,用于驅動小電機的
好古董的電池。。。不知道這個小坦克是不是也是2002年產的
動力來源,兩個小電機,分別驅動左邊和右邊的主動輪,帶動履帶來讓坦克行走。
當兩邊都正轉的時候,坦克就前進
當左邊正轉,右邊反轉時,坦克就原地右轉
當左邊反轉,右邊正轉時,坦克就原地左轉
當兩邊都反轉的時候,坦克就后退
把所有的電路都拆下來,準備改造它
由于驅動電機需要用到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閃爍函數,由定時器T0產生中斷,大約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 //串口中斷函數,當藍牙傳命令過來的時候執(zhí)行
{
RI = 0;
cmd = SBUF; //把收到的命令放到全局變量里面
}
void com_init() //串口初始化函數,波特率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初始化函數,用于led閃爍
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
ET0 = 1;
TR0 = 1;
}
void main() //主函數
{
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í)行相應的命令了
作者:
changxt
時間:
2016-1-11 08:00
樓主V5 頂一個!
作者:
mhy137701272
時間:
2016-1-14 18:54
大哥····這是我的帖子啊····你搬過來也不寫轉載??
作者:
暗光
時間:
2016-1-16 00:57
mhy137701272 發(fā)表于 2016-1-14 18:54
大哥····這是我的帖子啊····你搬過來也不寫轉載??
可是明明你一個帖子都沒發(fā)過啊?你在那個論壇發(fā)的貼?
作者:
51hei社區(qū)
時間:
2016-1-16 04:06
mhy137701272 發(fā)表于 2016-1-14 18:54
大哥····這是我的帖子啊····你搬過來也不寫轉載??
原來您就是作者啊,佩服 佩服,已經注明了。
作者:
ginny
時間:
2016-1-19 19:35
有視頻就好了
作者:
持勤補拙
時間:
2017-8-31 10:33
很強啊
作者:
yuyous
時間:
2017-8-31 14:28
很好
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1