极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6036|回复: 2

桌面履带蓝牙4.0小车

[复制链接]
发表于 2017-10-3 22:19:30 | 显示全部楼层 |阅读模式
在写这篇帖子之前,先感谢前段时间,在论坛里,为我耐心解答的大神朋友们,无论我问出什么奇葩的问题,都能为我耐心解答,真心感谢你们。
【注】转载请声明出处和作者,尊重个人劳动成果,谢谢。
蓝牙4.0小车说明
20171003-XHS
file:///C:\temp\ksohtml\wpsA583.tmp.png[size=12.0000pt]
简介[size=12.0000pt]蓝牙小车使用了玩具坦克车的底盘,由两个614空心杯电机驱动。整车使用一块3.7V 110mAh锂电池,满电续航约10分钟。主芯片为ATmega328P-AU,直流电机驱动为L9110S,蓝牙4.0模块为RF-BM-S02I芯片CC2540,直接由安卓APP遥控,不带调速。
一、底盘[size=12.0000pt]常见的蓝牙小车多使用香蕉电机提供动力,我主要想实现蓝牙控制,直接选择了成品玩具拆机。逛遍X宝,最终选择了全X宝第二小的模型坦克,感觉最小的那个颜值不够,地方小了,也不太方便放置DIY电路板。特别是这精致的履带深深的吸引了我,果断剁手,确实是没有找到比这更加省事的方法了。网上的空心杯电机减速箱虽然有一堆,但是结构和尺寸都不太合适。

[size=12.0000pt]
file:///C:\temp\ksohtml\wpsA584.tmp.png
[size=12.0000pt]拿到这款坦克的时候,被强大的中国制造震惊到。从林虎式坦克的细节都表现得很好,反复的抚摸过后,充电跑起。这家伙算是比较灵活的,放在地上看起来比较慢,但是放在桌面上,速度就比较快了。这很符合桌面小车的定位,并且是高逼格的履带小车额。OK 掀起她精致的外衣,我们一起看个究竟。下面的内容不可描述,大概就两个614空心杯电机二级减速驱动履带。我的天!居然还有高端的涡轮减速箱,真是减速又防滑。炮台是360°的,由一个更小的空心杯电机四级减速驱动。当然,这样的玩具一定有一个黑色的小喇叭模拟引擎的声音,这声音就尬了!还是默默的拆下来吧。原厂的电路板功能牛逼,但是做工确实和价格相符,手工焊接的痕迹很明显。拆了!拆了!剩下的就是非常完美的桌面小车履带总成了,不过电池确实比较小,110mAh! 罢了!罢了!桌面跑跑应该是够了。
二、电机驱动
[size=12.0000pt]完成这个桌面坦克之前,我也是用香蕉电机、L298N模块、Arduino Nano 和蓝牙4.0模块全部走通一次。L298N非常便宜好用,可以同时驱动两个直流有刷电机。

file:///C:\temp\ksohtml\wpsA594.tmp.png[size=12.0000pt]
直流电机
旋转方式
IN1
IN2
IN3
IN4
PWM调速
使能A
使能B
M1
正转
/
/
/
反转
/
/
/
停止
/
/
/
M2
正转
/
/
/
反转
/
/
/
停止
/
/
/
[size=12.0000pt]我没有使用PWM调速,只是控制电机的转向。这个模块对于我的小车来说就太大了,我仔细看了原厂板子。基础太差,不知道它是怎么实现的,可能直接三极管驱动的,但是没有看到怎么实现换向。为了满足体积的要求,就在网上找了一个贴片的驱动芯片L9110S


file:///C:\temp\ksohtml\wpsA595.tmp.jpg
file:///C:\temp\ksohtml\wpsA596.tmp.jpg[size=12.0000pt]
[size=12.0000pt]原理和[size=12.0000pt]L298N相似,少了使能调速,不过我也用不上。IAIB接口高低不同电平就可以控制电机的正反转了。
三、主芯片
[size=12.0000pt]因为只会Arduino,就只好抄了一块Arduino mini的板子。程序的所有定义,也是根据Arduino mini来的。放弃了原来的三脚晶振,换了16MHz的四脚无源晶振。其他的都一样,采用了MIC5219-5.0BM5为主控芯片提供5V稳压。
[size=12.0000pt]



