0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第14章-蓝牙遥控小车 蓝牙串口通讯讲解蓝牙APP遥控小车 蓝牙串口通讯讲解

dfhjgfg 来源:dfhjgfg 作者:dfhjgfg 2024-08-21 16:24 次阅读

功能介绍放开头, 使用便捷无需愁

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。

**V3.3.0-STM32智能小车 **

**视频: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

**V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。 **

本文讲解手机蓝牙如何遥控小车,如何编写串口通信指令

第14章-手机遥控功能

我们要实现蓝牙遥控功能,蓝牙遥控功能要使用:1.单片机的串口、2.蓝牙通信模块

所以我们先调试好:单片机的串口->蓝牙模块->接到一起联调
在这里插入图片描述

14.1-电脑控制小车

完成功能:电脑连接单片机串口三 控制小车前进后退

先看原理图

通过原理图可以看出这是使用的串口3 在使用的时候注意把跳线帽,跳线到蓝牙通信位置
在这里插入图片描述
打开初始化软件
在这里插入图片描述
在这里插入图片描述

生成代码

在main 定义全局变量

uint8_t g_ucUsart3ReceiveData;  //保存串口三接收的数据

开启串口三中断接收
在这里插入图片描述

HAL_UART_Receive_IT(&huart3,&g_ucUsart3ReceiveData,1);  //串口三接收数据

在****usart.c 重新实现串口中断回调函数**
**在这里插入图片描述
然后我们可以在中断回调函数里面中编写遥控命令控制逻辑了
在这里插入图片描述

//串口接收回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if( huart == &huart3)//判断中断源
{
if(g_ucUsart3ReceiveData == 'A') motorPidSetSpeed(1,1);//前运动
if(g_ucUsart3ReceiveData == 'B') motorPidSetSpeed(-1,-1);//后运动
if(g_ucUsart3ReceiveData == 'C') motorPidSetSpeed(0,0);//停止
if(g_ucUsart3ReceiveData == 'D') motorPidSetSpeed(1,2);//右边运动
if(g_ucUsart3ReceiveData == 'E') motorPidSetSpeed(2,1);//左边运动
if(g_ucUsart3ReceiveData == 'F') motorPidSpeedUp();//加速
if(g_ucUsart3ReceiveData == 'G') motorPidSpeedCut();//减速

HAL_UART_Receive_IT( &huart3, &g_ucUsart3ReceiveData, 1);//继续进行中断接收
}
}
​

在usart.c中声明外部变量

extern uint8_t g_ucUsart3ReceiveData;  //保存串口三接收的数据

然后我们更改一下 主函数内容,把PID红外循迹代码注释掉,然后我们增加串口三的输出,以便我们后面观察数据。
串口不定长输出
我们把转速等信息都可以显示在OLED上,那么如何通过串口输出那?
在这里插入图片描述

sprintf((char *)Usart3String,"V1:%.2fV2:%.2frn",Motor1Speed,Motor2Speed);//显示两个电机转速 单位:转/秒
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式发送通过串口三输出字符 strlen:计算字符串大小

sprintf((char *)Usart3String,"Mileage%.2frn",Mileage);//计算小车里程 单位cm
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式发送通过串口三输出字符 strlen:计算字符串大小

sprintf((char *)Usart3String,"U:%.2fVrn",adcGetBatteryVoltage());//显示电池电压
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式发送通过串口三输出字符 strlen:计算字符串大小
HAL_Delay(5);

把之前PID初始化时候速度PID目标值改成0
在这里插入图片描述
然后我们测试

硬件连接

我们现在使用USB-TTL连接串口三,单片机串口三与电脑通信(底板不需要插入蓝牙 )**
**在这里插入图片描述
然后打开软件

发送指令小车就会对应运动

在电脑串口软件查看输出信息、发送 指令控制小车运动
在这里插入图片描述

14.2-手机蓝牙控制小车

功能:蓝牙遥控小车前进、后退、停止、左右转、加速、减速、手机显示数据

蓝牙模块和电脑通信

蓝牙模块-硬件介绍

**使用:HC-05 主从机一体蓝牙串口透传模块 **

注意: 供电3.6V-6V(最好5V)

引脚顺序 VCC GND TXD RXD
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先调试蓝牙模块-设置波特率

如图先把蓝牙模块通过USB-TTL模块相连接,然后
在这里插入图片描述
如果反复测试不能进入AT模式,可能是新版蓝牙模块,
在这里插入图片描述

  1. 先连接好蓝牙模块的几根线,然后按住蓝牙模块的按键
  2. 然后连接电脑,然后几秒后蓝牙小灯慢闪,说明进入AT模式
  3. 然后串口助手通过38400发送设置指令:AT+UART=115200,0,0
  4. 然后收到OK数据,说明设置成功。

这个是设置波特率截图
在这里插入图片描述

  1. 然后重新拔插蓝牙模块(不用按按键)
  2. 在手机系统蓝牙配对HC-50 密码1234
  3. 串口助手设置波特率115200,然后打开手机APP发送任意内容测试

