STM32蓝牙后驱小车详细制作教程

前言

忙里偷闲,出于兴趣做了一个STM32蓝牙小车,看了很多教程,要么讲的不清不楚,要么付费下载源码,实属烦人,遂写下本教程,完全开源免费,主要包含以下资源:

1、小车成品图

2、零件购买链接

3、原理图、小车接线图

4、代码烧录 (参考了这个博主的教程及源码

5、手机蓝牙控制器

6、调试

再啰嗦两句,STM32蓝牙小车制作属于入门项目,但很多教程写的跟没写一样,会让像我这样的小白举步维艰,甚至可能从入门到放弃,所以此教程会尽可能详细。

教程

1、小车成品图

温馨提醒:减小音量

视频

颜值就是这个样子,可以说没有颜值。

2、零件购买链接

(1)小车框架

我买的时候只要16元,这估计是双12涨价了,可以买这个,买来后直接拆掉,留下车架、电机、轮子

你可能会觉着我买了成品又拆掉多少有点猫病,图方便吗,而且这个成品遥控距离10米以内,而我的可以达到100m。(纠正:宿舍走廊环境下100米)

通过这个图可以看到为什么是后驱了,因为前面的电机用来控制方向

(2)STM32F103C8T6核心板

 这是芯片,买国产的就行。

(3)蓝牙模块HC-05

 

 这是通信模块,手机发送指令给HC-05,HC-05发送给芯片,完成通信。

(4)L9110S电机驱动模块

用来驱动电机,因为芯片输出的电压太低,买一个就行了,一个L9110S可以驱动两个电机正反转。 

(5)USB转TTL CH340G模块

 用来给芯片烧录程序。

(6)洞洞板

 用来固定各个模块,不买也行,看个人需求。

(7)杜邦线

 (8)电络铁、焊锡

这个就不推荐了,建议买个好点的,我的才8.8元,贼难用emmm,当然我焊接技术也为0。

以上器材,很多店铺都有,不一定去我推荐的店铺。

3、原理图、小车接线图

注意上图的绿线正负极接反了emmm,这里就不换图了。

手机APP发送信号到蓝牙模块HC05,HC05通过RXD、TXD引脚与STM32的A9(TXD)、A10(RXD)通信,STM32通过B5、B6,B8、B9输出高/低电平(0/1)给电机驱动模块L9110S,L9110S驱动马达A、B的正反转。

MOTOR A控制马达A,MOTOR B控制马达B。马达A、马达B各自的两根引线直接接对应的MOTOR即可,最后烧录完程序后若发现正反转不对,将两根引线的位置换一下即可。

注意,L9110S需要5V以上的电压才能正常驱动本文使用的电机。

4、代码烧录 

下载代码编译软件keiluv5,网上资源很多,不提供链接了;

下载代码烧录软件XCOM串口调试助手

源码在这里,打不开的话用备用链接

找到源码文件夹里的这个,

 用keil打开,如图,主要在motor.c和main.c里面修改

如果按照我前面的硬件设计,则不需要做任何修改, 点击图示图标生成hex文件,

将小车与电脑连接,连接需要做以下工作

(1)安装CH340G的驱动

(2)STM32的A9、A10(原本与蓝牙模块连接,先拔掉,烧完程序再连上)分别连接CH340G模块的RXD、TXD,5V、GND对应连接就好了

(3)CH340G模块插到电脑上,STM32的BOOT0置1(默认是在0上的),按下RESET键

打开烧录软件,选择「搜索串口(X)」,相应的串口会在「Port」上显示,选CH340,如果找不到串口可能是因为驱动没安装成功。

(4) 然后选择「联机下载时的程序文件」,找到hex文件,如图

 (5)其它都默认就行,选择「开始编程(P)」,如果提示连接不到硬件,就看上面的步骤哪做错了,如果成功了,断电,把BOOT0还原为0,A9、A10接回蓝牙模块。

5、手机蓝牙控制器 

安卓手机(苹果不清楚)应用商店下载「蓝牙串口」,图标是个SPP;用充电宝给STM32供电,看各个模块的指示灯是否正常,亮了说明就通电了,有电说明咱就成功一大步了!

打开「蓝牙串口」软件,连接蓝牙,切换到「键盘」的位置,如下图(不知道为啥是横着) 

这是我的设置,以「前进」为例讲解,打开「编辑模式」,设置如下图(不知道为啥又是横着)

按下时发送4,松开时发送0,在main.c的while()中可以看到对应的模式

其它的按键参照上图来设置就行了,设置完关掉「编辑模式」,按下不同的按键测试吧,运气好的话,你的STM32蓝牙小车就大功告成了,🎉🎉🎉。

如果发现小车不按对应的按键行驶, 那么请看6、调试

6、调试

我们打开motor.c,如下图

 可以看到,我初始化的是 PB5、PB6、PB8、PB9引脚,下面不同的模式是可以修改的,

你只要知道GPIO_ResetBits()函数是置引脚为0,即输出低电平

GPIO_SetBits()函数是置引脚为1,即输出高电平,

不同引脚的高低电平组合便可实现小车不同的行驶动作。

下图是淘宝上给的L9110S模块接口说明,我反正看的直懵逼,总感觉他们写错了,包括引脚的名字都不对,也有可能是我菜。

 建议在代码里一点一点调试,反正也就那么几种模式,调试完能正常跑就可以让小车吃灰了。

写的太久了,若有错误,欢迎指正。

版权声明:本文为CSDN博主「孙二羔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37254633/article/details/121779705

前言

忙里偷闲,出于兴趣做了一个STM32蓝牙小车,看了很多教程,要么讲的不清不楚,要么付费下载源码,实属烦人,遂写下本教程,完全开源免费,主要包含以下资源:

1、小车成品图

2、零件购买链接

3、原理图、小车接线图

4、代码烧录 (参考了这个博主的教程及源码

5、手机蓝牙控制器

6、调试

再啰嗦两句,STM32蓝牙小车制作属于入门项目,但很多教程写的跟没写一样,会让像我这样的小白举步维艰,甚至可能从入门到放弃,所以此教程会尽可能详细。

教程

1、小车成品图

温馨提醒:减小音量

视频

颜值就是这个样子,可以说没有颜值。

2、零件购买链接

(1)小车框架

我买的时候只要16元,这估计是双12涨价了,可以买这个,买来后直接拆掉,留下车架、电机、轮子

你可能会觉着我买了成品又拆掉多少有点猫病,图方便吗,而且这个成品遥控距离10米以内,而我的可以达到100m。(纠正:宿舍走廊环境下100米)

通过这个图可以看到为什么是后驱了,因为前面的电机用来控制方向

(2)STM32F103C8T6核心板

 这是芯片,买国产的就行。

(3)蓝牙模块HC-05

 

 这是通信模块,手机发送指令给HC-05,HC-05发送给芯片,完成通信。

(4)L9110S电机驱动模块

用来驱动电机,因为芯片输出的电压太低,买一个就行了,一个L9110S可以驱动两个电机正反转。 

(5)USB转TTL CH340G模块

 用来给芯片烧录程序。

(6)洞洞板

 用来固定各个模块,不买也行,看个人需求。

(7)杜邦线

 (8)电络铁、焊锡

这个就不推荐了,建议买个好点的,我的才8.8元,贼难用emmm,当然我焊接技术也为0。

以上器材,很多店铺都有,不一定去我推荐的店铺。

3、原理图、小车接线图

注意上图的绿线正负极接反了emmm,这里就不换图了。

手机APP发送信号到蓝牙模块HC05,HC05通过RXD、TXD引脚与STM32的A9(TXD)、A10(RXD)通信,STM32通过B5、B6,B8、B9输出高/低电平(0/1)给电机驱动模块L9110S,L9110S驱动马达A、B的正反转。

MOTOR A控制马达A,MOTOR B控制马达B。马达A、马达B各自的两根引线直接接对应的MOTOR即可,最后烧录完程序后若发现正反转不对,将两根引线的位置换一下即可。

注意,L9110S需要5V以上的电压才能正常驱动本文使用的电机。

4、代码烧录 

下载代码编译软件keiluv5,网上资源很多,不提供链接了;

下载代码烧录软件XCOM串口调试助手

源码在这里,打不开的话用备用链接

找到源码文件夹里的这个,

 用keil打开,如图,主要在motor.c和main.c里面修改

如果按照我前面的硬件设计,则不需要做任何修改, 点击图示图标生成hex文件,

将小车与电脑连接,连接需要做以下工作

(1)安装CH340G的驱动

(2)STM32的A9、A10(原本与蓝牙模块连接,先拔掉,烧完程序再连上)分别连接CH340G模块的RXD、TXD,5V、GND对应连接就好了

(3)CH340G模块插到电脑上,STM32的BOOT0置1(默认是在0上的),按下RESET键

打开烧录软件,选择「搜索串口(X)」,相应的串口会在「Port」上显示,选CH340,如果找不到串口可能是因为驱动没安装成功。

(4) 然后选择「联机下载时的程序文件」,找到hex文件,如图

 (5)其它都默认就行,选择「开始编程(P)」,如果提示连接不到硬件,就看上面的步骤哪做错了,如果成功了,断电,把BOOT0还原为0,A9、A10接回蓝牙模块。

5、手机蓝牙控制器 

安卓手机(苹果不清楚)应用商店下载「蓝牙串口」,图标是个SPP;用充电宝给STM32供电,看各个模块的指示灯是否正常,亮了说明就通电了,有电说明咱就成功一大步了!

打开「蓝牙串口」软件,连接蓝牙,切换到「键盘」的位置,如下图(不知道为啥是横着) 

这是我的设置,以「前进」为例讲解,打开「编辑模式」,设置如下图(不知道为啥又是横着)

按下时发送4,松开时发送0,在main.c的while()中可以看到对应的模式

其它的按键参照上图来设置就行了,设置完关掉「编辑模式」,按下不同的按键测试吧,运气好的话,你的STM32蓝牙小车就大功告成了,🎉🎉🎉。

如果发现小车不按对应的按键行驶, 那么请看6、调试

6、调试

我们打开motor.c,如下图

 可以看到,我初始化的是 PB5、PB6、PB8、PB9引脚,下面不同的模式是可以修改的,

你只要知道GPIO_ResetBits()函数是置引脚为0,即输出低电平

GPIO_SetBits()函数是置引脚为1,即输出高电平,

不同引脚的高低电平组合便可实现小车不同的行驶动作。

下图是淘宝上给的L9110S模块接口说明,我反正看的直懵逼,总感觉他们写错了,包括引脚的名字都不对,也有可能是我菜。

 建议在代码里一点一点调试,反正也就那么几种模式,调试完能正常跑就可以让小车吃灰了。

写的太久了,若有错误,欢迎指正。

版权声明:本文为CSDN博主「孙二羔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37254633/article/details/121779705

生成海报
点赞 0

孙二羔

我还没有学会写个人说明!

暂无评论

相关推荐

STM32蓝牙后驱小车详细制作教程

前言 忙里偷闲,出于兴趣做了一个STM32蓝牙小车,看了很多教程,要么讲的不清不楚,要么付费下载源码,实属烦人,遂写下本教程,完全开源免费&#x

基于51单片机的智能台灯设计

一.硬件方案 本文介绍了一种基于PWM调光的智能台灯设计。把单片机技术和PWM调光技术结合起来实现台灯光强的调节。即在不改变PWM方波周期的前提下,利用单片机控制PWM的占空比,从而来改变电压的大小实现灯光亮度的调

Arduino智能小车 ———电机驱动

L298N电机驱动代码,完成功能:前进、后退,控制时间相同。 问题:给进相同PWM数值,两边转速并不一致,无法回到原点。 int IN12;//电机1两个控