找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 42494|回复: 69
打印 上一主题 下一主题
收起左侧

手机蓝牙控制智能小车:STM32+蓝牙模块+蓝牙APP源码与资料

  [复制链接]
跳转到指定楼层
楼主
ID:380690 发表于 2018-11-7 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
智能小车是买的,芯片是STM32F103ZET6
代码也有被我改过,画圈是可以调车速的,

蓝牙模块是买的,主要做透传,

蓝牙APP是自己写的,看程序只要接收到I,A,B,C,D就能行走,还是比较简单,

在网上找了一个连接蓝牙的方法,然后写四个按键,点击按键就发送相应的字母就OK了,最开始是实现的,只不过需要不断点击,连续发送才能一直行走,就想要按下让小车一直行走,想着让手机蓝牙在按下按键时候一直连续发送指令,貌似没办法实现,因为一直按下就像死循环,Android会检测到不允许死循环,后来改小车的代码,接收到前进指令单片机就死循环,一直前进,直到接收到停止指令,在手指抬起后发送一个停止指令就实现按下一直行走,还是需要转换一下思想!!!

智能小车的原理图和代码都贴出来了,蓝牙模块直接插上就可以用,手机APP源码和工程也贴出来了。

单片机源程序如下:
  1. #include "motor.h"
  2. #include "interface.h"
  3. #include "stm32f10x.h"

  4. //GPIO配置函数
  5. void MotorGPIO_Configuration(void)
  6. {               
  7.         GPIO_InitTypeDef GPIO_InitStructure;
  8.         GPIO_InitStructure.GPIO_Pin = FRONT_LEFT_F_PIN;
  9.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  10.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
  11.         GPIO_Init(FRONT_LEFT_F_GPIO, &GPIO_InitStructure);   
  12.         
  13.         GPIO_InitStructure.GPIO_Pin = FRONT_LEFT_B_PIN;        
  14.         GPIO_Init(FRONT_LEFT_B_GPIO, &GPIO_InitStructure);
  15.         
  16.         GPIO_InitStructure.GPIO_Pin = FRONT_RIGHT_F_PIN;        
  17.         GPIO_Init(FRONT_RIGHT_F_GPIO, &GPIO_InitStructure);
  18.         
  19.         GPIO_InitStructure.GPIO_Pin = FRONT_RIGHT_B_PIN;        
  20.         GPIO_Init(FRONT_RIGHT_B_GPIO, &GPIO_InitStructure);
  21.         
  22.         GPIO_InitStructure.GPIO_Pin = BEHIND_LEFT_F_PIN;        
  23.         GPIO_Init(BEHIND_LEFT_F_GPIO, &GPIO_InitStructure);  
  24.         
  25.         GPIO_InitStructure.GPIO_Pin = BEHIND_LEFT_B_PIN;        
  26.         GPIO_Init(BEHIND_LEFT_B_GPIO, &GPIO_InitStructure);  
  27.         
  28.         GPIO_InitStructure.GPIO_Pin = BEHIND_RIGHT_F_PIN;        
  29.         GPIO_Init(BEHIND_RIGHT_F_GPIO, &GPIO_InitStructure);  
  30.         
  31.         GPIO_InitStructure.GPIO_Pin = BEHIND_RIGHT_B_PIN;        
  32.         GPIO_Init(BEHIND_RIGHT_B_GPIO, &GPIO_InitStructure);  
  33.         
  34. }

  35. //根据占空比驱动电机转动
  36. void CarMove(void)
  37. {   
  38.         
  39.          BEHIND_RIGHT_EN;
  40.         
  41. /* //左前轮
  42.         if(front_left_speed_duty > 0)//向前
  43.         {
  44.                 if(speed_count < front_left_speed_duty)
  45.                 {
  46.                         FRONT_LEFT_GO;
  47.                 }else
  48.                 {
  49.                         FRONT_LEFT_STOP;
  50.                 }
  51.         }
  52.         else if(front_left_speed_duty < 0)//向后
  53.         {
  54.                 if(speed_count < (-1)*front_left_speed_duty)
  55.                 {
  56.                         FRONT_LEFT_BACK;
  57.                 }else
  58.                 {
  59.                         FRONT_LEFT_STOP;
  60.                 }
  61.         }
  62.         else                //停止
  63.         {
  64.                 FRONT_LEFT_STOP;
  65.         }*/
  66.         
  67.                 //右前轮
  68.         if(front_right_speed_duty > 0)//向前
  69.         {
  70.                 if(speed_count < front_right_speed_duty)
  71.                 {
  72.                         FRONT_RIGHT_GO;
  73.                 }else                //停止
  74.                 {
  75.                         FRONT_RIGHT_STOP;
  76.                 }
  77.         }
  78.         else if(front_right_speed_duty < 0)//向后
  79.         {
  80.                 if(speed_count < (-1)*front_right_speed_duty)
  81.                 {
  82.                         FRONT_RIGHT_BACK;
  83.                 }else                //停止
  84.                 {
  85.                         FRONT_RIGHT_STOP;
  86.                 }
  87.         }
  88.         else                //停止
  89.         {
  90.                 FRONT_RIGHT_STOP;
  91.         }
  92.         
  93.         //左后轮
  94.         if(behind_left_speed_duty > 0)//向前
  95.         {
  96.                 if(speed_count < behind_left_speed_duty)
  97.                 {
  98.                         BEHIND_LEFT_GO;
  99.                 }        else                //停止
  100.                 {
  101.                         BEHIND_LEFT_STOP;
  102.                 }
  103.         }
  104.         else if(behind_left_speed_duty < 0)//向后
  105.         {
  106.                 if(speed_count < (-1)*behind_left_speed_duty)
  107.                 {
  108.                         BEHIND_LEFT_BACK;
  109.                 }        else                //停止
  110.                 {
  111.                         BEHIND_LEFT_STOP;
  112.                 }
  113.         }
  114.         else                //停止
  115.         {
  116.                 BEHIND_LEFT_STOP;
  117.         }
  118.         
  119. /*                //右后轮
  120.         if(behind_right_speed_duty > 0)//向前
  121.         {
  122.                 if(speed_count < behind_right_speed_duty)
  123.                 {
  124.                         BEHIND_RIGHT_GO;
  125.                 }        else                //停止
  126.                 {
  127.                         BEHIND_RIGHT_STOP;
  128.                 }
  129.         }
  130.         else if(behind_right_speed_duty < 0)//向后
  131.         {
  132.                 if(speed_count < (-1)*behind_right_speed_duty)
  133.                 {
  134.                         BEHIND_RIGHT_BACK;
  135.                 }        else                //停止
  136.                 {
  137.                         BEHIND_RIGHT_STOP;
  138.                 }
  139.         }
  140.         else                //停止
  141.         {
  142.                 BEHIND_RIGHT_STOP;
  143.         }*/
  144. }

  145. //向前
  146. void CarGo(void)
  147. {
  148.         front_left_speed_duty=SPEED_DUTY;
  149.         front_right_speed_duty=SPEED_DUTY;
  150.         behind_left_speed_duty=SPEED_DUTY;
  151.         behind_right_speed_duty=SPEED_DUTY;
  152. }

  153. //后退
  154. void CarBack(void)
  155. {
  156.         front_left_speed_duty=-SPEED_DUTY;
  157.         front_right_speed_duty=-SPEED_DUTY;
  158.         behind_left_speed_duty=-SPEED_DUTY;
  159.         behind_right_speed_duty=-SPEED_DUTY;
  160. }

  161. //向左
  162. void CarLeft(void)
  163. {
  164.         front_left_speed_duty=SPEED_DUTY;
  165.         front_right_speed_duty=-SPEED_DUTY;
  166.         behind_left_speed_duty=SPEED_DUTY;//+10;//增加后轮驱动力
  167.         behind_right_speed_duty=-SPEED_DUTY;
  168. }

  169. //向右
  170. void CarRight(void)
  171. {
  172.         front_left_speed_duty=-SPEED_DUTY;
  173.         front_right_speed_duty=SPEED_DUTY;
  174.         behind_left_speed_duty=-SPEED_DUTY;
  175.         behind_right_speed_duty=SPEED_DUTY;//+10;//增加后轮驱动力
  176. }

  177. //停止
  178. void CarStop(void)
  179. {
  180.         front_left_speed_duty=0;
  181.         front_right_speed_duty=0;
  182.         behind_left_speed_duty=0;
  183.         behind_right_speed_duty=0;
  184. }

  185. void MotorInit(void)
  186. {
  187.         MotorGPIO_Configuration();
  188.         CarStop();
  189. }
