使用Arduino的手势控制机器人
在这个项目中,我们使用Arduino设计了一个简单的手势控制的机器人。这个手势控制机器人是基于Arduino Nano、MPU6050、射频发射器-接收器对和L293D电机驱动器。
尽管标题说是手势控制机器人,但从技术上讲,这个机器人是由手的倾斜度控制的。
前言
机器人是一个由计算机程序操作的电子机械系统。机器人可以是自主的或半自主的。自主的机器人不受人类的控制,通过对环境的感知来决定自己的行为。
大多数工业机器人是自主的,因为它们需要以高速和高精确度进行操作。但有些应用需要半自主或人类控制的机器人。
一些最常用的控制系统是语音识别、触觉或触摸控制和运动控制。
经常实现的运动控制机器人之一是手势控制的机器人。在这个项目中,使用MPU6050开发了一个手势控制机器人,它是一个三轴加速器和三轴陀螺仪传感器,控制器部分是Arduino Nano。
没有使用带有按钮或操纵杆的遥控器,而是使用手势来控制机器人的运动。
该项目基于无线通信,手势的数据通过射频链接(射频发射器-接收器对)传输给机器人。
该项目分为发射器和接收器部分。发送器和接收器部分的电路图和元件将分别解释。
手势控制机器人的原理
为了理解手势控制机器人的工作原理,让我们把这个项目分为三个部分。
第一部分是通过Arduino从MPU6050加速器陀螺仪传感器获取数据。Arduino不断从MPU6050获取数据,并根据预定的参数,将数据发送到射频发射器。
项目的第二部分是射频发射器和射频接收器之间的无线通信。射频发射器在收到Arduino的数据后(通过编码器IC),通过射频通信将其传送给射频接收器。
最后,项目的第三部分是对射频接收器收到的数据进行解码,并将适当的信号发送至电机驱动IC,从而激活机器人的车轮电机。
手势控制机器人的方框图
下面的图片显示了发射器和接收器部分的手势控制机器人的简单框图。
发射器方框图
接收器方框图
发射器部分的电路图
下图显示了手势控制机器人项目发射器部分的电路图。
发射器部分的元件
Arduino Nano
434MHz射频发射器
HT-12E编码器IC
MPU6050加速器/陀螺仪传感器
750KΩ电阻
接收器部分的电路图
接收器部分的元件
L293D电机驱动IC
HT-12D解码器IC
434MHz射频接收器
33KΩ电阻
330Ω电阻
LED
4个带轮子的齿轮马达
机器人底盘
部件描述
MPU6050
MPU6050是爱好者和发烧友最常使用的传感器模块之一。它由加速器和陀螺仪组成,并提供6个自由度(3轴加速器和3轴陀螺仪)。
射频发射器和接收器模块
发射器和接收器之间的通信是使用射频模块。在这个项目中使用了一对434MHz的发射器和接收器。
HT-12E
它是一个编码器集成电路,将4位并行数据转换为串行数据,以便通过射频链路进行传输。
HT-12D
它是一个解码器IC,将射频接收器接收到的串行数据转换成4位并行数据。这个并行数据可以用来驱动电机。
带有编码器和解码器的射频链接
手势控制机器人的电路设计
发射器部分
机器人的发射器部分由Arduino Nano板、MPU6050传感器、HT-12E编码器IC和一个射频发射器组成。Arduino和MPU6050传感器之间的通信是通过I2C接口进行的。因此,MPU6050传感器的SCL和SDA引脚被连接到Arduino Nano的A5和A4引脚。
此外,我们将使用MPU6050的中断引脚,因此,它被连接到Arduino Nano的D2。
HT-12E是一个编码器集成电路,通常与射频发射器模块有关。它将12位并行数据转换为串行数据。12位数据被分为地址和数据位。A0到A7(针脚1到针脚8)是地址位,它们用于数据的安全传输。这些引脚可以保持开放或连接到地(Vss)。在这个电路中,HT-12E的第1至第9针(A0 - A7和Vss)连接到地。
10-13脚(AD8、AD9、AD10和AD11)是HT-12E的数据引脚。它们接收来自外部的4个字的并行数据,如微控制器(本例中为Arduino Nano)。它们分别与Arduino Nano的D12、D11、D10、D9引脚相连。
TE'是传输使能引脚,它是一个低电平有效引脚。只要TE'为低电平,数据就会被传输。因此,第14针(TE')也被连接到地。
编码器IC在16和15号引脚(OSC1和OSC2)之间有一个内部振荡器电路。在这些引脚之间连接了一个750KΩ的电阻来启用振荡器。Dout(针脚17)是串行数据输出针脚。它与射频发射器的数据输入引脚相连。
Arduino Nano和MPU6050都有3.3V稳压器。因此,所有的VCC引脚都连接到一个稳定的5V电源。
接收器部分
机器人的接收部分包括一个射频接收器、HT-12D解码器、L293D电机驱动器和一个带有四个轮子的电机的机器人底盘。
HT-12D是通常与射频接收器相关的解码器IC。它将射频链路收到的串行数据转换为并行数据。A0到A7(针脚1到针脚8)是地址针脚,必须与编码器的地址针脚匹配。
由于编码器(HT-12E)的地址引脚是接地的,所以解码器的地址引脚也必须接地。因此,1-9号针脚(A0-A7和Vss)要接地。来自射频接收器的串行数据被赋予解码器IC的Din(针脚14)。
HT-12D有一个内部振荡器,在OSC1和OSC2(16和15脚)之间连接一个33KΩ的外部电阻。17脚(VT)表示数据的有效传输,当数据引脚上出现有效数据时,该脚将为高电平。一个与330Ω电阻串联的LED被连接到这个引脚,以指示有效的数据传输。
HT-12D的10至13脚(D8、D9、D10和D11)是并行数据输出脚。它们被连接到L293D电机驱动IC的输入引脚(分别为2、7、10和15脚)。
L293D电机驱动芯片用于为电机提供必要的电流(用于正反方向)。引脚1和9是使能引脚,与引脚16(这是逻辑电源)一起连接到VCC(+5v)。引脚3-6和11-14是输出,与四个电机相连。
第8针是电机电源针,连接到一个单独的电源。因此,在接收器部分你需要两个电池;一个用于电路,一个用于电机。
手势控制机器人的工作
在这个项目中,我们设计了一个由手势控制的移动机器人。这里解释一下该机器人的工作。
如前所述,手势控制机器人是一种无线操作的机器人,有两个部分: 发射器和接收器。当机器人通电后,由Arduino、MPU6050、编码器和射频发射器组成的发射器部分将持续监测MPU6050传感器。
这些数据被Arduino捕获,然后根据MPU6050传感器的方向,将相应的数据传送给编码器。编码器收到的并行数据被转换为串行数据,该串行数据由射频发射器传输。
在接收部分,射频接收器接收串行数据并将其传送给解码器IC。解码器将串行数据转换为并行数据,并将此并行数据提供给电机驱动IC。基于这些数据,电机的运动,以及机器人的运动被定义。
应用
无线控制机器人在许多应用中非常有用,如远程监控、军事等。
手势控制机器人可以被坐在轮椅上的残疾人使用。
可以开发手势控制的工业级机器人手臂。
到目前为止,你已经知道了手势控制机器人,它完全根据你的手的时刻(对设备的输入标志)来移动。如果你正在寻找一个类似的低预算设备,那么机器人吸尘器最适合你,因为它有更大的功能来清洁你的家。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码