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

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

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

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

Delta并聯(lián)機(jī)械臂實(shí)現(xiàn)電磁鐵搬運(yùn)功能

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

掃碼添加小助手

加入工程師交流群

1. 功能說明

R037樣機(jī)是一款Delta并聯(lián)機(jī)械臂。本文示例將利用Delta并聯(lián)機(jī)械臂實(shí)現(xiàn)不同點(diǎn)定點(diǎn)搬運(yùn)磁鐵物料的效果。

pYYBAGQJK5uAMbQAAABfJhtrhgI745.jpg

2. 結(jié)構(gòu)說明

Delta并聯(lián)機(jī)械臂,其驅(qū)動(dòng)系統(tǒng)采用精度較高的42步進(jìn)電機(jī);傳動(dòng)系統(tǒng)為絲杠和萬(wàn)向球節(jié);執(zhí)行末端為搭載電磁鐵的圓盤支架。

pYYBAGQJKVuAICV5AARGsH-mE1k584.png

3. Delta機(jī)械臂運(yùn)動(dòng)學(xué)算法

這里給大家介紹一種Delta并聯(lián)機(jī)械臂的運(yùn)動(dòng)軌跡解法,通過控制電機(jī)的轉(zhuǎn)動(dòng)參數(shù),最終求解出電磁鐵圓盤支架的運(yùn)動(dòng)軌跡規(guī)律,樣機(jī)采用R037b

poYBAGQJKXCAN-wXAAFL45E1Q-E081.png

該機(jī)械臂由3個(gè)絲杠平臺(tái)構(gòu)成,通過并聯(lián)的方式同時(shí)控制同一個(gè)端點(diǎn)的運(yùn)動(dòng);三個(gè)絲杠位于一個(gè)正三角形邊線的中心位置,連桿采用球頭萬(wàn)向節(jié)連桿結(jié)構(gòu)。

poYBAGQJK5uAbxf6AAAgQMq7HqM453.png

① 首先我們建立一個(gè)空間直角坐標(biāo)系,該直角坐標(biāo)系以三個(gè)絲杠平臺(tái)在俯視圖方向投影的內(nèi)切圓心為原點(diǎn),x軸與tower1和tower3之間的連線平行,y軸過tower2,其中z=0的平面設(shè)置在三個(gè)限位開關(guān)所在平面。

pYYBAGQJK5yAcdU1AAAbthQ72rE760.png

② 建立坐標(biāo)系之后,我們可以得出3個(gè)限位開關(guān)Z軸投影的坐標(biāo)為A=(-msin(60°),mcos(60°),0);B=(0,m,0);C=(msin(60°),mcos(60°),0);其中m為在xy投影面上正三角形的內(nèi)切圓心到B點(diǎn)的距離。

poYBAGQJK5yALokLAAAZKm0y0Ts252.png

③確定各限位開關(guān)的位置(即確定各絲杠平臺(tái)上滑塊的初始位置),絲杠平臺(tái)的運(yùn)動(dòng)可簡(jiǎn)化為如下:【其中N點(diǎn)為滑塊初始位置,Q點(diǎn)為端點(diǎn)初始位置,P為Q點(diǎn)在絲杠平臺(tái)上Z軸的投影;N1,P1,Q1點(diǎn)為絲杠平臺(tái)運(yùn)動(dòng)后的位,T點(diǎn)為某一固定點(diǎn),假設(shè)為delta機(jī)械臂上端點(diǎn)在Z向可以運(yùn)動(dòng)的最大值在絲杠平臺(tái)Z向的投影點(diǎn)】

pYYBAGQJK52AFulfAAAfxhEVPf0396.png

④逆運(yùn)動(dòng)學(xué)是根據(jù)Q1點(diǎn)的位置確定NN1的距離。

在圖中有幾個(gè)可以通過測(cè)量得到已知值,分別是連桿長(zhǎng)度NQ/N1Q1、NT的距離、終點(diǎn)Q1點(diǎn)的坐標(biāo);假設(shè)我們輸入的量是終點(diǎn)Q1的坐標(biāo)(X1,Y1,Z1);這里需要注意的是Z1坐標(biāo)為負(fù)值,為了方便理解在后面的推導(dǎo)中我們都對(duì)Z1取絕對(duì)值。

我們需要計(jì)算的是NN1的距離:

poYBAGQJK52Aa3sOAAABFroLaNQ461.png

