stm32核心板可以点亮灯吗_基于STM32核心板的遥控车/智能车制作

43bc0091ca5e11083667fca308a7ad7e.png

智能车其实没有那么智能,只是自身携带的传感器多一些,能够脱离人的控制在特定的环境下行走而已。你给小车装一个循迹模块,它就可以在跟着特定的轨迹行走,也就是大家在社团科技展出,科普宣传周等活动中最常见的一种小车。此外,你也可以给小车加上超声波模块,让它可以避障;给小车安装摄像头,让它可以识别环境;给它安装声学或者电磁类传感器,让它可以依据声源/磁场行走。不管你安装哪种传感器,首先你需要有一个可以行走的小车,接下来我们将制作一个最简单的“半智能车”,即一个可以根据遥控指令正确行使的小车。

目标:

制作一个双轮驱动小车,可以通过手机APP控制小车前进、后退、原地转弯、行进间转弯。

硬件模块:

(1) STM32F103C8T6核心板(1个)

7b8700c94461b98d45ef3ed51ae30ab5.png
STM32核心板

小车主控可以选择树莓派,Arduino,STM32开发板等硬件平台,秉承资源够用的原则,这里选用STM32核心板。板子内核是ARM 32位 Cortex-M3。64K闪存,属于中等容量微控制器。

功能接口:

PA9 --- USART1_TX---

PA10---USART1_RX---

PA2 --- USART2_TX---

PA3 --- USART2_RX

PB12---LED(共一个)

PA6 ---TIM2(通用定时器)CH1

PA7 ---TIM2(通用定时器)CH2

PB6 ---电机1引脚1

PB7 ---电机1引脚2

PB8 ---电机2引脚1

PB9 ---电机2引脚2

MCU供电电压: 3.3V

本文中,串口1用作下载程序,串口2用作蓝牙与MCU通信,通用定时器2用于产生PWM波输出,两个通道分别控制两个电机使能状态,LED灯用于显示小车是否收到了控制指令。

---备注:微控制下载程序和启动程序时需要切换跳线帽

boot0:1, boot1:0 用于下载。

Boot0: 0, boot1:0用于启动。

(2) 直流电机(2个)

直流电机是买小车底盘带的,工作电压可以是3v/5v/6v,对应的转速分别为100r/min|190r/min|240r/min。为了防止电机损坏MCU,可以在电机两个引脚上焊接一个104瓷片电容。买底盘带的电机引脚特别脆弱,开始我想把导线拧在电机接线端上,后来发现接线端的铜片太薄了,很容易断,所以选焊接的时候也需要注意。

fbc5e0faadf63c372c60060a7d9a8710.png
电机接线端

(3) 电池(1个)

小时候玩四驱车时,最烦恼的事莫过于没有钱买电池了,正好我手头有一个充电宝,所以我选择让所有模块都从这个充电宝取电,既方便,又省心。

(4) JDY-31蓝牙模块(1个)

蓝牙模块用接收手机APP指令,供电电压3.6-6v,我给该模块接的3.3v电压,也能够正常工作,最远通讯距离没有测试,可能会受到电压的影响吧。

(5) 电机驱动模块L298N(1个)

输入电压:12V (根据电机需求,建议输入电压范围7-24V)

(6) DC-DC电压转换模块

充电宝输出一路5V电压,而MCU需要1路3.3v电压,L298N需要1路12v电压,蓝牙模块需要1路3.3电压,因此需要一个电压转换模块,将充电宝一路电压分成多路,多电压。

bfaaf5840f6e3433d6d05b80f47b0ad2.png
电压转换模块

该模块一路输入6-12v,三路3.3输出,3路5V输出,3路等值输出(输入多高输出多高)

(7) USB升压线

USB升压线用于将充电宝5V输出电压升压到12v,用于电压转换模块的电压输入。

软件实现:

小车控制用到的STM32相关知识包括:

1. IO口的操作(GPIO)

点亮LED指示灯,通过IO控制电机转动等

2. 串口通信技术(USART_X)

串口用于接收蓝牙模块发出的指令,根据接收到的指令对小车进行控制,同时将收到的指令返回给终端,便于指令可视化。

3. 利用通用定时器产生PWM波的方法(TIMX)

通过IO口配置对电机进行控制时,可以实现小车定速运动和原地转向功能,但不能够控制电机的转速从而实现小车的运动中转向功能,因此需要使用PWM波对电机进行调速。

4. 嵌套向量中断控制器(NVIC)的使用

MCU的串口收到控制信号后,可以立即根据信号指令去执行是通过串口中断来实现的,设置串口中断模式为收数据中断,在中断服务函数中,对收到的数据进行Switch-Case确认,然后控制电机。

控制流程图如下:

9ebff89cbfd804d1cdb0f1d492a59f90.png
控制流程图

实验

通过面包板对小车基本功能进行测试,确保功能可以实现后再组装成车。开始调试时会存在不受控、动作与理论不符、无动作等情况,为了便于分析和故障排查,额外做一些小的功能还是有必要的,1. 通过串口将MCU从手机蓝牙软件端收到的数据返回给蓝牙。2. 利用一个LED(我买的板子就一个用户LED)灯指示小车是否收到了数据,收到LED就闪烁。

4634cd9169b11db232f6ba5a9b26584d.png
接线测试

a89cb795a5f69873d13f382abd06914c.png
整车组装
7c2d06c25216e5d63621e1df1ce23375.png
遥控车性能测试https://www.zhihu.com/video/1161748087428575232--------
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值