基于STM32的最简易蓝牙遥控小车

这篇具有很好参考价值的文章主要介绍了基于STM32的最简易蓝牙遥控小车。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本篇博客主要针对的读者为有一定单片机基础,但是第一次自制蓝牙遥控小车的小白同学,所用物件型号选择的是作者最熟悉、最常用的,老手请自行发挥。

硬件准备

硬件包括小车的机械部分、STM32f103c8t6最小系统板、ST-LINK下载器,HC-05蓝牙模块、CH340模块、L298N电机驱动模块,焊接设备、一些杜邦线
如下图所示:
基于STM32的最简易蓝牙遥控小车
基于STM32的最简易蓝牙遥控小车
基于STM32的最简易蓝牙遥控小车
基于STM32的最简易蓝牙遥控小车
基于STM32的最简易蓝牙遥控小车基于STM32的最简易蓝牙遥控小车
基于STM32的最简易蓝牙遥控小车
如果是完全的新手的话,做这个小车的成本在200元左右,包括焊接设备,杜邦线等。

硬件连接

首先按照小车的图纸把小车的机械部分装好(只需要一点点动手能力就能搞定,不要学我扔给爸爸装orz)。
基于STM32的最简易蓝牙遥控小车
小车整体电路图:

基于STM32的最简易蓝牙遥控小车
连接完成实物图:
基于STM32的最简易蓝牙遥控小车

这样连接完成后线比较麻烦,可以用一个扎带扎好。

STM32cubeMX配置

本实验基于HAL库,需用到stm32cubeMX进行配置,软件需要安装的有keil5,stm32cubeMX,软件的安装请参考其他博客
进入到stm32cubeMX,选择芯片为stm32f103c8t6
RCC的配置:
基于STM32的最简易蓝牙遥控小车
下载方式:
基于STM32的最简易蓝牙遥控小车
串口配置:
基于STM32的最简易蓝牙遥控小车
串口需打开中断:
基于STM32的最简易蓝牙遥控小车
然后需要选择4个io口(输出模式)作为电机驱动的输入(图中的IN1~IN4):
基于STM32的最简易蓝牙遥控小车
时钟配置:
基于STM32的最简易蓝牙遥控小车
然后写完文件名称,勾选生成.c和.h文件后生成代码。

代码部分

我们主要写的部分就是蓝牙遥控部分(串口通信)和小车电机控制部分:
motor.c

#include "stm32f1xx_hal.h"
#include "main.h"
#include "motor.h"
#include "usart.h"
uint8_t BackData[1];
void Stop(void)
{
	IN1_Reset;
	IN2_Reset;
	IN3_Reset;
	IN4_Reset;
}
void Turnleft(void)
{ 
	IN1_Reset;
	IN2_Reset;
	IN3_Reset;
	IN4_Set;
}
void Turnright(void)
{
	IN1_Reset;
	IN2_Set;
	IN3_Reset;
	IN4_Reset;
}
void Turnback(void)
{
	IN1_Set;
	IN2_Reset;
	IN3_Set;
	IN4_Reset;	
}
void Turnfront(void)
{
	IN1_Reset;
	IN2_Set;
	IN3_Reset;
	IN4_Set; 
}
void Leftback(void)
{
	IN1_Set;
	IN2_Reset; 
	IN3_Set;
	IN4_Set;	
}
void Rightback(void)
{
	IN1_Reset;
	IN2_Reset;
	IN3_Set;
	IN4_Reset;
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	UNUSED(huart);
	HAL_UART_Transmit(&huart1, (uint8_t *)BackData, 1, 100);   
	HAL_UART_Receive_IT(&huart1, (uint8_t *)BackData, 1);
}

motor.h

#ifndef _MOTOR_H

#define _MOTOR_H

#define IN1_Set         HAL_GPIO_WritePin(IN1_GPIO_Port,IN1_Pin,GPIO_PIN_SET)
#define IN1_Reset       HAL_GPIO_WritePin(IN1_GPIO_Port,IN1_Pin,GPIO_PIN_RESET)

#define IN2_Set         HAL_GPIO_WritePin(IN2_GPIO_Port,IN2_Pin,GPIO_PIN_SET)
#define IN2_Reset       HAL_GPIO_WritePin(IN2_GPIO_Port,IN2_Pin,GPIO_PIN_RESET)

#define IN3_Set         HAL_GPIO_WritePin(IN3_GPIO_Port,IN3_Pin,GPIO_PIN_SET)
#define IN3_Reset       HAL_GPIO_WritePin(IN3_GPIO_Port,IN3_Pin,GPIO_PIN_RESET)

#define IN4_Set         HAL_GPIO_WritePin(IN4_GPIO_Port,IN4_Pin,GPIO_PIN_SET)
#define IN4_Reset       HAL_GPIO_WritePin(IN4_GPIO_Port,IN4_Pin,GPIO_PIN_RESET)

void MotorInit(void);

void Turnleft(void);

void Turnright(void);

void Turnback(void);

void Turnfront(void);

void Stop(void);

void Leftback(void);

void Rightback(void);

void contorl(void);

#endif

main.c
需要在主函数里添加外部定义数组:

extern uint8_t BackData[1];

初始配置:

Stop();  //先让小车停止
HAL_UART_Receive_IT(&huart1, (uint8_t *)BackData, 1); //开启接收中断

