基于STM32的驿站取货小车系统设计毕业论文Word下载.docx

上传人:b****7 文档编号:22818192 上传时间:2023-02-05 格式:DOCX 页数:47 大小:795.87KB
下载 相关 举报
基于STM32的驿站取货小车系统设计毕业论文Word下载.docx_第1页
第1页 / 共47页
基于STM32的驿站取货小车系统设计毕业论文Word下载.docx_第2页
第2页 / 共47页
基于STM32的驿站取货小车系统设计毕业论文Word下载.docx_第3页
第3页 / 共47页
基于STM32的驿站取货小车系统设计毕业论文Word下载.docx_第4页
第4页 / 共47页
基于STM32的驿站取货小车系统设计毕业论文Word下载.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

基于STM32的驿站取货小车系统设计毕业论文Word下载.docx

《基于STM32的驿站取货小车系统设计毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于STM32的驿站取货小车系统设计毕业论文Word下载.docx(47页珍藏版)》请在冰豆网上搜索。

基于STM32的驿站取货小车系统设计毕业论文Word下载.docx

ADsampling;

STM32;

Pickupatthepost

引言

当今社会网络购物成为主流购物方式,物流水平的高低直接影响物流公司的发展。

随着互联网技术的发展,网购大规模增加,快递的数量也随之增加,物流配送的时效性和准确性主要取决于物流货运中的分拣搬运环节。

分拣搬运是物流货运中劳动力最密集的部分,占用了大量的人力成本和大部分工作时间[18]。

人工取货越来越不能满足效率需求,智能取货也成为主流。

可以解决时间过长,错误率高,成本高等一系列问题。

我国物流行业仍存在可完善的部分。

在目前的发展大环境下,以人工为主题的快递分拣系统再也没办法提供高效的分拣,为大幅提升快递系统整体的效率和效益,应重点考虑快递分拣环节效率,对怎样提升快递分拣系统的效率进行研究,以此减少快递公司成本,提升快递公司的最大接单量,使快递公司实现新阶段的飞跃。

驿站取货小车设计作为社区物流业的出发口,在社会中一旦形成了这种闭环的生态物流圈,并将各种增值服务连接到生态圈,便会提高快递服务的效率,也会增强用户的粘性,在这种情况下,后来的产业链将很难打破这种闭合生态圈而切入进去。

所以本设计将与实际情况相结合,现实意义很强。

随着电子商务的迅速发展,我们的物流服务强度也在发展。

因此,时间和产品配置的优化往往反映了许多因素。

多年来,我国发展了电子商务企业,其数量不断增加。

因此高效率,高准确率的取货方式已成为大众需求的重点。

对于国外,美国的物流行业占据世界领先地位,就国际后勤系统的组成部分而言,美国是世界上第一个后勤和服务分配中心。

后勤分配中心是最好的私营公司,经验丰富,政府对后勤进行分块管理。

而对于相关信息准确、迅速的提取是高效的快递自动分拣系统的基本要求,以达到用信息取代快递。

而在快递行业的过程分拣环节中,条形码的识别技术已经得到了一定的应用,但是因为条形码能够存储的信息十分有限,通过识别之后得到的数字序列仍需要和特定数据库进行比对才可以解码。

此外,如果条形码被污损,扫描结果将会错误混乱并影响到识别的结果乃至分拣的准确性。

二维码不仅可以存储大量的产品内容信息,而且占用空间小,也不需要与特定的数据库进行比对即可实现解码,而且,二维码本身的码制具有自纠错的能力,一些轻微的污损并不会影响最后的识别结果。

同时,对二维码信息的提取方法也将直接影响快递分拣效率。

传统模式是基于光电扫描技术,然而,以这种方式读取二维码并不能达到较理想的效果。

随着对图像处理研究的更加深入,用于图像识别的传感设备的性能持续提高,使用图像处理技术进行条码识别的方式日益流行。

本设计的设计过程主要分为硬件模块设计和软件模块设计,硬件设计是以STM32为主控制芯片,并加入电机驱动模块、数字识别模块等。

一个完整的数字识别过程包括图像获取;

预处理;

特征提取;

识别分类;

后处理;

识别结果。

软件设计主要基于Keil开发环境及Proteus仿真进行设计。

本设计重点解决以下三个问题:

⑴如何在视觉识别过程中准确获取图像

解决方式:

分辨率作为摄像机的主要参数,包括空间和灰度分辨率两种。

第一组以显示空间分辨率为主要目的,第二组显示在灰度空间的像素的明暗程度,之后会进行预处理,整个系统的运作将受到预处理的直接影响[11]。

