单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
跳转到指定楼层
楼主
wyhnb 发表于 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提供下载:
智能小车资料.rar (5.07 MB, 下载次数: 105)
手机APP工程.rar (9.36 MB, 下载次数: 100)
蓝牙模块资料.zip (4.26 MB, 下载次数: 72)


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

蓝牙APP

蓝牙APP.rar

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

评分

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

查看全部评分

回复

使用道具 举报

沙发
不懂装懂 发表于 2018-11-25 11:45 | 只看该作者
手机APP怎么安装啊 楼主
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

5#
 楼主| wyhnb 发表于 2018-11-30 13:16 | 只看该作者

装APP?
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

8#
 楼主| wyhnb 发表于 2018-12-3 09:57 | 只看该作者
ll19961225 发表于 2018-12-2 09:32
可不可以发邮箱呀

可以加我QQ
回复

使用道具 举报

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

资料都在这里了啊
回复

使用道具 举报

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

使用道具 举报

11#
 楼主| wyhnb 发表于 2018-12-6 09:05 | 只看该作者
MG_C 发表于 2018-12-5 19:54
楼主你好,可以QQ发一下给我吗

814098620
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

拓展名是什么?
回复

使用道具 举报

17#
 楼主| wyhnb 发表于 2018-12-12 09:28 | 只看该作者

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

21#
haijie 发表于 2019-1-11 09:20 | 只看该作者
可以发网盘吗?新人下载不了啊。可以的话发我邮箱 hhj1997430@126.com 非常感谢
回复

使用道具 举报

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

使用道具 举报

23#
zqbx123 发表于 2019-2-18 15:52 | 只看该作者
太全了 好资料  好好学习一下  谢谢
回复

使用道具 举报

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

使用道具 举报

25#
9940zwh 发表于 2019-3-15 23:39 | 只看该作者
谢谢分享
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

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