1. 运动功能说明
本文示例实现4自由度串联机械臂抓取物品、放下的功能。
2. 结构说明
4自由度串联机械臂样机由4个串联的 舵机关节模组 和1个 舵机夹爪模组 组成。
为了增加减轻腰关节的负担,在腰关节位置加装了4根拉簧。
3. 运动功能实现
3.1 电子硬件
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 | Basra(兼容Arduino Uno) |
扩展板 | Bigfish2.1 |
电池 | 7.4V锂电池 |
3.2 编写程序
编程环境:Arduino 1.8.19
编写并烧录以下程序(grab_thing_anwser.ino),该程序将实现演示视频中的动作。
/*------------------------------------------------------------------------------------
版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.
Distributed under MIT license.See file LICENSE for detail or copy at
https://opensource.org/licenses/MIT
by 机器谱 2023-02-02 https://www.robotway.com/
------------------------------
实验功能: 实现4自由度串联机械臂抓取物品、放下的功能
-----------------------------------------------------
实验接线:舵机接口依次D8、D3、D11、D7、D4
------------------------------------------------------------------------------------*/
int a=0,b=0,c=0,d=0,e=0,f=0;
#include <Servo.h>
Servo servo_pin_4;
Servo servo_pin_7;
Servo servo_pin_11;
Servo servo_pin_3;
Servo servo_pin_8;
void setup()
{
servo_pin_4.attach(4);
servo_pin_4.write( 76);
servo_pin_7.attach(7);
servo_pin_7.write( 110);
servo_pin_11.attach(11);
servo_pin_11.write(68);
servo_pin_3.attach(3);
servo_pin_3.write(157);
servo_pin_8.attach(8);
servo_pin_8.write(81);
delay(3000);//set up the initial posotion.Each servo is different,
// so u must use Software of Processing to monitor your initial positions of servo.
}
void loop()
{
int a=76;b=110;c=68;d=157;e=81;
servo_pin_4.write(a);
servo_pin_7.write(b);
servo_pin_11.write(c);
servo_pin_3.write(d);
servo_pin_8.write(e);
//Now begin to move,you can use Processing to record a serials of movements.
//Here's my records.Aiming to grab a thing and put it back.
for(e=80;e>=50;e-=1)
{servo_pin_8.write(e);delay(30);}
for(d=158;d>=62;d-=3)
{servo_pin_3.write(d);delay(30);}
for(b=110;b>=19;b-=3)
{servo_pin_7.write(b); delay(30);}
for(e=50;e<=80;e+=1)
{servo_pin_8.write(e);delay(30);}
for(b=19;b<=110;b+=3)
{servo_pin_7.write(b);delay(30);}
delay(3000);
for(b=110;b>=19;b-=3)
{servo_pin_7.write(b);delay(30);}
for(e=80;e>=50;e-=1)
{servo_pin_8.write(e);delay(30);}
for(b=19;b<=110;b+=3)
{servo_pin_7.write(b);delay(30);}
for(d=62;d<=158;d+=3)
{servo_pin_3.write(d);delay(30);}
for(e=50;e<=81;e+=1)
{servo_pin_8.write(e);delay(30);}
}
4. 资料内容
① 例程源代码
② 样机3D文件
资料内容详见4自由度串联机械臂