91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于MPU6050傳感器的手勢(shì)控制機(jī)械臂

電子設(shè)計(jì) ? 來(lái)源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-13 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

機(jī)械臂是引人入勝的工程創(chuàng)作之一,看著這些東西傾斜和搖動(dòng)像人類的手臂一樣完成復(fù)雜的事情總是令人著迷。這些機(jī)械臂可以在裝配線中進(jìn)行焊接、鉆孔、噴漆等劇烈機(jī)械工作的行業(yè)中找到,最近還開(kāi)發(fā)了高精度的先進(jìn)機(jī)械臂來(lái)執(zhí)行復(fù)雜的外科手術(shù)。在之前的文章中,我們3D打印了機(jī)械臂,并使用MG995伺服電機(jī)制作了機(jī)械臂。我們將再次使用相同的3D打印機(jī)器人手臂,通過(guò)Arduino Nano、MPU6050陀螺儀和彎曲(Flex)傳感器制作手勢(shì)控制的機(jī)器人手臂。

通過(guò)3D打印的機(jī)械臂位置可以通過(guò)與MPU6050陀螺儀和彎曲傳感器相連的手套來(lái)控制。 Flex傳感器用于控制機(jī)械手的夾具伺服電機(jī),MPU6050用于在X和Y軸上移動(dòng)機(jī)器人。如果您沒(méi)有打印機(jī),那么您也可以像為Arduino機(jī)器人手臂項(xiàng)目建造的那樣,用簡(jiǎn)單的紙板制作手臂。

首先,讓我們先了解MPU6050傳感器和彎曲傳感器。

MPU6050陀螺儀和加速度計(jì)傳感器

MPU6050基于微機(jī)械系統(tǒng)(MEMS)技術(shù)。該傳感器具有一個(gè)3軸加速度計(jì)、一個(gè)3軸陀螺儀和內(nèi)置溫度傳感器。它可以用來(lái)測(cè)量諸如加速度、速度、方向、位移等參數(shù)。我們之前已經(jīng)將MPU6050與Arduino和Raspberry pi進(jìn)行了連接,并且還使用它構(gòu)建了一些項(xiàng)目,例如自平衡機(jī)器人、Arduino數(shù)字量角器和Arduino測(cè)斜儀。

MPU6050傳感器的功能:

通信:具有可配置I2C地址的I2C協(xié)議

● 輸入電源:3-5Vd

● 內(nèi)置16位ADC提供高精度

● 內(nèi)置DMP提供高計(jì)算能力

● 可用于與磁力計(jì)等其他I2C設(shè)備接口

● 內(nèi)置溫度傳感器

彎曲傳感器

彎曲傳感器實(shí)際上是一個(gè)可變電阻器。彎曲傳感器時(shí),它的電阻會(huì)發(fā)生變化。通常有2.2英寸和4.5英寸兩種尺寸。

為什么我們?cè)陧?xiàng)目中使用柔性傳感器?在此手勢(shì)控制的機(jī)械臂中,使用彎曲傳感器控制機(jī)械臂的抓取器。當(dāng)手套上的彎曲傳感器彎曲時(shí),安裝在夾具上的伺服電機(jī)旋轉(zhuǎn),夾具打開(kāi)。

o4YBAF_-rEyAcpQTAABXu7lvdp4025.png

準(zhǔn)備好3D打印的機(jī)械臂

本文中使用的3D打印機(jī)械手是根據(jù)ThinZverse中EEZYbotARM提供的設(shè)計(jì)制作的。 Thingiverse鏈接中提供了制作3D打印機(jī)械臂和帶有視頻的組裝細(xì)節(jié)的完整過(guò)程,該鏈接在上方共享。

上圖是組裝4臺(tái)伺服電機(jī)后3D打印的機(jī)械臂的圖像。

所需的組件

● Arduino Nano開(kāi)發(fā)板

● 彎曲傳感器

● 10k電阻

● MPU6050

● 連接線

● 面包板

電路原理

下圖顯示了基于Arduino的手勢(shì)控制機(jī)械臂的電路連接。

pIYBAF_-rJ6AH8tqAAKulR4Y1OU569.png

MPU6050和Arduino Nano之間的電路連接:

MPU6050 Arduino Nano
VCC +5V
GND GND
SDA A4
SCL A5

彎曲傳感器包含兩個(gè)引腳。它不包含極性端子。因此,第一個(gè)引腳P1通過(guò)一個(gè)10k的上拉電阻連接到Arduino Nano的模擬引腳A0,第二個(gè)引腳P2接地到Arduino。

