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


    1. 功能描述

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

    2. 电子硬件

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

    在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
    8. #include
    9. #include
    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. //split the string to certain part, each part as 30 char, send parts one by one
    51. for(int i=0;i<((stringlength/30)+1);i++){
    52. outString = serialString.substring(0,min(serialString.length(),30));
    53. outString.toCharArray(stringBuf, outString.length()+1);
    54. serialString=serialString.substring(min(serialString.length(),30),serialString.length()+1);
    55. Wire.beginTransmission(1);
    56. Wire.write(stringBuf);
    57. Wire.endTransmission();
    58. }
    59. }

    颜色分拣-程序源代码资料内容详见 5自由度串联机械臂-颜色分拣

  • 相关阅读:
    什么是同步容器和并发容器的实现?
    (自监督学习)前沿初识
    16结构型模式-组合模式
    Docker部署系列之Docker Compose安装Redis三主三从集群
    驱动开发:内核特征码扫描PE代码段
    opencv之 drawContours() 函数说明应用
    vue3 Component API
    JavaScript涉及二进制的转换
    buuctf_练[CISCN2019 华东南赛区]Web4
    论文翻译:2022_Time-Frequency Attention for Monaural Speech Enhancement
  • 原文地址:https://blog.csdn.net/Robotway/article/details/132792624