女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣讓機械臂繪畫

454398 ? 來源:工程師吳畏 ? 2019-08-07 17:41 ? 次閱讀

1。 OWI機器人手臂邊緣

2。 Arduino紅板

3。電機護罩(用于控制機器人的電機)

4。公針頭(用于堆疊Arduino上方的電機屏蔽)

5。很少有跳線

6。 5V-12V外部電源(理想情況下為9V)

7。一盆水

8。油畫

9。紙張(吸收圖案)

10。 BitVoicer軟件(僅適用于Windows)

步驟1:組裝OWI機械

OWI機械臂已售出作為單獨的組件。我們必須組裝不同的部分。

完全組裝好手臂之后,我們得到了上面完成的輸出。

可以看出,它有一個可以握筆的夾子,或者在我們的情況下是一個油漆瓶,當夾具盡可能閉合時,可以擠壓。

要運行手臂電機,需要4‘D’電池。

第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:連接電機護罩和機械臂

將機器人的電機連接到電機護罩。我們需要這種跳線。

在電機護罩上,有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);

Adafruit_DCMotor * myMotor3 = AFMS.getMotor (3);

Adafruit_DCMotor * myMotor4 = AFMS.getMotor(4);

BitVoicerSerial bvSerial = BitVoicerSerial();

boolean sampleTest = false;

byte dataType = 0;

void setup(){

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);

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)

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);

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);

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 (后退);//不壓縮

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);

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();

}

否則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);

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);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3500);

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);

延遲(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 (向后);//將夾子移到下面

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);

myMotor4-》 run(FORWARD);

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 (前進);

myMotor4-》 setSpeed(150);

延遲(2500);

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 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);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor3-》 run (向后);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3500);

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);

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

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (FORWARD);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor1-》 run (后退);

myMotor1-》 setSpeed(150);

延遲(600);

myMotor1-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor4-》 run (FORWARD);

myMotor4-》 setSpeed(150);

延遲(2000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor1-》 run (前進);

myMotor1-》 setSpeed(150);

延遲(600);

myMotor1-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(4000);

myMotor4-》 setSpeed(0);

延遲(400);

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

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

}

步驟5:與BitVoicer集成

下一步是在任何Windows機器上下載并安裝BitVoicer軟件。

在上一步中提到了將Arduino代碼與BitVoicer集成的代碼。

在此之后,我們必須在BitVoicer窗口中獲得語音字及其映射的內容。對于這個項目,演講詞是‘現代藝術’和‘簡單藝術’。

命令‘MODERN ART’,映射到一個從油漆瓶中擠出3組油漆滴的功能。因此,與“SIMPLE ART”功能相比,我們在紙上獲得了更深的彩色圖案。

命令SIMPLE ART‘,僅丟棄2組油漆滴。

步驟6:工作和最終圖像的視頻