其中Q1的Z坐標(biāo)與P1的Z坐標(biāo)一致,所以NP1為已知量為Q1的Z坐標(biāo)值Z1,即可以將上面的公式改為:

pYYBAGQJK52AGjT5AAABMBclx8I351.png

這里我們只需要計(jì)算出N1P1的值即可:

poYBAGQJK56AYwnjAAABpFtA0Q0366.png

其中NIQ1為連桿長(zhǎng)度,可通過測(cè)量得知,所以這里面需要我們計(jì)算出Q1P1。

⑤求出Q1P1:【該長(zhǎng)度我們可以通過兩點(diǎn)坐標(biāo)距離公式得出,借助俯視圖投影進(jìn)行計(jì)算】

pYYBAGQJK56AZDiqAAAc2FDp9gM993.png

為方便計(jì)算Q1P1,圖中我們將N,N1,P,P1,T點(diǎn)都投影到Z為0的點(diǎn),則Q1(X1,Y1,0)。

根據(jù)點(diǎn)坐標(biāo)公式可得:

poYBAGQJK5-AQDjGAAACiKVuAGQ210.png

綜上所述:

pYYBAGQJK5-ASqq9AAAC6OUQZ4o422.png

注意前面我們對(duì)Z1取了一次絕對(duì)值,實(shí)際Z1為負(fù)值,

所以最終推導(dǎo)公式為:

poYBAGQJK5-AAMfnAAAC-qjn1AI040.png

這樣我們就求出了NN1(絲杠移動(dòng)距離)與Q1(執(zhí)行端運(yùn)動(dòng)的終點(diǎn))坐標(biāo)的關(guān)系。

4. 功能實(shí)現(xiàn)

4.1 電子硬件

在這個(gè)示例中,我們采用了以下硬件,請(qǐng)大家參考:

主控板 Basra主控板(兼容Arduino Uno)
擴(kuò)展板 Bigfish2.1
SH-ST擴(kuò)展板
傳感器 觸碰傳感器
電機(jī) 步進(jìn)電機(jī)
電池 11.1v動(dòng)力電池
其它 電磁鐵、USB

4.2 電路連接說明

① 硬件連接-電子元件

pYYBAGQJK6CALIDwAABG5D41dK0728.png

各軸步進(jìn)電機(jī)與SH-ST步進(jìn)電機(jī)擴(kuò)展板的接線順序如下(從上至下):
X:紅藍(lán)黑綠

Y:紅藍(lán)黑綠

Z:黑綠紅藍(lán)

② 硬件連接-限位傳感器

poYBAGQJK6CAEaQFAABdeAtrUbI087.png

各個(gè)軸的限位傳感器(觸碰)與Bigfish擴(kuò)展板的接線如下:
X:A0

Y:A3

Z:A4

③ 電磁鐵連在Bigfish擴(kuò)展板的D5、D6接口上。

4.3 編寫程序

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

Delta機(jī)械臂有兩種運(yùn)動(dòng)方式:第一種是自動(dòng)運(yùn)行搬運(yùn);第二種是用電腦發(fā)送指令,然后再根據(jù)指令運(yùn)動(dòng)。

這里僅列出Delta機(jī)械臂自動(dòng)運(yùn)行搬運(yùn)(Delta.ino)的程序:【其它的程序源碼詳見 https://www.robotway.com/h-col-194.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 機(jī)器譜 2023-02-08 https://www.robotway.com/                                 

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

#include "Arduino.h"

#include 

#include 

#include "Configuration.h"


AccelStepper stepper_x(1, 2, 5);      //tower1

AccelStepper stepper_y(1, 3, 6);      //tower2

AccelStepper stepper_z(1, 4, 7);      //tower3

//AccelStepper stepper_a(1, 12, 13);


MultiStepper steppers;


float delta[NUM_STEPPER];                         

float cartesian[NUM_AXIS] = {0.0, 0.0, 0.0};         //當(dāng)前坐標(biāo)

float destination[NUM_AXIS];                         //目標(biāo)坐標(biāo)

boolean dataComplete = false;


float down = -111;

float up = -105;


/*********************************************Main******************************************/

void setup() {

  Serial.begin(9600);

  pinMode(EN, OUTPUT);


  steppers.addStepper(stepper_x);

  steppers.addStepper(stepper_y);

  steppers.addStepper(stepper_z);


  stepperSet(1600, 400.0);

  stepperReset();

  delay(1000);


  Get_command(0, 0, down);

  Process_command();

 

  delay(1000);

}


