亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用 Raspberry Pi 的手势控制机器人

您是否厌倦了用按钮控制一切?想通过坐在懒惰的沙发上通过简单的手部动作来控制某些东西吗?如果是,那么您来对地方了。在本教程中,我们将通过简单的手部动作来控制由两个直流电机驱动的机器人。有不同类型的传感器可以检测您的手部运动,例如通量传感器、加速度计和其他基于重力的传感器。因此,对于无线传输,我们将使用传输 4 位数据的 RF 434 模块。 4 位数据意味着您可以传输 16 种不同的组合,即 0000 到 1111。在本教程中,我们将使用编码器和解码器来避免空中接口的干扰。电机驱动器将使用解码器数据驱动电机。

使用树莓派的手势控制机器人

我们在发射端使用我们的树莓派来分析传感器数据并将数据组合传输到电机驱动器以相应地驱动电机,以便机器人可以悬停。我们将在机器人上使用 12 V 电池为解码器模块、接收器模块和电机供电。在发射端传感器和发射器编码器模块由树莓派本身供电。

组件

显示 1 到 9 个条目,共 9 个条目上一页下一页

使用 Raspberry Pi 的手势控制机器人 - 框图

发射端

使用树莓派的手势控制机器人——发射端

在发射器方面,我们有加速度计、树莓派、编码器模块和射频发射器。手势数据从加速度计流向树莓派,并在那里进行处理以决定机器人的运动,运动数据通过 GPIO 引脚传输到编码器模块。编码器模块将数据编码并在射频发射机的帮助下传输到空中接口。

使用 Raspberry Pi 的手势控制机器人 - 接收端

使用树莓派的手势控制机器人——接收端

来自接收端的RF接收器从空中接口获取数据并提供给解码模块。解码器模块对接收到的数据进行解码,并将其提供给电机驱动器 L293D。电机驱动器根据手势数据驱动电机。

加速度计

加速度是速度变化或速度除以时间的度量。例如,如果汽车在 10 秒内从静止状态 0 移动到 60 公里/小时,则汽车以 6 公里/小时加速。那么这和我的手势有什么关系?

加速度计是一种用于测量加速度力的机电设备。这种力可能是静态的,如重力的持续力,或者像许多移动设备的情况一样,是动态的以感知运动或振动。通过测量重力引起的静态加速度,您可以找出设备相对于地球的倾斜角度。通过感应动态加速度的大小,您可以分析设备的移动方式。

一些加速度计使用压电效应——它们包含受到加速力应力的微观晶体结构,这会导致产生电压。另一种方法是感测电容的变化。如果你有两个相邻的微结构,它们之间会有一定的电容。如果加速力移动其中一个结构,则电容将发生变化。添加一些电路将电容转换为电压,您将得到一个加速度计。

加速度计是低功耗设备,以模拟电压的形式输出加速度,一些加速度计以数字形式输出。 ADXL 335 等模拟加速度计为您提供基于运动轴的 3 个模拟输出 X、Y、Z。您可以通过 ADC 将这些模拟电压转换为数字电压。 ADXL345 等数字加速度计将通过 SPI 或 I2C 协议进行通信。这有更少的噪音和最可靠的

还有另一个传感器 MPU6050,它同时具有加速度计和陀螺仪。这也可以用来代替加速度计。 ADXL345和MPU6050的地址在I2C模式下与树莓派连接时不同,ADXL 0x53和MPU的地址是0x68。在本教程中,我将解释如何使用 ADXL345 和 MPU6050。

接口加速度计

现在我们将我们的加速度计 ADXL 345 和 MPU 6050 连接到我们的树莓派并检查传感器的读数。我相信你的树莓派安装了最新的操作系统和 python,因为我们将在这里使用 python 代码。

让我们将 ADXL345/MPU6050 连接到我们的树莓派。这里我们将使用 I2C 协议在设备之间进行通信。在 I2C 协议中,数据通过 SDA(串行数据)和 SCL(串行时钟)中的时钟传输。它是异步半双工通信协议。主机控制整个过程,从机根据主机命令做出响应。数据速率由从设备的可用频率决定。这里主从之间只有4个连接3V,Gnd,SCL和SDA。

ADXL345 数字加速度计

从 GPIO 引脚输出图中,您可以看到 Rpi 上的 SDA 和 SCL 引脚,并将其分别连接到 ADXL345/MPU6050 SDA 和 SCL 引脚。使用 RPi 本身为传感器供电。现在连接完成。

Raspberry pi 3 GPIO 头

在测试传感器之前,让我们在 rpi 中安装用于 I2c 协议的 python-smbus,并在我们的 RPi 中启用 I2C 协议。

安装 smbus:
sudo apt-get install python-smbus i2c-tools
在 RPi 中启用 I2C:
sudo raspi-config
转到接口选项并启用I2c协议。

然后通过这些命令包含 i2c 规范行。
sudo nano /etc/modules
添加这些行
i2c-bcm2708
i2c-dev

如果您使用的是旧的 rpi,请使用这些命令从 backlist 中删除 i2c
sudo nano /etc/modprobe.d/raspi-blacklist.conf
注释掉 (#) 黑名单 i2c-bcm2708
sudo 重启
使用该命令测试连接。这将显示连接到我们的 pi 的传感器的地址。
sudo i2c detection -y 1
Adxl 将在 0x53 中找到,Mpu 将在 0x68 或 0x69 中找到

现在我们将从 Github 下载一个预先编写的 ADXL345 for pi 库并测试传感器输出。使用这些命令。
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py 是输出 X、Y 和 Z 值的程序,如下所示。

我们可以修改这个程序或将其用于我们的项目。

对于 MPU6050 pimoroni 程序不起作用,因此我们将使用来自 github 的不同 python 模块。

通过使用这些命令。
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

python setup.py 安装
要检查我们的传感器连接和地址,打开终端并输入以下命令。它将在 0x68 或 0x69 处显示传感器地址,如下所示。

并且要测试我们的传感器数据,请转到 python 编辑器并仅逐个键入这些命令以查看传感器输出。
from mpu6050 import mpu6050

mympu=mpu6050(0x69)

数据=mympu.get_accel_data()

更进一步,您现在可以确定向右、向左、向前和向后移动的 4 个不同位置的阈值并记下。可以根据您在不同位置的传感器值进行校准,例如将其保持在您想要向前移动的位置并记下 5 个相似的值并将其四舍五入到一个阈值,这样如果传感器越过四舍五入的值可以启用程序中的条件语句。类似地为所有其他运动(如向左、向右、向后和停止)校准它。

阅读更多信息......

使用树莓派的手势控制机器人

当前项目/帖子也可以使用:


制造工艺

  1. 使用 LabVIEW 的树莓派温度曲线
  2. Raspberry Pi 控制的鱼菜共生
  3. Raspberry Pi 上的多通道专业数据记录器 – 第 1 部分
  4. Python 和 Raspberry Pi 温度传感器
  5. 使用树莓派远程监测天气
  6. SensorTag 到 Blynk 使用 Node-RED
  7. 使用 Raspberry Pi 的运动传感器
  8. 使用 Raspberry Pi 和 Bridge Shield 的机器人
  9. Raspberry Pi CD Box Robot
  10. 通过蓝牙控制的树莓派机器人
  11. 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
  12. 由 ANDROID 智能手机控制的 RASPBERRY PI WIFI 机器人