一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

3自由度串聯(lián)機械臂實現(xiàn)電磁鐵搬運功能

jf_72402704 ? 來源:jf_72402704 ? 作者:jf_72402704 ? 2023-03-09 08:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、功能描述

R308樣機是一款擁有3自由度的串聯(lián)機械臂。本文提供的示例所實現(xiàn)的功能為:在3自由度串聯(lián)機械臂樣機上安裝電磁鐵,實現(xiàn)電磁鐵搬運物品的功能。

poYBAGQJKPqAdzcLAAAbEBLwcfU356.pngpYYBAGQJKPuAZ8UzAJBGK67IDBg778.gif

2、電子硬件

在這個示例中,我們采用了以下硬件,請大家參考:

主控板 Basra(兼容Arduino Uno)
擴展板 Bigfish2.1
舵機 270°伺服電機
電池 7.4V鋰電池
其它 電磁鐵、USB

電路連接說明:

poYBAGQJKPuAGYQ6AAAr4t_Pzd8426.png

注:

① 270°伺服電機連接在Bigfish擴展板D4 . GND . VCC接口

② 270°伺服電機連接在Bigfish擴展板D7 . GND . VCC接口上

③ 270°伺服電機連接在Bigfish擴展板D11 . GND . VCC接口上

電磁鐵連接在Bigfish擴展板D9,D10接口上

3、運動控制

上位機:Controller 1.0

下位機編程環(huán)境:Arduino 1.8.19

3.1初始位置的設定

① 將Controller下位機程序servo_bigfish.ino直接下載到主控板。這段代碼供Controller上位機與主控板通信,并允許調(diào)試舵機。代碼如下:

/*------------------------------------------------------------------------------------

  版權(quán)說明: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-01-31 https://www.robotway.com/

  ------------------------------

/*

* Bigfish擴展板舵機口; 4, 7, 11, 3, 8, 12, 14, 15, 16, 17, 18, 19

* 使用軟件調(diào)節(jié)舵機時請拖拽對應序號的控制塊

*/

#include 


#define ANGLE_VALUE_MIN 0

#define ANGLE_VALUE_MAX 180

#define PWM_VALUE_MIN 500

#define PWM_VALUE_MAX 2500


#define SERVO_NUM 12


Servo myServo[SERVO_NUM];


int data_array[2] = {0,0};   //servo_pin: data_array[0], servo_value: data_array[1];

int servo_port[SERVO_NUM] = {4, 7, 11, 3, 8, 12, 14, 15, 16, 17, 18, 19};

int servo_value[SERVO_NUM] = {};


String data = "";


boolean dataComplete = false;


void setup() {

  Serial.begin(9600);

 

}