file:///C:\temp\ksohtml\wpsA5A7.tmp.png
四、原理图
[size=12.0000pt]我用AD14画原理图,画原理图的时候就是把L9110S这个驱动芯片给加进去了,还有为了给蓝牙提供3.3V稳压,使用了MIC5219-3.3BM5这个芯片。
file:///C:\temp\ksohtml\wpsA5A8.tmp.jpg

[size=12.0000pt]考虑到我的小板子不需要那么多的接口,就只留下了[size=12.0000pt]ICSPUART这两个必须的口子。ICSP是用来给Arduino烧写bootloaderUART是用来上传程序和蓝牙通信。
五、PCB设计
[size=12.0000pt]PCB的设计就必须要考虑车体的大小了,我参照原厂的设计画了个同样大的板子。原厂的设计是有走飞线的,不过为了好看,我把所有的接点都放置在了一侧,而开关的位置又必须在中间。对于一个新手来说,这就比较为难了。我的电源线穿过了整个电路板。按照原设计打了安装孔,还为我的蓝牙天线贴心的打上了过线槽。用CAD把原理图都画好了,结果我的AD14不能导入CAD文件,这就比较艰难了,只好一点点手绘PCB机械层。
[size=12.0000pt]
file:///C:\temp\ksohtml\wpsA5A9.tmp.jpgfile:///C:\temp\ksohtml\wpsA5AA.tmp.jpgfile:///C:\temp\ksohtml\wpsA5BB.tmp.jpg[size=12.0000pt]
[size=12.0000pt]
[size=12.0000pt]画板子的时候没什么经验,板子扑铜了,居然有的地方GND死铜,不过后来都修复了。
六、蓝牙4.0模块
[size=12.0000pt]以前都是使用HC-05的蓝牙模块,效果也很正常,连上就能用。直到有人推荐我蓝牙4.0功耗更低,我想确实应该升级一下自己的蓝牙了。都21世纪了,蓝牙4.0更有逼格,关键4.02.0一个价。当!当!当!这就蓝牙4.0模块RF-BM-S02I,采用CC2540主芯片。当然还有个原因,HC-05模块太大了,PCB背面没有这么大的空间,而RF-BM-S02I可以直接贴在背面。这东西可以外置天线,确实就解决了我这小空间,信号不好的问题。


file:///C:\temp\ksohtml\wpsA5BC.tmp.pngfile:///C:\temp\ksohtml\wpsA5BD.tmp.png
[size=12.0000pt]使用贴片[size=12.0000pt]RF-BM-S02I模块的串口功能,只需要使用7个接口,如下。
GND
——
GND
VCC
——
3.3V
P2.1
——
STATE
P2.0
——
EN
P0.5
——
BRTS
P0.3
——
TX
P0.2
——
RX
[size=12.0000pt]注意蓝牙3.3V供电,串口模式下ENBRTS接地。
七、购买元件
元器件说明
Serial number
Comment
Designator
Quantity
Value
Footprint
Useage
1
Cap
C5, C6
2
22pF
0603

2
Cap
C7
1
10uF
0603

3
Cap Pol1
C11, C13
2
10uF
1206

4
Res
R1, R2, R3, R4
4
1K
0603

5
Cap
C1, C2, C3, C4, C8, C10
6
0.1uF
0603

6
Cap
C9, C12
2
0.01uF
0603

7
ATMEGA328AU
U2
1

TQFP-32
arduino主芯片
8
BLUETOOTH4.0
U4
1

BLUETOOTH4.0
蓝牙4.0模块
9
ICSP-UART
ICSP-UART
1

