上海快3APP下载

行业新闻
Group news
青岛广盛源肥业有限公司    您的位置: 上海快3APP下载  >  行业新闻  >  正文

怎样让机械臂绘画

2019年09月30日 文章来源:网络整理 热度:110℃ 作者:刘英

1。 OWI机器人手臂边缘

2。 Arduino红板

3。电机护罩(用于控制机器人的电机)

4。公针头(用于堆叠Arduino上方的电机屏蔽)

5。很少有跳线

6。 5V-12V外部电源(理想情况下为9V)

7。一盆水

8。油画

9。纸张(吸收图案)

上海快3APP下载10。 BitVoicer软件(仅适用于Windows)

步骤1:组装OWI机械臂

OWI机械臂已售出作为单独的组件。我们必须组装不同的部分。

完全组装好手臂之后,我们得到了上面完成的输出。

可以看出,它有一个可以握笔的夹子,或者在我们的情况下是一个油漆瓶,当夹具尽可能闭合时,可以挤压。

上海快3APP下载要运行手臂电机,需要4‘D’电池。

上海快3APP下载第2步:在Arduino上堆叠电机护罩

怎样让机械臂绘画

OWI机械臂有五个自由度,因此有5个直流电机。其中1个电机负责夹具的打开和关闭,2个电机用于左右移动,另外2个电机用于上下移动。 Arduino只能处理1个电机,也无法完全为电机供电。为了使两个或更多电机同时运动,我们使用电机屏蔽。

电机屏蔽层使用公针头堆叠在Arduino上方。为了获得更好的连接,引脚接头的一侧焊接到电机屏蔽层上的相应引脚。引脚接头的另一端插入Arduino板的数字引脚。 此外,电机屏蔽使用外部电源单独供电。 Arduino由USB或枪管插孔供电。

电机屏蔽可以一次控制4个电机。由于我们不希望所有5台电机因任何原因同时运行,我们在这里不会遇到任何问题。

移动电机的示例代码如下所示:

#include

#include Adafruit_DCMotor *myMotor4 = AFMS。getMotor(4); myMotor4-》setSpeed(150);

myMotor4-》run(FORWARD);

delay(3000);

myMotor4-》setSpeed(0);

delay(300);

步骤3:连接电机护罩和机械臂

将机器人的电机连接到电机护罩。我们需要这种跳线。

上海快3APP下载在电机护罩上,有4个插槽(M1,M2,M3,M4)用于连接4个电机。对于这个项目,由于我们只需要有限的运动,我们排除了两个有助于上下移动的电机中的一个。

步骤4:编码

我们的代码执行以下功能:

机器人具有固定的起始位置。它从那里移动,从支架(它旁边)抓住一瓶油漆,打开抓手,抓住瓶子并收紧瓶子的把手。

从这里开始,它移动到水桶的位置,就在抓手的正下方,移动到水池的最右端,挤压瓶子一次,移动到中心,挤压,移动到最左边的位置,然后再滴一滴油漆。

然后它回到初始位置

接下来又回来再采取另一种颜色的颜色

再次执行(2),但这次只是下降了2滴油漆在不同于先前油漆掉落的位置。

/*参考文献:Adafruit motor屏蔽直流电机示例称为MotorTest

BitVoicer用于切换LED的软件示例程序。我们使用此示例中的对象仅用于实例化*/

#include

#include

#include“ utility/Adafruit_PWMServoDriver.h“

#include

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

Adafruit_DCMotor * myMotor1 = AFMS.getMotor(1);

Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2);

上海快3APP下载Adafruit_DCMotor * myMotor3 = AFMS。getMotor (3);

Adafruit_DCMotor * myMotor4 = AFMS.getMotor(4);

BitVoicerSerial bvSerial = BitVoicerSerial();

boolean sampleTest = false;

byte dataType = 0;

上海快3APP下载void setup(){

上海快3APP下载Serial.begin(9600);

Serial.println(“Adafruit Motorshield v2 - DC Motor test!”);

AFMS.begin();

myMotor4-》 setSpeed(150);

myMotor4-》 run(FORWARD);

//打开电机

myMotor4 - 》 run(RELEASE);

myMotor2-》 setSpeed(150);

myMotor2-》 run(FORWARD);

//打开电机

myMotor2-》 run(RELEASE);

bvSerial。setAnalogReference(BV_EXTERNAL);

上海快3APP下载bvSerial.setAudioInput(0);

Serial.begin(9600);

}

void loop(){

if(sampleTest == true)

{

bvSerial.processAudio(46);

}

if(bvSerial.engineRunning)

{

bvSerial.processAudio(46);

}

}

void serialEvent()

{

dataType = bvSerial.getData();

if(dataType == BV_COMMAND)

上海快3APP下载sampleTest = bvSerial.cmdData;

if(dataType == BV_STATUS&& bvSerial.engineRunning == true)

bvSerial。startStopListening();

if(dataType == BV_STR)

func1();

}

void func1()///3滴