void loop() {

  float r = 25;

  float x1 = 0.0;

  float y1 = 0.0;


  Get_command(25, 0, down);

  Process_command();

  delay(1000);

 

  for(int i=0;i<2;i++){

    for(float i=0.0;i<=360;i+=10){

      x1 = r * cos(i / 180 * 3.141592);

      y1 = r * sin(i / 180 * 3.141592);

     

      Get_command(x1, y1, down);

      Process_command();                                     

    }

  }

  delay(1000);


  for(int j=0;j<2;j++){

    for(float i=360.0;i>=0;i-=10){

      x1 = r * cos(i / 180 * 3.141592);

      y1 = r * sin(i / 180 * 3.141592);

     

      Get_command(x1, y1, down);

      Process_command();                                     

    }

  }

  delay(1000);




  Get_command(0, 0, down);

  Process_command();  

 

  test();

  delay(1000);

 

  stepperReset();

  delay(1000);

 

}


/***************************************Get_commond*******************************************/

void Get_command(float _dx, float _dy, float _dz){  

  destination[0] = _dx;

  destination[1] = _dy;

  destination[2] = _dz;

 

  if(destination[0] == 0 && destination[1] == 0 && destination[2] == 0){

      stepperReset();  

  }

  else

  {

      dataComplete = true;

  }

 

  if(serial_notes){

   Serial.print("destinationPosition: ");

   Serial.print(destination[0]);

   Serial.print(" ");

   Serial.print(destination[1]);

   Serial.print(" ");

   Serial.println(destination[2]);

  }


}


/***************************************Process_command***************************************/

void Process_command(){

  if(dataComplete){

    digitalWrite(EN, LOW);

   

    if(cartesian[0] == destination[0] && cartesian[1] == destination[1] && cartesian[2] == destination[2]){

      return;  

    }

    else

    {


      Line_DDA(destination[0], destination[1], destination[2]);

    }

   

  }

  dataComplete = false;

  digitalWrite(EN, HIGH);

}


/************************************************** DDA ************************************************/

void Line_DDA(float x1, float y1, float z1)

{

  float x0, y0, z0;         // 當(dāng)前坐標(biāo)點(diǎn)

  float cx, cy;             // x、y 方向上的增量

 

  x0 = cartesian[0];y0 = cartesian[1];z0 = cartesian[2];

   

  int steps = abs(x1 - x0) > abs(y1 - y0) ? abs(x1 - x0) : abs(y1 - y0);

 

  cx = (float)(x1 - x0) / steps;

  cy = (float)(y1 - y0) / steps;

 

  for(int i = 0; i <= steps; i++)

  {

    cartesian[0] = x0 - cartesian[0];

    cartesian[1] = y0 - cartesian[1];

    cartesian[2] = z1 - cartesian[2];


    calculate_delta(cartesian);

   

    stepperSet(1350.0, 50.0);

    stepperMove(delta[0], delta[1], delta[2]);

 

    cartesian[0] = x0;

    cartesian[1] = y0;

    cartesian[2] = z1;

 

    x0 += cx;

    y0 += cy;

   

    if(serial_notes){

      Serial.print("currentPosition: ");

      for(int i=0;i<3;i++){

         Serial.print(cartesian[i]);

         Serial.print(" ");

      }   

      Serial.println();

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

    }


  }


}


/***************************************calculateDelta****************************************/

void calculate_delta(float cartesian[3])

{

  if(cartesian[0] == 0 && cartesian[1] == 0 && cartesian[2] == 0){

      delta[0] = 0; delta[1] =0; delta[2] = 0;

  }

  else

  {

      delta[TOWER_1] = sqrt(delta_diagonal_rod_2

                       - sq(delta_tower1_x-cartesian[X_AXIS])

                       - sq(delta_tower1_y-cartesian[Y_AXIS])

                       ) + cartesian[Z_AXIS];

      delta[TOWER_2] = sqrt(delta_diagonal_rod_2

                       - sq(delta_tower2_x-cartesian[X_AXIS])

                       - sq(delta_tower2_y-cartesian[Y_AXIS])

                       ) + cartesian[Z_AXIS];

      delta[TOWER_3] = sqrt(delta_diagonal_rod_2

                       - sq(delta_tower3_x-cartesian[X_AXIS])

                       - sq(delta_tower3_y-cartesian[Y_AXIS])

                       ) + cartesian[Z_AXIS];


     for(int i=0;i<3;i++){

        delta[i] = ((delta[i] - 111.96) * stepsPerRevolution / LEAD);

     }

  }


  if(serial_notes){

      Serial.print("cartesian x="); Serial.print(cartesian[X_AXIS]);

      Serial.print(" y="); Serial.print(cartesian[Y_AXIS]);

      Serial.print(" z="); Serial.println(cartesian[Z_AXIS]);

   

      Serial.print("delta tower1="); Serial.print(delta[TOWER_1]);       

      Serial.print(" tower2="); Serial.print(delta[TOWER_2]);

      Serial.print(" tower3="); Serial.println(delta[TOWER_3]);

  }


}