而对于预处理也有其目的,即提供有效的图像过滤器,用以消除噪音和恢复退化数据。

⑵获取图像之后,特征处理如何提取

选择稳定的特点和代表性往往是该系统成功的关键。

必须满足三个条件:

一是在被提取出来的特征矢量之间必须互不干扰,也就是必须具有一定的独立性;

二是特征矢量的提取之间的类内距离要尽可能的缩小,而类间距离则需要尽可能的增加;

三是特征矢量具有较小的维度。

满足此三方面要求后可提取图像特征[15]。

⑶如何用代码进行数字识别

利用程序代码将原始的图像进行上下、左右的切割,使其具有与模板的数字图像同样的大小,之后将切割后的图片的对应坐标像素点与其余的模板的像素点相减(像素点一般挑选十个),求出差的绝对值之和。

最后绝对值之和最小的,则确定这两个数字最匹配,即可得到该数字值。

本文的主要工作:

第一章介绍自动取货小车控制系统的设计,由要解决的问题入手引出系统将要实现的功能,进而对系统的工作原理与结构进行说明并设计,

第二章对自动取货小车的硬件进行设计,由单片机的选型与其外围电路入手,设计相应的OV7670数字识别电路、AD转换电路、主回路及其保护电路以及系统要求的其他电路。

第三章对自动取货小车的软件进行设计,通过绘制软件流程图,明确软件设计的结构与流程,明晰数据的存储结构,并且通过相应的软件进行程序的编写。

第四章介绍了系统仿真实验的过程与结果,确定系统的设计是否可行性,验证编写的程序是否正确。

1控制系统设计

1.1系统方案

本设计对于实现自动取货的目的提出如下两套设计方案。

方案一:

采用FPGA为主要芯片,加入图像采集单元,由驱动板连接主控芯片实现驱动,通过灰度处理提高对比度,准确识别。

以磁条引导方式为驱动方式,为小车铺设路线。

其中传感器用到了摄像头模块,超声波传感器,磁力传感器。

此方案的缺点是FPGA芯片的编写可能会存在大量漏洞,需要通过多次查找漏洞,达到实现个别功能的目的。

方案二:

采用STM32F103C8T6作为主控芯片控制,以OV7670作为信号输入摄像头,其驱动方式为PWM驱动技术。

取货小车要求在短时间内准确快速的找到目标货物。

加入按键,输入取货码,利用光的反射造成AD采样值不同驱动电机正反转。

取货过程中运用视觉识别技术在一定数字范围内识别目标数字,通过灰度处理提高对比度,准确识别。

本设计结合了实际分析,通过参考各种相关文献进而确立设计结构方案,使快件进入配送站后,该取货小车通过数字识别系统识别快件的电子标签,完成取件。

经过对比,基于对器件的成本与实物的难度的考虑,方案一编程复杂,耗时长。

而方案二成本低,难度适中,因此选择方案二。

1.2系统工作原理

1.2.1系统的工作原理

⑴循迹原理:

该原理利用了光的反射,相同光照强度的光照射在颜色不同的物体上,其反射之后的光亮是不同的,对于光敏电阻阻值的影响也是不同的,而且反射值可以通过AD采样值进行检测。

光线反射到光敏电阻上,可以通过检测光敏电阻的阻值来判断小车是否在黑色区域内。

离黑色区域越近,光吸收的越多,反射的越少,光敏电阻阻值越大,分压也就越大,反之,离黑色区域越远,分压越小,电压大小控制电机,进而控制小车方向。

⑵数字识别原理:

①图片预处理。

此步骤分为识别图像,灰度化以及二值化。

②图像分割。

首先对原始图像的字符进行上下切割个左右切割。

基本原理是,从图像第一列开始,从左往右扫描,当遇到像素值为0时,记录该列号sCol,继续扫描遇到整列像素值为255时,记录列号ecol,scol与eCol之间为字符所在区间。

复制二值图该区域,这样完成了左右分割,之后再依照这种方式进行上下分割。

③识别。

利用代码将原始图像进行上下左右切割,使其具有与模板的数字图像同样的大小,之后将切割后的图片的对应坐标像素点与其余的模板的像素点相减(像素点一般挑选十个),求出所有像素点之差的绝对值之和。

④最后切割后的图片与哪个模板之差的绝对值最小,则可以确定这两个数字最为匹配,即可得到该数字值。

1.2.2系统的结构

系统结构框图如图1.1所示:

图1.1系统框图

⑴主机控制模块

主控芯片采用STM32f103c8t6,通过软件程序控制显示模块、电机驱动模块及视觉识别模块。

⑵电机驱动模块

包括2个电机,一个万向轮。

