手势控制互动桌灯
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
|
关于这个项目
我们都见过不同种类的情绪灯和 RGB 灯,它们中的大多数都有一些按钮或遥控器可以与之交互,但我们想到了制作 手势控制的 RGB 台灯 它只能使用简单的滑动手势作为触发器来改变其颜色。这是一个使用 Arduino 制作的交互式艺术项目 Uno 板和红外阵列传感器 .这是一个有趣而简单的项目,可以教授给学生和孩子们。
让我们潜入制作门户。
在 Instagram 上关注我们:我们制作的随机东西!更多精彩项目。
第一步:整理素材
此处提到的所有材料都可以在您当地的市场和在线商店轻松获得。
- Arduino Uno
- 红外传感器阵列(8 个传感器)
- WS2812b 可寻址 RGB LED
- 5V、2A 电源适配器
第 2 步:简介
该传感器是多个 IR 传感器(接近传感器)的简单阵列。该阵列由 8 个传感器组成,可提供 8 个不同的模拟和数字输出。在这个项目中,我们将使用这个传感器来识别我们手的运动方向,从而根据手势改变 LED 的颜色。 Arduino 板将从传感器获取输入并改变 LED 的颜色。
此处附上一张红外传感器阵列的图像以及与代码相关的手势。两个简单的手势将是:
- 向左滑动
- 向右滑动
在此处查看这些手势的工作原理:
第 3 步:建立连接
只有很少的连接,即; (参考电路图中的连接)
红外传感器连接:
- 将红外线跟随传感器的 GND 连接到 Arduino 的 GND。
- 将红外线跟随传感器的 VCC 连接到 Arduino 的 5v。
- 将传感器 A 的数字输出连接到 Arduino 的数字引脚 4。
- 将传感器 B 的数字输出连接到 Arduino 的数字引脚 5。
- 将传感器 C 的数字输出连接到 Arduino 的数字引脚 6。
- 将传感器 D 的数字输出连接到 Arduino 的数字引脚 7。
- 将传感器 E 的数字输出连接到 Arduino 的数字引脚 8。
- 将传感器 F 的数字输出连接到 Arduino 的数字引脚 9。
- 将传感器 G 的数字输出连接到 Arduino 的数字引脚 10。
- 将传感器 H 的数字输出连接到 Arduino 的数字引脚 11。
LED 灯条连接:
- 将 LED 灯条的 GND 连接到 Arduino GND。
- 将 LED 灯条的 5V 连接到 Arduino 的 Vin。
- 将 LED 灯条的数据输入连接到 Arduino 的数字引脚 3。
都是这样!
第 4 步:让我们编写代码
这里附上的代码是完整的。
解释:
代码很简单,我们使用一个名为 FAST LED 的库来控制 LED 并赋予其效果。然后使用字母表声明 8 个变量来存储来自传感器的数据。 LED 数量 在像素条中定义为 90 (您可以根据您的设置更改此设置)&数据引脚定义为 pin 3 Arduino的。
void 循环由 2 个嵌套的 if 循环组成,它们将检查哪些传感器已打开并因此发光/改变 LED 的颜色。
一个虚空淡入淡出 函数提供Hue(Color)变化效果。
从这里下载代码并享受。
在 Instagram 上关注我们:我们制作的随机东西!更多精彩项目。
第 5 步:一些图片
图> &nofit=script> 图>
代码
- 手势控制台灯
手势控制台灯Arduino
此代码已完成,您可以更改 LED 数量和引脚编号。根据您的设置。对于代码的解释,请查看文章的故事部分。#include//LED 库初始化int a,b,c,d,e,f,g,h,j=0; //存储传感器数据的变量#define NUM_LEDS 90 // 你的条带中有多少个 LED?#define DATA_PIN 3 // LED 的数据引脚将在 arduino 上连接在这里 // 定义 LEDCRGB LED 阵列 [NUM_LEDS];void setup () { pinMode(4,INPUT); //红外传感器的数字输入引脚 pinMode(5,INPUT); //红外传感器的数字输入引脚 pinMode(6,INPUT); //红外传感器的数字输入引脚 pinMode(7,INPUT); //红外传感器的数字输入引脚 pinMode(8,INPUT); //红外传感器的数字输入引脚 pinMode(9,INPUT); //红外传感器的数字输入引脚 pinMode(10,INPUT);//红外传感器的数字输入引脚 pinMode(11,INPUT);//红外传感器的数字输入引脚 LEDS.addLeds (leds ,NUM_LEDS); //LED初始化LEDS.setBrightness(84); // LED 亮度(0-255 范围)}void fakeall() { for(int i =0; i =4; i--) { // 将第 i 个 LED 设为红色 leds[i] =CHSV(hue++, 255, 255); // 显示 LED FastLED.show(); // 现在我们已经显示了 LED,将第 i 个 LED 重置为黑色 // leds[i] =CRGB::Black;淡入淡出(); // 在我们循环并再次执行之前稍等片刻 delay(10); } }} }
示意图
Fritzing 中的电路由 8 个不同的 IR 传感器组成,您可以使用 8 个不同的传感器或一个阵列传感器。制造工艺