使用Arduino的手势控制机器人
扫描二维码
随时随地手机看文章
机器人被用于许多领域,如建筑、军事、制造、装配等。机器人可以是自主的或半自主的。自主机器人不需要任何人为干预,可以根据情况自行采取行动。半自动机器人根据人类的指令工作。这些半自动机器人可以通过遥控器、手机、手势等进行控制。我们以前构建了一些基于物联网的机器人,可以从web服务器控制。
在今天的文章中,我们将使用Arduino, MPU6050加速度计,nRF24L01收发器对和L293D电机驱动模块构建一个手势控制机器人。我们将把这个机器人设计成两部分。一个是发送者,另一个是接收者。发送部分由Arduino Uno, MPU6050加速度计和陀螺仪以及nRF24L01组成,而接收部分由Arduino Uno, nRF24L01,两个直流电机和L293D电机驱动器组成。发射器将作为遥控器来控制机器人,机器人将根据手势移动。
组件的要求
•Arduino Uno (2)
•NRF24L01 (2)
•MPU6050
•直流电机(2)
•L293D电机驱动模块
•电池
加速度计和陀螺仪
MPU6050传感器模块是一个完整的6轴(3轴加速度计和3轴陀螺仪)微机电系统。MPU6050传感器模块还具有片上温度传感器。它具有I2C总线和辅助I2C总线接口,可与微控制器和其他传感器设备(如3轴磁强计,压力传感器等)进行通信。
MPU6050传感器模块用于测量加速度、速度、方向、位移和其他与运动有关的参数。这个传感器模块也有一个内置的数字运动处理器,可以执行复杂的计算。
NRF24L01收发模块
nRF24L01是一款单芯片无线电收发器,适用于全球2.4 - 2.5 GHz ISM频段。收发器由一个完全集成的频率合成器、一个功率放大器、一个晶体振荡器、一个解调器、调制器和增强型ShockBurs协议引擎组成。输出功率、频率通道和协议设置可以通过SPI接口轻松编程。
收发模块的工作电压范围为1.9V ~ 3.6V。它有内置的关机和待机模式,使其省电和容易实现。
基于Arduino的手势控制机器人工作原理
为了了解这个Arduino手势控制小车的工作原理,我们将这个项目分为两部分。第一部分是发射器部分(远程),其中MPU6050加速度计传感器通过Arduino和nRF发射器不断向接收器(机器人)发送信号。
第二部分是Receiver部分(Robot car), nRF接收器接收传输的数据并将其发送给Arduino,由Arduino进一步处理并据此移动机器人。
MPU6050加速度计传感器读取X Y Z坐标并将坐标发送给Arduino。对于这个项目,我们只需要X和Y坐标。然后Arduino检查坐标值并将数据发送到nRF发射器。发送的数据由nRF接收器接收。接收器将数据发送到接收端的Arduino。Arduino将数据传递给电机驱动IC,电机驱动将电机转向所需的方向。
线路图
这个使用Arduino硬件的手势控制机器人分为两个部分
1. 发射机
2. 接收机
Arduino手势控制汽车的发送电路
本课题的发送部分由MPU6050加速度计和陀螺仪、nRF24L01Transceiver和Arduino Uno组成。Arduino不断地从MPU6050获取数据,并将这些数据发送到nRF发射器。射频发射器将数据传输到环境中。
发射机部分的电路图如下所示。
Arduino手势控制汽车接收器电路
该手势控制机器人的接收部分由Arduino Uno、nRF24L01收发器、2台直流电机和电机驱动模块组成。NRF24L01接收器接收来自发射器的数据并将其发送给Arduino。然后根据接收到的信号,Arduino移动直流电机。接收器部分的电路图如下所示。
程序解释
这个使用Arduino的手势控制机器人的完整代码在文档的末尾给出。这里我们逐行解释这个程序。
发射机端程序
在本程序中,Arduino从MPU6050读取数据并将其发送到nRF 24L01发射器。
通过添加所需的库文件开始程序。您可以从给定的链接下载库文件。
SPI.h
nRF24L01.h
Wire.h
MPU6050.h
然后定义MPU6050陀螺仪和加速度计数据的变量。这里只使用加速度计数据。
为通信和nRF发射机CN和CSN引脚定义无线电管道地址。
在void setup()函数中,启动串行监视器。同时初始化有线和无线电通信。收音机。setDataRate用于设置数据传输速率。
读取MPU6050传感器数据。这里我们只使用X和Y方向加速度计数据。
最后,利用无线电传输传感器数据。写函数。
接收端程序
像往常一样,通过包含所需的库文件来启动程序。
为通信和nRF发射机CN和CSN引脚定义无线电管道地址。
定义左、右直流电机引脚。
现在检查一下收音机是否可用。如果是,则读取数据。
现在比较接收到的数据,并根据情况驱动电机。
用Arduino测试手势控制机器人
一旦硬件准备好,将发送端和接收端Arduinos连接到笔记本电脑并上传代码。然后移动MPU6050加速度计来控制机器人小车。
本文编译自iotdesignpro