{

if(bvSerial。strData ==“five”)

{

myMotor4-》 run(FORWARD);//来拾取颜色

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(300);

上海快3APP下载myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(380);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (FORWARD);//关闭夹子

myMotor2-》 setSpeed(150);

延迟(600);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor3-》 run (向后);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(4000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(200);

延迟(300);

上海快3APP下载myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run(BACKWARD);//Unqueezing

myMotor2-》 setSpeed(250);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(1000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(150);

延迟(300);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

上海快3APP下载myMotor2-》 setSpeed(150);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(1000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(150);

延迟(300);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

myMotor2-》 setSpeed(150);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延迟(2000);

上海快3APP下载myMotor4-》 setSpeed(0);

延迟(300);

myMotor3-》 run (前进);

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(400);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor4-》 run (后退);//打开抓手

myMotor4-》 setSpeed(150);

延迟(4000);

myMotor4-》 setSpeed(0);

延迟(400);

func2();

}

上海快3APP下载否则if(bvSerial.strData ==“two”)

{

two_drops();

}

其他

{

bvSerial。startStopListening();

bvSerial.sendToBV(“ERROR:”+ bvSerial .strData);

bvSerial。startStopListening();

}

}

void func2()///2 drop

{

myMotor4-》 run(FORWARD);//来拾取颜色

myMotor4-》 setSpeed(150);

延迟(4000);

上海快3APP下载myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(380);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (FORWARD);//关闭夹子

myMotor2-》 setSpeed(150);

延迟(600);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor3-》 run (向后);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

上海快3APP下载myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(3500);

上海快3APP下载myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

上海快3APP下载myMotor2-》 setSpeed(150);

延迟(300);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

myMotor2-》 setSpeed(150);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(1000);

myMotor4-》 setSpeed(0);

延迟(400);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延迟(2000);

myMotor4-》 setSpeed(0);

延迟(400);

myMotor3-》 run (向前);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor3-》 run (向后);//将夹子移到下面

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor3-》 run (向前);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor3-》 run (向后);//将夹子移到下面

上海快3APP下载myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor3-》 run (向前);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor3-》 run (向后);//将夹子移到下面

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

上海快3APP下载myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed( 150);

延迟(1000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(150);

延迟(300);

上海快3APP下载myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

myMotor2-》 setSpeed(150);

延迟(50);

上海快3APP下载myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(2500);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor3-》 run (前进);

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

上海快3APP下载myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(400);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(400);

}

void two_drops()

{

myMotor4-》 run(FORWARD);//来拾取颜色

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(380);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (FORWARD);//关闭夹子

上海快3APP下载myMotor2-》 setSpeed(150);

延迟(600);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor3-》 run (向后);//将抓手移到顶部

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(3500);

上海快3APP下载myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(150);

延迟(300);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

myMotor2-》 setSpeed(150);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延迟(1500);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor2-》 run (FORWARD);//挤压抓手

myMotor2-》 setSpeed(150);

延迟(300);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (后退);//不压缩

myMotor2-》 setSpeed(150);

延迟(50);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(2000);

myMotor4-》 setSpeed(0);

延迟(300);

myMotor3-》 run (前进);

myMotor3-》 setSpeed(150);

延迟(600);

myMotor3-》 setSpeed(0);

延迟(300);

myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(400);

myMotor2-》 setSpeed(0);

延迟(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(400);

}

void brush()

{

myMotor4-》 run(BACKWARD);

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(400);

上海快3APP下载myMotor2-》 run (后退);//打开抓手

myMotor2-》 setSpeed(150);

延迟(380);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor2-》 run (FORWARD);//关闭夹子

myMotor2-》 setSpeed(150);

延迟(600);

上海快3APP下载myMotor2-》 setSpeed(0);

延迟(400);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(400);

myMotor1-》 run (后退);

上海快3APP下载myMotor1-》 setSpeed(150);

延迟(600);

myMotor1-》 setSpeed(0);

延迟(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(1000);

myMotor4-》 setSpeed(0);

延迟(400);

上海快3APP下载myMotor4-》 run (FORWARD);

myMotor4-》 setSpeed(150);

延迟(2000);

myMotor4-》 setSpeed(0);

延迟(400);

上海快3APP下载myMotor1-》 run (前进);

myMotor1-》 setSpeed(150);

延迟(600);

myMotor1-》 setSpeed(0);

延迟(400);

上海快3APP下载myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延迟(4000);

myMotor4-》 setSpeed(0);

延迟(400);

上海快3APP下载myMotor2-》 run (后退);//打开抓手

上海快3APP下载myMotor2-》 setSpeed(150);

延迟(380);

myMotor2-》 setSpeed(0);

延迟(200);

myMotor4-》 run (前进);

myMotor4-》 setSpeed(150);

延迟(3000);

myMotor4-》 setSpeed(0);

延迟(400);

}

上海快3APP下载步骤5:与BitVoicer集成

怎样让机械臂绘画

下一步是在任何Windows机器上下载并安装BitVoicer软件。

上海快3APP下载在上一步中提到了将Arduino代码与BitVoicer集成的代码。

在此之后,我们必须在BitVoicer窗口中获得语音字及其映射的内容。对于这个项目,演讲词是‘现代艺术’和‘简单艺术’。

命令‘MODERN ART’,映射到一个从油漆瓶中挤出3组油漆滴的功能。因此,与“SIMPLE ART”功能相比,我们在纸上获得了更深的彩色图案。

命令SIMPLE ART‘,仅丢弃2组油漆滴。

步骤6:工作和最终图像的视频

怎样让机械臂绘画

视频显示机器人使用声控命令执行大理石绘画。大理石画可以在图片中看到,它显示了两种不同颜色的画作。

上一篇:降低电路中的电阻值改善噪声性能?


下一篇:上海快3APP下载存储芯片涨价?突发的停电让东芝3D NAND工厂已停产数日

友情链接
Links
江西11选5分布走势图 江西11选5遗漏 江西11选5 江苏快3APP下载 江西11选5 青海快3APP下载 青海快3APP下载 恒运彩票网 江西11选5开奖结果 江西11选5走势图