极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3064|回复: 0

轮式机械臂小车循迹搬运功能的实现

[复制链接]
发表于 2022-12-23 11:08:48 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2022-12-23 11:11 编辑

1. 任务描述
       本实验中机器人将通过完成将工作区外的工件搬运至工作区的任务,来模拟机器人的搬运过程。机器人首先需要通过循迹找到未存放在工作区内的工件,然后利用机械爪将工件夹起并保持工件处于加持状态(距离地面1cm以上),最后将工件搬运至工作区即算完成任务。


工件和场地如下图所示:


2. 电子硬件
在这个示例中,采用了以下硬件,请大家参考:

主控板Basra(兼容Arduino Uno)
扩展板Bigfish2.1
传感器灰度×2
电池7.4V锂电

3. 示例程序
流程图:

编程环境:Arduino 1.8.19
例程代码如下

  1. /*********************************************************************

  2.   版权说明:Copyright 2022 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 机器谱 2022-10-20 https://www.robotway.com/

  6. ***************************   实验接线 ******************************

  7. 左侧车轮接6/10端口;右侧车轮接5/9端口;

  8. 关节模块的舵机线连接到D11端口,机械爪的舵机线连接到D12端口

  9. ******************************************************************/


  10. #include <Servo.h>


  11. Servo servo_pin_12;

  12. Servo servo_pin_11;


  13. void grab();

  14. void trun_left();

  15. void forward();

  16. void putdown();

  17. void go_putdown();

  18. void carstop();

  19. void trun_right();

  20. void brake();


  21. void setup()

  22. {

  23.   pinMode( 18, INPUT);

  24.   pinMode( 14, INPUT);

  25.   pinMode( 10, OUTPUT);

  26.   pinMode( 6, OUTPUT);

  27.   pinMode( 5, OUTPUT);

  28.   pinMode( 9, OUTPUT);

  29.   servo_pin_12.attach(12);

  30.   servo_pin_11.attach(11);

  31.   servo_pin_12.write( 91 );


  32.   servo_pin_11.write( 145 );


  33.   delay( 1500 );


  34. }


  35. void loop()

  36. {

  37.   if (!( digitalRead(18) ))

  38.   {

  39.     if (!( digitalRead(14) ))

  40.     {

  41.       brake();

  42.       grab();

  43.       go_putdown();

  44.     }

  45.     else

  46.     {

  47.       trun_right();

  48.     }

  49.   }

  50.   else

  51.   {

  52.     if (!( digitalRead(14) ))

  53.     {

  54.       trun_left();

  55.     }

  56.     else

  57.     {

  58.       forward();

  59.     }

  60.   }

  61. }


  62. void go_putdown()

  63. {

  64.   forward();

  65.   delay( 500 );

  66.   carstop();

  67.   delay( 1000 );

  68.   putdown();

  69.   while ( true )

  70.   {

  71.     carstop();

  72.   }


  73. }


  74. void trun_right()

  75. {

  76.   analogWrite(6 , 80);

  77.   analogWrite(10 , 0);

  78.   analogWrite(5 , 0);

  79.   analogWrite(9 , 80);

  80. }


  81. void forward()

  82. {

  83.   analogWrite(6 , 80);

  84.   analogWrite(10 , 0);

  85.   analogWrite(5 , 80);

  86.   analogWrite(9 , 0);

  87. }


  88. void carstop()

  89. {

  90.   analogWrite(6 , 0);

  91.   analogWrite(10 , 0);

  92.   analogWrite(5 , 0);

  93.   analogWrite(9 , 0);

  94. }


  95. void trun_left()

  96. {

  97.   analogWrite(6 , 0);

  98.   analogWrite(10 , 80);

  99.   analogWrite(5 , 80);

  100.   analogWrite(9 , 0);

  101. }


  102. void grab()

  103. {

  104.   servo_pin_12.write( 50 );

  105.   delay( 1000 );

  106.   servo_pin_11.write( 110 );

  107.   delay( 1000 );

  108. }


  109. void brake()

  110. {

  111.   analogWrite(6 , 100);

  112.   analogWrite(10 , 100);

  113.   analogWrite(5 , 100);

  114.   analogWrite(9 , 100);

  115.   delay( 500 );

  116. }


  117. void putdown()

  118. {

  119.   servo_pin_11.write( 145 );

  120.   delay( 1000 );

  121.   servo_pin_12.write( 91 );

  122.   delay( 1000 );

  123. }
复制代码

4. 资料下载
资料内容:
样机-循迹搬运-例程源代码
工件3D文件
资料下载链接:https://www.robotway.com/h-col-150.html








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 13:04 , Processed in 0.040107 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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