/****************************************stepperMove******************************************/

void stepperMove(long _x, long _y, long _z){             

    long positions[3];

    positions[0] = _x;                        //steps < 0, 向下運(yùn)動(dòng) ; steps > 0, 向上運(yùn)動(dòng)

    positions[1] = _y;

    positions[2] = _z;


    steppers.moveTo(positions);

    steppers.runSpeedToPosition();


    stepper_x.setCurrentPosition(0);

    stepper_y.setCurrentPosition(0);

    stepper_z.setCurrentPosition(0);

}


/****************************************stepperSet******************************************/

void stepperSet(float _v, float _a){

  stepper_x.setMaxSpeed(_v);                  //MaxSpeed: 650

  stepper_x.setAcceleration(_a);  

  stepper_y.setMaxSpeed(_v);

  stepper_y.setAcceleration(_a);

  stepper_z.setMaxSpeed(_v);

  stepper_z.setAcceleration(_a);


}


/****************************************stepperReset******************************************/

void stepperReset(){

  digitalWrite(EN, LOW);

 

  if(cartesian[2] != 0){

    Get_command(0, 0, cartesian[2]);

    Process_command();

    digitalWrite(EN, LOW);

  }

 

  while(digitalRead(SENSOR_TOWER1) && digitalRead(SENSOR_TOWER2) && digitalRead(SENSOR_TOWER3)){

    stepperMove(10, 10, 10);

  }


  stepperSet(1200.0, 100.0);

  stepperMove(-400, 0, 0);

  while(digitalRead(SENSOR_TOWER1)){

    stepperMove(10, 0, 0);

   

  }


  stepperMove(0, -400, 0);

  while(digitalRead(SENSOR_TOWER2)){

    stepperMove(0, 10, 0);

  }


  stepperMove(0, 0, -400);

  while(digitalRead(SENSOR_TOWER3)){

    stepperMove(0, 0, 10);

  }


  for(int i=0;i<3;i++){

     cartesian[i] = 0.0;

  }  


  if(serial_notes) Serial.println("resetComplete!");


  digitalWrite(EN, HIGH);

}


/*************************************************** electromagnet *************************************************************/

void putUp(){

   digitalWrite(9, HIGH);

   digitalWrite(10, LOW);

}


void putDown(){

   digitalWrite(9, LOW);

   digitalWrite(10, LOW);

}


/**************************************************   test    ******************************************************************/

void test(){

    Get_command(0, 0, down);

    Process_command();

    delay(500);

    putUp();

 

    Get_command(0, 0, up);

    Process_command();  

    Get_command(25, 0, up);

    Process_command();


    Get_command(25, 0, down);

    Process_command();  

    putDown();

    delay(500);

    putDown();

    putUp();


    Get_command(25, 0, up);

    Process_command();   

    Get_command(0, 25, up);

    Process_command();   


    Get_command(0, 25, down);

    Process_command();

    putDown();  

    delay(500);

    putDown();

    putUp();


    Get_command(0, 25, up);

    Process_command();   

    Get_command(-25, 0, up);

    Process_command();   


    Get_command(-25, 0, down);

    Process_command();  

    putDown();

    delay(500);

    putUp();


    Get_command(-25, 0, up);

    Process_command();   

    Get_command(0, -25, up);

    Process_command();   


    Get_command(0, -25, down);

    Process_command();  

    putDown();

    delay(500);

    putUp();


    Get_command(0, -25, up);

    Process_command();   

    Get_command(25, 0, up);

    Process_command();   


    Get_command(25, 0, down);

    Process_command();   

    putDown();

    delay(500);

    putUp();


    Get_command(25, 0, up);

    Process_command();   

    Get_command(0, 0, up);

    Process_command();   


    Get_command(0, 0, down);

    Process_command();   

    delay(500);

    putDown();

}

5. 擴(kuò)展

下圖是另一種外觀的Delta機(jī)械臂(R037c),控制原理完全一樣。

pYYBAGQJK6GAAjttAABPVE8ct9U363.jpg

審核編輯黃宇

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

    關(guān)注

    2

    文章

    170

    瀏覽量

    15387
  • Delta
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    12801
  • 機(jī)械臂
    +關(guān)注

    關(guān)注

    13

    文章

    554

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    視覺運(yùn)控一體機(jī)在DELTA并聯(lián)機(jī)械手動(dòng)態(tài)跟隨抓取的應(yīng)用

    正運(yùn)動(dòng)DELTA并聯(lián)機(jī)械手動(dòng)態(tài)跟隨抓取解決方案
    的頭像 發(fā)表于 04-29 10:34 ?202次閱讀
    視覺運(yùn)控一體機(jī)在<b class='flag-5'>DELTA</b><b class='flag-5'>并聯(lián)機(jī)械</b>手動(dòng)態(tài)跟隨抓取的應(yīng)用

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

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

    阿童木高速重載并聯(lián)機(jī)器人效能拉滿

    在工業(yè)自動(dòng)化領(lǐng)域,并聯(lián)機(jī)器人憑借高速度優(yōu)勢(shì),廣泛應(yīng)用于輕小散亂物料搬運(yùn)分揀與上下料環(huán)節(jié),也正如此,并聯(lián)機(jī)器人長(zhǎng)期被貼上“輕型敏捷”的標(biāo)簽:3C電子產(chǎn)線上精準(zhǔn)靈巧分揀電子元器件,廣大制藥企業(yè)藥品自動(dòng)化
    的頭像 發(fā)表于 03-18 09:22 ?563次閱讀

    完美CP來啦!當(dāng)AGV遇上機(jī)械

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

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

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

    DELTA并聯(lián)機(jī)械手視覺方案榮獲2024年度機(jī)器人應(yīng)用典型案例獎(jiǎng)

    基于機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在DELTA視覺柔振上下料領(lǐng)域的應(yīng)用
    的頭像 發(fā)表于 01-13 16:42 ?410次閱讀
    <b class='flag-5'>DELTA</b><b class='flag-5'>并聯(lián)機(jī)械</b>手視覺方案榮獲2024年度機(jī)器人應(yīng)用典型案例獎(jiǎng)

    PPEC inside 超導(dǎo) / 磁鐵電源,以搭積木的方式快速滿足您的磁鐵供電需求

    AC380V供電、水冷散熱、RS485通訊接口,方便與外部設(shè)備連接和通信,適用于電磁鐵、線圈等感性負(fù)載。為滿足多樣化輸出需求,產(chǎn)品機(jī)箱提供全高機(jī)柜和半高機(jī)柜兩種選擇。全
    的頭像 發(fā)表于 12-16 18:05 ?108次閱讀
    PPEC inside 超導(dǎo) / <b class='flag-5'>磁鐵</b>電源,以搭積木的方式快速滿足您的<b class='flag-5'>磁鐵</b>供電需求

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

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

    無線電磁閥控制器-通過無線通訊遠(yuǎn)程控制農(nóng)田灌溉

    無線電磁閥控制器基于電磁感應(yīng)定律工作,通過激勵(lì)電磁鐵產(chǎn)生的電磁場(chǎng),改變閥門內(nèi)部的磁場(chǎng)分布,從而控制閥門的開閉。當(dāng)電磁鐵通電時(shí),產(chǎn)生的
    的頭像 發(fā)表于 12-01 21:51 ?801次閱讀

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

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

    機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料應(yīng)用

    機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料的應(yīng)用
    的頭像 發(fā)表于 10-24 09:02 ?1047次閱讀
    機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在<b class='flag-5'>DELTA</b><b class='flag-5'>并聯(lián)機(jī)械</b>手視覺上下料應(yīng)用

    機(jī)械手 OEM 的應(yīng)用

    等。 并聯(lián)機(jī)械手 :并聯(lián)機(jī)械手由多個(gè)并聯(lián)的連桿機(jī)構(gòu)組成,具有高速、高精度、高剛度等優(yōu)點(diǎn)。它適用于一些對(duì)速度和精度要求較高的應(yīng)用場(chǎng)景,如食品、藥品的包裝等。 按驅(qū)動(dòng)方式劃分 : 電動(dòng)機(jī)械
    發(fā)表于 09-18 10:31

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

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

    OrangePi AIpro應(yīng)用:機(jī)械應(yīng)用開發(fā)指南

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