在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于MPU6050傳感器的手勢控制機械臂

電子設計 ? 來源:一板網 ? 作者:風箏 ? 2021-01-13 16:21 ? 次閱讀

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

通過3D打印的機械臂位置可以通過與MPU6050陀螺儀和彎曲傳感器相連的手套來控制。 Flex傳感器用于控制機械手的夾具伺服電機,MPU6050用于在X和Y軸上移動機器人。如果您沒有打印機,那么您也可以像為Arduino機器人手臂項目建造的那樣,用簡單的紙板制作手臂。

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

MPU6050陀螺儀和加速度計傳感器

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

MPU6050傳感器的功能:

通信:具有可配置I2C地址的I2C協議

● 輸入電源:3-5Vd

● 內置16位ADC提供高精度

● 內置DMP提供高計算能力

● 可用于與磁力計等其他I2C設備接口

● 內置溫度傳感器

彎曲傳感器

彎曲傳感器實際上是一個可變電阻器。彎曲傳感器時,它的電阻會發生變化。通常有2.2英寸和4.5英寸兩種尺寸。

為什么我們在項目中使用柔性傳感器?在此手勢控制的機械臂中,使用彎曲傳感器控制機械臂的抓取器。當手套上的彎曲傳感器彎曲時,安裝在夾具上的伺服電機旋轉,夾具打開。

o4YBAF_-rEyAcpQTAABXu7lvdp4025.png

準備好3D打印的機械臂

本文中使用的3D打印機械手是根據ThinZverse中EEZYbotARM提供的設計制作的。 Thingiverse鏈接中提供了制作3D打印機械臂和帶有視頻的組裝細節的完整過程,該鏈接在上方共享。

上圖是組裝4臺伺服電機后3D打印的機械臂的圖像。

所需的組件

● Arduino Nano開發板

● 彎曲傳感器

● 10k電阻

● MPU6050

● 連接線

● 面包板

電路原理

下圖顯示了基于Arduino的手勢控制機械臂的電路連接。

pIYBAF_-rJ6AH8tqAAKulR4Y1OU569.png

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

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

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

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

我們將MPU6050和Flex傳感器安裝在手套上。此處,通過線纜連接手套和機械臂,也可以通過使用RF連接或藍牙連接將其無線連接。

連接完成后,手勢控制機械臂的最終設置如下圖所示:

為機械臂編程Arduino Nano

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

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

#include

#include

接下來,聲明用于類伺服的對象。當我們使用四個伺服電動機時,將創建四個對象。

Servo servo_1;

Servo servo_2;

Servo servo_3;

Servo servo_4;

接下來,聲明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()函數中,將串行通信的波特率設置為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

另外,為伺服電機連接定義了四個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

接下來,在void loop函數中,再次在MPU6050和Arduino Nano之間建立I2C連接,然后開始從MPU6050的寄存器讀取X、Y、Z軸數據并將它們存儲在相應的變量中。

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傳感器的軸數據的最小值和最大值映射在-90到90的范圍內。

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的形式計算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引腳上讀取撓曲傳感器的模擬輸出數據,并根據彎曲傳感器的數字值設置夾具的伺服角度。因此,如果彎曲傳感器數據大于750,則夾具的伺服電機角度為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的移動映射為0到90度,以實現伺服電機的機械臂正向/反向運動。

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的運動被映射為0到90度,用于伺服電機的上/下運動機械手。

使用Arduino進行手勢控制的機械臂的工作

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

