基于STM32的多模态智能小车设计与实现
本项目主要实现三个功能:蓝牙遥控、自动循迹、超声波智能避障。由于时间紧迫,只有三天,所以只完成了三个主要功能,后续可在此基础上相应添加所需的其他功能,如添加传感器实现对环境勘察,添加远程无线通信模块实现远距离通信等。
关注私信我或者评论留言获取源代码、接线图、测试视频等
智能小车效果是视频展示
灰二la的抖音 - 抖音
STM32蓝牙遥控循迹避障智能小车_哔哩哔哩_bilibili
STM32蓝牙遥控循迹避障智能小车
关注我,一起进步,获取更多资料!
成品展示
一、说明
-
接线图是我根据小车组装各个阶段的版本拍的照片,并没有特意画电路图和仿真图,因为材料到手后我们只有3天时间组装完成,时间紧迫只完成了三个主要功能。
-
视频也是各个功能和阶段测试的视频,仅供参考。
-
源代码要根据芯片和实际接线来改动,不能一味地生搬硬套。
-
PPT和实验报告仅供参考。
-
物料中稳压模块可以不用,直接用5v充电宝代替电池组供电更为强大有力,但注意电脑烧录时必须将接口接线改为3.3v(依情况而定)。
-
可以买OLED显示屏显示测距显示(也可以直接用蓝牙调试器接受数据),温湿度显示,还有其他OLED玩法都可以嫁接在小车上。由于时间原因我并没有去实现。
-
关于接电:
我没有用降压模块,感觉用3.3伏的电池供电小车有点鸡肋,我是直接用那个stlink插到5伏或者电压较低但相对电池更高的充电宝上供电就非常有力。
注意 Stlink插电脑烧录的时候可能要改一下第四根线的端口改为3.3v,具体根据你的电脑输出的电压看要不要改动。
所有如果使用的stlink接充电宝供电的话又要将Stlink的输入接口改回充电宝的电压(一般是5v),即电脑烧录时3.3v,充电宝供电时是5v。
二、物料清单:
智能小车项目的各个组件及其价格:
序号 | 物品名称 | 价格(元) |
---|---|---|
1 | 智能小车底盘(4WD双层底盘) | 23.90 |
2 | 面包板 | 7.79 |
3 | STM32F106C8T6 | 41.26 |
4 | 电机驱动模块TB6612 | 27.00 |
5 | 蓝牙模块HC06 | 18.01 |
6 | HC-SR04超声波测距模块 | 6.38 |
7 | TCRT5000红外寻迹模块 | 2.68 |
8 | SG90舵机 | 4.80 |
9 | 3.3V稳压模块 | 7.92 |
10 | 杜邦线若干 | 8.45 |
11 | 电源模块(电池盒和电池) | 9.27 |
12 | 排母排针 | 3.51 |
13 | 工具:热熔胶 | 1.08 |
14 | 电工胶布 | 6.80 |
15 | 超声波测距模块云台 | 18.00 |
总计 | 186.85 |
物料和价格视具体情况而定
三、相关教程:
- 前面主要跟这个UP主买物料,前期准备等,他只教
代码
,不教接线:
智能小车制作教程(基于stm32)_哔哩哔哩_bilibili
(https://www.bilibili.com/video/BV1yM4y1J78r/?spm_id_from=333.337.search-card.all.click)
- 后面可以跟这个UP主,但是他只会教你电机驱动的代码和接线,天杀的后面要付费了所有没有看了:
STM32智能小车(蓝牙+自动避障+循迹+DHT11+语音识别)_哔哩哔哩_bilibili
(https://www.bilibili.com/video/BV1K1421y7Yk/?spm_id_from=333.337.search-card.all.click&vd_source=da0120964754bfb7548ad0d295601e82)
- 这个是嵌入式教程,入门看到,没基础可以看,但没什么用:
STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili
四、主要功能和代码说明介绍
我的代码完整,不用大幅度修改,若需要可只改动接口和main.c,接线根据芯片各接口实际功能接线,代码和硬件接口要相对应。
(1)、电机驱动
电机驱动代码:PWM.c
电机控制代码:Motor.c
电机转速控制代码:Smart.c
STM32F106C8T6 芯片上用GPIO4,5,6,7
口接入电机驱动模块芯片控制电机
关于电机驱动的连线: 重点
电机驱动左边和右边两个电机都分别并连成一个电机,然后电机驱动模块上用 GPIOA口控制左边,GPIOB口控制右边,即左边两个轮子一起转动,右边亦是如此。接线根据驱动芯片各接口实际功能接,若型号相同可以直接照抄。
这个接线我是用两个马达导出来的线,把外面的皮给剪掉,然后拧在一起,再和另一个线拧在一起用电胶布胶起来。左边两个电机并联在一起,右边一样,具体就是同一侧的左前红线和左后红线拧在一起再用一根红接长,黑色线一样。电机驱动时可以用专门调试驱动的代码测试。
(2)、蓝牙模块
蓝牙调试器设置:
一般从30开始到39结束,可自由选择按钮控制
方向:前后停左右:30-34
循迹:35
避障:36
舵机右中左:37-39
(3)、循迹
循迹接口代码:Track.c
循迹部分四个TCRT50000红外寻迹模块分别接STM32F106C8T6芯片的GPIO3,4,5,15
口。TCRT50000的其余两个口接正和负。
循迹算法不用改。
(4)、超声波测距和自动避障
超声波测距代码:Ultrasound.c
芯片接口GPIOB12,13
测距函数:Test_Distance
超声波算法Obstacle_Avoidance(在main.c中),这里可能会出问题,具体可以询问AI。因为我的超声波测距模块硬件有点问题,所以代码算法中的数值和正常的不一样,但我的运行效果没有问题。
(5)、OLED显示屏
OLED代码:OLED.c
OLED可以直接插在面包板上,也可以接线固定在外面。使用STM32F106C8T6 芯片 的GPIO 8,9
两个端口控制
五、其他代码
Serial.c:串口的初始化、数据发送、数据接收以及中断处理等功能。不用管!
Servo.c:舵机控制。不用管!
关注私信我或者评论留言获取源代码、接线图、测试视频等
关注我,一起进步,获取更多资料!