基于MPU6050传感器的手势控制机械臂

上传人:I*** 文档编号:229988296 上传时间:2021-12-26 格式:DOCX 页数:10 大小:1.50MB
返回 下载 相关 举报
基于MPU6050传感器的手势控制机械臂_第1页
第1页 / 共10页
基于MPU6050传感器的手势控制机械臂_第2页
第2页 / 共10页
基于MPU6050传感器的手势控制机械臂_第3页
第3页 / 共10页
基于MPU6050传感器的手势控制机械臂_第4页
第4页 / 共10页
基于MPU6050传感器的手势控制机械臂_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于MPU6050传感器的手势控制机械臂》由会员分享,可在线阅读,更多相关《基于MPU6050传感器的手势控制机械臂(10页珍藏版)》请在金锄头文库上搜索。

1、 基于MPU6050传感器的手势控制机械臂 机械臂是引人入胜的工程创作之一,看着这些东西倾斜和摇动像人类的手臂一样完成复杂的事情总是令人着迷。这些机械臂可以在装配线中进行焊接、钻孔、喷漆等剧烈机械工作的行业中找到,最近还开发了高精度的先进机械臂来执行复杂的外科手术。在之前的文章中,我们3D打印了机械臂,并使用MG995伺服电机制作了机械臂。我们将再次使用相同的3D打印机器人手臂,通过Arduino Nano、MPU6050陀螺仪和弯曲(Flex)传感器制作手势控制的机器人手臂。通过3D打印的机械臂位置可以通过与MPU6050陀螺仪和弯曲传感器相连的手套来控制。 Flex传感器用于控制机械手的夹

2、具伺服电机,MPU6050用于在X和Y轴上移动机器人。如果您没有打印机,那么您也可以像为Arduino机器人手臂项目建造的那样,用简单的纸板制作手臂。首先,让我们先了解MPU6050传感器和弯曲传感器。MPU6050陀螺仪和加速度计传感器MPU6050基于微机械系统(MEMS)技术。该传感器具有一个3轴加速度计、一个3轴陀螺仪和内置温度传感器。它可以用来测量诸如加速度、速度、方向、位移等参数。我们之前已经将MPU6050与Arduino和Raspberry pi进行了连接,并且还使用它构建了一些项目,例如自平衡机器人、Arduino数字量角器和Arduino测斜仪。MPU6050传感器的功能:

3、 通信:具有可配置I2C地址的I2C协议 输入电源:3-5Vd 内置16位ADC提供高精度 内置DMP提供高计算能力 可用于与磁力计等其他I2C设备接口 内置温度传感器弯曲传感器弯曲传感器实际上是一个可变电阻器。弯曲传感器时,它的电阻会发生变化。通常有2.2英寸和4.5英寸两种尺寸。为什么我们在项目中使用柔性传感器?在此手势控制的机械臂中,使用弯曲传感器控制机械臂的抓取器。当手套上的弯曲传感器弯曲时,安装在夹具上的伺服电机旋转,夹具打开。准备好3D打印的机械臂本文中使用的3D打印机械手是根据ThinZverse中EEZYbotARM提供的设计制作的。 Thingiverse链接中提供了制作3D

4、打印机械臂和带有视频的组装细节的完整过程,该链接在上方共享。上图是组装4台伺服电机后3D打印的机械臂的图像。所需的组件 Arduino Nano开发板 弯曲传感器 10k电阻 MPU6050 连接线 面包板电路原理图下图显示了基于Arduino的手势控制机械臂的电路连接。MPU6050和Arduino Nano之间的电路连接:MPU6050Arduino NanoVCC+5VGNDGNDSDAA4SCLA5弯曲传感器包含两个引脚。它不包含极性端子。因此,第一个引脚P1通过一个10k的上拉电阻连接到Arduino Nano的模拟引脚A0,第二个引脚P2接地到Arduino。将MPU6050和Fl

5、ex传感器安装到手套上我们将MPU6050和Flex传感器安装在手套上。此处,通过线缆连接手套和机械臂,也可以通过使用RF连接或蓝牙连接将其无线连接。连接完成后,手势控制机械臂的最终设置如下图所示:为机械臂编程Arduino Nano本文的末尾提供了完整的代码。这里解释了一些重要的代码。首先,包括必要的库文件。 Wire.h库用于Arduino Nano和MPU6050与Servo.h之间的I2C通信,以控制伺服电机。#include#include接下来,声明用于类伺服的对象。当我们使用四个伺服电动机时,将创建四个对象。Servo servo_1;Servo servo_2;Servo se

6、rvo_3;Servo servo_4;接下来,声明MPU6050的I2C地址和要使用的变量。const int MPU_addr=0x68; /MPU6050 I2C Addressint16_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 Communi

7、cationWire.beginTransmission(MPU_addr);/Start communication with MPU6050Wire.write(0x6B); /Writes to Register 6BWire.write(0); /Writes 0 into 6B Register to ResetWire.endTransmission(true); /Ends I2C transmission另外,为伺服电机连接定义了四个PWM引脚。servo_1.attach(2); / Forward/Reverse_Motorservo_2.attach(3); / Up/D

8、own_Motorservo_3.attach(4); / Gripper_Motorservo_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 0x3BWire.endTransmission(false);Wire.requestFrom(MPU_addr

9、,14,true);/Read 14 Registersaxis_X=Wire.read()8|Wire.read(); axis_Y=Wire.read()8|Wire.read();axis_Z=Wire.read() 750)gripper = 0;elsegripper = 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-全文完-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 调研报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号