通过两个电机的正反转开控制小车的方向及行驶,达到符合程序所要求的目的。

⑶视觉识别模块

起到信号传递及识别的作用。

通过ov7670完成图像的获取,再通过程序及stm32实现数字识别,最终根据已识别的数字准确找到目标快件。

数字识别过程框图如图1.2所示:

图1.2数字识别过程框图

2硬件电路设计

2.1主控模块的选择

2.1.1单片机及其选型介绍

单片机选型应尽可能要符合成本、性能、控制精度、工作电压、功耗等要求,在此基础上确定系统所需要的功能,如计时器/定时器、串行数据接口、PWM调制、AD转换等,然后可以根据芯片厂商列出的芯片清单进行单片机选型,个别的功能可以通过单片机扩展芯片来实现。

此外,应核算系统所使用的I/O口数量,程序存储空间、内存大小以确定合适的芯片,选择满足要求的芯片并尽量减少外部扩展的数据或程序存储芯片,并且留有部分余量。

考虑到上诉因素,选择了STM32系列芯片。

STM32f103的芯片内核为ARM32位Cortex-M3CPU,最高工作频率为72MHz,1.25DMIPS/MHz。

芯片上集成32-512KB的Flash存储器和6-64KB的SRAM存储器。

3种低功耗模式为休眠,停止,待机模式以及为RTC和备份寄存器供电的VBAT[2]。

STM32F103xx微控制器带有一个嵌入式的ARM核,所以可以兼容所有的ARM工具和软件。

除了模拟输入,所有的I/O口都可以接受5V以内的输入。

芯片引脚图如图2.1所示:

图2.1STM32F103C8T6单片机引脚图

2.1.2复位电路的介绍

STM32的复位电路支持三种复位形式,分别为系统复位、上电复位和备份区域复位。

当系统上电、掉电,以及系统从待机模式返回时,发生电源复位。

电源复位一种是在软件复位的时候设定备份区域控制寄存器中的对应位产生的;

另一种是当电源和电池都掉电又重新上电时产生的。

当系统上电瞬间,电容充电导致NRST在上电瞬间被拉为低电平信号,这个信号持续1100us的时间。

(时间计算公式:

t=1.1RC=1.1*10000Ω*0.0000001F=0.0011s=1100us)而这个时间对于STM32的NRST所需要的低电平信号时长已经足够[7]。

综上所述,复位电路设计满足单片机复位要求。

复位电路原理图如图2.2所示。

图2.2复位电路原理图

2.2电机驱动模块

电机驱动模块的作用是在小车行驶过程中,通过控制电机的正反转,完成小车在方向上的变化。

对于电机,要求电机转速上限高。

与STM32的P1.0、P1.1接口相连。

本设计采用的是强磁直流减速电机,直流减速电机即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。

齿轮减速箱是为了提供较低的转速,较大的力矩。

齿轮箱不同的减速比可以提供不同的转速和力矩[8]。

此款电机工作电压为3~6V,符合小车所带电池盒可提供的最高电压,采用双轴驱动,减速比为1:

48。

3V空载下,转速为125转/分钟,66毫米轮的速度为26米/分钟。

5V空载下,转速为208转/分钟,66毫米轮的速度为44米/分钟,由此可见此款电机的驱动速度非常快,符合本设计对电机转速性能的需求。

2.3ov7670模块电路

本设计将实现数字识别这一功能。

采用摄像头ov7670摄像头对数字进行扫描并输入。

OV7670带FIFO模块增加了一个FIFO(先进先出)存储芯片,同样包含30w像素的CMOS图像感光芯片,FIFO的采用便捷了数据的采集,这样可减小甚至不用关心CMOS的控制以及时序关系,就能够实现图像的采集。

控制传感器所需的管脚定义如图2.3所示:

图2.3FIFO摄像头接口定义

2.4电源模块电路

电机驱动模块工作电压为3~6V,因此本设计采用4节5号普通干电池串联供电,共为6V。

使用电压调节器LM1117-33来达成稳压的目的。

LM1117是一个低压差电压调节器系列。

其压差在1.2V输出,负载电流为800mA时为1.2V。

LM1117-33有可调电压的版本,另外还有5个固定电压输出(1.8V、2.5V、2.85V、3.3V和5V)的型号。

输入电压为7V,输出电压为5V,输入与输出电压相差2V,达到稳压。

电源模块电路图如图2.4所示。

图2.4电源模块电路

2.5其他电路介绍

2.5.1显示电路介绍

显示电路采用LCD1602显示屏,LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。

LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。

电路原理图如图2.5所示。

图2.5LCD1602电路原理图

