当前位置: 首页 > news >正文

基于STM32的驿站取货小车系统设计

摘 要

为了解决当今快递行业在快递过程中出现的快递错分,误分及丢件等问题,本着提高快递分拣正确率、取货效率,改善快递行业的形式的要求,本项目设计了一款将视觉识别技术与取货系统相结合的基于STM32的驿站取货小车。
本设计采用的是STM32F103C8T6单片机作为主控模块,视觉识别系统采用带FIFO的OV7670作为信号输入,实现数字识别的功能。显示系统部分采用的是ILI9341显示屏,具有显示及触摸功能,提高取货准确率。循迹部分采用的是黑色胶带对光的反射作用会对光敏电阻的阻值产生影响,继而实现本设计的循迹功能,确保小车不会脱轨,电机驱动部分采用强磁直流减速电机,为本设计提供驱动力。另外,本设计通过控制电机正反转实现设计的自由变换方向和启动停止。通过视觉识别功能,可以达到准确识别取货码,确定位置,实现取货的要求。
经过试验,本系统设计满足在功能上的要求,最终检验了各项设计应用的可能。通过完成本设计系统的功能设计、硬件电路设计、软件程序编写、系统实验以及参数对比的工作,实现了准确循迹及视觉识别的功能,使本设计可以按照目标要求到达货件放置位置,进行准确的取货。最终实验结果表明,基于STM32的驿站取货小车系统设计取货准确率更高,速度更快。

关键词:视觉识别; AD采样; STM32; 驿站取货

1 控制系统设计

1.1系统方案
本设计对于实现自动取货的目的提出如下两套设计方案。
方案一:采用FPGA为主要芯片,加入图像采集单元,由驱动板连接主控芯片实现驱动,通过灰度处理提高对比度,准确识别。以磁条引导方式为驱动方式,为小车铺设路线。其中传感器用到了摄像头模块,超声波传感器,磁力传感器。此方案的缺点是FPGA芯片的编写可能会存在大量漏洞,需要通过多次查找漏洞,达到实现个别功能的目的。
方案二:采用STM32F103C8T6作为主控芯片控制,以OV7670作为信号输入摄像头,其驱动方式为PWM驱动技术。取货小车要求在短时间内准确快速的找到目标货物。加入按键,输入取货码,利用光的反射造成AD采样值不同驱动电机正反转。取货过程中运用视觉识别技术在一定数字范围内识别目标数字,通过灰度处理提高对比度,准确识别。本设计结合了实际分析,通过参考各种相关文献进而确立设计结构方案,使快件进入配送站后,该取货小车通过数字识别系统识别快件的电子标签,完成取件。
经过对比,基于对器件的成本与实物的难度的考虑,方案一编程复杂,耗时长。而方案二成本低,难度适中,因此选择方案二。
1.2 系统工作原理
1.2.1 系统的工作原理
⑴ 循迹原理:该原理利用了光的反射,相同光照强度的光照射在颜色不同的物体上,其反射之后的光亮是不同的,对于光敏电阻阻值的影响也是不同的,而且反射值可以通过AD采样值进行检测。光线反射到光敏电阻上,可以通过检测光敏电阻的阻值来判断小车是否在黑色区域内。离黑色区域越近,光吸收的越多,反射的越少,光敏电阻阻值越大,分压也就越大,反之,离黑色区域越远,分压越小,电压大小控制电机,进而控制小车方向。
⑵ 数字识别原理:
① 图片预处理。此步骤分为识别图像,灰度化以及二值化。
② 图像分割。首先对原始图像的字符进行上下切割个左右切割。基本原理是,从图像第一列开始,从左往右扫描,当遇到像素值为0时,记录该列号s Col,继续扫描遇到整列像素值为255时,记录列号e col,s col与e Col之间为字符所在区间。复制二值图该区域,这样完成了左右分割,之后再依照这种方式进行上下分割。
③ 识别。利用代码将原始图像进行上下左右切割,使其具有与模板的数字图像同样的大小,之后将切割后的图片的对应坐标像素点与其余的模板的像素点相减(像素点一般挑选十个),求出所有像素点之差的绝对值之和。
④ 最后切割后的图片与哪个模板之差的绝对值最小,则可以确定这两个数字最为匹配,即可得到该数字值。
1.2.2 系统的结构
系统结构框图如图1.1所示:

图1.1 系统框图

2 硬件电路设计

2.1主控模块的选择
2.1.1 单片机及其选型介绍
单片机选型应尽可能要符合成本、性能、控制精度、工作电压、功耗等要求,在此基础上确定系统所需要的功能,如计时器/定时器、串行数据接口、PWM调制、AD转换等,然后可以根据芯片厂商列出的芯片清单进行单片机选型,个别的功能可以通过单片机扩展芯片来实现。此外,应核算系统所使用的I/O口数量,程序存储空间、内存大小以确定合适的芯片,选择满足要求的芯片并尽量减少外部扩展的数据或程序存储芯片,并且留有部分余量。
考虑到上诉因素,选择了STM32系列芯片。STM32f103的芯片内核为ARM32位Cortex-M3 CPU,最高工作频率为72MHz,1.25DMIPS/MHz。芯片上集成32-512KB的Flash存储器和6-64KB的SRAM存储器。3种低功耗模式为休眠,停止,待机模式以及为RTC和备份寄存器供电的VBAT[2]。STM32F103xx微控制器带有一个嵌入式的ARM核,所以可以兼容所有的ARM工具和软件。除了模拟输入,所有的I/O口都可以接受5V以内的输入。
芯片引脚图如图2.1所示:

