聚丰项目 > 基于stm32的真人版坦克大战

基于stm32的真人版坦克大战

还记得小霸王上面的坦克大战嘛?就像儿时玩的小霸王里的坦克大战一样,本项目的作品”基于stm32的真人版坦克大战”,可以通过手机蓝牙遥控坦克自由移动,发射炮弹,坦克具有发射炮弹(射速:每秒几发,射程:十几米)、血量检测(受到炮弹攻击会扣血)、捡取BUFF(炮弹升级(攻击力翻倍)、重甲(防御升级、速度减半)、圣盾(暂时无敌))等功能。让你重温经典,体验真枪实弹对战,水弹碎片四溅的对战乐趣!

寂寞的only 寂寞的only

18 喜欢这个项目
团队介绍

寂寞的only 寂寞的only

团队成员

张易 创客

项目信息

项目阶段: 项目完成

开发平台: STM32

项目应用: 个人电子产品

标签: STM32蓝牙坦克大战
项目简介
还记得小霸王上面的坦克大战嘛?就像儿时玩的小霸王里的坦克大战一样,本项目的作品”基于stm32的真人版坦克大战”,可以通过手机蓝牙遥控坦克自由移动,发射炮弹,坦克具有发射炮弹(射速:每秒几发,射程:十几米)、血量检测(受到炮弹攻击会扣血)、捡取BUFF(炮弹升级(攻击力翻倍)、重甲(防御升级、速度减半)、圣盾(暂时无敌))等功能。让你重温经典,体验真枪实弹对战,水弹碎片四溅的对战乐趣!
所用器件
STM32F103C8T6 1
串口蓝牙 1
加速度传感器 1
蜂鸣器 1
L298N恒流驱动器 1
舵机 1
波箱水弹枪 1
电源模块 1
RFID射频检测模块 1
硬件说明

真人版坦克大战,真的可以发出射速极高的水弹哦(每秒几发),不要近距离直对人射击哦,虽然是水弹,但打到人还真有点疼=_=

image007.jpg

image009.jpg

就像儿时玩的小霸王里的坦克大战一样,可以通过手机蓝牙遥控坦克自由移动,发射炮弹,坦克具有发射炮弹(射速:每秒几发,射程:十几米)、血量检测(受到炮弹攻击会扣血)、捡取BUFF(炮弹升级(攻击力翻倍)、重甲(防御升级、速度减半)、圣盾(暂时无敌))等功能。总结一下,如下图:


image011.jpg

image012.jpg

然后就可以把它做出来啦,坦克长这个样子,感觉更像一个炮车啊,那个手枪就是改装成的炮台了,本来为了减小空间应该把外壳拆掉的,但这玩意儿确实有点贵,占了整个成本的一大部分,想着做完了还能拿下来玩就干脆不拆了233333

image013.jpg

硬件部分使用了stm32f103c8t6作为主控芯片,主要构架如下:

image014.jpg

代码的主函数执行如下:

image016.jpg

使用硬件资源设计如下:

image018.png

-----------------------------------------------------------------------------------------------------------------------------------------------------

各模块说明:

首先是电机模块,使用某宝很常见的减速电机即可,然后使用大家都爱用的L298N作为恒流驱动,简单又便宜,使用PWM调速即可

image020.jpg


然后是炮台模块,玩电子的可以对于波箱不是很熟悉,gif穿不上,百度一下可以获得其原理动图咯,为了达到电控的效果,拆开波箱的供电回路加上继电器,然后固定再云台上,用舵机控制就行啦,这样就可以自由的控制开火和旋转了。

image022.jpg


接下来是伤害检测模块,lz之前一直在想如何去做打击检测,因为红外线、激光检测什么的都弱爆了,一点真实的打击感都没有,哪有真枪实弹的砰砰砰来的爽快,最终lz从震动检测、加速度计、压力传感器中选择了较为稳定的加速度计,用亚克力板子做出了一个装甲雏形,把MPU6050固定再亚克力板子上,稳定实现了打击检测,不得不说亚克力大法好啊,虽然时间有限,做的丑了点,但毕竟能快速实现不是?如下图,当然为了美观,可以设计造型,四周都围上,反正原理都一样,这里材料有限,就做了一面

image024.jpg

嗯,最后怎么能少的了吃BUFF呢?想当年玩坦克大战,lz一路吃星星升级成双连发小钢炮,感觉真是爽炸了。所以我们的真人版坦克大战也必须得能吃BUFF,嗯,就可以使用RFID射频检测来做,就是那种食堂饭卡,把卡片放在地上,坦克下安装射频检测模块,就可以实现这个功能啦

image026.jpg

 

 

 


软件说明

软件部分包含了APP开发和MCU编程,首先上整体构架图

image028.jpg

毕竟是遥控坦克,上位机和下位机的通信通过蓝牙来进行,那么通信协议是必须要设定好的,没错,就是给上位机和下位机设定好血量、BUFF信息,控制信息的交互,毕竟接口什么的得首先定好嘛。

image029.jpg

嗯,然后就是APP的开发了,使用eclipse,用java敲代码就行了,主要是实现蓝牙通信+信息显示+按键控制等功能

image031.jpg

然后就是MCU编程咯,相信做电子的都很熟悉了,keil下敲c代码,主要是各种模块,如PWM,定时器,串口通信,各种电机和传感器的综合使用了,感觉比较复杂的就是各种中断的优先级和时序的问题了,毕竟是单片机嘛,为了节约成本,引脚比较少(48),想用什么外设都得省着点用=_=#

image033.jpg

image034.png

image035.jpg


 

嗯然后这里放几张APP开发的图片吧,第一张是eclipse下的开发时的截图,第二张时刚打开APP时和坦克蓝牙连接的选项,第三张是进入操作界面,对抗开始时的操作界面,左上方是血条,实时显示坦克的血量,血条下面是装备槽,显示捡到的BUFF的信息,右上角是调试信息,可以忽略,左下角四个箭头用来控制坦克底盘的前后左右移动,右下角控制炮台的云台,左右控制炮台的旋转,上下可以上炮台快速复位,对于喜欢秀操作的,完全可以移动中转动瞄准射击咯,中间的火焰标志是"开火"按钮,支持长按连射,射速有点快的。

image036.png

image038.png


image040.jpg




演示效果

演示条件有限,炮弹射速比较快,可以多看几遍咯,见谅。在真枪实弹对战、水弹碎片飞溅的环境下重温一把坦克大战的感觉是不是很有趣?

上位机APP

下位机坦克:

image044.jpg


评论区(2 )
  • rarara: 好厉害 !!

    回复

    • 一步一步123: 看上去很牛

      回复