2X04
ICSP-UART
10
L9110S
U1, U3
2

SOP-8
电机驱动
11
LED
D1,D2, D3
3

0603
显示灯
12
MIC5219-3.3BM5
U5
1

SOT23-5
3.3V稳压输出 蓝牙供电
13
MIC5219-5.0BM5
U6
1

SOT23-5
5.0V稳压输出 主芯片供电
14
SW
SW1
1

SW
开关
15
X 3225
X 1
1

X 3225
晶振
[size=12.0000pt]
[size=12.0000pt]当然除了这些,还要买一个玩具坦克,比如丛林虎式坦克。
八、烧写程序
[size=12.0000pt]PCB打样,采购元器件。等这些快递都到了,就可以打开焊台,按照原理图把芯片一个个焊到PCB上面。干完这些,把板子洗洗干净,就可以给板子烧写程序了。
[size=12.0000pt]首先要给Arduino 烧写bootloader。为了使用Arduino Arduino烧写bootloader这一高级的功能,我看了好几个帖子都只是看得半懂。跟着实验了好多次都不行,一晚上就过去了,还是无法烧录。第二天才发现晶振焊错了!跟着示例把线连起来,一步步走就可以了。每个Arduino 板子的接口定义都略有不同,我用Arduino Nano给我的空板烧写引导程序。

[size=12.0000pt] [size=12.0000pt]这是Arduino Nano 上的ISP接口
[size=12.0000pt]
[size=12.0000pt]这是蓝牙小车上的接口
烧写bootloader引脚连接
Arduino Nano

待烧写PCB
MISO
————
MISO
VTG
————
5V
SCK
————
SCK
MOSI
————
MOSI
D10
————
RST
GND
————
GND
[size=12.0000pt]用杜邦线把对应的接口连接起来就可以愉快的烧写Bootloader了。接下来正常使用UART口就可以给蓝牙小车下载程序了。程序很简单,打开串口,根据读入的数据采用switch()判断。
[size=12.0000pt]void loop()
[size=12.0000pt]{
[size=12.0000pt]    if(Serial.available())
[size=12.0000pt]    {
[size=12.0000pt]      incomingByte = Serial.read();
[size=12.0000pt]      switch(incomingByte)
[size=12.0000pt]      {
[size=12.0000pt]        case 0x05 :
[size=12.0000pt]          {turnLeft( );  break; }           //左转
[size=12.0000pt]        case 0x04:
[size=12.0000pt]          {forward( );   break;}          //前进
[size=12.0000pt]        case 0x06:
[size=12.0000pt]          {turnRight( );   break;}         //右转
[size=12.0000pt]        case 0x08:
[size=12.0000pt]          {_stop();   break;}            //停止
[size=12.0000pt]        case 0x07:
[size=12.0000pt]          {back( );   break;}            //后退
[size=12.0000pt]      }
[size=12.0000pt]    }   
[size=12.0000pt]}
九、安卓APP
[size=12.0000pt]安卓APP使用“易安卓”这款软件编写,集成了按钮、重力、语音三种控制方式。语音控制使用了讯飞语音,需要联网才能使用,这就比较尴尬了。
file:///C:\temp\ksohtml\wpsA5CF.tmp.png

[size=12.0000pt]就蓝牙程序的编写来说,蓝牙[size=12.0000pt]4.0确实比蓝牙2.0复杂了一些。大概是蓝牙4.0的功能更多,需要设置的项目更多了。另有APP使用说明,在此就不赘述了。


puppy.PDF

229.87 KB, 下载次数: 9

原理图

回复

使用道具 举报

发表于 2017-10-3 22:37:47 | 显示全部楼层
二战的德国虎式坦克,外形超赞
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-6 09:49:23 | 显示全部楼层
wing 发表于 2017-10-3 22:37
二战的德国虎式坦克,外形超赞

可惜电路板不太合适,盖不上盖了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-7-4 01:29 , Processed in 0.052027 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表