將MPU6050和Flex傳感器安裝到手套上

我們將MPU6050和Flex傳感器安裝在手套上。此處,通過(guò)線纜連接手套和機(jī)械臂,也可以通過(guò)使用RF連接或藍(lán)牙連接將其無(wú)線連接。

連接完成后,手勢(shì)控制機(jī)械臂的最終設(shè)置如下圖所示:

為機(jī)械臂編程Arduino Nano

本文的末尾提供了完整的代碼。這里解釋了一些重要的代碼。

首先,包括必要的庫(kù)文件。 Wire.h庫(kù)用于Arduino Nano和MPU6050與Servo.h之間的I2C通信,以控制伺服電機(jī)。

#include

#include

接下來(lái),聲明用于類伺服的對(duì)象。當(dāng)我們使用四個(gè)伺服電動(dòng)機(jī)時(shí),將創(chuàng)建四個(gè)對(duì)象。

Servo servo_1;

Servo servo_2;

Servo servo_3;

Servo servo_4;

接下來(lái),聲明MPU6050的I2C地址和要使用的變量。

const int MPU_addr=0x68; //MPU6050 I2C Address

int16_t axis_X,axis_Y,axis_Z;

int minVal=265;

int maxVal=402;

double x;

double y;

double z;

在void setup()函數(shù)中,將串行通信的波特率設(shè)置為9600。

Serial.begin(9600);

并在Arduino Nano和MPU6050之間建立了I2C通信:

Wire.begin(); //Initilize I2C Communication

Wire.beginTransmission(MPU_addr);//Start communication with MPU6050

Wire.write(0x6B); //Writes to Register 6B

Wire.write(0); //Writes 0 into 6B Register to Reset

Wire.endTransmission(true); //Ends I2C transmission

另外,為伺服電機(jī)連接定義了四個(gè)PWM引腳。

servo_1.attach(2); // Forward/Reverse_Motor

servo_2.attach(3); // Up/Down_Motor

servo_3.attach(4); // Gripper_Motor

servo_4.attach(5); // Left/Right_Motor

接下來(lái),在void loop函數(shù)中,再次在MPU6050和Arduino Nano之間建立I2C連接,然后開(kāi)始從MPU6050的寄存器讀取X、Y、Z軸數(shù)據(jù)并將它們存儲(chǔ)在相應(yīng)的變量中。

Wire.beginTransmission(MPU_addr);

Wire.write(0x3B); //Start with regsiter 0x3B

Wire.endTransmission(false);

Wire.requestFrom(MPU_addr,14,true);//Read 14 Registers

axis_X=Wire.read()<<8|Wire.read();? ?? ?? ?? ?? ?

axis_Y=Wire.read()<<8|Wire.read();

axis_Z=Wire.read()<<8|Wire.read();

然后,將MPU6050傳感器的軸數(shù)據(jù)的最小值和最大值映射在-90到90的范圍內(nèi)。

int xAng = map(axis_X,minVal,maxVal,-90,90);

int yAng = map(axis_Y,minVal,maxVal,-90,90);

int zAng = map(axis_Z,minVal,maxVal,-90,90);

然后使用以下公式以0到360的形式計(jì)算x,y,z值。

x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI);

y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI);

z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);

然后在Arduino Nano的A0引腳上讀取撓曲傳感器的模擬輸出數(shù)據(jù),并根據(jù)彎曲傳感器的數(shù)字值設(shè)置夾具的伺服角度。因此,如果彎曲傳感器數(shù)據(jù)大于750,則夾具的伺服電機(jī)角度為0度,如果小于750,則為180度。

int gripper;

int flex_sensorip = analogRead(A0);

if(flex_sensorip > 750)

{

gripper = 0;

}

else

{

gripper = 180;

}

servo_3.write(gripper);

然后,將MPU6050在X軸上從0到60的移動(dòng)映射為0到90度,以實(shí)現(xiàn)伺服電機(jī)的機(jī)械臂正向/反向運(yùn)動(dòng)。

if(x >=0 && x <= 60)

{

int mov1 = map(x,0,60,0,90);

Serial.print("Movement in F/R = ");

Serial.print(mov1);

Serial.println((char)176);

servo_1.write(mov1);

}

MPU6050在X軸上從250到360的運(yùn)動(dòng)被映射為0到90度,用于伺服電機(jī)的上/下運(yùn)動(dòng)機(jī)械手。

使用Arduino進(jìn)行手勢(shì)控制的機(jī)械臂的工作