視頻顯示機器人使用聲控命令執行大理石繪畫。大理石畫可以在圖片中看到,它顯示了兩種不同顏色的畫作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    188

    文章

    6489

    瀏覽量

    190019
  • 機械臂
    +關注

    關注

    13

    文章

    542

    瀏覽量

    25203
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ??低曂瞥龃竽P?b class='flag-5'>機械防碰撞相機

    工業機械負載作業時,往往重達幾百斤甚至更重,提升效率的同時,如果它們“意外傷人”,后果不堪設想。
    的頭像 發表于 03-17 09:47 ?445次閱讀

    如何使用PLC控制myCobot 320機械

    根據持續的用戶反饋,目前市場對 PLC 與 myCobot 系統集成的需求很大,因此本文提供的案例介紹了如何使用 PLC(可編程邏輯控制器)來控制 myCobot 320 機械。本案例重點介紹
    的頭像 發表于 01-23 14:03 ?878次閱讀
    如何使用PLC控制myCobot 320<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    使用myCobot 280機械結合ROS2系統搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權轉載自github。本項目的主要內容是使用myCobot 280機械結合ROS2系統搭建機械分揀站。
    的頭像 發表于 01-15 09:22 ?571次閱讀
    使用myCobot 280<b class='flag-5'>機械</b><b class='flag-5'>臂</b>結合ROS2系統搭建<b class='flag-5'>機械</b>分揀站

    深度解析!RK3568 加持機械是如何實現顏色識別與抓取的?

    一、產品簡介TL3568-PlusTEB人工智能實驗箱國產高性能處理器64位4核低功耗2.0GHz超高主頻1T超高算力NPU兼容鴻蒙等國產操作系統二、實驗目的1、了解機械識別顏色抓取積木的基本流程
    的頭像 發表于 01-15 08:07 ?536次閱讀
    深度解析!RK3568 加持<b class='flag-5'>機械</b><b class='flag-5'>臂</b>是如何實現顏色識別與抓取的?

    RK3568國產實驗箱+人工智能機械:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    基于語音控制實現機械特定動作的方法。三、實驗原理程序功能通過語音控制機械實現特定復雜動作:機械
    的頭像 發表于 12-12 19:01 ?918次閱讀
    RK3568國產實驗箱+人工智能<b class='flag-5'>機械</b><b class='flag-5'>臂</b>:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    凌科電氣新品發布:揭秘機械高可靠連接器解決方案

    機械因其卓越的精準性、智能化水平和高效工作能力,廣泛應用于工業制造、物流倉儲、醫療手術等多個領域。其中,在機械高效運行的背后,工業級連接器在保障設備穩定運行方面發揮著重要作用。
    的頭像 發表于 11-20 11:42 ?397次閱讀

    “雙保險”鎖緊機制:YM28系列連接器為機械提供高牢靠的大電流連接

    機械因其精準性、智能性、高效性等特點,在工業制造、物流倉儲、醫療手術等領域如魚得水、應用甚廣。在機械大展身手的背后,其實有一股不可忽視的力量在支撐,那就是承擔電氣化連接的工業級連接
    的頭像 發表于 11-20 01:03 ?505次閱讀
    “雙保險”鎖緊機制:YM28系列連接器為<b class='flag-5'>機械</b><b class='flag-5'>臂</b>提供高牢靠的大電流連接

    機械的高效運作,連接器起關鍵作用

    ? ? ?機械是靈活且可編程的自動化設備,在工業生產中發揮著至關重要的作用。其廣泛的應用領域涵蓋了裝配與搬運、焊接與噴涂、檢測與測量、碼垛等多個環節,極大地提升了生產效率與質量,并成功替代人工完成
    的頭像 發表于 11-11 18:07 ?654次閱讀

    工業產線機械數字孿生 流程工業應用

    圖撲軟件根據實驗室構建的工業產線機械數字孿生環境,對數字孿生關鍵構件、工作過程進行驗證,形成此文,與大家共同探討數字孿生系統構建的關鍵技術。
    的頭像 發表于 11-04 14:15 ?536次閱讀
    工業產線<b class='flag-5'>機械</b><b class='flag-5'>臂</b>數字孿生   流程工業應用

    OrangePi AIpro應用:機械應用開發指南

    2024世界人工智能大會上,香橙派攜OrangePiAIpro20T在世博展覽館H1-A301展區亮相,給大家帶來AI+互動的沉浸式體驗。其中,搭載OrangePiAIpro開發板的智能機械吸引了
    的頭像 發表于 08-19 16:42 ?917次閱讀
    OrangePi AIpro應用:<b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用開發指南

    工業機器人和機械的設計、功能和應用有哪些區別?

    機械是一種由多個關節連接而成的機械結構,類似于人的胳膊。它通常具有可旋轉或可伸縮的關節,使其能夠在空間中執行精確的定位和操作。機械通常由
    的頭像 發表于 08-16 09:43 ?892次閱讀

    奧比中光推出2.0版大模型機械

    近期,奧比中光研發團隊融合前沿多模態大模型技術,推出最新2.0版大模型機械演示方案。新方案搭載公司最新深度相機Gemini 335L和Femto Bolt,能夠基于語音指令,自動執行沏茶、插花、滴
    的頭像 發表于 07-19 16:50 ?1069次閱讀

    大象機器人開源協作機械機械接入GPT4o大模型!

    本文已經或者同濟子豪兄作者授權對文章進行編輯和轉載 引言 隨著人工智能和機器人技術的快速發展,機械在工業、醫療和服務業等領域的應用越來越廣泛。通過結合大模型和多模態AI,機械能夠實
    的頭像 發表于 07-03 14:09 ?1420次閱讀
    大象機器人開源協作<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT4o大模型!

    國產Cortex-A55人工智能教學實驗箱_基于Python機械跳舞實驗案例分享

    又不必要。 從力學的角度分析,物件在空間只有6個自由度。因此為抓取和傳送在空間不同位置和方位物件,傳送機構也應具有6個自由度。 實驗程序流程 1、創建機械對象 2、機械循環跳舞:
    發表于 06-28 14:37

    基于六維力傳感器的機械自動裝配應用

    六維力傳感器是一種特殊的力覺傳感器,可以測量物體在笛卡爾坐標系下三個軸向的力和力矩,其內部采用高度敏感的材料和精密機械構造,可以為機械提供更高的測量精度,滿足不同場景下的測量需求。作為機械
    的頭像 發表于 06-06 13:49 ?1259次閱讀
    基于六維力傳感器的<b class='flag-5'>機械</b><b class='flag-5'>臂</b>自動裝配應用