通过颜色传感器控制机械臂抓物体

目录

1 绪论

2整体设计方案

2.1 系统的介绍

2.2 抓取模块

2.2.1 机械臂的定义

2.2.2 机械臂的分类

2.2.3 机械臂的选用

2.3 颜色识别模块

2.3.1 颜色传感器识别原理

2.3.2 TCS3200简介

2.4 整体控制方案

3 颜色识别抓取系统的硬件设计

3.1 单片机选型及参数

3.2 系统电路设计

3.2.1 电源电路

3.2.2 单片机最小系统

4 颜色识别抓取系统软件设计

4.1 软件开发环境

4.2 软件控制方案

5 成品

6 作品应用价值

1 绪论

近年来,随着农业产业机构的调整,林果生产已经成为很多地区经济发展和农民增收的支柱产业,随着种植面积的不断扩大,果园规模化发展和规范化管理的要求日益提高,从而果园机械化日益重要。果园收获机械的发展,可以减轻果农的劳动强度,提高生产效率,节约劳动成本,提高经济效益。由于我国果园作业机械研究起步较晚,基础相对较差,因此,果园作业机械化程度和欧美等国家还是存在差距。所以,针对我国各地林果生产特点研究相应的作业机械,对林果产业的发展有重要意义。

我国是世界第一大水果生产国,也是世界第一大水果消费国。水果种植业的迅速发展提升了果园机械的市场需求。采摘作业所用劳动力占整个生产过程所用劳动力的33%~50%,目前我国的水果采摘绝大部分还是以人工采摘为主。采摘作业比较复杂,季节性很强,若使用人工采摘,不仅效率低、劳动量大,而且容易造成果实的损伤,如果人手不够不能及时采摘还会导致经济上的损失。使用采摘机械不仅提高采摘效率,而且降低了损伤率,节省了人工成本,提高了果农的经济效益,因此提高采摘作业机械化程度有重要的意义。


2整体设计方案

2.1 系统的介绍

本系统主要由两部分组成。分别是由机械臂组成的抓取模块,由TCS3200组成的颜色识别模块。

作品采取以球面坐标系为基础,来操控机械臂的方案,通过改变水平面转过的角度,垂直面转过的角度,和机械臂伸长的长度来控制机械手在三维空间中的移动。

作品以中心为基准向两边分别展开约为60度的搜索圈,当它发现物体后,会分辨物块颜色并且对当前位置进行记录,而后对物块进行抓捕,翻转和放置。不同颜色的物块会被放置到不同区域。实现分类管理。

目前机械臂的有效扫描半径为10cm至20cm,在这个区间内,机械臂能完成其应有功能。

2.2 抓取模块

由TCS3200返回的频率值,判断是继续移动还是进行抓取并放入指定位置。

2.2.1 机械臂的定义

机械手臂是机械人技术领域中得到最广泛实际应用的自动化机械装置,尽管它们的形态各有不同,但它们都有一个共同的特点,就是能够接受指令,精确地定位到三维(或二维)空间上的某一点进行作业。

如下图为常见的六自由度机械手臂。他有X移动,Y移动,Z移动,X转动,Y转动,Z转动六个自由度组成。

图2-1 常见的六自由度机械手臂

结构形式:

       水平多关节机械手臂一般有三个主自由度,Z1转动,Z2转动,Z移动。通过在执行终端加装X转动,Y转动可以到达空间内的任何坐标点。

直角坐标系机械手臂有三个主自由度。X移动,Y移动,Z移动组成,通过在执行终端加装X转动,Y转动,Z转动可以到达空间内的任何坐标点。

2.2.2 机械臂的分类

机械手臂根据结构形式的不同分为多关节机械手臂,直角坐标系机械手臂,球坐标系机械手臂,极坐标机械手臂,柱坐标机械手臂等。

图2-2 各类机械臂结构

2.2.3 机械臂的选用

(1)直角坐标式,手臂在直角坐标系的三个坐标轴方向作直线移动,即手臂的前后伸缩、上下升降和左右移动。这种坐标形式占据空间大而工作范围却相对较小、惯性大,它适用于工作位置成直线排列的情况。

(2)圆柱坐标式,手臂作前后伸缩、上下升降和在水平面内摆的动作。与直角坐标式相比,所占空间较小而工作范围较大,但由于机构结构的关系,高度方向上的最低位置受到限制,所以不能抓取地面上的物体,惯性也比较大。

(3)球坐标式,手臂作前后伸缩、上下俯仰和左右摆动的动作。其最大的特点是以简单的机构得到较大的工作范围,并有可能抓取地面上的物体。

图2-3 各类机械臂坐标式

2.3 颜色识别模块

由机械臂带动TCS3200移动,使TCS3200能移动到与物块大约1cm处,并由物块颜色返回一个频率值给单片机。

2.3.1 颜色传感器识别原理

三基色原理:适当选取三种基色(红,绿,蓝),将它们按不同比例进行合成,就可以引起不同的颜色感觉,合成彩色光的亮度由三个基色的亮度之和决定,色度由三基色分量的比例决定,三基色彼此独立,任一种基色不能由其他两种颜色配出。

