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

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

第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:%.2f\r\n",Motor1Speed,Motor2Speed);//显示两个电机转速 单位:转/秒
	HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式发送通过串口三输出字符 strlen:计算字符串大小
	
	sprintf((char *)Usart3String,"Mileage%.2f\r\n",Mileage);//计算小车里程 单位cm
	HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式发送通过串口三输出字符 strlen:计算字符串大小
	
	sprintf((char *)Usart3String,"U:%.2fV\r\n",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数据,说明设置成功。

这个是设置波特率截图
在这里插入图片描述
5. 然后重新拔插蓝牙模块(不用按按键)

  1. 在手机系统蓝牙配对HC-50 密码1234

  2. 串口助手设置波特率115200,然后打开手机APP发送任意内容测试

这个是后面通信测试截图
在这里插入图片描述
8. 设置按键-按照代码设置按下发送的数据
9.在这里插入图片描述
在这里插入图片描述

蓝牙模块连接单片机

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

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
蓝牙小车遥控器 app 是一种通过蓝牙技术实现遥控小车的应用程序。用户可以通过手机或平板电脑上的 app控制小车的移动、转向等操作。 蓝牙小车遥控器 app 使用了蓝牙通信技术,该技术可以在较短的距离内实现设备之间的无线通信。用户打开 app 后,通过与小车上的蓝牙模块建立连接,将手机小车进行配对。之后,用户可以通过 app 上的界面控制小车的运动。例如,通过按下前进、后退、左转、右转等按钮,用户可以实现小车前进、后退、转向的操作。 在设计蓝牙小车遥控器 app 过程中,还可以增加一些其他功能。例如,可以添加速度调节功能,使用户可以自定义小车的速度。还可以加入声控功能,让小车能够根据用户的声音指令进行移动。另外,可以增加拍照和摄像功能,使用户可以通过 app小车上安装的摄像头,实时观看小车的画面,并拍摄照片或录制视频。 蓝牙小车遥控器 app 的应用场景非常广泛。它可以被广泛应用于教育领域,例如学校的机器人课程中,学生可以通过 app控制小车并学习编程知识。此外,它还可以在家庭娱乐中使用,家庭成员可以通过 app 来进行小车竞速游戏或进行迷宫挑战。同时,蓝牙小车遥控器 app 也可以应用于工业自动化领域,用于控制工厂生产线上的小车进行物料的搬运。 综上所述,蓝牙小车遥控器 app 是一种通过蓝牙技术实现遥控小车移动的应用程序,它具有易操作、灵活性高等优势,并具有广泛的应用前景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值