2.5.2按键电路介绍

本电路要求通过按键准确输入取货码,考虑到键盘的功能有以下功能:

参数显示选择、校正、排障确认。

本着节约I/O口的原则,选择1×

4矩阵键盘。

四个I/O分别进行加一、减一、确认、启动。

与单片机的P1.2到P1.5相连。

按键原理图如图2.6所示。

图2.6按键原理图

3软件设计

系统的软件设计通过keiluVision5软件实现,在使用该软件的过程中,可以使用C语言或者汇编语言进行编程,编译后生成以.hex为后缀名的程序文件。

在程序编写完成并检查完语法错误之后,可以生成编译调试器以方便观看程序运行过程中对单片机内部各个存储器的改变,更好的理解程序的运行与发现错误。

3.1系统主程序设计

主程序循环模块中的程序执行优先级应是最低的。

主程序的设计首先应包含单片机初始化,以及开机过程中所必要的实施模块,这些模块大部分只在单片机开机复位结束之后执行一次。

其次,单片机应该具有循环执行的模块,这些模块即是在单片机运行过程中保持单片机一直运行的模块。

在程序设计中,最重要的操作是确定程序流程框图。

如图3.1主程序流程框图所示,主程序部分包括系统的初始化、等待取货码、循迹、识别、完成取货、最后返回。

如图可知,这个循环处理模块分别包含等待取货码、循迹、识别、完成取货四个部分。

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

3.2数字识别子程序设计

数字识别实现的基本过程是:

灰度处理、二值化、图像分割、识别。

子程序设计图如图3.2所示。

3.2.1灰度处理

灰度处理的目的是将彩色图像转化成为灰度图像。

彩色图像中的每个像素的颜色由R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围,而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些[12]。

灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[13]。

3.2.2二值化

设阈值是二值化的主要理论基础,大于阈值时,为0即黑色或255即白色,使图像称为黑白图。

阈值可固定,也可以自适应阈值。

自适应阈值一般为一点像素与这点为中序的区域像素平均值或者高斯分布加权和的比较,其中可以设置一个差值也可以不设置。

3.2.3图像分割

图像分割,即通过图像不同的灰度,结构,颜色及纹理等,设计出多个阈值,之后从而将这些像素点以此与阈值进行比较。

并将其分为若干不同的领域。

在实际阈值分割过程中,往往需要能够自动获取阈值,下面的算法可以自动获得全局阈值:

⑴选取一个的初始估计值T;

⑵用T分割图像。

这样便会生成两组像素集合:

G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成;

⑶对G1和G2中所有像素计算平均灰度值ul和u2;

⑷计算新的阈值:

T=1/2(u1+u2)[13]。

3.2.4识别

利用代码将原始图像进行上下左右的切割,使其具有与模板的数字图像同样的大小,之后将切割后的图片的对应坐标像素点与其余的模板的像素点相减(像素点一般挑选十个),求出所有差的绝对值之和。

最后切割图像与哪个模板匹配时绝对值之和最小,则可以确定这两个数字最为匹配,即可得到该数字值。

3.3按键模块子程序设计

按键所要实现的功能有:

计数、确认、清除、启动。

首先进行I/O口初始化,依次在按键上按下取货码,每按下一位,若输入正确,便储存,若错误,则可以重新输入。

每按一轮取货码便进行复位,已达到清零的目的。

按键输入流程图如图3.3所示。

图3.3按键输入流程图

3.4电机驱动子程序设计

自动取货小车的启动以及方向改变均由电机正反转控制,上电时电机启动,电机均正转时小车匀速前进,电机分别正反转时,小车改变方向,向左右转弯,电机均反转时,小车倒退。

采用if循环,调整电机正反转。

在岔路口转弯处和取货处,利用AD采样值不同,设计两种不同时间的停留,并在每次返回到出发点时,所有变量均初始化,每过一个岔路口变量加一,当变量与取货码第一位相同时就会转弯。

电机驱动流程图如图3.4所示。

图3.4电机驱动流程图

3.5LCD1602显示子程序设计

LCD16021602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)。

4仿真与调试

4.1实物展示

系统主要有六个部分组成:

电源模块、ov7670模块、电机驱动模块、显示模块、按键模块以及主控模块这六个模块组成,在系统的搭建上,采用模块分别进行的方式在万用板上搭建电路。

分模块进行的好处就是系统走线比较清晰,适合在万用板上进行电路的搭建。

四节干电池放在电池盒内,与此同时引出两根导线,与电路板相接,为整个系统提供电流,系统控制主要模块展示如图4.1所示:

图4.1系统设计实物展示

循迹模块展示图如图4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1