前言
忙里偷闲,出于兴趣做了一个STM32蓝牙小车,看了很多教程,要么讲的不清不楚,要么付费下载源码,实属烦人,遂写下本教程,完全开源免费,主要包含以下资源:
1、小车成品图
2、零件购买链接
3、原理图、小车接线图
4、代码烧录 (参考了这个博主的教程及源码)
5、手机蓝牙控制器
6、调试
再啰嗦两句,STM32蓝牙小车制作属于入门项目,但很多教程写的跟没写一样,会让像我这样的小白举步维艰,甚至可能从入门到放弃,所以此教程会尽可能详细。
教程
1、小车成品图
温馨提醒:减小音量
视频
颜值就是这个样子,可以说没有颜值。
2、零件购买链接
(1)小车框架
我买的时候只要16元,这估计是双12涨价了,可以买这个,买来后直接拆掉,留下车架、电机、轮子。
你可能会觉着我买了成品又拆掉多少有点猫病,图方便吗,而且这个成品遥控距离10米以内,而我的可以达到100m。(纠正:宿舍走廊环境下100米)
通过这个图可以看到为什么是后驱了,因为前面的电机用来控制方向。
这是芯片,买国产的就行。
(3)蓝牙模块HC-05
这是通信模块,手机发送指令给HC-05,HC-05发送给芯片,完成通信。
(4)L9110S电机驱动模块
用来驱动电机,因为芯片输出的电压太低,买一个就行了,一个L9110S可以驱动两个电机正反转。
用来给芯片烧录程序。
(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米)
通过这个图可以看到为什么是后驱了,因为前面的电机用来控制方向。
这是芯片,买国产的就行。
(3)蓝牙模块HC-05
这是通信模块,手机发送指令给HC-05,HC-05发送给芯片,完成通信。
(4)L9110S电机驱动模块
用来驱动电机,因为芯片输出的电压太低,买一个就行了,一个L9110S可以驱动两个电机正反转。
用来给芯片烧录程序。
(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
暂无评论