如何做一台自己的手机蓝牙遥控车

来源:本站
导读:目前正在解读《如何做一台自己的手机蓝牙遥控车》的相关信息,《如何做一台自己的手机蓝牙遥控车》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《如何做一台自己的手机蓝牙遥控车》的详细说明。
简介:最近很多人问我有关蓝牙遥控车的事情,就在这里统一写一个日志详细说说怎么做吧。采用模块搭建的方法比较简单。不费事儿~

材料清单:

普通遥控车一辆 30元 (遥控坏不坏的都行只要电机没问题)

蓝牙串口模块一个 25元 (淘宝有卖)

电烙铁一把 价格略,买一把够用好多年(焊锡、松香少量)

STC的单片机一个 4元 (推荐用个STC89C52RC,虽然大点)

安卓手机一台带蓝牙 价格略

L298N电机驱动模块 14元(淘宝有卖)

18650锂电池2节 15元(淘宝,最好连电池盒也一起买了。当然买14500电池更好,跟5号电池一样大,直接放在车子的电池盒。注意电压是3.7V的)

TTL下载线 15元(用来下载程序到单片机中,算是很常见的一个东西了,没有的话就淘宝吧)

电阻电容之类的若干 (主要是给单片机做最小系统,不想费劲的话就买个STC89C52RC的最小系统板10元)

导线若干

先上张完成图:

如何做一台自己的手机蓝牙遥控车

动力比较足,用电池压住后轮,不然打滑严重。

思路:

手机发送控制指令

经蓝牙发送至蓝牙串口模块

串口模块把数据通过单片机串口送入单片机

单片机处理数据,作出反应,是该前进还是后退

如何做一台自己的手机蓝牙遥控车

介绍下电机驱动模块

如何做一台自己的手机蓝牙遥控车

我们使用的是AB/CD两组直流电机驱动口。无视图上的步进电机。

在本次制作中AB口驱动后轮的电机,控制小车前后动作;

CD口驱动前轮方向电机,控制小车左右动作。

信号输入端口inA/inB/inC/inD,给一个高电平+5,就可以驱动相应的电机正反转

稍微介绍下STC89C52RC

如何做一台自己的手机蓝牙遥控车

P1.4接inA,P1.5接inB,P1.6接inC,P1.7接inD。单片机最小系统要么买个小板子,要么找STC官网的PDF看,这里就不贴了。

P3.0和P3.1作为下载口与蓝牙串口的通讯口。

单片机晶振使用11. 0592M的。

P3.2接LED正极,LED负极接地,这个LED的作用是判断单片机是否正常运行,在程序里设定LED一亮一灭,正常运行的话,LED会一亮一灭。

程序结构如下 :

如何做一台自己的手机蓝牙遥控车

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闪烁函数,由定时器T0产生中断,大约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 //串口中断函数,当蓝牙传命令过来的时候执行

{

RI = 0;

rxcode[k]=SBUF; //把收到的命令放到全局变量里面

k++;

if(k==1)

k=0;

}

void com_init() //串口初始化函数,波特率9600bps

{

TMOD = 0x21;

TH1 = 0xfd;

TL1 = 0xfd;

TR1 = 1;

REN = 1;

SM0 = 0;

SM1 = 1;

ES = 1;

EA = 1;

}

void led_init() //定时器0初始化函数,用于led闪烁

{

TH0 = (65536-50000)/256;

TL0 = (65536-50000)%256;

ET0 = 1;

TR0 = 1;

}

void main() //主函数

{

Stop();

com_init(); //串口初始化

led_init(); //led闪烁定时器初始化

while(1) //死循环,等待蓝牙传命令过来

{

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,准备把程序写入到单片机

+5接在单片机供电,gnd接地,RX,TX对应P3.0 P3.1

TTL下载器就是这个

如何做一台自己的手机蓝牙遥控车

如何做一台自己的手机蓝牙遥控车

选择好固件,串口号,点击下载,再给单片机上电

如果用最小系统板的话 大概是这个样子

如何做一台自己的手机蓝牙遥控车

如果没有错误的话会出现这个

Chinese:正在尝试与 MCU/单片机 握手连接 ...

MCU Type is: STC89C52RC

MCU Firmware Version: 4.3C

Chinese:MCU 固件版本号: 4.3C

Double speed / 双倍速: 12T/单倍速

振荡放大器增益: full gain

下次下载时 P1.0/P1.1 与下载无关

内部扩展AUX-RAM: 允许访问(强烈推荐)

下次下载用户应用程序时将数据Flash区擦除: NO

用户软件启动内部看门狗后: 复位关看门狗

ALE pin 仍为 ALE

内部时钟频率:11.049428M.

外部时钟频率:11.049428M.

Chinese:正在重新连接 ...

Current Baud is: / 当前波特率为: 19200 bps.

We are erasing MCU flash...

正在擦除应用程序区... ( 00:01 )

正在下载... ( 开始时间: 14:40:06 )

Program OK / 下载 OK

Verify OK / 校验 OK

erase times/擦除时间 : 00:01

program times/下载时间: 00:01

Encrypt OK/ 已加密

这样就可以了。把硬件都装上

如何做一台自己的手机蓝牙遥控车

最好在驱动模块的输出串个5欧姆的水泥电阻,不然动力太足。

如何做一台自己的手机蓝牙遥控车

这样就OK了。只要使用蓝牙串口发送1就可以前进,2就可以后退。3、4、5、6.安卓的程序需要的话可以喊我,这里传不上来。

大体上就是这样的思路。具体做的话,元件的安装、电路板的安放都需要根据小车的实际情况来。

提醒:《如何做一台自己的手机蓝牙遥控车》最后刷新时间 2024-03-14 01:14:41,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《如何做一台自己的手机蓝牙遥控车》该内容的真实性请自行鉴别。