1.基于51单片机的蓝牙手机遥控小车

第一节  基于51单片机控制的蓝牙遥控小车

51控制的蓝牙遥控小车是楼主大一刚开始接触单片机时DIY的项目,时间大概是2016年的6月,现在已经是19年的5月底,借毕业前有闲时间写一下之前自己做过得种种东西。

51单片机是大学生能够接触到的最简单的单片机之一,之二是arduino,虽说简单,但是对于外行人来说,这些很高大上,即使对即将成为内行人的你来说,也很高大上,因为你没有动手去研究它,鸡汤到此为止,接下来介绍一下当年做51遥控车的经历。

51单片机虽然诞生很多年,但是仍然很方便大家学习。一般人的学习步骤都是先买一些高大上的开发板,书等等东西,然后两周之后彻底远离单片机,大学四年从不再碰。我的学习步骤不太一样,之前在舍友手里买过一块比较简单的开发板,资料齐备,关键是得有视频教程,因为从一个啥也不懂的小白,到一个入门的单片机选手,看视频是一个必不可少的过程,当然看书也可以,但是对这个阶段的玩家来说看书太慢,不容易懂,需要把握好自己的学习方式。看视频也不能单独的光看视频,要边看边实践,照抄老师的程序,他怎么做我就怎么做,这样度过了最开始从一点都不懂都稍微懂点的阶段,这个阶段是最容易让人放弃的。单片机这东西,一般你放弃了就再也拾不起来了。

附图:史上最廉价的51遥控车,加上充电器两节18650,当时价格是79元左右(16年),自动忽略左下角的废元件

第一部分:单独介绍51小车需要的各个模块(因为时间太久了所以没有图片):

51核心板经过原始的技术积累之后,需要进行实际操作了,小车的电路不太复杂,不需要开发板那么多功能,51 电路最简单只需要一个芯片,一个晶振,两个22pf的晶振供电就可以运行,51小车对51单片机的要求就是单片机能够运行跑程序,能够连接蓝牙和驱动,因此除了上述三种期间还需要洞洞板、单排针或双排针。原理图如下

 

蓝牙模块:

电路连接:蓝牙模块就是相当于串口线,蓝牙在51遥控车上只需要三根线,即gnd,vcc,tx,其中tx接到51的rx即P3.0引脚

注意事项:蓝牙模块具有固定的波特率,可以设置成主模块或从模块(主模块是可以主动连接其他蓝牙模块的蓝牙模块),设置方式是将蓝牙模块连接到USB转TTL上,注意TX和RX反接,淘宝店可见设置方式,注意进入AT模式,仔细阅读手册,既可以设置蓝牙名字,也可以设置密码,主从角色等等

 

L298N模块:

     两路电机驱动模块,左右两侧的接线帽各接电机,中间的四根插针是控制线,左边两个控制左边电机(电平颠倒后电机反转),刚买来的带有两个接线帽,每个接线帽接有两个插针,一个是使能端,一个是5V,3P的接线帽中间是接GND,左侧是接高电源输入(最高可能12V),右侧是5V输出,所以这个模块可以当5V电源用(上面有标号,记得是这样的)

电机车轮模块、电源:

电机配车轮,一定要有减速器,黄色的那种;电源需要两节18650电池就行

第二部分:程序原理

  1. 手机端

            应用宝搜索APP:蓝牙遥控小车,界面如图,不用必须和我一样的APP

             

             这个软件利用的是蓝牙,不需要去搞懂它的原理,只要会用就行,按下某个键它就会将对应的数字发送到安装于单片机端的蓝牙模块,蓝牙模块再将其发送到单片机上的蓝牙模块

  1. 单片机端

         单片机程序需要进行设置,具体寄存器啥的怎么用去查,忘了一些不怎么用,注意波特率和晶振是对应的,4800或者9600,注意信号线不要连接错,硬件错了软件连接再好也没有用,

          初始化设置:

SCON=0x50;

PCON=0x00;

TMOD=0x20;

EA=1;

ES=1;

TL1=0xfd;

TH1=0xfd;

TR1=1;

执行语句:

void serial() interrupt 4

{

while(1)

{ ES=0;

RI=0;

buf=SBUF;

switch(buf)

{

case 0x31: P1=0xfe;FM=1;Car_Run(1);break;

case 0x32: P1=0xfd;FM=1;Car_Run(0);break;

case 0x33: P1=0xfb;FM=0;Car_Run(2);break;

case 0x34: P1=0xf7;FM=1;Car_Run(1);Car_Run(4);break;

case 0x35: P1=0xef;FM=1;Car_Run(1);Car_Run(3);break;

}

ES=1;//´®¿ÚÖжÏ

}

 

}

 

几个case的情况是按下不同按键发过来的代码,我的分别是0x31,0x32.....不同的APP不一样可以查使用说明,或者去自己使用串口助手通过USB转ttl接收蓝牙模块的信号,然后看发过来的是啥;几个Car_Run函数是我自己写的控制小车前进后退的程序

 

在中断里面接收并执行,串口中断的原理不懂去查,大概意思是执行main函数时来了串口信号,于是停止执行主函数,然后去执行中断函数里面的函数。

附上程序工程:https://download.csdn.net/download/qq_36071362/11209730

  • 18
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
最近用51单片机了一个最简单的蓝牙遥控智能小车,基本上榨干了51单片机的资源,用了定时器T1作为波特率发送器编串口打印程序,接收串口蓝牙接收的信息产生中断,并且了一个串口打印函数send()作为单片机操作响应返回给蓝牙发送端手机。定时器T0作为PWM发生使用,目的是作为舵机sg90控制信号,当时做一个蓝牙自怕用到,虽然小车没搭建舵机,但是可以方便扩展,也方便买家学习舵机PWM控制技术。 小车全身照如下: 全部零部件都是购买的配件:按照实物图购买响应的模块组装成小车,L298N,电源模块,电池夹和18650电池两个,电源变压器、51单片机最小系统板、HC05串口蓝牙模块、小车底座 单片机最小系统板彩图:某宝有卖很便宜 单片机最小系统板原理图: 小车是用安卓手机蓝牙调试助手用指令发送的形式来控制的,所以说是最简单的蓝牙遥控小车,呵呵。不过加上舵机和机械手和操控摇杆或者是手机控制app,就变得高端了,敬请期待。这个版本是免费的,但是功能还是很齐全和强大的,代码也得通俗易懂,不拖泥带水。 下面是源码截图:(新鲜出炉) 手机app遥控效果如下:(买家注意了有车子返回响应的回复的) 感兴趣的买家可以找我私人定制功能之类的也是没有问题的。这款小车大概就这个情况了,敬请期待我更好的作品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值