最后,將代碼上傳到Arduino Nano,并戴上MPU6050和彎曲傳感器安裝的手套。

現(xiàn)在,向下移動(dòng)手以使機(jī)械臂向前移動(dòng),向上移動(dòng)以使機(jī)械臂向上移動(dòng)。然后向左或向右傾斜手,以向左或向右旋轉(zhuǎn)機(jī)械手。彎曲手打開(kāi)夾持器,然后松開(kāi)以使其閉合。
編輯:hfy

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

    關(guān)注

    2576

    文章

    55043

    瀏覽量

    791391
  • 加速度計(jì)
    +關(guān)注

    關(guān)注

    6

    文章

    812

    瀏覽量

    48174
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    313

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32驅(qū)動(dòng)PAJ7620手勢(shì)識(shí)別傳感器

    原文鏈接:[https://www.yourcee.com/newsinfo/2925937.html] 傳感器簡(jiǎn)介 PAJ-7620U2是由原相科技公司開(kāi)發(fā)的一款手勢(shì)識(shí)別芯片, 內(nèi)集成了光學(xué)數(shù)組式
    的頭像 發(fā)表于 01-06 09:16 ?809次閱讀
    STM32驅(qū)動(dòng)PAJ7620<b class='flag-5'>手勢(shì)</b>識(shí)別<b class='flag-5'>傳感器</b>

    CW32L012解算MPU6050姿態(tài)數(shù)據(jù)

    我們僅僅獲取了MPU6050的三軸加速度和角速度,要想得到姿態(tài)角,需要利用讀取的數(shù)據(jù)進(jìn)行姿態(tài)解算。
    的頭像 發(fā)表于 01-05 16:42 ?1373次閱讀
    CW32L012解算<b class='flag-5'>MPU6050</b>姿態(tài)數(shù)據(jù)

    CW32L012讀取MPU6050姿態(tài)數(shù)據(jù)

    隨著物聯(lián)網(wǎng)、可穿戴設(shè)備、工業(yè)傾角檢測(cè)等場(chǎng)景的普及,低成本、低功耗的姿態(tài)檢測(cè)方案成為嵌入式領(lǐng)域的研究熱點(diǎn)。MPU6050 作為集成三軸加速度計(jì)和三軸陀螺儀的六軸傳感器,憑借低成本、小體積的優(yōu)勢(shì)被
    的頭像 發(fā)表于 01-05 16:36 ?1088次閱讀
    CW32L012讀取<b class='flag-5'>MPU6050</b>姿態(tài)數(shù)據(jù)

    用dma加iic讀取mpu6050數(shù)據(jù)遇到的疑問(wèn)求解

    我在用dma加iic讀取mpu6050數(shù)據(jù)時(shí),試著用dma傳輸4個(gè)數(shù),但是用freemaster查看數(shù)據(jù)以后,發(fā)現(xiàn)只有數(shù)組里面的第一個(gè)數(shù)有值,其他的都為0,而且發(fā)現(xiàn)沒(méi)進(jìn)dma傳輸完成中斷,把傳輸數(shù)量改成1以后,就能進(jìn)入dma傳輸完成中斷,就好像dma只能傳輸一個(gè)數(shù)一樣,有沒(méi)有大佬知道這是怎么回事啊
    發(fā)表于 12-09 07:41

    泰科電子商用車機(jī)械自動(dòng)變速傳感器集群介紹

    TE Connectivity (以下簡(jiǎn)稱 “TE”) 商用車機(jī)械自動(dòng)變速(AMT)傳感器集群,把多種關(guān)鍵傳感器整合為一體化 “感知中樞” ,包括位置、速度、溫度
    的頭像 發(fā)表于 10-28 17:12 ?1012次閱讀

    TT電機(jī),Arduino Uno,L298N 5AD ,MPU6050最簡(jiǎn)自平衡機(jī)器人資料

    ;MPU6050_6Axis_MotionApps20.h\" //https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050 MPU6050
    發(fā)表于 10-06 13:12

    【RA4M2-SENSOR】串口傳輸MPU6050陀螺儀數(shù)據(jù)測(cè)評(píng)

    RA4M2串口傳輸MPU6050陀螺儀數(shù)據(jù)測(cè)評(píng) 1. 套件概述 RA4M2-SENSOR 是一款基于 RA4M2 系列微控制器的評(píng)估套件,支持 TrustZone 技 術(shù)和片內(nèi)安全加密引擎(SCE
    發(fā)表于 09-14 11:41

    協(xié)作機(jī)械產(chǎn)品介紹

    電子發(fā)燒友們、工業(yè)自動(dòng)化從業(yè)者、科研工作者們注意啦!今天給大家重磅介紹一款在機(jī)械領(lǐng)域表現(xiàn)極為亮眼的產(chǎn)品——協(xié)作機(jī)械,它正以卓越性能重塑行業(yè)格局!?(壹捌伍 柒零零玖 壹壹捌陸)卓越
    發(fā)表于 08-07 17:20 ?0次下載

    無(wú)位置傳感器控制的雙電機(jī)驅(qū)動(dòng)系統(tǒng)性能研究

    逆變器驅(qū)動(dòng)雙永磁回步電機(jī)系統(tǒng)的性能。使用無(wú)位置傳感器技術(shù)目的是為減小成本、體積以及系統(tǒng)硬件的復(fù)雜性。MATLAB/SIMULINK仿真研究表明,該文提出的逆變器方案可以獨(dú)立控制雙電機(jī)在不同條件下運(yùn)行
    發(fā)表于 07-09 14:25

    小安派BW21-CBV-Kit入門教程之DMP6讀取MPU6050數(shù)據(jù)

    本示例將演示使用 DMP6 從 MPU6050 獲取數(shù)據(jù)。MPU6050 配備了數(shù)字運(yùn)動(dòng)處理 (DMP),用于處理運(yùn)動(dòng)算法的計(jì)算,如轉(zhuǎn)換為三軸偏航/俯仰/滾動(dòng)平面、轉(zhuǎn)換為四元數(shù)或轉(zhuǎn)換為歐拉角。
    的頭像 發(fā)表于 06-19 14:20 ?1019次閱讀
    小安派BW21-CBV-Kit入門教程之DMP6讀取<b class='flag-5'>MPU6050</b>數(shù)據(jù)

    觸覺(jué)傳感器已在亞馬遜倉(cāng)儲(chǔ)機(jī)械率先商用 新增形式有望加速市場(chǎng)增長(zhǎng)節(jié)奏

    落地的核心支撐。除人形機(jī)器人之外,驚喜地發(fā)現(xiàn)觸覺(jué)傳感能力已在倉(cāng)儲(chǔ)機(jī)械臂中率先落地應(yīng)用,這或加速觸覺(jué)傳感器行業(yè)的發(fā)展。觸覺(jué)傳感器在人形機(jī)器人以外的倉(cāng)儲(chǔ)
    的頭像 發(fā)表于 06-07 16:42 ?748次閱讀
    觸覺(jué)<b class='flag-5'>傳感器</b>已在亞馬遜倉(cāng)儲(chǔ)<b class='flag-5'>機(jī)械</b><b class='flag-5'>臂</b>率先商用 新增形式有望加速市場(chǎng)增長(zhǎng)節(jié)奏

    MPU-6000和MPU-6050產(chǎn)品規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《MPU-6000和MPU-6050產(chǎn)品規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 04-29 16:52 ?3次下載

    如何制作和控制一只仿生手

    這個(gè)項(xiàng)目介紹了如何制作和控制一只仿生手。作者最初受到Instagram上一個(gè)視頻的啟發(fā),該視頻展示了使用MPU6050傳感器追蹤手部動(dòng)作并在屏幕上顯示3D模型。作者決定將這個(gè)想法進(jìn)一步發(fā)展
    的頭像 發(fā)表于 04-15 11:52 ?1418次閱讀
    如何制作和<b class='flag-5'>控制</b>一只仿生手

    STM32F103對(duì)ADS1298和MPU6050同時(shí)采集數(shù)據(jù)會(huì)出現(xiàn)ADS1298數(shù)據(jù)丟失

    你好,請(qǐng)問(wèn)我用STM32F103對(duì)ADS1298和MPU6050同時(shí)采集數(shù)據(jù)為何會(huì)出現(xiàn)ADS1298數(shù)據(jù)丟失,而單獨(dú)對(duì)期中任何一個(gè)傳感器單獨(dú)進(jìn)行數(shù)據(jù)采集就沒(méi)有任何問(wèn)題
    發(fā)表于 03-22 17:29

    關(guān)于mpu6050問(wèn)題

    我很早之前買了一個(gè),我現(xiàn)在使用這個(gè)mpu6050,我在調(diào)mpu6050數(shù)據(jù)時(shí)候,數(shù)據(jù)抖動(dòng)特別大,我沒(méi)動(dòng)這個(gè)mpu6050,它自己都有抖動(dòng),然后本來(lái)放在水平,他的機(jī)械中值是2.5,但是我
    發(fā)表于 03-09 17:17