复制代码


所有资料51hei提供下载:
智能小车资料.7z (4.94 MB, 下载次数: 767)
APP工程.7z (3.61 MB, 下载次数: 805)
蓝牙模块资料.zip (4.26 MB, 下载次数: 641)


评分

参与人数 2黑币 +130 收起 理由
indeed嘻嘻哈哈 + 30 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏42 分享淘帖 顶2 踩
回复

使用道具 举报

来自 2#
ID:380690 发表于 2018-12-17 12:36 | 只看该作者
本帖最后由 wyhnb 于 2018-12-17 13:06 编辑

蓝牙APP

蓝牙APP.rar

2.95 MB, 下载次数: 362, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:336990 发表于 2018-11-25 11:45 | 只看该作者
手机APP怎么安装啊 楼主
回复

使用道具 举报

地板
ID:434968 发表于 2018-11-28 14:45 | 只看该作者
怎么装啊
回复

使用道具 举报

5#
ID:380690 发表于 2018-11-30 13:16 | 只看该作者
不懂装懂 发表于 2018-11-25 11:45
手机APP怎么安装啊 楼主

手机APP直接下载到手机就可以安装啊!!!有问题?
回复

使用道具 举报

6#
ID:380690 发表于 2018-11-30 13:16 | 只看该作者

