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

news2024/11/19 17:41:14

目录

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.coloradmin.cn/o/1867187.html

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

相关文章

第三十二篇——大数据2:大数据思维的四个层次

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 我们生活在这个时代,我们是否按照这个时代需要的思维方式去思…

SHELL/2024/6/26

1.统计家目录下.c文件的个数 #!/bin/bash count0 for filename in $(ls ~ *.c) do ((count)) done echo count$count 2.终端输入一个.sh文件,判断文件是否具有可执行权限/然后运行脚本,没有可执行权限,添加可执行权运行脚本 #!/bi…

windows USB设备驱动开发通用技术

通用串行总线 (USB) 设备通过配置、接口、备用设置和终结点来定义其功能和功能,下面提供这些概念的高级概述。 常见 USB 方案 获取用于通信的设备句柄 ,并使用检索到的句柄或对象发送数据传输。 USB 描述符检索 以获取有关设备配置的信息、接口、设置及…

C语言之进程学习

进程打开的文件列表:就是0 1 2 stdin stdout stderro等 类似于任务管理器是动态分ps是静态的 Zombie状态: 在Linux进程的状态中,僵尸进程是非常特殊的一种,它是已经结束了的进程,但是没有从进程表中删除。太多了会导…

Flutter笔记(一)- 安装和配置Flutter

一、下载Flutter 访问网址:https://docs.flutter.dev/get-started/install?hlzh-cn 根据电脑所使用的操作系统的平台进行选择。笔者电脑的操作系统为Windows,因此选择如图1-1的Windows图片: 图1-1 Flutter网站(一) …

【LangChain系列——案例分析】【基于SQL+CSV的案例分析】【持续更新中】

目录 前言一、LangChain介绍二、在SQL问答时如何更好的提示?2-1、安装2-2、SQLite 样例数据2-3、使用langchain与其进行交互2-4、查看模型提示语2-5、提供表定义和示例行2-6、将表信息插入到Prompt中去2-7、添加自然语言->SQL示例2-8、在向量数据库中查找最相关的…

springboot异常产生原因

DataIntegrityViolationException Cause: java.sql.SQLException: Field ‘id’ doesn’t have a default value org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLException: Field id doesnt have a default …

qt开发-15_QFile

QFile 类提供了读取和写入文件的接口。在嵌入式里如果需要读写文件,最简单的方法就是 用 Qfile。 QFile 是一个读写文本、二进制文件和资源的 I/O 设备。QFile 可以自己使用,也可以更方 便地与 QTextStream 或 QDataStream 一起使用。 文件名通常在构造函…

海云安参编《数字安全蓝皮书 》正式发布并入选《2024中国数字安全新质百强》荣膺“先行者”

近日,国内数字化产业第三方调研与咨询机构数世咨询正式发布了《2024中国数字安全新质百强》(以下简称百强报告)。海云安凭借在开发安全领域的技术创新力及市场影响力入选百强报告“新质百强先行者” 本次报告,数世咨询经过对国内8…

获取个人免费版Ubuntu Pro

首先上官网地址:Ubuntu Pro | Ubuntu 点击页面中的"Get Ubuntu Pro now" 将用途选为“Myself”,在此页面中Ubuntu说明了该版本只面向个人开发者,且最终只允许5台设备免费使用;因而部署设备的抉择就不得不慎重考虑了&am…

Java | Leetcode Java题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; class Solution {void dfs(char[][] grid, int r, int c) {int nr grid.length;int nc grid[0].length;if (r < 0 || c < 0 || r > nr || c > nc || grid[r][c] 0) {return;}grid[r][c] 0;dfs(grid, r - 1, c);dfs(grid, r…

设计模式原则——接口隔离原则

设计模式原则 设计模式示例代码库地址&#xff1a; https://gitee.com/Jasonpupil/designPatterns 接口隔离原则 要求程序员尽量将臃肿庞大的接口拆分为更小的和更具体的接口&#xff0c;让接口中只包含客户感兴趣的方法接口隔离原则的目标是降低类或模块之间的耦合度&…

WIN版-苹果和平精英画质帧率优化教程

一、视频教程&#xff1a; 想要视频的联系博主 二、图文教程&#xff1a; 前置说明&#xff1a;不按教程&#xff0c;会导致修改不成功&#xff0c;或者设备里面内容丢失。请务必按教程操作&#xff01;&#xff01; 准备工作&#xff08;这部分是在要改的设备上操作&#x…

数据结构--栈(图文)

栈是一种基本的抽象数据类型&#xff0c;具有后进先出的特点。在栈这种数据结构中&#xff0c;元素只能在一端进行插入和删除操作&#xff0c;这一端被称为栈顶&#xff08;Top&#xff09;&#xff0c;而另一端则称为栈底&#xff08;Bottom&#xff09;。 栈的概念及特点 栈…

C语言单链表的算法之插入节点

一&#xff1a;访问各个节点中的数据 &#xff08;1&#xff09;访问链表中的各个节点的有效数据&#xff0c;这个访问必须注意不能使用p、p1、p2&#xff0c;而只能使用phead &#xff08;2&#xff09;只能用头指针不能用各个节点自己的指针。因为在实际当中我们保存链表的时…

怎么使用python进行整除取余求幂

怎么使用python进行整除取余求幂&#xff1f; 整除法是//&#xff0c;称为地板除&#xff0c;两个整数的除法仍然是整数。 10//33 3 求模运算是%&#xff0c;相当于mod&#xff0c;也就是计算除法的余数。 5%2 1 求幂运算使用两个连续的*&#xff0c;幂运算符比取反的优先级高…

操作系统面试篇一

很多读者抱怨计算操作系统的知识点比较繁杂&#xff0c;自己也没有多少耐心去看&#xff0c;但是面试的时候又经常会遇到。所以&#xff0c;我带着我整理好的操作系统的常见问题来啦&#xff01;这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 用户态和内核态、系统…

css3实现水纹进度条

其实有一个mask-image属性 挺有意思&#xff0c;在元素上面实现遮罩层的效果&#xff0c;不过这玩意有些兼容性问题 需要处理&#xff0c;所以单纯可以通过渐变色的方式来实现 同时加上动画效果 .jianbian {width: 100%;height: 16px;background-color: #eee;display: flex;bor…

【shell 学习一】shell执行方式以及变量(自定义变量、整数运算)定义

1.shell执行方式 测试脚本 vim file1 echo hello 2024 read -p 请输入 name echao hh,$name执行1 bash file1执行2 sh file1执行3 . file1执行4 source file11和2的方式&#xff0c;是子shell 3和4的方式&#xff0c;是本shell bash是进入新的命令 这时候退出edit是退出这个新…

docker部署FastDFS整合Springboot

文章目录 1、FastDFS是什么&#xff1f;2、搭建docker环境3、部署fastdfs4、整合springboot5、接口测试参考文章 1、FastDFS是什么&#xff1f; FastDFS是一个开源的轻量级分布式文件系统&#xff0c;它对文件进行管理&#xff0c;功能包括&#xff1a;文件存储、文件同步、文…