Raspberry Pi和手势传感器控制LED

2022-07-30,,,,

背景知识视频教程

  • Raspberry Pi Essentials:在更少的时间内了解更多
  • 完整的2019 Raspberry Pi训练营
  • Raspberry Pi 周刊

在整个教程中,您将了解在Raspberry Pi上安装库以及如何使用它们来帮助您编写代码的基础知识。 在本教程中,我们将使用Python编程语言对Raspberry Pi进行编程。 因此,对于从Arduino迁移的人们来说,学习LED控制是开始Raspberry Pi项目并更熟悉Python的最好方法。

硬件

软件

工作方式

Raspberry Pi引脚图

RPi的工作方式与Arduino类似,但是两者之间存在一些差异。 所有的Raspberry Pi开发板都使用Python作为主要语言,但也支持Ruby和C,而Arduino仅支持C。此外,对于希望进入电子项目的初学者来说,RPi更加昂贵且更加复杂。 但是,由于其更高的处理能力,它一次可以处理多个程序。

手势传感器

它利用四个定向光电二极管来感应反射的IR能量,以将物理运动信息(即速度,方向和距离)转换为数字信息。从其数据表中了解更多信息。

硬件设置

手势传感器连接

  • SDA连接到RPi板引脚3
  • SCL连接到RPi板的引脚5
  • INT连接到RPi板的引脚7
  • VCC和GND分别连接到5V和地

LED连接

  • 第一个LED连接到RPi板引脚8
  • 第二个LED连接到RPi板引脚10
  • 第三个LED连接到RPi板引脚12
  • 第四个LED连接到RPi板的引脚16

Raspberry Pi设置

启用I2C

为了使手势传感器能够正常工作,我们必须通过Raspberry Pi配置启用I2C。 这也使我们可以使用smbus库。 假设您已经连接到Raspberry Pi,请单击左下角的raspberry图标,将鼠标悬停在“首选项”上,然后单击“ Raspberry Pi配置”。

当窗口弹出时,单击“接口”并确保启用了I2C。完成后,单击“确定”。

安装所需的库

接下来,我们必须安装库,以确保您的Raspberry Pi已连接到Internet。通过单击左下方的图标打开终端,只需输入命令

</>

代码

对于代码,您可以在计算机上通过Python IDLE,Notepad ++或任何支持Python的文本编辑软件或IDE进行处理,然后通过VNC Viewer将其传输到Raspberry Pi。 您也可以在RPi本身内部进行编码,我发现这更容易。

LEDcontrol.py代码

</>

要运行代码,请打开终端并使用命令cd <directory>将目录更改为文件所在的目录,然后运行命令python <file name> .py。

代码分解

库导入
</>
通道和引脚设置
</>

接下来,我们将SMBus端口设置为默认值1,然后将手势传感器设置为该总线。 之后,我们将GPIO引脚模式设置为遵循板号以便于识别,将引脚7设置为来自手势传感器的输入,并将引脚8、10、12和16设置为4个LED的输出。 状态1-4最初设置为false,以指示LED最初将处于关闭状态。

打印字典
</>

这部分是一个字典,其中手势传感器检测到的每个手势等同于更短,更易于理解的单词,稍后将被打印出来。

手势检测循环
</>

GPIO.add_event_detect(7,GPIO.FALLING)添加一个事件,该事件将在检测到下降沿时触发; 换句话说,当在手势传感器上检测到手势时,它将把手势发送到引脚7。然后设置其接近阈值并启用它。 然后创建一个无限的while循环来模拟一个循环,该循环可连续检测手势,一旦完成,它将进入if语句。 在if语句内部,motion = apds.readGesture()读取检测到的手势并将其存储在变量中。 接下来,它将使用上面制作的词典格式打印动作,然后根据动作打开或关闭LED。

详情参阅http://viadean.com/rpi_gesture.html

本文地址:https://blog.csdn.net/jiyotin/article/details/107926286

《Raspberry Pi和手势传感器控制LED.doc》

下载本文的Word格式文档,以方便收藏与打印。