识别颜色原理:由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同时,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到TCS3200传感器上的光的颜色。

2.3.2 TCS3200简介

TCS3200把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器。

TCS3200采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管,这些二极管分为四种类型,其16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器,其余16个不带有任何滤波器,可以透过全部的光信息,这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。

2.4 整体控制方案

通过控制机械臂的摆动来带动颜色传感器进行扫描,当颜色传感器看到颜色时,机械臂会伸长其长度以确认颜色,在确定其颜色后,机械臂执行抓取放置程序,不同颜色的物块会被放置到不同的区域,从而实现对不同颜色物块的分类。

图2-4 整体控制方案


3 颜色识别抓取系统的硬件设计

3.1 单片机选型及参数

本系统的核心元件是单片机。在选择单片机时。选择了其内部容量可以达到本设计要求大容量芯片的单片机MSP430。MSP430管脚图如图3-1所示。

图 3-1 MSP430管脚图

                                          

3.2 系统电路设计

3.2.1 电源电路

由于本系统使用的处理器为MSP430。所以本系统需要为其提供3V供电。本系统使用专用5V电源接口供电。在接口中使用电源管理芯片来将系统供电分别分成5V和3V供电。如图3-2所示。

图 3-2 电源电路    

                     

3.2.2 单片机最小系统MSP430单片机需要有单片机最小系统提供其运行的根本要求。其中包括电源供电,防止程序崩溃的复位系统和提供其运行时钟的晶振电路。

单片机最小系统如图3-3所示。

图3-3 单片机最小系统

在系统需要重新开始时和系统发生错误时,单片机的复位功能提供了解决的办法。其连接方法是给其固定的低电平。当需要复位时使用高电平进行复位。复位电路在电子设计中经常被使用。同时各种设备的复位方法也有很多。单片机的复位方法比如看门狗Watch Dog、软件复位等等。

晶体振荡器经常被使用来提供时钟信号或者称之为晶振。门电路的正常工作的首要因素就是在系统中要具有晶振提供时钟震荡,单片机只有在拥有晶振信号的情况下才能正常工作。晶振的作用非常大,例如在程序中需要使用晶振来确定某个程序执行的时间。在某些情况之下,可以知道某指令需要几个周期来执行,执行一个程序或者一个函数具体所需要花费的精准时间可以通过晶振参数可以知道。通常晶振也会被用在一些电脑器材当中。晶振的时钟信号经过倍频器可以将频率提高到很高的情况。然后供给一些要求频率高的器件使用。当然,高频率的时钟也可以通过分频器进行降频。并且同一个时钟信号可以降频成多个时钟源,供给多个外接设备使用。


4 颜色识别抓取系统软件设计

4.1 软件开发环境

次毕业设计运用的是C语言。在MSP430单片机中,编写相关的程序允许使用C语言和汇编语言。但是汇编语言有其独有的特点,那就是不好读懂不方便理解。所以本系统不使用汇编语言。C语言比较汇编语言,其优势最明显的是本系统可以进行模块化编程。各个不同的功能能够完美的封装成不同的函数。保证每个函数只完成一件事。通过多模块的搭配使用最终完成设计。C语言和其他高级语言相比,其优势在于高级语言如果要运行在电脑上,首先要安装运行环境,例如Java我们就需要安装java的 jdk。通常情况之下,C语言可以在任何系统中直接运行。而且C语言同时也可以运行在任何芯片上。在本设计中使用的MSP430单片机,无法在其上面运行系统。所以无法搭建供Java等高级语言所运行的环境。综合考虑,本设计使用C语言完成软件部分代码的编写。

4.2 软件控制方案

程序记过初始化之后,颜色传感器观察颜色分为三部分,机械臂先探头若看到绿色就直接抓取,若未发现绿色,则继续扫视一周看到就抓去,一直未抓就一直扫,知道抓取到物块,抓取到后放到相应位置。  


5 成品

图5-1 成品图


6 作品应用价值

作品可应用于蔬果的采摘,以苹果为例,未成熟的苹果呈现为青色,而成熟的则为红色,识色机械臂可以很好的分辨成熟与未成熟的苹果,采摘成熟的,而“放过”未成熟的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11系统重装?正版系统Windows11安装重启!保姆级重装系统攻略!

随着科技的不断发展,Windows 11系统已经逐渐成为了众多电脑用户的新选择。然而,当当电脑出现严重故障、受到病毒攻击、软件冲突、系统升级失败、硬件更换或升级、系统性能下降或个性化需求等情况时,重装系统可能是一个有效的解决方案。本文将…

构建网络图 (JavaScript)

前序:在工作中难免有一些千奇百怪的需求,如果你遇到构建网络图,或者学习应对未来,请看这边文章,本文以代码为主。 网络图是数据可视化中实用而有效的工具,特别适用于说明复杂系统内的关系和连接。这些图表…

kaoYan-Composition

It is almost axiomatic(不证自明的、公理的) that cooperation can benefit us in many ways.First, cooperation can facilitate the communication between different people.Likewise, collaboration can offer us an opportunity to learn from eac…

mybatisplus的lambdaQuery()使用案例

