APP下载

基于STM32单片机的全自动采摘分类一体机

2019-05-10林志刚高怀栋莆田学院信息工程学院指导老师宋娜

数码世界 2019年4期
关键词:柑橘阈值摄像头

林志刚 高怀栋 莆田学院信息工程学院 指导老师:宋娜

关键字:摄像头识别 机械臂抓取 分类采摘

前言

柑橘是我国生产的主要果品,柑橘类属芸香科柑橘亚科柑橘族的植物,其年产量是非常可观的,柑橘因种植地的不同,叫法也不一样,在古代有南橘北枳一说。目前,柑橘和枳收获作业主要还是靠人工完成,但柑橘树干高低不一,采摘危险性高、作业环境差,分类运输成本高,既耗时又费力,给果农带来了很多麻烦。”因此,基于这样的现状设计了一款水果采摘装置,解决了大量的柑橘采摘问题。

1 智能采摘机的创作与创新

柑橘全自动采摘一体机,它能够通过履带式自由行走,在果园内通过摄像头识别果树上形状标识符,使它能够识别果树位置,从而到达果树的可采摘范围之内。

它能够通过摄像头进行颜色预识别,分辨出成熟柑橘,控制机械臂,移动摄像头位置,使柑橘处于摄像头成像平面的正中心,通过末端机械臂抓取、剪切、最终实现摘取柑橘。柑橘采摘完后抓取装置松开,柑橘掉入到软性传送装置,连接到果树分类装置。软性传送可以保证在整个采摘过程中不会造成磕碰损伤柑橘。柑橘到达分类处,经过称重传感器,对柑橘的大小进行识别,识别数据传输到主控芯片上,通过预先设计的柑橘重量的数据对柑橘进行分类,并且控制舵机将柑橘拨到不同的框中存放。当篮框内的柑橘到达一定数量,红外传感器可以通过检测遮挡物判断框柑橘已满。采摘车可以返回到起点处,人工卸下柑橘并继续进行采摘过程,或者通过蜂鸣器报警提醒。

以往设计往往采用大型车体结构,对水果的采摘采用的是卷入式设备,就是把果实与树叶枝干通通卷进来,在进行过滤筛分离,此种方式无法实现果实的二次采摘,而且对果树也会造成伤害。本设计可以做到识别成熟果实,且降低对柑橘的损伤程度。

2 设计方案

本设计由三大部分组成:摄像头果实图像识别抓取剪切、车身行走结构、果实分类传送装置。设计思路是首先通过OpenMV摄像头识别到果实然后用机械臂使剪钳准确到达果实所在位置实现抓取,后通过传输装置收集果实。在整个过程中我们主要使用了摄像头模块,机械臂模块,主控芯片,电机驱动等几大模块。

2.1 摄像头模块

摄像头使用OpenMV模块,这是一款低价、可扩展、支持Python的及其视觉模块。本项目主要使用这款摄像头进行图像的采集和处理,这款摄像头有自己专用的IDE,这款IDE具有自动提示,代码高亮且有一个图像窗口可以直接看到摄像头的图像有利于提高编程效率,下面就具体实现方法进行说明。

对采摘果树进行彩色图像采集,提取彩色图像的RGB三个单通道灰度图像,根据水果的颜色分量特征,对选取的单通道图像进行图像预处理。获取水果目标在坐标系的位置,与图像的中心平面像素位置取差值,进而将像素差值返回到主控芯片上,主控芯片控制机械臂在与成像平面平行的平面内移动Δx和Δy,使目标位于成像平面中心。

2.2 机械臂模块

机械臂是整个果实摘取结构的关键,通过机械臂实现x,y,z三轴的自由联动,可以配合摄像头识别系统进实现柑橘的准确抓取。机械臂是具有六个舵机的平行四边形机械臂,每个舵机的转动范围是500-2500,换算成角度大约是0-180度。用机械臂伸到相应的识别位置并通过剪钳抓取,机械臂的伸缩角度范围是0到180,满足在采摘时所需要的所有角度范围。

2.4 主控芯片

采用的是STM32F103C8这种类型的芯片,这是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,相比于其他单片机,它的优点是具有主流的cortex内核,保证了它的高性能,其丰富的外设、串口、定时器等满足采摘机的工作需求。

2.5 电机驱动模块

电机驱动模块使用东芝半导体公司生产的TB6612FNG驱动模块,这款驱动是双驱动,可以驱动两个电机。该模块相对于传统的L298N效率上提高很多,体积上也有大幅度的减小,在额定范围内,芯片基本不发热,这款驱动具有四种电机控制模式:制动/停止/正转/反转,满足小车行进的基本需求,而且PWM支持频率可以达到100kHz,也让小车的运动更加灵活有力。驱动电路如图1所示。

图1 驱动电路

3 系统软件设计

软件部分主要由物体颜色识别,形状分析,机械臂控制,电机控制等部分组成。

3.1 图像处理部分

图像处理使用Openmv。图像的识别包括图像颜色识别与图像形状识别。在颜色识别方面使用thresholds()函数设置颜色阈值,颜色阈值选取通过OpenMV的IDE进行图像二值化,可以得到成熟柑橘的LAB阈值为(51,79,7,-60,61,14),对不同成熟期的柑橘进行图像二值化可以得到不同的LAB阈值,通过修改thresholds()函数的阈值可以采摘不同成熟期的柑橘。然后通过find_blobs()函数来查找此阈值的图像,并使用roi标记图像区域,然后返回图像上对应的x,y值可以确定柑橘在成像面上的位置。形状识别方面使用area()函数识别柑橘形状的区域,使用img.get_statistics()函数进行像素的颜色统计,当区域中的众数在所设置的阈值范围,就说明这个区域为需要寻找的物体。

3.2 机械臂控制

机械臂作为柑橘抓取的主要部件,需要做到的就是精确的寻找到柑橘的位置。在图像处理上,由Openmv识别到的柑橘在图像上的坐标位置,与图像中心点的差值通过串口返回到STM32主控芯片上,主控芯片控制机械臂各个关节的舵机旋转角度弥补差值,从而将柑橘图像置于成像中心点,此时机械臂末端分离式剪切装置将柑橘剪下落入传送带进入篮筐。具体程序流程图如图2所示。

图2 程序流程图

4 结束语

基于以上的分析以及本项目的模拟实践可知,这款智能采摘装备基本能够满足生活中果实采摘的需求,使用STM32主控,加大了系统的可拓展性,日后如果需要外加功能,如添加WIFI控制小车行进,自动跟踪系统了解小车所处位置,皆可以在此基础上改造完成,总的来说这是一款稳定实用,可拓展性强的智能采摘小车。

猜你喜欢

柑橘阈值摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
柑橘家族
柑橘的秘密
阿尔及利亚将实现柑橘自给自足的目标
印度柑橘产业不景气
辽宁强对流天气物理量阈值探索统计分析