图2.1 STM32F103C8T6单片机引脚图

2.1.2 复位电路的介绍
STM32的复位电路支持三种复位形式,分别为系统复位、上电复位和备份区域复位。当系统上电、掉电,以及系统从待机模式返回时,发生电源复位。电源复位一种是在软件复位的时候设定备份区域控制寄存器中的对应位产生的;另一种是当电源和电池都掉电又重新上电时产生的。当系统上电瞬间,电容充电导致NRST在上电瞬间被拉为低电平信号,这个信号持续1100us的时间。(时间计算公式:t = 1.1RC = 1.110000Ω0.0000001F = 0.0011s = 1100us) 而这个时间对于STM32的NRST所需要的低电平信号时长已经足够[7]。综上所述,复位电路设计满足单片机复位要求。复位电路原理图如图2.2所示。

图2.2 复位电路原理图

3 软件设计

系统的软件设计通过keiluVision5软件实现,在使用该软件的过程中,可以使用C语言或者汇编语言进行编程,编译后生成以.hex为后缀名的程序文件。在程序编写完成并检查完语法错误之后,可以生成编译调试器以方便观看程序运行过程中对单片机内部各个存储器的改变,更好的理解程序的运行与发现错误。
3.1系统主程序设计
主程序循环模块中的程序执行优先级应是最低的。主程序的设计首先应包含单片机初始化,以及开机过程中所必要的实施模块,这些模块大部分只在单片机开机复位结束之后执行一次。其次,单片机应该具有循环执行的模块,这些模块即是在单片机运行过程中保持单片机一直运行的模块。在程序设计中,最重要的操作是确定程序流程框图。
如图3.1主程序流程框图所示,主程序部分包括系统的初始化、等待取货码、循迹、识别、完成取货、最后返回。如图可知,这个循环处理模块分别包含等待取货码、循迹、识别、完成取货四个部分。

图3.1 主程序流程图 图3.2 数字识别子程序设计

4仿真与调试

4.1 实物展示
系统主要有六个部分组成:电源模块、ov7670模块、电机驱动模块、显示模块、按键模块以及主控模块这六个模块组成,在系统的搭建上,采用模块分别进行的方式在万用板上搭建电路。分模块进行的好处就是系统走线比较清晰,适合在万用板上进行电路的搭建。四节干电池放在电池盒内,与此同时引出两根导线,与电路板相接,为整个系统提供电流,系统控制主要模块展示如图4.1所示:

图4.1 系统设计实物展示
循迹模块展示图如图4.2所示:

图4.2 循迹模块展示图
4.2 实验效果
4.2.1 循迹过程
用黑胶带模拟取货路径,依次为1-1-1、1-1-2、1-1-3、1-2-1、1-2-2、1-2-3、2-1-1、2-1-2、2-1-3、2-2-1、2-2-2、2-2-3,在岔路口由于黑胶带反射光亮不同,AD采样值发生变化,当采样值大时,说明小车位于黑胶带之上,当采样值小时,说明小车位于岔口空白处,会有大约50ms短暂的停顿,之后按照按键输入的取货码,由单片机控制,在指定取货位停留5秒。之后单片机控制,电机反转原路返回。循迹路线模拟图如图4.2所示:

图4.3 循迹路线图

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

http://www.cnnetsun.cn/news/652424.html

相关文章:

  • ChatGPT优化公司有哪些?剖析专业服务商的核心能力矩阵
  • MySQL 数据可视化的核心步骤
  • 6240BP10811逻辑控制器模块
  • 6241BP10411A编程式电源模块
  • IH522ENK01 3BSE019202R1操作员键盘
  • 这些工具通过智能算法帮助用户快速优化文本内容,显著提升学术写作的原创性。
  • 免费试用版本虽然功能有限,但足以应对基础的文本润色与查重需求
  • 如何用AI分析整个文件夹下所有脚本的功能、甚至修改
  • 怎样开发一个在线的三维建模工具?
  • 【Java毕设源码分享】基于springboot+web的诊所病历管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • JavaScript 动态拼接引入 JS 文件教程
  • AI赋能学术:7款论文工具核心功能解析
  • django-flask基于python篮球比赛CBA联赛管理系统pycharm -Vue
  • 想玩 CTF?先搞懂这三点:是什么、有何用、怎么入门
  • 服务器防护必修课:Linux 系统如何有效抵御 DDoS 攻击
  • 单北斗GNSS技术在变形监测中的应用及其位移监测优势解析
  • 三相电压型PWM整流器仿真分析与研究:关键技术及应用探索
  • Qt集成Echarts百度地图应用开发综合源码:功能强大且高度可定制的地图封装类
  • 网络安全核心技术栈硬核归档:一份工程师的进阶路线与策略反思
  • 一文读懂网络安全核心技术全景:关键领域深度解析与应用场景
  • 智能论文改写:7大AI模型效果解析与避坑指南
  • 《从局部到全局:协同推理负载分配的深度优化指南》
  • C#上位机开发源码 上位机项目源代码 采用基于RS485通讯总线的ModbusRtu协议
  • 基于Python的个性化音乐推荐系统设计与实现
  • 基于微信小程序的健康指导平台小程序
  • 【2025最新】基于SpringBoot+Vue的安康旅游网站管理系统源码+MyBatis+MySQL
  • 学长亲荐2026 MBA必备AI论文工具TOP10:开题报告文献综述全测评
  • 【python】每个python项目都要创建独立的虚拟环境
  • 【python】macos环境升级自己安装的python3
  • 类加载器分析(四)启动类加载器 之 字段