目录
简介
各模块设计要求
模块清单
整体思路:?
模块设计
1、stm32f103c8t6
2、电机驱动模块
3、红外循迹模块
4、超声波避障模块
未完待续
简介 基于stm32的智能送货小车,能够按照地面固定路线进行送货。设置起点及三个送货点,遥控器给出送货指令后,按照地面的黑色标记进行,达到送货点取出货物后,小车可自行回到起点。车上配oled显示器,实时显示小车任务何当前运行状态。
各模块设计要求
- 遥控模块。遥控模块可取红外、wifi、蓝牙等其中一种通信方式。通信距离2m以上,建议用手机、PAD等便携设备发出控制信号。
- 检测模块。可选用红外检测模块进行循迹,完成小车送货等任务。货物取出检测模块用于检测货物是否在车上,可选择任何一种可行的方案。
- 驱动模块。选取适合的小车电机并设计驱动电路,可实现小车启动,前进,转向,后退,停止等动作。
- 主控制器。选取一款单片机或嵌入式芯片,实现小车的传感器信号获取、遥控接口、电机驱动、控制算法、液晶显示等功能。
- 液晶显示模块。实现小车状态的实时显示。完成液晶显示驱动的正常显示。
- 设计各模块电路,画电路原理图和PCB并仿真。
- 主控:stm32f10c8t6核心板
- 显示:oled,0.96寸,I2C
- 驱动:L298N(若做PCB可选择TB6612FNG)
- 循迹:TCRT5000红外反射传感器
- 蓝牙:HC-05蓝牙模块
- 电源:18650锂电池(12V,+充电器)
- 智能小车底盘 4WD
- 降压模块:LM2596S DC-DC降压电源模块
- OTHERS:RFID射频识别模块、HX711压力传感器、HC-SR04超声波模块、舵机、超声波支架、XH254单头连接线若干、杜邦线若干、面包板、254单排直插母座若干、排针、254跳线帽若干、杜邦线若干
整体思路:
文章图片
模块设计 1、stm32f103c8t6
STM32F103C8T6是一款由ST公司的,推出的基于Cortex-M3内核的32位微控制器。目前来说,该控制器的价格较低,基本能满足本项目的要求,所能找到的资源也十分丰富。
具体参数:
内核 | Cortex-M3 |
ADC | 2个12bit ADC合计12路通道 外部通道:PA0到PA7+PB0到PB1, 内部通道:温度传感器通道ADC_Channel_16和内部参考电压通道ADC_Channel_17 |
Timers | 4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4 TM1带死区插入,常用于产生PWM控制电机 |
2个看门狗定时器(独立看门狗IWDG、窗口看门狗WWDG) | |
1个24bit向下计数的滴答定时器systick | |
GPIO | 37个GPIO,分别为PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1 |
系统时钟 | 内部8MHz时钟HSI最高可倍频到64MHz,外部8MHz时钟HSE最高可倍频到72MHz |
通信串口 | 2*IIC,2*SPI,3*USART,1*CAN |
核心板供电需5V,可以输出3.3V。
文章图片
2、电机驱动模块
目前在此类项目中,直流电机驱动的选择主要是两种:L298N和TB6612FNG。
- L298N
文章图片
①输出A、输出B
这两个输出口各接一个电机,可以输出较大电流约2A,峰值可达到3A。
在本项目中,由于小车有四个电机,我们通过将同侧的电机连接起来,以此达到通过一个L298N来驱动四个电机。
②板载5V使能
对于这个跳线帽的作用网上众说纷纭。但根据我自己的测试发现:当跳线帽插入,给模块使用12V供电时,5V供电端口可以输入5V可用来给核心板供电,此时需注意,单片机的要与模块共地。
(若是制作PCB则需要载PCB上放置足够的GND接口。若是不制作PCB我们则可以单独制作一块小型的洞洞板,将所有需要共地的都接上面)
③逻辑输入
通过单片机输入高低电平来控制电机正转、反转、停止。对应关系如下:
文章图片
④通道A使能、通道B使能
如果不用PWM时不需要拔掉跳线帽,如果需要PWM时,将需要拔掉跳线帽,接到单片机可以输出PWM波的引脚上,通过输出PWM的占空比来控制电机的转速。
- TB6612FNG
文章图片
TB6612FNG相较于L298N体积大幅减小,这更便于我们集成到PCB上,其效率也更高,在额定范围内芯片基本不发热(L298N因为芯片的原因会严重发热,因此需要较大的散热板,也就增加了体积)。
TB6612FNG的引脚相较于L298N更为复杂。其各引脚功能如下图:
文章图片
在实际使用中为了方便,我们通常将VM和VCC都接入5V,当然你也可以将VM接入更大电压以提高电机转速。
STBY引脚是工作状态的控制,输入高电平时驱动正常工作,当STBY为低电平的时候,驱动进入待机状态(也就是不工作)。
而剩下的引脚和L298N基本一直。对应工作状态图如下:
文章图片
3、红外循迹模块
在这里我们选用的是寻迹传感器 TCRT5000红外反射传感器。
文章图片
模块供电电压:3.3~5V
总共有四个引脚,其中DO输出的是模拟量,AO输出的是数字量。
模块上有电位器可以用来调节灵敏度。
【stm32项目|基于STM32智能循迹送货小车(一)项目介绍及硬件部分】检测反射距离:1mm~25mm 。
循迹原理非常简单,模块上配有一个输出指示灯,部分模块还有电源指示灯,我们主要关注输出指示灯。红外发射器一直发射红外线,红外线经发射后被接收,此时输出低电平,输出指示灯点亮。
黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块输出高电平,输出指示灯熄灭。
当然除了遇到黑线熄灭,当距离太远红外线反射后检测不到,此时指示灯也会熄灭。
那么如果要循迹,模块离地面要近,在没有遇到黑线时确保指示灯长亮,一旦指示灯熄灭就说明遇到黑线了。
通常我们会选用4个红外循迹模块,当然现在网上还有八路循迹的模块,其感应精度大大体上,配合合理的算法,可以是大大提升小车的速度和流畅度。
文章图片
由于此模块缺少了 LM393 电压比较器,所以只能输出模拟量,因此需要ADC采样后,在程序中设置一个阈值进行判别。
4、超声波避障模块
HC—SR04超声波测距模块,其测距范围大约是2cm-400cm,精度可以达到3mm。
文章图片
基本工作原理
(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信呈。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
测距原理图:
文章图片
引脚功能:
- Vcc:电源供电
- Trig:输入触发信号(可以触发测距)
- Echo:传出信号回响(可以传回时间差)
- Gnd:接地
- 供电放范围:3.3V~5V
文章图片
默认为GPIO模式:
在此模式下时序图为:
文章图片
从图中可知:需要提供一个不小于10us的脉冲信号,模块会发射8个40KHZ的脉冲信号,并接收返回的信号,返回的信号是一个与距离成比例的高电平,通过检测高电平的持续时间,通过相应的公式便可测出距离=(高电平时间*声速(340M/S))/2;
注意:被测物体的面积应不小于0.5m2且表面平整。
未完待续
推荐阅读
- Keil5 mdk5安装
- 嵌入式|做嵌入式开发呢这两个设计思想要掌握的
- STM32|SPI通信原理---STM32F4--HAL
- STM32|STM32F4 如何读取芯片96位的唯一设备标识符 (Unique Device ID)
- 嵌入式|什么人才适合学习嵌入式(嵌入式就业做什么?)
- 学生|基于单片机的数字电子钟简单
- 单片机应用|基于51单片机的数字电流电压表
- 单片机|看完这篇文章,还不知道怎么学单片机,来打我!
- 蓝桥杯嵌入式|蓝桥杯嵌入式国赛 ---- 数码管