void loop() {

 

  while(Serial.available())

  {

    int B_flag, P_flag, T_flag;

    data = Serial.readStringUntil('n');

    data.trim();

    for(int i=0;i= ANGLE_VALUE_MIN && where <= ANGLE_VALUE_MAX)

  {

    myServo[which].write(where);

  }

  else if(where >= PWM_VALUE_MIN && where <= PWM_VALUE_MAX)

  {

    myServo[which].writeMicroseconds(where);

  }

}


int pin2index(int _pin){

  int index;

  switch(_pin)

  {

    case 4: index = 0; break;

    case 7: index = 1; break;

    case 11: index = 2; break;

    case 3: index = 3; break;

    case 8: index = 4; break;

    case 12: index = 5; break;

    case 14: index = 6; break;

    case 15: index = 7; break;

    case 16: index = 8; break;

    case 17: index = 9; break;

    case 18: index = 10; break;

    case 19: index = 11; break;

  }

  return index;

}

下載完成后,保持主控板和電腦的USB連接,以便利用上位機進行調(diào)試。

② 雙擊打開Controller 1.0b.exe:

pYYBAGQJKPyANDrhAAAI1jsGVhU350.pngpoYBAGQJKPyAAyG8AAA6JmsOvRE424.png

③ 界面左上角選擇:設置-面板設置,彈出需要顯示的調(diào)試塊,可通過勾選隱藏不需要調(diào)試的舵機塊:聯(lián)機-選擇主控板對應端口號以及波特率。

pYYBAGQJKP2AeJmrAABREoV-NoE619.pngpoYBAGQJKP2ASj4NAABKnjlE9tY290.pngpYYBAGQJKP2AP9R4AAAcnKtX2mY185.pngpoYBAGQJKP6ABtMSAAAgxBCv8_c250.png

④ 拖動進度條,可以觀察相應的舵機角度轉(zhuǎn)動。寫好對應的舵機調(diào)試角度,勾選左下角添加-轉(zhuǎn)化,獲得舵機調(diào)試的數(shù)組:

pYYBAGQJKP6ABVdsAABOaiWanDk476.png

⑤ 將該數(shù)組直接復制到相應的Arduino程序中的get_coordinate()部分進行使用。

3.2調(diào)試好角度后將電磁鐵搬運例程(calculate_angle_test.ino)下載到主控板【程序源碼詳見 https://www.robotway.com/h-col-191.html】

/*------------------------------------------------------------------------------------

  版權(quán)說明: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-01-31 https://www.robotway.com/

  ------------------------------*/

#include 

#include 


#define SERVO_SPEED 3460                                        //定義舵機轉(zhuǎn)動快慢的時間

#define ACTION_DELAY 200                                        //定義所有舵機每個狀態(tài)時間間隔


#define L1 172

#define L2 160

#define L3 135


Servo myServo[6];


int f = 200;                                                    //定義舵機每個狀態(tài)間轉(zhuǎn)動的次數(shù),以此來確定每個舵機每次轉(zhuǎn)動的角度

int servo_port[6] = {4,7,11,3,8,12};                            //定義舵機引腳

int servo_num = sizeof(servo_port) / sizeof(servo_port[0]);     //定義舵機數(shù)量

float value_init[6] = {1500, 1500, 1500, 0, 0, 0};              //定義舵機初始角度


double theta[3] = {};

float value_pwm[6] = {};

float coordinate[3] = {};

int data_num;


boolean dataComplete = false;


void setup() {

  Serial.begin(9600);

  pinMode(9, OUTPUT);

  pinMode(10, OUTPUT);

  for(int i=0;i= 0){

    theta[0] = theta0 * 180 / PI;

  }

  else

  {

    theta[0] = 180 + theta0 * 180 / PI;

  }


  theta[1] = 90 - theta1 * 180 / PI;

  theta[2] = theta2 * 180 / PI;

//   Serial.print("theta0 = ");

//   Serial.println(theta[0]);

//   Serial.print("theta1 = ");

//   Serial.println(theta[1]);

//   Serial.print("theta2 = ");

//   Serial.println(theta[2]);

//   Serial.println("-------------------------------------");


}


void ServoStart(int which)

{

  if(!myServo[which].attached())myServo[which].attach(servo_port[which]);

  pinMode(servo_port[which], OUTPUT);

}




void ServoStop(int which)

{

  myServo[which].detach();

  digitalWrite(servo_port[which],LOW);

}


void ServoGo(int which , int where)

{

  if(where!=200)

  {

    if(where==201) ServoStop(which);

    else

    {

      ServoStart(which);

      myServo[which].writeMicroseconds(where);

    }

  }

}


void servo_move(float value0, float value1, float value2, float value3, float value4, float value5)

{

 

  float value_arguments[] = {value0, value1, value2, value3, value4, value5};

  float value_delta[servo_num];

 

  for(int i=0;i


審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    213

    文章

    29730

    瀏覽量

    212835
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192124
  • 機械臂
    +關(guān)注

    關(guān)注

    13

    文章

    554

    瀏覽量

    25377
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    人形機器人“靈巧手”,正在接近27個自由度的人手

    電子發(fā)燒友網(wǎng)報道(文/黃晶晶)靈巧手是人形機器人核心零部件之一,以人類的手來看通常被認為具有27個自由度,自由度越高,其動作越精細。特斯拉二代Optimus的靈巧手已經(jīng)擁有22個自由度。 靈巧
    的頭像 發(fā)表于 04-21 09:04 ?2414次閱讀
    人形機器人“靈巧手”,正在接近27個<b class='flag-5'>自由度</b>的人手

    十字形多自由度超聲電機接觸分析模型研究

    摘 要:十字形多自由度超聲電機其動子繞X、Y軸旋轉(zhuǎn)與繞Z軸旋轉(zhuǎn)的驅(qū)動機理是不同的,根據(jù)彈性接觸理論,對其進行了分別考慮,并建立了電機摩擦接觸分析模型。利用建立的模型,對多自由度電機機械特性進行了估算
    發(fā)表于 06-17 09:04

    Lake Shore 643電磁鐵電源無法開機深度維修案例剖析與解決方案

    近期北京某企業(yè)送修一臺電磁鐵電源 Lake Shore 643,報修的故障是儀器內(nèi)部進水不開機。對儀器進行初步檢測,確定故障與客戶報修一致。
    的頭像 發(fā)表于 05-10 11:51 ?207次閱讀
    Lake Shore 643<b class='flag-5'>電磁鐵</b>電源無法開機深度維修案例剖析與解決方案

    大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械產(chǎn)品

    RISC-V”六軸機械為教育場景量身定制,具備6個自由度,280mm展,支持250g負載,整機重量僅860克。提供豐富接口,末端兼容樂高/M4拓展接口,可
    發(fā)表于 04-25 17:59

    上升沿時間在10ns以內(nèi)的電磁鐵驅(qū)動電路請教

    最近需要做一個電磁鐵的驅(qū)動電路,具體要求如下: 1、輸出脈沖的電壓6V或-6V,電流120mA。還希望后期能控修改輸出電壓至7-10V 2、希望能夠根據(jù)輸入的ttl信號決定輸出6V還是-6V 3
    發(fā)表于 04-15 16:09

    ADIS16488A術(shù)級10自由度慣性傳感器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《ADIS16488A術(shù)級10自由度慣性傳感器規(guī)格書.pdf》資料免費下載
    發(fā)表于 03-04 16:39 ?0次下載

    完美CP來啦!當AGV遇上機械

    AGV+機械復合機器人逐漸打開市場,實現(xiàn)物料自動搬運、上下料、分揀等“無人搬運”。結(jié)合信息系統(tǒng)運作,調(diào)度人員下達指令,
    的頭像 發(fā)表于 01-16 18:12 ?485次閱讀
    完美CP來啦!當AGV遇上<b class='flag-5'>機械</b><b class='flag-5'>臂</b>!

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

    ;2、掌握機械識別顏色抓取積木的實現(xiàn)方法。三、實驗原理顏色識別抓取積木功能實現(xiàn)識別出不同顏色的積木,
    的頭像 發(fā)表于 01-15 08:07 ?693次閱讀
    深度解析!RK3568 加持<b class='flag-5'>機械</b><b class='flag-5'>臂</b>是如何<b class='flag-5'>實現(xiàn)</b>顏色識別與抓取的?

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

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

    H60.XYZTR5六自由度聯(lián)機構(gòu)

    、生物科技等微納操作領(lǐng)域。 H60.XYZTR5六自由度聯(lián)機構(gòu) H60.XYZTR5系列六自由度聯(lián)機構(gòu)壓電納米定位臺,是X、Y、Z、θx、θy、θz六軸運動定位臺,內(nèi)置高可靠性壓電
    的頭像 發(fā)表于 11-21 10:33 ?671次閱讀
    H60.XYZTR5六<b class='flag-5'>自由度</b>并<b class='flag-5'>聯(lián)機</b>構(gòu)

    機械的高效運作,連接器起關(guān)鍵作用

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

    鐵芯長短與電磁鐵磁力大小的關(guān)系

    鐵芯長短與電磁鐵磁力大小的關(guān)系是一個重要的電磁學問題,它涉及到電磁鐵的工作原理以及磁場在鐵芯中的分布和增強機制。 一、理論分析 1. 電磁鐵的基本原理
    的頭像 發(fā)表于 08-21 09:35 ?4524次閱讀

    OrangePi AIpro應用:機械應用開發(fā)指南

    眾多與會者的駐足關(guān)注,他們對這款智能機械表現(xiàn)出極大的熱情。此款機械能對積木顏色進行識別,將積木搬運到對應區(qū)域,可應用于垃圾分揀及工業(yè)、物
    的頭像 發(fā)表于 08-19 16:42 ?1067次閱讀
    OrangePi AIpro應用:<b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用開發(fā)指南

    工業(yè)機器人和機械的設計、功能和應用有哪些區(qū)別?

    自動化設備,專門用于在工業(yè)生產(chǎn)線或其他工業(yè)環(huán)境中執(zhí)行各種操作任務。它們通常具備多軸關(guān)節(jié)結(jié)構(gòu),能夠在三維空間內(nèi)自由移動,并搭載各種工具、夾具或傳感器來完成特定的任務。 工業(yè)機器人和機械都屬于自動化設備,用于執(zhí)行
    的頭像 發(fā)表于 08-16 09:43 ?1047次閱讀