版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ⅰ[10]。登入OneNet,进入开发者中心,可以创建自己的产品,在创建生成的同时,会生成对应的产品ID、API-key,它们是作为设备与产品能够连接的重要凭证。我们通过APP的程序客户端能够获取云平台中上传的数据以用来对作APP端的数据内容,以及可以做到对设备的远程控制。
第3章自动化分拣货物系统需求分析3.1系统整体结构设计自动化分拣货物系统的作用在于无人环境下自动的对货物进行高效准确的分拣。整个系统是由多个部分组成,每个模块都有自己的功能与任务,通过模块划分的模式管理能够有效的对系统进行升级。本系统由主控模块、图像采集模块、驱动模块、分拣模块、显示模块、输送模块、分仓模块组成。最后通过IP连接的方式,使用PC端VNC远程连接到树莓派,运用Python程序设计实现整个系统的功能。系统整体框架图如图3-1。本系统的模块作用如下:主控模块:本系统采用树莓派4B。主要功能是担任着各个模块的控制与通信,与后期的功能完善和升级。图像采集模块:采用较高像素的广角CSI视频接口摄像头。本模块的主要功能是通过有效识别货物上二维码,提取其中的内容信息。驱动模块:采用了PCA9685驱动板。本系统采用了多个舵机的设计,该模块满足控制16路PWM,能够有效的控制舵机的角度进行操作。分拣模块:采用多自由度的机械臂。能够有效的抓取货物并安全摆放至输送带上。显示模块:采用PC显示器。通过VNC远程登录操作系统,方便操作。输送模块:采用传送带。通过PWM的控制能够准确把货物传送至扫描区,进行货物二维码信息的获取。分仓模块:采用了SG90舵机。通过图像采集模块对于货物识别二维码后采集的货物类别进行调整舵机的角度使得货物能够分配到各自的仓库中。图3-1分拣系统整体框架图3.1.1主控模块设计主控模块是本系统的核心,它使得各个模块能够进行通讯。树莓派相对于STM32、STM51、Ardruino有着明显的优势,它可以安装完整的操作系统例如:Linux、Windows等系统并将其用作日常的计算机,内置了wifi和蓝牙,这使得我们可以轻松的将项目加入无线模式。相较于普通的单片机,它更是可以拍出500W像素的照片,这也是我选择树莓派4B作为此系统的主控模块的原因。但它也有缺陷,普通的单片机可以有十几路的PWM,但是树莓派只有一个PWM,而本次系统我们需要使用4个PWM,由于树莓派可以扩充许许多多的外设,我使用了PCA9685驱动板,它配合树莓派能够驱动多达16路的PWM,并且它能有效的稳定电压。树莓派主控模块如图3-2,它十分小巧,就如一张卡片的大小。它支持多种语言例如Python、C、Java、Scratch等。本系统主要使用Python语言。图3-2树莓派实物图树莓派4B相较于之前几代的机型可谓是全面的进行升级。CPU的运算能力大幅度的提升,从原来的A531.4GHz四核升级到A721.5GHz四核,而且内存速度也大幅提升,直接升级到DDR4,最高支持到8G内存,树莓派3B只支持1G。另一个方面大的升级是输入输出接口上,树莓派4B支持蓝牙5.0、千兆以太网接口、两个USB3.0接口、两个USB2.0接口、两个microHDMI接口,最大支持4K60Hz+1080P或者2x4K30Hz输出,而且充电口也升级到了Type-C。下面是树莓派4BGPIO的接口图图3-3。图3-3树莓派4BGPIO的接口图3.1.2图像采集模块设计图像采集模块是本系统非常重要的模块,因为本系统需要识别二维码才能够提取其中信息进行货物分类。采用了500万像素的摄像头,搭载感光芯片OV5647,静态图片分辨率能够达到2592×1944,支持1080p30,720p60,以及640×480p60/90视频录像。实物图如下图3-4。图3-4摄像机实物图3.1.3驱动模块设计本系统采用PCA9685模块,基于树莓派提供的IIC通信接口的基础上实现的驱动,能够很好的稳定电压。支持16路PWM,可用于控制舵机、led、电机等设备,能够大大节省主机的资源。实物图如下图3-5。图3-5PCA9685驱动模块实物图一般情况下,使用内置晶振为25MHZ,通过配置内部的PRE_SCALE寄存器进行配置,配置的PRE_SCALE的值与PWM频率的关系如下公式所示:Prescalevalue=round其公式中,osc_clock代表时钟,可以根据寄存器的设置选择类别或者外部update_rate为频率,频率一般设置为50HZ,周期为20ms。注意:实际应用中若发现有误差,需要加入校准,要把update_rate乘以0.915。PCA9685模块的原理图如下图3-6。图3-6PCA9685模块原理图3.1.4分拣模块设计本系统的分拣模块使用了机械臂来进行分拣,机械臂会自动抓取货架台上的货物接着放置传送模块上进行下一步分拣步骤,在主控模块中设置抓取的速度与角度,在抓取完一个货物后需要等待图像采集模块采集货物中二维码的信息以及传送模块把货物输送至分类模块后才会进行对下一个货物的抓取。机械臂上也是搭载着多个SG90舵机进行部位活动。机械臂实物图如图3-7所示。图3-7多自由度机械臂
第4章货物分拣系统的软件设计方案4.1系统运行环境的搭建对比普通的单片机来说树莓派本身是不包含系统,需要自行的去下载并安装系统,然后配置其需要的环境,才能够开发本系统。系统搭建顺序图如下4-1所示。图4-1系统搭建顺序图4.1.1安装官方系统根据用户的需求,可以为树莓派安装自己的操作系统,例如:Windoows、Linux等系统,本次课题的设计选择了官方的Linux镜像来作为树莓派4B的安装系统。我们直接将操作系统镜像写入SD卡后,连接显示器鼠标等进行开机测试。下面是开机测试图4-2。图4-2树莓派开机测试图能够成功显示到此页面,我们烧录系统成功完成了官方的系统安装,接下来进行进一步的配置。4.1.2VNC局域网远程控制桌面首先我们需要在树莓派端配置VNC服务,我们进入树莓派终端输入sudoraspi-config进行对树莓派的配置。我们选择到InterfacingOptions然后到VNC服务进行开启。如下图4-3。图4-3启动VNC服务然后我们来到PC端打开远程桌面软件VNC创建一个新的连接进行配置,输入我们树莓派的IP地址即可。如下图4-4。图4-4PC端连接VNC服务4.1.3OpenCV的运行环境搭建本系统需要对二维码进行识别,所以我们需要对OpenCV的运行环境进行搭建,我们首先测试一下相机是否能正常工作。打开终端输入vcgencmdget-camera若返回supported=1detected=1表示摄像头连接成功。测试图如下图4-5。图4-5测试相机功能接下来我们需要安装OpenCV所需要的库,接下来就可以进行安装OpenCV输入sudopip3install安装指令进行安装,下载速度会相对慢一些。最终我们完成了安装,再进行一个简单的测试。测试图如下图4-6。图4-6测试OpenCv的安装我们进入到python3下importcv2后成功返回了版本号,表面我们成功安装OpenCv。4.2系统程序设计本系统将程序分成了各个部分进行了整合,主要包括图像识别模块设计、分拣模块的程序设计、传送带传动模块设计、分配仓库仓库模块,将这个模块进行了分块化的处理,大大便利了后期的维护与更新。4.2.1分拣模块的程序设计通过红外传感器与机械臂的配合来组成分拣模块,红外传感器负责检测货架上是否还有货物,若有货物即发送信号,使得机械臂有下一步操作,若没有货物机械臂也将停止活动。机械臂的抓取速度是根据PWM占空比来调整,这样能够准确控制抓取的速度。分拣模块的程序设计活动图如下图4-7。图4-7分拣模块的程序设计活动图分拣模块核心代码如下。pwm.setServoPulse(0,2900)time.sleep(2)pwm.setServoPulse(1,3400)time.sleep(2)pwm.setServoPulse(0,4700)time.sleep(2)pwm.setServoPulse(1,1800)ime.sleep(2)4.2.2传送带传动模块设计传送带传动模块是由SG90舵机来进行传送的,用舵机的转动带动传输带的运转从而实现对货物的输送,输送至摄像区域进行操作。传送带传动模块的活动图如下图4-8。图4-8传送带传动模块的设计活动图4.2.3图像识别模块设计通过我们的程序启动相机模块,使得摄像内容能在屏幕中显示,在之前搭建的OpenCV的视觉库中完成对货物上二维码的识别以及提取其中的信息内容,最后通过判断其信息后进行传输。图像识别模块设计活动图如下图4-9。图4-9图像识别模块设计活动图图像识别模块的核心代码如下。cap=cv2.VideoCapture(0)cap.set(3,480)cap.set(4,360)img1=open('/home/pi/image.jpg','rb')img1=img1.read()res=requests.post(url,params=params,data=img1,headers=headers)print(res.status_code)print(res.content)l.append(barcodeData)CurTime=datetime.datetime.now()payload={'datastreams':[{"id":"cpu","datapoints":[{"at":CurTime.isoformat(),"value":barcodeData}]}]}print("当前时间为:%s"%CurTime.isoformat())
4.2.4分仓模块设计通过图像识别模块提取的信息,根据识别信息中的类别来进行对于分仓的分类操作,分类是通过舵机转动的不同角度来实现的,从而分配到不同的仓库中完成最后的分拣作业。设置了45度、90度、135度,分别对应了自定义的食物仓库、日常用品仓库、和其他仓库。具体分仓模块的设计活动图如图4-10。图4-10分仓模块的设计活动图4.3OneNet的应用OneNet是由中国移动打造的PaaS物联网开放平台。平台帮助开发者实现设备接入与连接,提供综合性的物联网解决方案,能够实现五六万设备的数据获取,数据储存,数据展现。首先我们先打开OneNet平台的官方网址,注册账号,进入到控制台页面,选择到HTTP协议产品进行创建产品,输入产品名称,和产品类别等信息进行创建。创建后系统就会自动分配对应的设备ID,连接设备的APIKey,客户端会通过APIkey来上传到指定设备。Onnet支持数据上传格式为JSON数据格式,下载也是JSON格式的数据。4.3.1OneNet的数据传递首先我们在产品页面中创建数据流,为了客户端上传数据点或数据流准备,我们需要指定其相应的名字,如名称、温度等等。代码如图4-11所示。图4-11测试OneNet数据获取4.4微信小程序设计最后我们使用微信小程序作为货物分拣系统的客户端,微信小程序是人们日常中常常会用到的应用,作为客户端十分的便利功能也十分强大。下面是我微信小程序整体的设计页面图4-12。总共设计了6个子页面,分别是二维码生成页面、扫描查询页面、历史记录页面、实时监控页面和控制速度页面。图4-12小程序整体的设计页面4.4.1获取OneNet数据由于我们的设备是通过HTTP协议连接到OneNet平台,微信小程序获取OneNet数据需要得到产品的APIKey和设备ID,例如我们需要获取数据流中的货物名称name,我们需要在客户端发送API请求,即可获取到OneNet中存在的数据。4.4.2二维码生成页面二维码生成页面可以根据用户自定义的内容,快速一键生成静态的二维码,用户可以点击二维码的图片进行下载图片保存。二维码生成页面图如下图4-13。图4-13小程序端二维码生成页面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阜阳话考试题及答案
- 电厂值班考试题及答案
- 超级宇宙考试题及答案
- 罐头原料处理工岗前技能竞赛考核试卷含答案
- 衡器装配调试工操作评估竞赛考核试卷含答案
- 核物探工安全培训评优考核试卷含答案
- 人才测评师岗前创新应用考核试卷含答案
- 绿化造园工安全行为知识考核试卷含答案
- 电子绝缘材料上胶工风险评估与管理强化考核试卷含答案
- 草坪检测工测试验证知识考核试卷含答案
- 清华大学教师教学档案袋制度
- 公租房完整租赁合同范本
- 东南大学附属中大医院2026年招聘备考题库及答案详解参考
- 2025新疆阿瓦提县招聘警务辅助人员120人参考笔试题库及答案解析
- 贵州国企招聘:2025贵州盐业(集团)有限责任公司贵阳分公司招聘考试题库附答案
- 2025-2026学年秋季学期教学副校长工作述职报告
- GB/T 3098.5-2025紧固件机械性能第5部分:自攻螺钉
- 2026年服装电商直播转化技巧
- 新竞争环境下的企业发展战略(培训讲座课件PPT)
- 电力拖动自动控制系统-运动控制系统(第5版)习题答案
- SF6气体绝缘全封闭组合电器(GIS)61课件
评论
0/150
提交评论