这个是后面通信测试截图
在这里插入图片描述

  1. 设置按键-按照代码设置按下发送的数据
    9.在这里插入图片描述
    在这里插入图片描述

蓝牙模块连接单片机

把蓝牙插入到底板、跳线帽选择蓝牙通信
在这里插入图片描述
按下不同按钮小车会对应控制

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2257

    文章

    10822

    浏览量

    352392
  • 串口通讯
    +关注

    关注

    1

    文章

    256

    浏览量

    24706
  • 遥控小车
    +关注

    关注

    2

    文章

    30

    浏览量

    18224
  • 蓝牙串口
    +关注

    关注

    1

    文章

    11

    浏览量

    7180
收藏 人收藏

    评论

    相关推荐

    DIY 制作蓝牙遥控小车

    `大学毕业后,就利用业余时间做一个蓝牙遥控小车,就在网上找资料及购买配件。用STC89S52单片机控制小车, LN298电机驱动模块驱动小车
    发表于 05-05 22:53

    基于STM32蓝牙遥控小车

    经常在论坛里看别人发的作品,今天也发一下自己做的蓝牙遥控小车~主控STM32R8,电机驱动TB6612,蓝牙模块,底板自己手工制作:菲林片打印腐蚀后直接保留了感光膜没有脱模(因为没阻焊
    发表于 10-13 19:37

    STM32蓝牙遥控

    STM32 蓝牙遥控一.蓝牙简述二.蓝牙遥控一.蓝牙简述我这次把
    发表于 08-03 07:44

    HC05蓝牙模块对小车蓝牙遥控

    现在最常见的蓝牙模块为HC05,对小车蓝牙遥控本质上是通过串口的收发信息进行控制。需要提前下载一个蓝牙
    发表于 11-22 07:10

    最简单DIY的51蓝牙遥控小车设计方案是什么

    51单片机物联网智能小车系列文章目录第一篇:最简单DIY的51蓝牙遥控小车设计方案文章目录51单片机物联网智能小车系列文章目录前言一、最简单
    发表于 12-01 08:13

    51蓝牙遥控小车简介

    51蓝牙遥控小车简介:通过手机上的蓝牙调试器APP与51蓝牙
    发表于 01-05 07:15

    讲解蓝牙小车的程序部分

    上次给大家讲解蓝牙小车的硬件部分,这次给大家讲解蓝牙小车的程序部分。这里说的程序部分指的是单片
    发表于 01-05 06:55

    如何通过手机APP蓝牙模块实现对平衡小车的控制

      大家好,我是小政。本篇文章我将针对蓝牙遥控平衡小车进行详细的讲解,让每位小伙伴能够通过手机APP
    发表于 01-21 10:14

    蓝牙遥控小车教程

    遥控小车教程,你可以点击打开学习,有程序,蓝牙控制。
    发表于 06-03 16:16 0次下载

    蓝牙遥控小车程序

    蓝牙遥控小车程序
    发表于 03-31 17:42 32次下载

    基于单片机的蓝牙小车蓝牙遥控的程序

    基于单片机的蓝牙小车蓝牙遥控
    发表于 06-05 10:00 95次下载
    基于单片机的<b class='flag-5'>蓝牙</b><b class='flag-5'>小车</b>带<b class='flag-5'>蓝牙</b><b class='flag-5'>遥控</b>的程序

    【制作】基于51单片机的蓝牙遥控小车方案

    ,哈哈~系统原理51单片机蓝牙遥控小车的系统框图大致如下:这是经典的自制蓝牙遥控车系统方案,整个系统分为手机跟
    发表于 11-11 11:36 35次下载
    【制作】基于51单片机的<b class='flag-5'>蓝牙</b><b class='flag-5'>遥控</b><b class='flag-5'>小车</b>方案

    最简单DIY的51蓝牙遥控小车设计方案

    51单片机物联网智能小车系列文章目录第一篇:最简单DIY的51蓝牙遥控小车设计方案文章目录51单片机物联网智能小车系列文章目录前言一、最简单
    发表于 11-23 16:22 41次下载
    最简单DIY的51<b class='flag-5'>蓝牙</b><b class='flag-5'>遥控</b><b class='flag-5'>小车</b>设计方案

    基于STC89C52的智能小车——蓝牙遥控

    蓝牙遥控是依靠单片机的串口通讯来实现的功能。这周我主要学习的内容是串口通讯。在完成学习后我用之前
    发表于 11-23 17:21 20次下载
    基于STC89C52的智能<b class='flag-5'>小车</b>——<b class='flag-5'>蓝牙</b><b class='flag-5'>遥控</b>篇

    STM32F103RCT6 实验代码之舵机+超声波避障小车(三)蓝牙遥控

    STM32 蓝牙遥控一.蓝牙简述二.蓝牙遥控一.蓝牙简述我这次把
    发表于 12-14 19:03 9次下载
    STM32F103RCT6 实验代码之舵机+超声波避障<b class='flag-5'>小车</b>(三)<b class='flag-5'>蓝牙</b><b class='flag-5'>遥控</b>