茄子采摘机器人颜色识别系统的研究.pdf
www ele169 com 21 实验研究 0 引言 在日常生活中 茄子是我们餐桌上经常食用的蔬菜 茄 子营养极其丰富 而且还含有多种矿物质和维生素 对于身 体健康有极高的功效和作用 长期食用茄子对胃癌的治疗 抗衰老 降低胆固醇和保护心血管等具有很好的效果 茄子 在全世界都有广泛的种植 亚洲 非洲 地中海沿岸 欧洲 中南部 中美洲等地均种植 但是就目前为止我国茄子的栽 种面积不仅占据世界第一 产量也是遥遥领先 是很重要的 茄子出口大国 但我国人口的老龄化越来越严重 农业劳动 力不断减少 而目前如此大量的茄子采摘还是手工采摘 耗 时又耗力 为了降低成本 减轻劳动量 提高效率 我们有 必要提高农业机械自动化 研究茄子采摘机器人代替人工采 摘 近年来很多人在研究果蔬采摘机器人细节和整体方面提 出了很多有参考价值的方案 推动我国农业自动化有了很大 的突破 哈尔滨商业大学的王维强研究了自然环境下茄子采 摘机器人目标识别方法 与传统的识别方法相比 准确率有 了很大的提高 1 山东农业大学王思玉等人对于典型果蔬采 摘机器人研究现状和趋势做出分析 2 南京农业大学李国利 对多末端苹果采摘机器人进行设计与研究 设计了杯状和筒 状结构末端执行器 能够存储少量果实 满足连续采摘作业 要求 3 华南理工大学张勤等人提出了基于 RGB D 信息融 合和目标检测的番茄串采摘点识别定位的方法 该方法可在 复杂近色背景下 实现番茄串采摘点识别定位 4 赵文峰等 人提出了集成多执行器采收机器人的设想 认为集成多执行 器采收机器人适合我国温室番茄单果采收 5 冯硕 李旗结 合计算机视觉 嵌入式控制系统和卷积神经网络算法 设计 了一套奇异果采摘机器人机械臂控制系统 能够实现目标果 实的立体定位和精准采摘 6 龙洁花等人研究了改进 Mask R CNN的温室环境下不同成熟度番茄果实分割的方法 7 王雯等人研究了XELA3D触觉传感器感知猕猴桃成熟度的 方法 8 为此本文也尝试设计了茄子采摘机器人的识别系统 该系统尝试采用颜色传感器识别紫色的茄子 1 设计原理 本设计采用的是TCS34725颜色传感器 其是一款成 本偏低 性价比偏高的RGB全彩颜色识别传感器 带有4 个高亮LED进行补光 保证了传感器在弱光的环境下仍然 可以使用 TCS34725光数字转换器包含一个3 4的光电 二极管阵列 光感应器件可以更高效地接触环境光 内部 含有 AD 转换器 颜色传感器以白光照射物体 物体反射的 光被光电二极管吸收 产生光电效应 产生光电电流 4 个 积分 AD 转换器可以将放大的光电流同时转换成 16 位数字 值 转换周期完成后 得到原始结果并传送到数据寄存器 再根据此传感器的RGBC寄存器地址将数据读取出来 并 且此传感器具有双缓冲的功能 从而提高了得到数据的完整 程度 若获取的颜色值与实际的有差别 可以通过对积分时 间和增益倍数两个参数的调节 得到相对准确的值 据此 我们可以得到茄子成熟时紫色的值的范围为 13 12 13 16 15 15 茄子未成熟时青色的值的为 48 50 30 62 62 40 记下两个颜色的值RGB值 通过当前数值 比对来判断是否为紫色 选出成熟度达标的果实 2 硬件控制电路设计 硬件控制系统的电路主要有以下几部分组成 主控模块 STM32 颜色采集模块 按键模块 液晶显示模块 电源 模块组成 系统总体结构如图 1 所示 图 1 系统总体结构图 茄子采摘机器人颜色识别系统的研究 侯义锋 1 2 高文秀 2 1 广西机器视觉与智能控制重点实验室 广西梧州 543002 2 梧州学院 广西梧州 543002 基金项目 国家级创新创业项目 202111354125 广西高校中青年教师基础能力提升项目 KY2015YB292 摘要 本文介绍了一种茄子采摘机器的颜色识别系统 茄子能否准确快速的识别是茄子采摘机器人的关键 本文尝试通过颜色传感器在茄 子种植大棚中通过颜色的对比搜寻识别茄子 经过反复实验 验证该系统具有一定的识别能力 为茄子采摘机器人的研究做了尝试 有一 定价值和研究意义 关键词 茄子 颜色采集 电机驱动 DOI 10 16589 11 3571 tn 2022 20 005 22 电子制作 2022 年 10 月 实验研究 2 1 颜色采集模块 本模块采用的是以TCS34725 彩色光数字转换器为核心 的颜色传感器 该传感不仅灵敏度高 而且动态范围也宽 此芯片工作电压 逻辑电压都为 3 3 5V I 2 C 快速模式兼容 接口 与单片机进行I 2 C通信 不需要占用太多的引脚资源 如下原理图中的右侧图是双电平转换电路 保证了通信的 正常进行 SCL 是 I 2 C 的时钟输入和单片机的 PB10 连接 SDA是I 2 C 数据输入和单片机的 PB11 连接 2 2 单片机 从难度和成本上考虑 此系统采用STM32F103单片机 该单片机的片内外设非常丰富 此芯片有32K 128K字节 的 FLASH 存储器 6K 20K 字节的 SRAM 且存储器具有 多重自举功能 内嵌 4 16MHz 高速晶体振荡器 使用外部 32kHz 晶体的 RTC 振荡器 2 个 12 位 A D 转换器具有双采样和保 持的功能 有 SWD 串行线调试 JIAG口 串行外设接口SPI 有 灵活的 7 通道 DMA 控制器可以管 理存储器 设备到存储器和存储 器到设备的数据传输 无须CPU 任何干预 多达 80 个快速 I O 端 口 7 个定时器 3 个同步 16 位 定时器 每个定时器有4个用于 输入 输出比较PWM或脉冲计数的通道 1个16位6通 道方便于电机控制的 PWM 高级定时器 具有死区控制和快 速刹车的功能 1 个独立看门狗 1 个窗口性看门狗 并且 内含9个丰富的通信接口 综上所述该单片机的性价比相 对比较高 该单片机完全可以满足该系统的核心控制 2 3 液晶显示模块 本模块我们选择的是 OLED128 64 白色液晶屏 该屏 幕相比于一些其他的屏幕不仅具有的分辨率比较高 而且在 单位面积拥有较多的像素点 超广可视角度大于160度 在显示屏中可视角度属于最大的一种屏幕 并且功耗也极 低 一般情况只有0 06W 最重要的是具有宽供电范围 直接兼容常用的3 3V和5V的供电系统 所以无需接其他 的电压转换电路 直接与单片机进行连接就可以 STM32F103C8T6 U1 nullnull null nullnullnullnullnullnullnullnull null nullnullnullnullnullnullnull null nullnullnullnullnullnullnull null nullnullnullnullnull null nullnullnullnullnullnull null nullnull null nullnull null null null null nullnullnullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnullnull null null null null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnullnull null null null null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnull null nullnullnull null nullnull null nullnull null nullnullnull null null null null 0 1u C2 0 1u C3 8M U4GND PD0 PD1 NRST PA0 PA1 PA2 PA4 PA5 PA6 PA7 PA3 PB0 PB1 BOOT1 PA13 PA8 PA9 PA10 PA11 PA12 PB3 PB4 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PA15 PA14 1k R1 0 1u C4 KEY1 null null 3V3 NRST GND VDDA GND 3V3 0 1u C5 GND GND 0 1u C6 3V3 GND P1 null null null null null null 3v3 5V 10k R2 10k R3 GND GND PC13 PC14 PC15 BOOT0 B OO T1 OLED H1 null null null null null null G ND 3 v3 P B5 P B4 P B3 P A 1 5 H2 null null null null null null null null null null null null null null null H3 null null null null null null null null null null null null null null null 5V GND PB6 PB7 PB8 PB9 PC13 PC14 PC15 PA0 PA1 PA3 PA2 GND 3V3 3V3 GND PA12 PA11 PA8 PA7 PA6 PB0 PB1 PB10 PB11 PB12 PB13 PB14 PB15 晶振电路 复位电路 电源电路 图 3 最小系统电路图 TCS34725FNU3 null null nullnull null nullnull null null null nullnull null null null 0 1u C1 R1 10k R2 10k R3 10k R4 VCC GND 3 3v 5v Q1 nullnull null Q2 nullnull null SDA 3V SCL 3V SCL 5V SCL 3V PB10 SDA 3V PB11 GND INT 5V SDA 5V 图 2 TCS34725 颜色传感器电路图 www ele169 com 23 实验研究 3 软件设计 颜色识别部分采用的是 TCS34725 颜色传感器 使用 C 语言编程 通过颜色传感器对茄子的颜色进行采集 将采集 到的数据发送给单片机进行识别 颜色识别的程序首先是初 始化 对复位和时钟控制器 寄存器进行配置 开启外部高 速时钟 半周期访问使能 预取值缓存使能 外部高速时钟 为 PLL 时钟输入源 为 9 倍频 使能 PLL 时钟 PLL 时钟 作为系统时钟 对 HCLK 时钟配置为一分频 使 AHB 时钟 等于系统时钟 对PLCK1时钟配置为二分频 使APB1时 钟等于 HCLK AHB 时钟的一半 对 PCLK2 时钟配置为一 分频 使 APB2 时钟等于 HCLK AHB 时钟 然后对 GPIO 口进行初始化配置 对 GPIOA GPIOB GPIOC 和复位端 口进行使能 选用与 LED 灯连接的 PA3 端口 模式配置为 推挽输出 频率设置为10MHz LED灯上电的初始模式为 点亮 对TCS34725进行初始化配置 在其初始化函数中 首先对I 2 C进行初始化 对I 2 C 与 TCS34725 连接的 GPIO 口进行配置 PB10 外接 I 2 C 的时钟 SCL 总线 PB11 外接 I 2 C的数据传输 SDA 总线 IO口模式设置为通用推挽输出 频率设置为50MHz 引脚初始状态为高电平有效 通过 TCS34725的ID来判断TCS34725与单片机是否连接成功 连接成功将显示 Initial OK 的字样 连接失败后将进行 再次连接 若连接成功之后将会对TCS35725颜色传感器 的时间积分和增益进行设置 时间积分和增益数值的设置将 会影响获取数值的真实性 对TCS34725颜色传感器进行 使能 对白平衡进行调整 有利于减小颜色的偏差 设置之 前测得的紫色和青色茄子的阈值范围 对串口进行初始化配 置 波特率设置为 115200Bd 字长为 8 位数据格式 一个 停止位 无奇偶校验位 无硬件数据流控制 具有收发模式 初始化串口 开启串口中断 使能串口 对定时器进行初始 化配置 配置定时器的自动重装载值为 999 时钟预分频数 为 71 设置定时器的计数模式为向上计数 允许定时器进 行更新中断 对定时器进行使能 开启中断定时 若定时时 间 1 达到 10msLED 指示灯亮 定时时间 1 进行清零 若定 时时间2达到50ms时 进行R G B颜色值的读取和时 间的清零 在读取过程中 为了防止读取的数据由于某些因 素的影响而出现错误 所以 R G B 颜色值必须要连续进 行两次的读取 然后将两次读取的数值进行比对 如果两次 读取的数据不一致 则证明读取的数据受到干扰 数据不准 确 不能作为有效数据处理 之后在重新进行读取数据 直 到相邻2次读取的数据一致的时候 则说明数据具有准确性 将读取的 R G B 值输出并进行颜色判断 通过对读取的 颜色的值和设置的阈值进行比对 如果读取的值满足紫色条 件则判断为紫色 如果在青色范围则判断为青色 流程图如 图 4 所示 否 是 否 是 开 始 调 白 平 衡 调 白 平 衡 设 置 颜 色 阈 值 调 白 平 衡 设 置 定 时 器 nullnullnullnull初 始 化 和 串 行 传 输 初 始 化 开 中 断 开 始 定 时 判 断 两 次 读 数 是 否 一 致 输 出 null null null 的 值 判 断 是 否 是 紫 色 结 束 青 色 nullnullnullnullnullnullnullnull 初 始 化 连 续 读 取 两 次 颜 色 null null null 值 图 4 系统软件总体流程图 4 结论 通过该系统对茄子的颜色进行测试 测试时要保证测试 环境的明亮 表1为测试结果 其中数据是经过100次测 试求平均值 表1 茄子检测颜色误差表 实际颜色 测试次数 正确次数 浅紫色 100 96 深紫色 100 98 深青色 100 94 浅青色 100 90 24 电子制作 2022 年 10 月 实验研究 从表 1 的结果分析 可以得到以下的结论 识别出紫色整体的结果比识别出青色的效果要好 识别 出紫色的误差相比青色要小一些 因此可以证实在此背景下 识别出紫色的茄子要比识别出青色的茄子更精准 误差分析 1 在光照强度 和光照时间不同的程度下 茄皮表 面含有的花青素不同 所以导致了识别错误 2 背景颜色带来的误差 因为茄子的藤蔓是绿色的 所以和青色的茄子没有形成强烈而有鲜明的颜色对比 整体 来说再识别青色的茄子的时候出错率较高 不太适合识别青 色的茄子 3 TCS34725颜色传感器的精确度存在一定的误差 因为获取的颜色的准确值是可以通过调节积分时间和增益 倍数两个参数进行改变的 但是实际在采摘识别的时候目标 物的颜色有的和我们之前设定的阈值略微存在点误差 导致 误差的存在 总之通过的数据分析表格 会发现虽然在识别的准确程 度上存在略微的误差 但是整体来说效果还是比较理想的 所以此茄子采摘机适合对紫色茄子的识别 为紫色茄子的采 摘机器人提供了能识别茄子的简单方法 参考文献 1 王维强 付斌 自然环境下茄子采摘机器人目标识别方法 J 安徽农业科学 2019 47 18 224 227 2 王思玉 牛成强 李钊 史文杰 樊桂菊 典型果蔬采摘机器 人 J 新疆农机化 2021 6 14 21 3 李国利 多末端苹果采摘机器人的设计与研究 D 江苏 南 京农业大学 2017 4 张勤 陈建敏 李彬 徐灿 基于RGB D信息融合和 目标检测的番茄串采摘点识别定位方法 J 农业工程学 报 2021 37 18 143 152 5 赵文峰 高飞 魏福奎 吴乃刚 刘燕敏 胡修慧 温室番茄 单果采收机器人探讨 J 河北农机 2021 11 12 18 19 6 冯硕 李旗 奇异果采摘机器人机械臂控制系统研究 J 农机 化研究 2022 10 02 25 29 7 龙洁花 赵春江 林森 郭文忠 文朝武 张宇 改进Mask R CNN 的温室环境下不同成熟度番茄果实分割方法 J 农业工 程学报 2021 37 18 100 108 8 王雯 张叶青 张静 欧月 李梦茹 基于采摘机器人触觉的 猕猴桃成熟度感知方法 J 科技与创新 2019 18 59 65 上接第 56 页 2 秦晓凤 浅谈Android应用软件的发展思路 J 通讯世 界 2016 15 3 张利国 代闻 龚海平 Android 移动开放案例详解 M 北京 人民邮电出版社 2010 4 陈立伟 张克非 黎秀红 精通 JAVA 手机游戏与应用程序设 计 M 北京 中国青年出版社 2005 5 E2Ecloud 工作室 深入浅出 Google Android M 北京 人民 邮电出版社 2009 6 熊刚 基于 Android 的智能手机的设计与实现 D 武汉 计 算机应用技术系 2010 7 余成锋 李代平 毛永华 Android3 0 内存管理机制分析 M 计算机应用与软件 2013 8 杨云君 Android 的设计与实现 M 北京 机械工业出版社 2013 9 明日科技 Android从入门到精通 M 清华大学出版社 2012 9 10 孙宏明 Android 手机程序设计入门 运用到精通 M 中国 水利水电出版社 2012 3 11 郭志宏 Android 应用开发详解 M 电子工业出版社 2010 12 杨丰盛 Android 应用开发揭秘 M 机械工业出版社 2010 13 姚昱旻 刘卫国 Android 的架构与应用开发研究 J 计算 机系统应用 2008 24 11 3 7 14 张孝祥 JAVA邮件开发详解 M 北京 电子工业出版 社 2007 10 300 15 杨文志 Google Android 程序设计指南 M 北京 电子工 业出版社 2009 10 100 16 韩超 梁泉著 Android系统原理及开发要点详解 M 北京 电子工业出版社 2010 50 150 17 周元兴 Google入门与实例教程 M 北京 电子工业出版社 2007 30 80 18 苗忠良 Android 多媒体编程从初学到精通 M 北京 电子 工业出版社 2011 19 林城 Google Android 2 x 应用开发实践 M 北京 清华大 学出版社 2011 20 王向辉 张国印 Android 应用程序开发 M 北京 清华大 学出版社 2010