我的第一辆智能小车
提示:小编也是初学者,本文适用于想完成一个基础智能四轮车的初学者,大佬还请勿喷,欢迎各位指出错误的地方
暑假在家无聊,刚好也在学习STM32的HAL库,就想着做个小车巩固自己学到的知识,顺便记录自己所遇到的错误
小编也是现学现写,现已学会变速和红外寻迹和蓝牙控制,准备做一个蓝牙遥控红外寻迹超声波避障小车
这篇博客讲述的就是如何去制作蓝牙小车
接线和材料准备在:接线和材料准备
从图中可以看到,如果要外接传感器很多的话,最小系统板的供电口是不够的,需要使用面包板来完成供电,这里推荐使用400孔面包板,后期可以再多加模块。
不会使用面包板的点击这里,这里面有面包板的详细使用教程。
这篇博客的工程是在上一篇博客的基础上完成的,建议去看玩上一篇博客再来看这个
1,相关传感器的介绍
蓝牙模块-HC-05
HC-05蓝牙模块是一种成本低、易于使用的蓝牙通信模块,适用于各种嵌入式系统和物联网应用。它通过UART接口与主控设备通信,具有稳定的通信性能和较远的传输距离。
看着很难,其实很简单的。
2.蓝牙模块对应功能的引脚分配
蓝牙HC_05模块
RXD引脚 PA9 USART1_TX
TXD引脚 PA10 USART1_RX
3.蓝牙模块的AT指令配置
用串口软件使用AT指令查看/修改对应的蓝牙访问密码,波特率和对应的蓝牙名字
注意波特率一定要和下面的串口一致。
使用教程:蓝牙hc_05模块的使用
4.stm32cubeMX的配置
USART是是一种通用的串行通信接口
其他的配置请访问: 寻迹小车,配置内容均一致
由于内容过多,这里就不一一列举
USAR的配置
这里注意:Baud Rate 波特率这里一定要和蓝牙模块的波特率一致,不然无法传输接收数据的
其他的默认就行
5,代码展示部分
注意: 因为大部分代码都是软件生成的,里面有很多注释,这里为了直观就都删除了
需要改动的部分都贴出来了,只需要修改主函数内容,其他的软件都帮你生成了,简单吧。
#include "main.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
#include "motor.h"
void SystemClock_Config(void);
int main(void)
{
uint8_t rx; /*用于接收接收到的数据*/
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM4_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);
Change_speed(70);//初始速度:速度区间0-100
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_UART_Receive(&huart1,&rx,1,HAL_MAX_DELAY);
switch(rx)
{
case 'F':Forward();break;//前进
case 'B':Backward();break;//后退
case 'L':Turn_Left();break;//左转
case 'R':Turn_Right();break;//右转
case 'C':Change_speed(80);break;//变速加
case 'M':Change_speed(70);break;//变速减
default:Stopward();break;//停止
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
}
6,蓝牙APP的制作,强烈推荐
App Inventor是一款由麻省理工学院(MIT)开发的可视化编程平台,用于创建Android应用程序。它是为非专业开发人员和初学者设计的,旨在降低学习和开发移动应用的门槛。
右图所示是小编使用这个平台编写的软件
强烈推荐大家使用这款软件去开发一款自己专属的蓝牙调试助手
当然,不想开发的也可以直接用我的,放到文末的资源包里面了
对应的教程:蓝牙调试助手APP的开发
7,总结
上面的内容比较简洁,因为大部分内容都在上一篇博客中讲述了,因为蓝牙控制需要手机控制,不
工程代码以及蓝牙调试助手:工程代码以及蓝牙调试助手
效果展示
HAL库开发的智能小车------蓝牙小车
下一篇博客预知-------App Inventor的相关介绍