极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1753|回复: 0

5自由度串联机械臂实现颜色分拣

[复制链接]
发表于 2023-9-11 15:36:02 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2023-9-11 15:36 编辑

1. 功能描述
       本文提供的示例所实现的功能为:实现5自由度串联机械臂按颜色分拣的功能。将红、蓝两种颜色的工件分别放置在传感器上时,机械臂会根据检测到的颜色,将红色工件搬运至右侧区域;将蓝色工件搬运至左侧区域。

2. 电子硬件

在这个示例中,我们采用了以下硬件,请大家参考:

主控板
Basra主控板(兼容Arduino Uno)
扩展板
Bigfish2.1扩展板
传感器
TCS3200颜色识别传感器
电池
7.4V锂电池

在5自由度串联机械臂底座上安装一个 TCS3200颜色识别传感器 ,用于检测工件的RGB值。

3. 功能实现
编程环境:Arduino 1.8.19
下面提供一个实现5自由度串联机械臂按颜色分拣的参考程序(colour.ino):
  1. /*------------------------------------------------------------------------------------

  2.   版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

  3.            Distributed under MIT license.See file LICENSE for detail or copy at

  4.            https://opensource.org/licenses/MIT

  5.            by 机器谱 2023-08-24 https://www.robotway.com/

  6.   ------------------------------*/

  7. #include <MsTimer2.h>

  8. #include <Wire.h>

  9. #include <ECT_IA02S.h>

  10. ECT_IA02S device;

  11. String serialString = "";

  12. boolean serialComplete = false;

  13. char stringBuf[100];

  14. void setup()

  15. {

  16.   Serial.begin(9600);

  17.   Colour_set();

  18.   serialString = "1@0:act.write(75);@";

  19.   StringDeal();

  20.   serialString = "1@1:act.write(90);@";

  21.   StringDeal();

  22.   delay(1000);

  23.   serialString = "2@0:act.write(100);@";

  24.   StringDeal();

  25.   serialString = "2@1:act.write(90);@";

  26.   StringDeal();  

  27.   delay(1000);

  28.   serialString = "3@0:act.write(45);@";

  29.   StringDeal();

  30.   serialString = "3@1:act.write(90);@";

  31.   StringDeal();

  32. }

  33. void loop()

  34. {

  35.   int c = Get_colour();

  36.   Serial.println(c);

  37.   if(c<2)

  38.      device.startShoal(0, c, 7000);

  39.   delay(2000);

  40. }

  41. void StringDeal()

  42. {

  43.       String outString;

  44.       static int stringlength;

  45.       serialString = serialString.substring(0,serialString.length()-1);

  46.       serialString+="*";

  47.       serialString+=serialString.length()-1;

  48.       serialString+="\n";

  49.       stringlength=serialString.length();

  50.      

  51.      

  52.       //split the string to certain part, each part as 30 char, send parts one by one

  53.       for(int i=0;i<((stringlength/30)+1);i++){

  54.         outString = serialString.substring(0,min(serialString.length(),30));

  55.         outString.toCharArray(stringBuf, outString.length()+1);

  56.         serialString=serialString.substring(min(serialString.length(),30),serialString.length()+1);

  57.      

  58.         Wire.beginTransmission(1);

  59.         Wire.write(stringBuf);                  

  60.         Wire.endTransmission();      

  61.       }

  62. }


复制代码

4. 资料下载
资料内容:颜色分拣-程序源代码
资料下载地址:5自由度串联机械臂-颜色分拣 https://www.robotway.com/h-col-192.html



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-3 08:13 , Processed in 0.051894 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表