然后就在while循环里根据蓝牙收到的指令进行对应的操作就好

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		if(BackData[0]==2)
		{
			Turnfront();
		}
		else if (BackData[0]==4)
		{
			Turnleft();
		}
		else if (BackData[0]==5)
		{
			Stop();
		}
		else if (BackData[0]==6)
		{
			Turnright();
		}
		else if (BackData[0]==8)
		{
			Turnback();
		}
  }

代码部分就结束了,编译后下载到STM32中。
接下来配置蓝牙串口软件:
基于STM32的最简易蓝牙遥控小车
上图是配置之后的成品,对于每个按键的编辑如下,按下状态的对应关系:2前进,4左转,5停止,6右转,8后退,松开状态都是5,都选择16进制
基于STM32的最简易蓝牙遥控小车
接下来就可以给小车开关打开,连接上蓝牙然后使用了。

视频演示

小车演示视频文章来源地址https://www.toymoban.com/news/detail-444470.html

到了这里,关于基于STM32的最简易蓝牙遥控小车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32蓝牙遥控小车(hal库)

     我使用的板子是stm32f103rct6,这里我们使用串口1,选择异步模式,注意波特率的选择,一般是9600或者115200,如果波特率选择不对的话是不能进行通讯的(我小车怎么也动不了搞了好久最后发现是波特率选错了,气死了),我用的蓝牙模块是HC-05(ps:我的stm32f103rct6的板子的串

    2024年02月06日
    浏览(34)
  • 5.39 综合案例2.0 - STM32蓝牙遥控小车1(手机APP遥控)

    APP遥控) 点 击 跳 转 点击跳转HaaS506官方最新案例 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机APP,语音模块控制,Haas506开发板三种。 本文介绍手机APP的控制的方法以及小车的制作。 器件说明 器件 数量 说明 STM32F103C8T6单片

    2024年02月09日
    浏览(44)
  • 5.39 综合案例2.0 - STM32蓝牙遥控小车2(语音控制)

    点 击 跳 转 点击跳转HaaS506官方最新案例 用语音识别当stm32智能车的遥控器,还能这样玩 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机APP,语音模块控制,Haas506开发板三种。 本文介绍语音模块控制的方法以及小车的制作。

    2024年02月16日
    浏览(34)
  • 5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

    点 击 跳 转 点击跳转HaaS506官方最新案例 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机APP,语音模块控制,Haas506开发板(遥感 + 体感)三种。 本文介绍Haas506(体感)控制的方法以及小车的制作。 器件说明 器件 数量 说明 STM32F

    2023年04月11日
    浏览(25)
  • 基于Arduino UNO的智能自主避障小车和蓝牙遥控小车

           Hello,大家好!今天我要给大家分享我近期制作的一个arduino小项目----智能避障小车。之前在某站上无意间刷到某位博主制作的一款智能避障小车,觉得很有意思,便打算自己也做一个来玩玩,于是便制作了一款我自己理解的避障小车。在此基础上,我还增加了蓝牙遥控

    2024年02月01日
    浏览(40)
  • 基于stm32F1的蓝牙控制小车 全硬件代码开源

       “基于stm32F1的蓝牙控制小车”由L898N电机驱动模块、电源管理模块、stm32f1主控模块、蓝牙串口通信模块。电机驱动模块使用了两个L298N芯片来驱动4路电机,使能端连接4路来自主控板的电平信号;电源管理模块使用了LM2940-5.0芯片进行12V到5V的转换,12V用于电机模块的供电,

    2023年04月20日
    浏览(38)
  • stm32f103基于pid的蓝牙循迹小车

    目录 前言 一、霍尔编码器以及定时器计数原理 二、使用pwm占空比对电机速度进行控制 三、使用systick的中断函数进行pid和速度的计算,还有oled的显示 四、常用的测速方法:  五、pid原理 六、oled的实现 七、蓝牙通信 八、3路循迹模块 总结   经过一个月对stm32的学习,终于完

    2024年02月16日
    浏览(27)
  • 基于STM32,TB6612,TCRT5000的简易红外循迹小车

            提醒:本文章只叙述此小车相关大概内容(如模块的设置,C语言基础实现等),单片机详细教学不涉及。         循迹小车是学习单片机的“地基”,它能够让初学者认识单片机内部硬件结构及其功能,熟悉单片机的一些基础操作,如I/O的应用,定时中断与外

    2024年02月16日
    浏览(36)
  • 基于FPGA的蓝牙遥控,超声波避障,红外循迹的智能小车

            闲来无事整个小车玩玩,设想的小车可以有蓝牙模块来控制模式切换,通过发送指令来更改相对应的功能,当避障的时候可以自动规避障碍物,当处于红外循迹时,可以跟随规划的轨迹前线,当手动遥控时可以控制前进后退左右转向停止等功能。         先介绍一下

    2024年02月07日
    浏览(39)
  • 100、基于STM32单片机自动跟随小车 红外遥控控制小车避障模式 跟随模式设计(程序+原理图+PCB源文件+流程图+硬件设计资料+元器件清单等)

    智能小车通过各种感应器获得外部环境信息和内部运动状态,实现在复杂环境背景下的自主运动,从而完成具有特定功能的机器人系统。而随着智能化电器时代的到来,它们在为人们提供的舒适的生活环境的同时,也提高了制造智能化电器对于人才要求的门槛。智能小车是集

    2024年02月15日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包