基于STM32智能循迹送货小车(一)项目介绍及硬件部分

2023-10-23 19:50

本文主要是介绍基于STM32智能循迹送货小车(一)项目介绍及硬件部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

简介

各模块设计要求

模块清单

 整体思路:​

 模块设计

1、stm32f103c8t6

2、电机驱动模块

3、红外循迹模块

4、超声波避障模块

未完待续


简介

基于stm32的智能送货小车,能够按照地面固定路线进行送货。设置起点及三个送货点,遥控器给出送货指令后,按照地面的黑色标记进行,达到送货点取出货物后,小车可自行回到起点。车上配oled显示器,实时显示小车任务何当前运行状态。

各模块设计要求

  1. 遥控模块。遥控模块可取红外、wifi、蓝牙等其中一种通信方式。通信距离2m以上,建议用手机、PAD等便携设备发出控制信号。
  2. 检测模块。可选用红外检测模块进行循迹,完成小车送货等任务。货物取出检测模块用于检测货物是否在车上,可选择任何一种可行的方案。
  3. 驱动模块。选取适合的小车电机并设计驱动电路,可实现小车启动,前进,转向,后退,停止等动作。
  4. 主控制器。选取一款单片机或嵌入式芯片,实现小车的传感器信号获取、遥控接口、电机驱动、控制算法、液晶显示等功能。
  5. 液晶显示模块。实现小车状态的实时显示。完成液晶显示驱动的正常显示。
  6. 设计各模块电路,画电路原理图和PCB并仿真。

模块清单

  1. 主控:stm32f10c8t6核心板
  2. 显示:oled,0.96寸,I2C
  3. 驱动:L298N(若做PCB可选择TB6612FNG)
  4. 循迹:TCRT5000红外反射传感器
  5. 蓝牙:HC-05蓝牙模块
  6. 电源:18650锂电池(12V,+充电器)
  7. 智能小车底盘 4WD 
  8. 降压模块:LM2596S DC-DC降压电源模块
  9. 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
GPIO37个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更为复杂。其各引脚功能如下图:

 在实际使用中为了方便,我们通常将VMVCC都接入5V,当然你也可以将VM接入更大电压以提高电机转速。

STBY引脚是工作状态的控制,输入高电平时驱动正常工作,当STBY为低电平的时候,驱动进入待机状态(也就是不工作)。

而剩下的引脚和L298N基本一直。对应工作状态图如下:

3、红外循迹模块

 在这里我们选用的是寻迹传感器 TCRT5000红外反射传感器。

模块供电电压:3.3~5V 

总共有四个引脚,其中DO输出的是模拟量AO输出的是数字量。

模块上有电位器可以用来调节灵敏度。

检测反射距离: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.5m²且表面平整。

未完待续

这篇关于基于STM32智能循迹送货小车(一)项目介绍及硬件部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270096

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl