国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制

這篇具有很好參考價值的文章主要介紹了機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、本體說明?

?

?1. 機械臂整體描述

? ? ? 該桌面級機械臂為模塊化設(shè)計,包含主機模塊1個、轉(zhuǎn)臺模塊1個、二級擺動模塊1個、可編程示教盒1個、2種末端執(zhí)行器、高清攝像頭,以及適配器、組裝工具、備用零件等??蓪⒛K快速組合為一個帶被動關(guān)節(jié)的串聯(lián)3自由度機械臂,亦可進一步加裝、更換執(zhí)行器、傳感器來完成各類控制實驗。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

?1.1 機械臂清單介紹

序號

名稱

備注

1

本體

包括轉(zhuǎn)臺、小臂、大臂、執(zhí)行機構(gòu)

2

執(zhí)行機構(gòu)

如:手爪執(zhí)行器、氣動執(zhí)行器

3

主機

包括樹莓派、Arduino 主控板等相關(guān)的配置

4

顯示屏

5

電子部件

如:攝像頭、遙控模塊

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
機械臂的主要配置清單

1.2 產(chǎn)品配置

機械臂的主要硬件圖如下所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
主要硬件圖

組成的主要硬件參數(shù)如下表所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

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

該機械臂結(jié)構(gòu)是一個帶被動關(guān)節(jié)的3自由度,包含一個1自由度的轉(zhuǎn)臺和帶被動關(guān)節(jié)的2自由度關(guān)節(jié)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

? ? ? 其中2自由度關(guān)節(jié)模塊分為大臂和小臂:大臂通過1.76減速比的齒輪箱進行傳動,小臂通過二級帶傳動實現(xiàn)傳動和被動關(guān)節(jié)設(shè)計。被動關(guān)節(jié)可以保證執(zhí)行器末端運動時指向保持一個方向,其中一級帶傳動控制小臂轉(zhuǎn)動,另一級帶傳動使末端方向保持一致。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

如下所示是裝有手爪、攝像頭的實物圖:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
裝有手爪和攝像頭的實物圖

其中的執(zhí)行機構(gòu)部分(即現(xiàn)在裝手爪執(zhí)行器的地方)還可以靈活的替換為氣動部件(見下圖)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
裝有氣動部件的實物圖

3. 機械臂的電路連接

? ? ? ?在進行電路連接前,先來了解一下主機的布局及引腳圖。下圖是主機的布局實物圖,本實驗中主要用到總線、PWM(D4)、TX2/RX2。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
主機正面圖 ?
機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
主機電路引腳圖(從右向左與主機對應(yīng))

按下圖所示進行機械臂的電路連接:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
機械臂與主機外設(shè)的接線圖
機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
顯示屏、鼠標、鍵盤與主機進行連接

開機注意事項

? ? ? 機械臂的狀態(tài)主要包含非復(fù)位狀態(tài)、復(fù)位狀態(tài)(其中復(fù)位狀態(tài)指的是:大臂轉(zhuǎn)動到垂直狀態(tài)、小臂轉(zhuǎn)動到水平狀態(tài))。只有開機看到機械臂能夠從非復(fù)位狀態(tài)轉(zhuǎn)到復(fù)位狀態(tài),后續(xù)實驗才能正常進行;否則可能會出現(xiàn)燒錄程序,但機械臂不按預(yù)期運動的現(xiàn)象。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
機械臂非復(fù)位狀態(tài)
機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
機械臂的復(fù)位狀態(tài)

4. 軟硬件環(huán)境配置及使用

4.1軟硬件環(huán)境介紹

機器人可利用視覺識別技術(shù),進行識別、追蹤目標、定位等功能。我們可以利用上位機來控制機器人的大腦,用下位機控制設(shè)備。 ?

上位機是指:

? ? ? 人可以直接發(fā)出操控命令的計算機,一般是PC或者計算機的屏幕上顯示各種信號變化(液壓,水位,溫度等),本實驗將利用樹莓派屏幕上顯示視覺識別的結(jié)果。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
樹莓派及Ros系統(tǒng)

下位機是指:

? ? ? 直接控制設(shè)備獲取設(shè)備狀況的的計算機,一般是PLC/單片機之類的,本實驗將利用Arduino開源主控板充當下位機進行開發(fā)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
Arduino主控板及編程IDE

? ? ? 上位機發(fā)出的命令首先傳給下位機,下位機再根據(jù)此命令解釋成相應(yīng)時序信號,直接控制相應(yīng)設(shè)備。下位機讀取設(shè)備狀態(tài)數(shù)據(jù)(一般模擬量),轉(zhuǎn)化成數(shù)字信號反饋給上位機。選擇合適的平臺及編程環(huán)境、函數(shù)庫,就可以進行機器人結(jié)構(gòu)、運動控制、視覺開發(fā)等多方面的應(yīng)用,控制機器人的行為。

4.2在樹莓派上安裝Ros及功能包

? ? ? 為了便于使用,本實驗中已把樹莓派和Arduino板子進行了組合,設(shè)計出主控盒子(又叫主機),方便使用。主控盒子已預(yù)裝好操作系統(tǒng)、編程環(huán)境以及需要用到的功能包。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
主控盒子(主機)

? ? ? 對樹莓派上的環(huán)境配置主要包括:安裝Raspberry Pi OS (32-bit) with desktop操作系統(tǒng)、ROS、配置ROS環(huán)境、Arduino IDE、功能包。其中本實驗需要的功能包包括視覺識別庫(OpenCV2.4.9)、二維碼識別庫(zbar)。為了方便使用,本實驗已做好了樹莓派鏡像文件,已經(jīng)預(yù)安裝好上述開發(fā)環(huán)境,電路連接好后可直接使用。當把主機與顯示屏連接后,找到文末資料下載中的color_experiment_ws文件夾即可。

5. 資料下載

樣機3D文件及程序源代碼資料詳見 桌面級機械臂-本體說明

二、驅(qū)動及控制

1. 總線舵機模式的設(shè)置

? ? ? 機械臂驅(qū)動采用總線式電機驅(qū)動,該總線式電機具有多種模式,如360°圓周模式、270°逆時針模式、270°順時針模式等??偩€舵機采用單總線通信方式,與傳統(tǒng)舵機相比,最大特點就是舵機之間可串聯(lián),最多可級聯(lián)255個舵機。

? ? ? 打開文末資料內(nèi)的“總線舵機ID及模式更改資料”,為總線舵機設(shè)置模式,包括轉(zhuǎn)臺、大臂、小臂三部分,需要分別為總線舵機設(shè)置ID、工作模式。關(guān)于總線舵機ID設(shè)置如下圖所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
機械臂的各舵機ID圖

接下來開始為機械臂的各部分設(shè)置相應(yīng)的舵機模式:

各部分

總線舵機ID

計劃設(shè)置舵機模式

代表含義

轉(zhuǎn)臺

000

#000PMOD2!

舵機模式,角度最大范圍270 度,方向逆時針

大臂

001

#001PMOD2!

同上

小臂

002

#002PMOD2!

同上

器材準備:PC機或筆記本電腦(windows操作系統(tǒng)、Arduino IDE)、以及下圖所示的器材。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

操作過程:分別為機械臂的轉(zhuǎn)臺、大臂、小臂設(shè)置舵機模式,并能設(shè)置其初始角度。

1.1設(shè)置轉(zhuǎn)臺的舵機模式

第一步:按下圖所示連接電路。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:打開文末資料內(nèi)的”總線舵機ID及模式更改資料\串口調(diào)試助手\sscom5.13.1.exe”(如下圖所示)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第三步:選擇端口號、波特率,并打開串口。

先在菜單欄:串口設(shè)置-打開串口設(shè)置,選擇端口號、波特率,點擊“ok”即可。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

接著點擊“打開串口”,并點擊“擴展”。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

這里已經(jīng)把命令設(shè)置好了,只需要依次點擊描紅的命令(如下圖所示),就可以完成轉(zhuǎn)臺模式的設(shè)置,即可觀察到轉(zhuǎn)臺轉(zhuǎn)動到指定角度。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

1.2 設(shè)置大臂的舵機模式

第一步:按下圖所示把大臂的舵機線與小模塊進行電路連接(注意:請先把小模塊斷電)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:在串口調(diào)試助手里,選擇端口號、波特率并打開串口。

第三步:依次點擊下邊描紅的命令,就可完成大臂模式的設(shè)置,同時可觀察到大臂轉(zhuǎn)動。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

1.3設(shè)置小臂的舵機模式

第一步:按下圖所示把小臂的舵機線與小模塊進行電路連接(注意:請先把小模塊斷電)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:在串口調(diào)試助手里,選擇端口號、波特率并打開串口。

第三步:依次點擊下邊描紅的命令,就可完成小臂模式的設(shè)置,同時可觀察到小臂轉(zhuǎn)動。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

這樣就完成了總線舵機模式的設(shè)置工作,接下來的實驗都是基于這種舵機模式來完成的。

2. 機械臂的單關(guān)節(jié)控制

實現(xiàn)思路:串口發(fā)送命令,控制單關(guān)節(jié)控制(提示:需要先設(shè)置好舵機模式)

器材準備:機械臂本體、主控盒、顯示屏、鍵盤、鼠標(如下圖所示)

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
裝有手爪和攝像頭的實物圖

操作步驟:

① 下載文末資料內(nèi)的參考程序color_experiment_ws\src\Contril_Single_Joint\arm_driver\arm_driver.ino:

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

  版權(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-08-02 https://www.robotway.com/

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

/*

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

實驗功能:實現(xiàn)單關(guān)節(jié)控制機械臂控制。

實驗思路:通過串口發(fā)送命令,控制機械臂單關(guān)節(jié)控制。首先程序?qū)崿F(xiàn)讀取串口發(fā)送的數(shù)據(jù),接著處理串口發(fā)送的數(shù)據(jù),

        最后程序?qū)⑻幚砗玫臄?shù)據(jù)通過Serial1發(fā)送給機械臂達到控制機械臂的效果。

        注意:串口發(fā)送命令格式為[機械臂部件pwm](pwm范圍是[500~2500])。

        例如:rm 1500 底盤轉(zhuǎn)到1500

              um 1500 大臂轉(zhuǎn)到1500

              lm 1500 小臂轉(zhuǎn)到1500

                   

實驗接線:(主要接線)

          機械臂通信口-------------(機械臂)電控箱

          機械爪(舵機)---------------(執(zhí)行器)電控箱

          其他線路按照教材圖片連接。

Created 2020.7.16     By:Boris.yuan

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

*/

#include <Servo.h>

#define CTL_BAUDRATE 115200 //總線舵機波特率

#define SERIAL_PRINTLN Serial1

#define SerialBaudrate 115200

#define RM "rm"

#define UM "um"

#define LM "lm"

String receive_string = "";

int catch_red_numbers=0;

int catch_blue_numbers=0;

int current_angle=0;

void setup() {

  // put your setup code here, to run once:

  delay(1100);

  Serial.begin(SerialBaudrate);

  SERIAL_PRINTLN.begin(CTL_BAUDRATE);

  Bus_servo_angle_init();delay(2000);

  Serial.println("Please input your commond......");

}

void loop() {

  while(Serial.available()>0)

  {

    String commond = "";

    long n_step = 0;

    int index = 0;

    commond = Serial.readStringUntil('\n');

    index = commond.indexOf(' ');

    n_step = commond.substring(index+1).toInt();

    commond = commond.substring(0,index);

    Serial.print(commond);Serial.print('\t');

    Serial.println(n_step);

    if(commond==RM){

        if( (n_step<500) || (n_step>2500) ){

          Serial.println("Sorry,the angle is out of range!");

        }

        else{

          ArmSingleServoTo(0,n_step);

        }

        n_step=0;commond="";

    }

    if(commond==UM){

        if( (n_step<500) || (n_step>2500) ){

          Serial.println("Sorry,the angle is out of range!");

        }

        else{     

          ArmSingleServoTo(1,n_step);

        }

        n_step=0;commond="";

    }

    if(commond==LM){

        if( (n_step<500) || (n_step>2500) ){

          Serial.println("Sorry,the angle is out of range!");

        }

        else{     

          ArmSingleServoTo(2,n_step);

        }

        n_step=0;commond="";

    }

    Serial.println();

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

  }

}

② 打開串口,查看返回的結(jié)果值。

注意:串口發(fā)送命令格式為[部件 pwm](pwm范圍是[500~2500])。

串口發(fā)送命令例子

代表含義

rm 1500

底盤轉(zhuǎn)到1500

um 1500

大臂轉(zhuǎn)到1500

lm 1500

小臂轉(zhuǎn)到1500

首先,設(shè)置波特率并等待程序初始化,界面如下圖所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

接下來,可以發(fā)送控制轉(zhuǎn)臺運動的例子,來觀看結(jié)果。

輸入格式如下圖所示,就可以看見機械臂的轉(zhuǎn)臺運動:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

同時也可看見串口顯示數(shù)據(jù)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

下面是本實驗中分別針對轉(zhuǎn)臺、大臂、小臂轉(zhuǎn)動位置進行測試的結(jié)果(如下圖所示)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

3. 操作桿方案

實現(xiàn)思路:通過操作桿控制氣動盒的開、關(guān); 當氣動盒打開后,實現(xiàn)可以吸物塊的功能。

實驗器材及接線:如下圖所示。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

操作步驟:

第一步:Basra主控板 、Bigfish擴展板??Birdmen手柄擴展板 堆疊在一起。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

Birdmen手柄擴展板引腳圖如下圖所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:下載文末資料內(nèi)的參考程序color_experiment_ws\src\Rocker_Control_Sucker\rocker_contril_sucker\rocker_contril_sucker.ino:

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

  版權(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-08-03 https://www.robotway.com/

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

/*

實驗功能:搖桿模塊控制吸盤開關(guān)。

實驗思路:讀取搖桿模塊數(shù)值,判斷該數(shù)據(jù),進而根據(jù)數(shù)據(jù)選取區(qū)間,編寫不同區(qū)間,吸盤狀態(tài)。

實驗操作:將該例程下載到arduino開發(fā)版,按照實驗教程接線,完成后,給模塊上電,試著

        滑動搖桿模塊,控制吸盤開關(guān)狀態(tài)。

實驗接線:氣動箱信號腳連接到Barsa的D12引腳

Create 2020.7.17   By:Boris.yuan

*/

#define Sucker_Pin 12

#define Rocker_Pin A1

void setup() {

  // put your setup code here, to run once:

  delay(1000);

  Serial.begin(9600);

  pinMode(Sucker_Pin,OUTPUT);

  pinMode(Rocker_Pin,INPUT);

}

void loop() {

  // put your main code here, to run repeatedly:

  int receive_Rocker_data = analogRead(Rocker_Pin);

  Serial.println(receive_Rocker_data);

  if( (receive_Rocker_data<200) )

  {

    digitalWrite(Sucker_Pin,LOW);

  }

  else if( (receive_Rocker_data>800) )

  {

    digitalWrite(Sucker_Pin,HIGH);

  }

  delay(30);

}

第三步:左側(cè)的搖桿,當向右按下時,氣動盒開關(guān)打開,可以吸取物品(如下圖所示);當向左按下時,氣動盒開關(guān)關(guān)閉。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

4. 機械臂的無線遙控

本實驗將通過?藍牙 結(jié)合一個可編程示教器進行無線遙控的學習,包含藍牙通信設(shè)定、無線控制。

4.1 兩個藍牙通信設(shè)定

實驗?zāi)康模?/strong>測試藍牙主從模塊數(shù)據(jù)發(fā)收。

連接在Birdmen手柄擴展板上的藍牙模塊為主模塊;連接在帶開關(guān)通信擴展塢上的藍牙模塊為從模塊。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

實現(xiàn)思路:當藍牙主模塊發(fā)送數(shù)據(jù)(如123)時,藍牙從模塊能收到該數(shù)據(jù)(123),代表通信成功。

實驗器材:如下圖所示。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能
藍牙通信模塊及配套線

操作步驟:

? ? ? 第一步:先給Basra主控板下載藍牙主模塊程序。

① 先按下圖所示連接好電路(注意:藍牙通信擴展塢的開關(guān)需撥到左側(cè))。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

② 然后下載文末資料內(nèi)的參考程序color_experiment_ws\src\Bluetooth_communication\Master\Master.ino:

/*------------------------------------------------------------------------------------
  版權(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-08-03 https://www.robotway.com/
  ------------------------------*/
#define Baud 9600
#define SERIAL Serial2

void setup() {
  // put your setup code here, to run once:
delay(1000);
Serial.begin(Baud);
SERIAL.begin(Baud);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(SERIAL.available()>0)
  {
    String receive_string = SERIAL.readStringUntil('\n');
    Serial.println(receive_string);
    receive_string = " ";
  }
}

③ 最后拔掉此主控板的USB線,將藍牙主模塊插在Bigfish擴展板的擴展塢上(如下圖所示)。打開電源后,若看到藍牙上的燈一閃一閃的,代表正在等待連接中。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:給主機里的Arduino mega2560控制板下載藍牙從模塊程序。

① 把藍牙通信模塊與主機的Tx2/RX2接口進行連接(如下圖所示)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

② 然后下載文末資料內(nèi)的參考程序color_experiment_ws\src\Bluetooth_communication\Salve\Salve.ino:

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

  版權(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-08-03 https://www.robotway.com/

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

#define Baud 9600

#define SERIAL Serial2

void setup() {

  // put your setup code here, to run once:

delay(1000);

Serial.begin(Baud);

SERIAL.begin(Baud);

}

void loop() {

  // put your main code here, to run repeatedly:

  while(SERIAL.available()>0)

  {

    String receive_string = SERIAL.readStringUntil('\n');

    Serial.println(receive_string);

    receive_string = " ";

  }

}

③ 把藍牙從模塊連接在底座上(如下圖所示),然后接在主機的TX2/RX2上,可以看見藍牙從模塊的燈亮,且一閃一閃的。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第三步:觀察藍牙主從模塊燈,如果看到藍牙主從模塊上的燈亮著但不閃爍,則表示藍牙主從模塊連接成功。

第四步打開藍牙(從)模塊的Arduino串口監(jiān)視器,觀察是否接受到數(shù)據(jù)“123”,如果接收到相應(yīng)的數(shù)據(jù)(如下圖所示),則表示藍牙主從模塊通信成功。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

4.2 藍牙遙控

實驗?zāi)康模?/strong>通過控制手柄上的兩個搖桿,來實現(xiàn)機械臂氣動搬運物塊的功能。

實現(xiàn)思路:當按下手柄搖桿的不同方向時,可以控制機械臂的轉(zhuǎn)臺、大臂、小臂朝不同方向運動(默認規(guī)定手柄左邊為左側(cè)搖桿,右邊為右側(cè)搖桿)

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

當左側(cè)搖桿按下后,控制的吸盤、小臂的情況如下圖所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

當右側(cè)搖桿按下后,控制的轉(zhuǎn)臺、大臂的情況如下圖所示:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

實驗器材:BLE4.0藍牙模塊 ×2、連接線、Basra控制板×1、與藍牙連接的底座、機械臂本體、氣動盒、連接線、主機、顯示屏、鼠標、鍵盤

操作步驟:

第一步:先給帶有搖桿模塊的主控板(接藍牙主模塊)下載程序。

① 按下圖所示連接電路:

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

② 然后下載文末資料內(nèi)的參考程序color_experiment_ws\src\Wireness_Contril\Program_With_Rocker\controller\controller.ino:

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

  版權(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-08-03 https://www.robotway.com/

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

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600); //藍牙串口波特率

  pinMode(A0, INPUT); //左側(cè)上下?lián)u桿引腳

  pinMode(A1, INPUT); //左側(cè)上下?lián)u桿引腳

  pinMode(A2, INPUT); //右側(cè)上下?lián)u桿引腳

  pinMode(A3, INPUT); //右側(cè)上下?lián)u桿引腳

}

void loop() {

  // put your main code here, to run repeatedly:

  if(analogRead(A0) > 1000)

  {

    Serial.print('u');

  }

  if(analogRead(A0) < 25)

  {

    Serial.print('d');

  }

  if(analogRead(A1) > 1000)

  {

    Serial.print('c');

  }

  if(analogRead(A1) < 25)

  {

    Serial.print('s');

  }

  if(analogRead(A2) > 1000)

  {

    Serial.print('f');

  }

  if(analogRead(A2) < 25)

  {

    Serial.print('b');

  }

  if(analogRead(A3) > 1000)

  {

    Serial.print('r');

  }

  if(analogRead(A3) < 25)

  {

    Serial.print('l');

  }

  delay(10);//發(fā)送執(zhí)行周期20ms,可更改,越小機械臂運動越快,但是可能導致機械臂卡頓

}

③ 將藍牙主模塊按下圖所示插在手柄的擴展塢上。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

第二步:給主機里的Arduino mega2560控制板(與藍牙從模塊連接)下載程序。

① 先把藍牙從模塊連接在擴展底座上;并把另一端與主機的TX2/RX2進行連接。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

再把氣動盒的三芯線與主機的PWM進行連接(如下圖所示)。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

② 然后下載文末資料內(nèi)的參考程序color_experiment_ws\src\Wireness_Contril\Program_With_Chassis\Black_Handle_Robot_Arm_New\Black_Handle_Robot_Arm_New.ino:

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

  版權(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-08-03 https://www.robotway.com/

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

//#include <SoftwareSerial.h>

#include <stdio.h>

#include <string.h>

//#define mySerial Serial2 //總線舵機串口,TX2,GND,5V

//#define mySerial2 Serial1 //藍牙遙控串口TX1,RX1,GND,3.3V

#define CTL_BAUDRATE 115200 //總線舵機波特率

#define NOZZLE_PIN 4 //氣動引腳,注意氣動供電6v

#define INIT_X 1 //假設(shè)大臂長度單位為1

#define INIT_Y 1 //小臂長度與大臂長一致單位為1

#define INIT_R 1500 //底座總線舵機中間位置波特率為1500

#define DX 0.01 //每次X方向長的移動距離單位

#define DY 0.01 //每次Y方向臂長的移動距離單位

#define DR 5 //每次底座轉(zhuǎn)動的單位

//SoftwareSerial mySerial(51, 4);

//SoftwareSerial mySerial2(10, 11);

#define mySerial2 Serial2

#define mySerial Serial1

float cur_x = INIT_X, cur_y = INIT_Y;

int cur_r = INIT_R;

int alphaToUpwm(float alpha)

{

  return 2732.0-(alpha/M_PI)*2464;

  /*大臂轉(zhuǎn)動角度的計算公式。2464是大臂擺動180°總線舵機計算后的pwm長度。

  大臂的減速比是44/25=1.76,測試的motor轉(zhuǎn)動180°需要的pwm長度是1400,1.76×1400=2464;

  2732是轉(zhuǎn)動90°之后豎直向上對應(yīng)的實際pwm值,2732=(2464/2)+1500,其中1500是大臂初始化豎直狀態(tài)是電機的PWM值*/

}

int betaToLpwm(float beta)

{

  return 1500 + (beta/M_PI)*1400; //小臂無減速比,由總線舵機直接驅(qū)動,小臂轉(zhuǎn)動角度的計算公式,1400是小臂擺動180°總線舵機需要的PWM長度,1500是小臂保持水平狀態(tài)的舵機PWM值

}

int armMoveTo(float x, float y)

{

  float alpha, beta;

  if (!cartesianToAlphaBeta(x, y, alpha, beta))

  {

    armServoTo(alphaToUpwm(alpha),betaToLpwm(beta));

    return 0;

  }

  return 1;

}

void setup() {

  // put your setup code here, to run once:

  mySerial.begin(CTL_BAUDRATE);

  pinMode(NOZZLE_PIN, OUTPUT); //氣動引腳定義

  mySerial2.begin(9600); //藍牙串口波特率設(shè)置

  nozzle_off(); //初始化氣動關(guān)閉

  delay(1000);

  Serial.begin(9600);

  armMoveTo(cur_x, cur_y); //初始化機械臂大臂小臂位置

  cur_r = rotServoTo(cur_r); //初始化機械臂底座位置

}

void loop() {

//   Serial.print(Serial1.parseInt());

  // put your main code here, to run repeatedly:

if (mySerial2.available())

{

    char c = mySerial2.read();

    float tx, ty;

    switch(c)

    {

      case 'u': // up

        ty = cur_y + DY;

        if (armMoveTo(cur_x, ty) == 0) // success

        {

          cur_y = ty;

        }

        break;

      case 'd': // down

        ty = cur_y - DY;

        if (armMoveTo(cur_x, ty) == 0) // success

        {

          cur_y = ty;

        }

        break;

      case 'f': // forward

        tx = cur_x + DX;

        if (armMoveTo(tx, cur_y) == 0) // success

        {

          cur_x = tx;

        }

        break;

      case 'b': // backward

        tx = cur_x - DX;

        if (armMoveTo(tx, cur_y) == 0) // success

        {

          cur_x = tx;

        }

        break;

      case 'l': // left

        cur_r = rotServoTo(cur_r - DR);

        break;

      case 'r': // right

        cur_r = rotServoTo(cur_r + DR);

        break;

      case 'c': // catch

        //Serial.println('c');

        nozzle_on();

        break;

      case 's': // release

        //Serial.println('s');

        nozzle_off();

        break;

    }

  }

}

第三步:通過控制手柄上的兩個搖桿,來實現(xiàn)機械臂氣動搬運物塊的功能。

機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制,機器人,開源,人工智能

程序源代碼及總線舵機ID及模式更改資料詳見 桌面級機械臂-驅(qū)動及控制文章來源地址http://www.zghlxwxcb.cn/news/detail-677872.html

到了這里,關(guān)于機器人制作開源方案 | 桌面級機械臂--本體說明+驅(qū)動及控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 機器人制作開源方案 | 自主消毒防疫機器人

    機器人制作開源方案 | 自主消毒防疫機器人

    作者:陳毅豪 張植銅 羅郡 馬鑫龍 王丹晶 單位:西安外事學院 指導老師:陳小虎 杜喜 1. 1 目的及意義 ? ? ? 消毒是疫情防控工作中的重要一環(huán),傳統(tǒng)的消毒方式需要人工操作消毒設(shè)備,不僅工作量大,且一些消毒劑會對人體造成傷害,消毒機器人便成了代替人工的不二之

    2024年02月02日
    瀏覽(26)
  • 機器人制作開源方案 | 智能落葉清掃機器人

    機器人制作開源方案 | 智能落葉清掃機器人

    作者:李聰賽 馬嘉駿 李佳豪 邵一鳴 池宏偉 單位:唐山學院 指導老師:袁娜 ? ? ? 近年來,隨著人工智能科學和計算機技術(shù)人工智能科學的飛速發(fā)展,智能機器人技術(shù)已成為當代機器人研究領(lǐng)域的熱門話題。其中服務(wù)機器人開辟了機器人應(yīng)用的新領(lǐng)域,服務(wù)機器人的出現(xiàn)有

    2024年02月04日
    瀏覽(30)
  • 機器人制作開源方案 | 核酸檢測輔助機器人

    機器人制作開源方案 | 核酸檢測輔助機器人

    作者: 周文亞、胡沖、王曉強、張娟 單位:北方民族大學 指導老師: 馬行、穆春陽 ? ? ? 新型冠狀病毒肺炎全球流行已近三年,其變異毒株不斷增強的傳播力同時其癥狀不斷變輕,其中無癥狀(怎么確認是否被感染)導致人們產(chǎn)生放輕松“躺平”還是嚴控疑慮的心理交織

    2024年02月02日
    瀏覽(22)
  • 機器人制作開源方案 | AI校園服務(wù)機器人

    機器人制作開源方案 | AI校園服務(wù)機器人

    作者:李強、李振寧、毛維雷、李文文、張奧 單位:山西能源學院 指導老師:姚志廣、程晟 ? ? ? 在這個科技飛速發(fā)展的時代,在工業(yè)智造、人工智能的飛速發(fā)展中,出現(xiàn)了越來越多的智能化機械裝置,也有許多創(chuàng)新類的比賽,本作品基于探索者創(chuàng)新套件設(shè)計平臺設(shè)計出一

    2024年01月20日
    瀏覽(19)
  • 機器人制作開源方案 | 乒乓球自動拾取機器人

    機器人制作開源方案 | 乒乓球自動拾取機器人

    作者:劉眾森、王森、王繪東、崔岳震、宋維鑫 單位:山東農(nóng)業(yè)工程學院 指導老師:潘瑩月、廖希杰 ? ? ? 我們小組選擇項目的任務(wù)方向乒乓球的撿取與存放,針對此問題我們研發(fā)了一款乒乓球自動拾取機器人。眾所周知,乒乓球是一種世界流行的球類體育項目,而我國是

    2024年02月01日
    瀏覽(25)
  • 機器人制作開源方案 | 全自動導航分揀機器人

    機器人制作開源方案 | 全自動導航分揀機器人

    作者:孫國峰 董陽 張鑫源 單位:山東科技大學 機械電子工程學院 指導老師:張永超 貝廣霞 1.1 研究背景 ? ? ? 在工業(yè)生產(chǎn)中,機器人在解決企業(yè)的勞動力不足,提高企業(yè)勞動生產(chǎn)率,提高產(chǎn)品質(zhì)量和降低生產(chǎn)成本方面有著顯著的意義。隨著計算機自動化技術(shù)和社會的發(fā)展

    2024年01月23日
    瀏覽(21)
  • 機器人制作開源方案 | 家庭清掃拾物機器人

    機器人制作開源方案 | 家庭清掃拾物機器人

    作者: 羅誠、李旭洋、胡旭、符粒楷 單位: 南昌交通學院 人工智能學院 指導老師: 揭吁菡 ? ? ? 在家庭中我們有時無法到一些低矮陰暗的地方進行探索,比如茶幾下或者床底下,特別是在部分家庭中,如果沒有及時對這些陰暗低矮的地方進行清掃,則會導致這些地方不干

    2024年02月07日
    瀏覽(25)
  • 機器人制作開源方案 | 圖書管理助手

    機器人制作開源方案 | 圖書管理助手

    作者:丁位 朱紅磊 程國正 楊秀萍 丁語林 單位:黑龍江科技大學 指導老師:邵文冕 劉安平 1.1 研究背景及意義 ? ? ? ?通過查閱資料,我們團隊了解到自2015年起中國公共圖書館圖書流通人次逐年增加,2019年中國公共圖書館圖書流通人次達90135萬人次,較2018年增加了8103萬人

    2024年02月20日
    瀏覽(23)
  • 機器人制作開源方案 | 滑板助力器

    機器人制作開源方案 | 滑板助力器

    我們可以用一塊廢滑板做些什么 呢 ? ? ? 如今,越來越多的人選擇電動滑板作為代步工具或娛樂方式,市場上也涌現(xiàn)出越來越多的電動滑板產(chǎn)品。 (圖片來源: Backfire Zealot X Belt Drive Electric Skateboard– Backfire Boards ) (圖片來源: Electric Skateboards - Boosted USA ) 那么,這是不

    2024年02月12日
    瀏覽(20)
  • 機器人制作開源方案 | 森林管理員

    機器人制作開源方案 | 森林管理員

    ?作者: 李佳駿、常???、張智斌、李世斌、高華聳 單位:山西能源學院 指導老師: 趙浩成、郜敏 ? ? ? 森林作為地球上可再生自然資源及陸地生態(tài)的主體,在人類生存和發(fā)展的歷史中起著不可代替的作用,它不僅能提供國家建設(shè)和人民生活所需的木材及林副產(chǎn)品,而且

    2024年02月03日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包