装APP?
回复

使用道具 举报

7#
ID:437503 发表于 2018-12-2 09:32 | 只看该作者
可不可以发邮箱呀
回复

使用道具 举报

8#
ID:89134 发表于 2018-12-3 08:33 | 只看该作者
STM32+蓝牙模块+蓝牙APP源码与资料
回复

使用道具 举报

9#
ID:380690 发表于 2018-12-3 09:57 | 只看该作者
ll19961225 发表于 2018-12-2 09:32
可不可以发邮箱呀

可以加我QQ
回复

使用道具 举报

10#
ID:380690 发表于 2018-12-3 09:58 | 只看该作者
cmxgx 发表于 2018-12-3 08:33
STM32+蓝牙模块+蓝牙APP源码与资料

资料都在这里了啊
回复

使用道具 举报

11#
ID:440361 发表于 2018-12-5 19:54 | 只看该作者
楼主你好,可以QQ发一下给我吗
回复

使用道具 举报

12#
ID:303722 发表于 2018-12-6 15:31 | 只看该作者
谢谢楼主,,,,,,,,,,,,
回复

使用道具 举报

13#
ID:441706 发表于 2018-12-7 16:28 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:166208 发表于 2018-12-9 11:54 | 只看该作者
不懂装懂 发表于 2018-11-25 11:45
手机APP怎么安装啊 楼主

看看我的帖子  他这个是源程序 使用 andorid studio写的   需要打包成apk文件
回复

使用道具 举报

15#
ID:380690 发表于 2018-12-11 10:04 | 只看该作者
里面有生成的APK,仔细看!
回复

使用道具 举报

16#
ID:437105 发表于 2018-12-11 20:52 | 只看该作者
wyhnb 发表于 2018-12-11 10:04
里面有生成的APK,仔细看!

拓展名是什么?
回复

使用道具 举报

17#
ID:380690 发表于 2018-12-12 09:28 | 只看该作者

手机软件的后缀就是.apk
回复

使用道具 举报