一、常用 查询 // 方式一 条件是LearningLesson必须为LearningLessonServiceImpl的T LearningLesson lesson lambdaQuery().eq(LearningLesson::getUserId, userId).eq(LearningLesson::getStatus, LessonStatus.LEARNING.getValue()).orderByDesc(LearningLesson::getLates…

【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction

在 Qt 框架中,QMenu 类用于创建和管理菜单。菜单是用户界面的一部分,可以包含多个选项或动作,用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单(右键菜单)或工具栏中。 基本用法 创建菜单对象…

深入解读一下 `com.google.android.material.appbar.CollapsingToolbarLayout`

简介 在现代 Android 应用中,提供流畅且美观的用户体验是非常重要的。CollapsingToolbarLayout 是 AndroidX库中 Material Components 的一部分,它提供了一种易于实现的可折叠工具栏效果,常用于提供视觉吸引力的标题栏和动画效果。 本文将详…

已解决Writing ‘modem_a‘FAILED (remote: ‘Operation not permitted‘

今天用可视化工具FastbootEnhance线刷,没有注意到日志报错,开机后黑屏,电脑能检测到是开机状态,电源键按下有声音。 排除线刷包问题,翻看FastbootEnhance的日志,它的日志放到记事本全屏方便观看&#xff0…

项目1111

中文显示姓名列和手机号 SELECT contact_name AS 姓名, contact_phone AS 手机号 FROM 2_公司id; 使用explain测试给出的查询语句,显示走了索引查询 EXPLAIN SELECT * FROM 7_订单数量 WHERE countid LIKE e%; 统计用户订单信息,查询所有用户的下单数量…

Prometheus中添加基本身份验证功能

在Prometheus中添加基本身份验证功能,可以按照以下步骤进行: 一、生成哈希密码 首先,需要安装bcrypt工具,用于生成哈希密码。这可以通过Python的bcrypt库来完成。如果未安装,可以使用pip进行安装。 创建一个Python脚…

Android性能优化——卡顿优化

文章目录 一、从XML到屏幕上的展示造成跳帧的因素有那些发现问题定位问题定位代码 一、从XML到屏幕上的展示 数据加载阶段 数据控制阶段 数据展示阶段 xml —> view onCreat —> 解析layout.xml resume —> view —> wms ViewRootImpl UI 绘制流程 :测…

计算机网络之数据通信原理

1.通信系统的基本组成 信源:信息的发出者; 信宿:信息的接收者; 载体:信息的传送通道; 变换器:将信息变换成载体上可传输的信号; 反变换器:将载体上传输的信号变换成信…

Java中网络安全的基础知识

Java中网络安全的基础知识 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代互联网应用中,网络安全是一个至关重要的话题。随着网络攻击和数据…

Java零基础-集合:TreeSet

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

SQL基础:掌握数据查询与操作的核心技能(四)

引言:数据操作的语言艺术 在前一章节《数据库与表的基本操作》中,我们深入了解了如何创建、管理数据库和表,构建了数据存储的基础框架。本章节,我们将深入探索SQL语言,它是数据库管理系统的通用语言,用于数…

SpringBoot集成Druid数据库连接池并配置可视化界面和监控慢SQL

pom.xml <!-- Druid 数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.23</version></dependency>application.yml spring:jackson:date-…

明星周边物品交易购物系统

摘 要 随着明星文化的兴起和粉丝经济的蓬勃发展&#xff0c;明星周边产品的市场需求日益增长。明星周边物品包括各种与明星相关的商品&#xff0c;如T恤、海报、手办、签名照等&#xff0c;它们成为粉丝们表达对明星喜爱和支持的方式之一。通过“星光璀璨”来形象化地表达明星…

Flask的 preprocess_request

理解 Flask 类似框架中的 preprocess_request 方法 在 Flask 类似的 web 框架中&#xff0c;preprocess_request 方法是一个关键组件。它在请求被分派之前调用&#xff0c;用于执行一些预处理操作。让我们一步一步来理解这个方法的工作原理。 1. 方法概述 首先&#xff0c;我…

【Android面试八股文】说一说Handler的sendMessage和postDelay的区别?

文章目录 一、`sendMessage` 方法1.1 主要用法1.2 适用场景二、`postDelayed` 方法2.1 主要用法2.2 适用场景三、 区别总结3.1 区别3.2 本质上有差别吗?四、实例对比4.1 使用`sendMessage`4.2 使用`postDelayed`五、结论Handler类在Android中用于消息传递和任务调度。 sendMe…

基于Java技术的在线学习平台系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术&#xff0c;基于SpringBoot框架 工具&#xff1a;Eclipse、Navicat、M…

n次方差公式推导

1. 推导 数列求和 S a 1 a 2 ⋯ a n , 公比为 q q S a 2 a 3 ⋯ a n 1 ( 1 − q ) S a 1 − a n 1 a 1 : 1 化简 ( 1 ) ( 3 ) S 1 q ⋯ q n − 1 ( 1 − q ) S 1 − q n ( 4 ) 代入 ( 5 ) ( 1 − q ) ( 1 q ⋯ q n − 1 ) 1 − q n q : b a 代入 ( 6 )…