現在,向下移動手以使機械臂向前移動,向上移動以使機械臂向上移動。然后向左或向右傾斜手,以向左或向右旋轉機械手。彎曲手打開夾持器,然后松開以使其閉合。
編輯:hfy

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

    關注

    2564

    文章

    52668

    瀏覽量

    764292
  • 加速度計
    +關注

    關注

    6

    文章

    716

    瀏覽量

    46643
  • MPU6050
    +關注

    關注

    39

    文章

    309

    瀏覽量

    72803
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    觸覺傳感器已在亞馬遜倉儲機械率先商用 新增形式有望加速市場增長節奏

    落地的核心支撐。除人形機器人之外,驚喜地發現觸覺傳感能力已在倉儲機械臂中率先落地應用,這或加速觸覺傳感器行業的發展。觸覺傳感器在人形機器人以外的倉儲
    的頭像 發表于 06-07 16:42 ?114次閱讀
    觸覺<b class='flag-5'>傳感器</b>已在亞馬遜倉儲<b class='flag-5'>機械</b><b class='flag-5'>臂</b>率先商用 新增形式有望加速市場增長節奏

    STM32F103對ADS1298和MPU6050同時采集數據會出現ADS1298數據丟失

    你好,請問我用STM32F103對ADS1298和MPU6050同時采集數據為何會出現ADS1298數據丟失,而單獨對期中任何一個傳感器單獨進行數據采集就沒有任何問題
    發表于 03-22 17:29

    關于mpu6050問題

    我很早之前買了一個,我現在使用這個mpu6050,我在調mpu6050數據時候,數據抖動特別大,我沒動這個mpu6050,它自己都有抖動,然后本來放在水平,他的機械中值是2.5,但是我
    發表于 03-09 17:17

    mpu6050航向角漂移很嚴重的原因及解決方法

    mpu6050航向角漂移很嚴重的原因及解決方案
    的頭像 發表于 03-01 11:47 ?1904次閱讀

    零知開源——ESP8266+MPU6050 實現運動姿態檢測

    零知ESP8266的I2C通信 ? ? ? ?在運動姿態檢測、機器人平衡控制、VR頭戴設備等應用中,MPU6050(三軸加速度計+三軸陀螺儀)是一個常見的姿態傳感器。而ESP8266作為一款低功耗
    的頭像 發表于 02-20 17:54 ?1769次閱讀
    零知開源——ESP8266+<b class='flag-5'>MPU6050</b> 實現運動姿態檢測

    零知開源——ESP8266+MPU6050 實現運動姿態檢測

    ?零知ESP8266學習教程 在運動姿態檢測、機器人平衡控制、VR頭戴設備等應用中,MPU6050(三軸加速度計+三軸陀螺儀)是一個常見的姿態傳感器。而ESP8266作為一款低功耗Wi-Fi模塊
    發表于 02-20 17:44

    零知開源——MPU6050六軸傳感器模塊實踐教程,輕松實現運動檢測!

    運動。 ? ? ? 通過本教程,您將學習如何讀取并處理這些數據,為您的項目添加運動檢測和姿態控制功能。 一、硬件連接 ? ? ? ?在開始編程之前,首先需要正確連接MPU6050模塊到零知增強板。 1.所需材料: 零知增強板 MPU60
    的頭像 發表于 02-20 16:17 ?982次閱讀
    零知開源——<b class='flag-5'>MPU6050</b>六軸<b class='flag-5'>傳感器</b>模塊實踐教程,輕松實現運動檢測!

    零知開源——MPU6050六軸傳感器模塊實踐教程,輕松實現運動檢測!

    。MPU6050是一款含有三軸加速度計和三軸陀螺儀的傳感器,能夠測量設備的傾斜情況和旋轉運動。 通過本教程,您將學習如何讀取并處理這些數據,為您的項目添加運動檢測和姿態控制功能。 一、硬件連接 在開始編程
    發表于 02-20 15:53

    磁致伸縮位移傳感器機械與機器人中應用

    磁致伸縮位移傳感器是一種基于磁致伸縮效應的高精度位移測量裝置,具有非接觸式、高分辨率、長壽命和強抗干擾能力等特點。在機械與機器人領域,其應用正逐漸成為提升系統性能的關鍵技術之一
    的頭像 發表于 02-15 14:22 ?402次閱讀

    STM32單片機+MPU6050設計一個電子水平儀

    本項目基于STM32F103C8T6單片機設計一款電子水平儀。STM32F103C8T6作為一種性能強大的微控制器,具有較高的計算能力和豐富的外設接口,能夠滿足項目對實時數據處理和顯示控制的需求。該單片機將與MPU6050
    的頭像 發表于 01-09 11:14 ?1723次閱讀
    STM32單片機+<b class='flag-5'>MPU6050</b>設計一個電子水平儀

    MPU6050讀取數據有問題

    在調試MPU6050時讀取原始數據只有X軸在變化,Y軸和Z軸的數據一直沒有變化,已經調試兩天了,這個是讀取的數據
    發表于 12-09 10:40

    CW32模塊使用 MPU6050六軸傳感器

    MPU6050 是 InvenSense 公司推出的整合性 6 軸運動處理組件,其內部整合了 3 軸陀螺儀和 3 軸加速度傳感器,并且含有一個IIC 接口, 可用于連接外部磁力傳感器,并利用自帶
    的頭像 發表于 11-14 17:54 ?590次閱讀
    CW32模塊使用 <b class='flag-5'>MPU6050</b>六軸<b class='flag-5'>傳感器</b>

    如何通過I2C將加速度計MPU6050型連接到ESP8266?

    有沒有人通過 I2C 將加速度計MPU6050型連接到ESP8266? 我想讀取寄存who_am_i,但我無法從從機獲取 ACK 信號
    發表于 07-22 06:18

    硬件i2c讀寫MPU6050

    本資料為MPU6050
    發表于 07-15 11:45 ?4次下載

    如何利用中斷從Mpu6050讀取數據?

    我正在使用延遲從 psoc 5LP CY8C5888LTI-LP097 中的 mpu-6050 imu 讀取數據。 我不想用延時,我想用帶中斷的定時代替它。 下面附上我的項目文件。 請幫我創建中斷函數。
    發表于 07-03 06:18
    主站蜘蛛池模板: 97影院午夜午夜伦不卡 | 国产三级日本三级日产三 | 一级一黄在线观看视频免费 | 1024国产基地永久免费 | 国产精品手机在线 | a一级日本特黄aaa大片 | 激情综合丁香 | 国产午夜精品一区二区理论影院 | 18一20岁一级毛片 | 天天噜噜色 | 欧美一级免费看 | 手机看片日韩高清1024 | 丁香花五月婷婷开心 | 亚洲伦理一区 | 国产在线永久视频 | 色女仆影院| 久久久久激情免费观看 | 在线观看免费视频片 | 久久综合狠狠综合久久综合88 | 在线免费黄 | 日本三级日本三级人妇三级四 | 新版天堂资源中文在线 | 亚洲人成77777在线观看网 | 欧美jizzhd精品欧美4k | 国产乱辈通伦影片在线播放 | 韩国精品videosex性韩国 | 男人边吃奶边爱边做视频日韩 | 热九九精品 | 亚洲第一页国产 | 男女啪视频大全1000 | 日韩一级在线观看 | 亚洲欧美日韩动漫 | 中文字幕一区二区三区有限公司 | 分分精品 | 久久婷婷色一区二区三区 | 色猫av| 天天透天天射 | 激情五月婷婷色 | 国产h视频在线观看高清 | 天天狠天天天天透在线 | 亚洲成人在线网站 |