18#
ID:89134 发表于 2018-12-17 23:16 | 只看该作者
看看是用的什么蓝牙模块 学习了
回复

使用道具 举报

19#
ID:58625 发表于 2019-1-9 11:05 | 只看该作者
学习学习
回复

使用道具 举报

20#
ID:477028 发表于 2019-2-16 08:27 | 只看该作者
感觉很好玩的样子
回复

使用道具 举报

21#
ID:146874 发表于 2019-3-4 09:27 | 只看该作者
感谢分享
回复

使用道具 举报

22#
ID:491774 发表于 2019-3-15 23:39 | 只看该作者
谢谢分享
回复

使用道具 举报

23#
ID:493630 发表于 2019-3-18 23:00 | 只看该作者
研究研究
回复

使用道具 举报

24#
ID:501638 发表于 2019-3-31 11:57 | 只看该作者
值得学习
回复

使用道具 举报

25#
ID:269090 发表于 2019-4-16 09:56 | 只看该作者
有用到小马达吗?
回复

使用道具 举报

26#
ID:380690 发表于 2019-4-16 11:28 | 只看该作者
ghq 发表于 2019-4-16 09:56
有用到小马达吗?

智能小车是买的,轮子就是马达啊
回复

使用道具 举报

27#
ID:508379 发表于 2019-4-28 09:56 | 只看该作者
学习学习
回复

使用道具 举报

28#
ID:449395 发表于 2019-5-3 19:30 | 只看该作者
, 我手机装不了
回复

使用道具 举报

29#
ID:449395 发表于 2019-5-3 19:32 | 只看该作者
不懂装懂 发表于 2018-11-25 11:45
手机APP怎么安装啊 楼主

把apk文件发到手机里,安装
回复

使用道具 举报

30#
ID:528890 发表于 2019-5-7 11:04 | 只看该作者
真强大,大神厉害
回复

使用道具 举报

31#
ID:229106 发表于 2019-5-7 19:02 | 只看该作者
我现在也需要编写一个蓝牙,实现手机与51单片机的通信。但是我不知道怎么将软硬件结合起来,只会用别人的蓝牙软件实现通信,请问在编写蓝牙怎么通过蓝牙模块hc05和51单片机进行通信啊,拜托,学长一定要看见啊
回复

使用道具 举报

32#
ID:380690 发表于 2019-5-9 13:04 | 只看该作者
一笑泯恩仇啊 发表于 2019-5-7 19:02
我现在也需要编写一个蓝牙,实现手机与51单片机的通信。但是我不知道怎么将软硬件结合起来,只会用别人的蓝 ...

蓝牙就只是透传功能,蓝牙模块直接像串口通信一样连接单片机,然后手机端网上都有例程,照抄一个就行,然后把想要发送到数据修改一下
回复

使用道具 举报

33#
ID:243076 发表于 2019-5-10 12:03 | 只看该作者
楼主请教哈 你的蓝牙APP是用什么软件编写编译的
回复

使用道具 举报

34#
ID:243076 发表于 2019-5-10 12:05 | 只看该作者
蓝牙APP是用什么软件编写的
回复

使用道具 举报

35#
ID:380690 发表于 2019-5-15 14:09 | 只看该作者
tw081531 发表于 2019-5-10 12:03
楼主请教哈 你的蓝牙APP是用什么软件编写编译的

Android stdio
回复

使用道具 举报

36#
ID:542229 发表于 2019-5-19 18:19 | 只看该作者
感谢分享
回复

使用道具 举报

37#
ID:546866 发表于 2019-5-25 12:16 | 只看该作者
好东西
回复

使用道具 举报

38#
ID:461278 发表于 2019-7-22 11:05 | 只看该作者
程序在哪找呢
回复

使用道具 举报

39#
ID:425175 发表于 2019-8-4 13:49 来自手机 | 只看该作者
wyhnb 发表于 2018-12-17 12:36
蓝牙APP

谢谢大佬分享
回复

使用道具 举报

40#
ID:484435 发表于 2019-8-5 11:41 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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