0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

交互式无接触灯的制作

454398 来源:工程师吴畏 2019-08-09 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:我们需要什么

电子产品:

1。 2 x 22M欧姆+电阻器电阻值越大,传感器反应越远,我个人使用22M欧姆,获得可用数据的最小值为10M欧姆)

2。 3x 330欧姆电阻

3. 电线

4。 乙 readboard

5 即可。 电路板(我的铜条连续不断)

6。 多个常见的阴极RGB Leds (我使用8,但你可以或多或少取决于你想要多少光)

7。 铝箔

8。 Cling wrap

9。 Arduino Uno

10。 录像带

案例:

1。 Wood 我使用的是50 x 50 x 1.8 CM MDF(你可以使用任何东西。这取决于你想要的效果和你可以使用的工具)

的 2。 亚克力有机玻璃我使用50 x 50 x 0.3 CM(或任何其他透明/半透明材料,如宣纸)

3。 砂纸(细砂纸)

4. 木胶

5. 胶合板(可选)

6. 丙烯酸胶

工具:

剥线器

烙铁+锡

Stanley刀

锯(我用过台锯)

第2步:原型设计:

交互式无接触灯的制作

现在我们有了一切,我们可以开始制作原型,看看它是如何工作的:

准备工作:

从铝箔上切下4个矩形(我的大约10厘米乘5厘米),将它们用保鲜膜包裹起来,以防止它们直接接触并将电线粘在铝箔上。我只是在箔上剥了一个剥离的末端(只要它们保持接触)。

为了确保铝是安全绝缘的,我用保鲜膜包好并在纸之间熨烫(只需几秒钟)所以它没有完全融化。)

然后设置电路,如图所示。

引脚4用作两个传感器的发送引脚,而接收引脚是引脚2和5.您可以使用多个发送引脚,但由于它们不是完全同步而导致故障。

在将所有内容焊接在一起之前使用此设置进行调试,以确保一切真正按预期工作。

步骤3:代码:

现在我们拥有一切,我们可以开始调试传感器了。

要使用我的代码,你应该从Arduino下载电容感应库并按照参考页面给出的指示进行安装:点击我

代码:(我不是非常适合编码,所以如果你知道如何更好地做,请做)

#include //import the code library

CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2); //Send pin = 4, receive are 2 and 5

CapacitiveSensor cs_4_5 = CapacitiveSensor(4,5);

const int redPin = 11;

const int greenPin = 10;

const int bluePin = 9;

const int numIndexR = 10; // array size

const int numIndexG = 10;

int colorR = 0;

int colorG = 0;

float colorB = 0;

int indexR [numIndexR];

int posIndexR = 0;

long totalR = 0; //it needs to be a long because the total of my array was to big for an integer.

int averageR = 0;

int indexG [numIndexG];

int posIndexG = 0;

long totalG = 0;

int averageG = 0;

void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

for (int thisIndexR = 0; thisIndexR 《 numIndexR; thisIndexR++) { //sets the array to 0

indexR [thisIndexR] = 0;

}

for (int thisIndexG = 0; thisIndexG 《 numIndexG; thisIndexG++) {

indexG [thisIndexG] = 0;

}

colorR = 255; //turns on all leds colors

colorG = 255;

colorB = 255;

Serial.begin(9600);

}

void loop()

{

long start = millis();

long total1 = cs_4_2.capacitiveSensor(10); //Save the raw sensor data to a variable

long total2 = cs_4_5.capacitiveSensor(10);

if (total1 》= 4500){ //cap the sensor values to a usable maximum, this is not the same for every resistor value and also might differ a bit from environment to environment you might need to tweak this to your own needs.

total1 = 4500;

}

if (total2 》= 4500){

total2 = 4500;

}

totalR = totalR - indexR[posIndexR]; //this here creates an array that continuously adds a sensor output and produces the average.

indexR[posIndexR] = total1;

totalR = totalR + indexR[posIndexR];

posIndexR = posIndexR + 1;

if (posIndexR 》= numIndexR){

posIndexR = 0;

}

averageR = totalR / numIndexR; //we use the average instead of the raw data to smooth out the output, it slows the process down slightly but it also creates a really nice smooth flow.

totalG = totalG - indexG[posIndexG];

indexG[posIndexG] = total2;

totalG = totalG + indexG[posIndexG];

posIndexG = posIndexG + 1;

if (posIndexG 》= numIndexG){

posIndexG = 0;

}

averageG = totalG / numIndexG;

if (averageR 》= 2000 ){ // we don‘t want the leds to constantly changes value unless there is input from your hand, so this makes sure all lower environmental readings are not taken into account.

colorR = map(averageR, 1000, 4500, 255, 0);

analogWrite (redPin, colorR);

}

else if (averageR 《= 2000){

colorR = 255;

analogWrite (redPin, colorR);

}

if (averageG 》= 1000 ){

colorG = map(averageG, 1000, 4500, 255, 0);

analogWrite (greenPin, colorG);

}

else if (averageG 《= 1000){

colorG = 255;

analogWrite (greenPin, colorG);

}

if (colorR 《= 125 && colorG 《= 125){ //B works a bit different because I only used 2 sensors so I mapped B on both sensors

colorB = map(colorR, 255, 125, 0, 127.5) + map(colorG, 255, 125, 0, 127.5);

analogWrite (bluePin, colorB);

}

else{

colorB = map(colorR, 255, 125, 127.5, 0) + map(colorG, 255, 125, 127.5, 0);

if (colorB 》= 255){

colorB = 255;

}

if (colorB 《= 0){

colorB = 0;

}

analogWrite (bluePin, colorB);

}

Serial.print(millis() - start); //this is for debugging purposes

Serial.print(“ ”);

Serial.print(colorR);

Serial.print(“ ”);

Serial.print(colorG);

Serial.print(“ ”);

Serial.println(colorB);

delay(1);

}

这段代码的作用是从传感器中提取原始数据(这些数据总是会略微不稳定,因为影响传感器的所有不同因素)并且它将原始数据连续地放在一个数组中,当数组达到最大值(在我的情况下为10)时,它清除最后一个值并添加一个新值。每次添加一个值时,它都会计算平均值并将其放入一个新变量中。此平均变量用于将值映射到0到255之间的值,这是我们写入RGB引脚以增加每个通道亮度的值(通道为R G和B)。

现在,如果您将代码上传到arduino并打开串行监视器,当您将手悬停在每个传感器上时,您应该看到RGB值较低,而且LED的浅色也应该更改。

步骤4:现在为案例:

案例:我使用我大学提供的工具制作了这个案例,因此这个工作流程并不适用于所有人。然而,没有什么特别之处,它需要一侧的孔让USB端口适合穿过,但除此之外它只是一个敞开的顶盒。

尺寸如下:

15 x 15 CM用于透明顶部

15 x 8 CM用于木制基地(木材的厚度对我来说是1.8厘米)。

我用台锯将MDF板切成我需要的正确尺寸(这是4个面板15 x 8 CM和1 15 x 15 CM接地面板),之后我将角切成45度角。我使用木胶和夹子(让它至少干燥30分钟)粘在一起的所有部件,我使用相同的程序用于树脂玻璃,但使用特殊的锯片。

其中一个木质边应该在arduino USB插头高度的中心有一个孔,以便插入arduino。

我完成了单板的基础。我把它切成比每边的表面略大的碎片。

我粘上它,然后将它夹在每一边30分钟(更好的是单独做,所以你确保它不会滑动干燥之后,我将切掉的东西切掉了。

我用Acryl特有的胶水粘在一起称为Acryfix。

请注意,如果你使用丙烯酸树脂胶,胶水稍微溶解有机玻璃,因此尽可能精确和快速(它在几分钟内干燥,但在几秒钟内暴露在空气中)。

为了完成盖帽,我用喷砂机擦拭了立方体但你也可以使用细砂纸,只需要花费更多的时间使它看起来均匀。但要注意,如果你使用砂纸需要细粒度,并在结霜程序后将部件粘在一起(所以你不要破坏它意外地施加很大的压力)

为了确保盖子不会滑到太多,我在木制立方体的边缘粘了几个小木条。

第5步:最终结果应该是这样的:

第6步:焊接!

如果您有电路板,您可以使用面包板所具有的相同设置开始将所有部件焊接在一起。

我的电路板有连续的铜条,便于使用。

对于每个传感器,我切掉一个小方块,将电阻器和电线焊接到。

发送线(从引脚4到每个传感器的导线)按顺序焊接到一个单独的方形,1根导线进入引脚4.

我保留了一个长矩形,用于制作一个简易的LED条(测量它,使其适合帽的内部,但在基座的边缘)。你可以按顺序依次焊接LED(请记住图像我偶然焊接电路板错误一侧的LED和电阻,铜条应始终位于底面)。

将各个部件焊接在一起后,将它们装入外壳中。我没有将我的单根电线焊接在一起,所以如果需要我可以轻松地将它们更换。

时间让所有东西都融入基地:

这是最简单的步骤,arduino需要首先通过USB端口穿过背面的孔这个案子。现在添加传感器,确保传感器箔片两侧贴合木材,地面箔片直接贴在上面。当它完全适合时,将RGB LED插入右侧引脚(9,10,11)并让它靠在底座的边缘。

第7步:完成!

如果您已完成所有这一切,您现在应该有一个带电容式触摸颜色混合的工作灯。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2577

    文章

    55506

    浏览量

    793964
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197466
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SGM37863A:电感LED闪光驱动器的卓越之选

    SGM37863A:电感LED闪光驱动器的卓越之选 在当今的电子设备中,LED闪光的应用越来越广泛,从智能手机到便携互联网设备,再到运动相机等,都离不开高性能的LED闪光
    的头像 发表于 03-25 11:50 267次阅读

    接触感知生命体征的黑科技

    你是否曾经想过,在不接触身体的情况下,就能实时监测自己的呼吸和心跳?如今,这项科幻电影中的技术已经悄然走进现实。海凌科电子推出的LD6002系列生命体征监测雷达模组,正在让接触健康
    的头像 发表于 03-09 17:41 474次阅读
    <b class='flag-5'>无</b><b class='flag-5'>接触</b>感知生命体征的黑科技

    无线充电小夜灯:微波雷达如何让智能夜感亮起

    微波雷达智能夜通过感感知与渐变光谱,实现安全、舒适的夜间照明,提升睡眠质量。
    的头像 发表于 03-06 08:23 391次阅读
    无线充电小夜灯:微波雷达如何让智能夜<b class='flag-5'>灯</b><b class='flag-5'>无</b>感亮起

    【应用方案】聪明的车灯会说话,艾为突破性方案助力车灯交互升级

    智慧灯语的典型应用中,最常见的就是车尾交互式LED矩阵显示屏,然而,为实现高分辨率的车尾交互屏,传统方案通常需部署2000至5000颗LED珠,依赖多达42~10
    的头像 发表于 12-31 19:04 471次阅读
    【应用方案】聪明的车灯会说话,艾为突破性方案助力车灯<b class='flag-5'>交互</b>升级

    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB带系统

    基于STM32F103RBT6的手势控制LED系统,通过PAJ7620U2传感器识别手势动作,驱动WS2812B带实现交互式灯光效果。系统采用软件I2C通信和SPI+DMA驱动方案,支持挥手开关机、手部位置跟踪及彩虹尾影效果。项目包含详细硬件接线图、代码解析包含手势检测
    的头像 发表于 12-29 17:48 2099次阅读
    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB<b class='flag-5'>灯</b>带系统

    思必驰助力智元精灵G2重新定义工业级交互式具身作业机器人

    2025年全运会期间,智元机器人推出的工业级交互式具身作业机器人一智元精灵G2,在广州的交通枢纽承担乘客引导、问题解答及安全巡查等核心任务,此外还支持全场景全向避障与高精度力控作业,应用于汽车零部件
    的头像 发表于 12-19 11:23 697次阅读

    AMD Alveo MA35D加速器:开启大规模交互式流媒体新时代

    AMD Alveo MA35D加速器:开启大规模交互式流媒体新时代 在当今全球视频市场被直播主导的背景下,低延迟应用不断涌现,对基础设施和视频处理技术的成本结构及部署策略产生了深远影响。AMD推出
    的头像 发表于 12-15 14:35 572次阅读

    接触位移传感器:以无形之触,丈量工业未来

    在智能制造的浪潮中,精度与效率是衡量技术进步的核心标尺。当传统接触传感器因机械磨损、环境干扰而逐渐显露局限,贝弗德非接触位移传感器正以“无形之触”重新定义测量边界——它无需物理
    的头像 发表于 12-05 08:46 569次阅读
    非<b class='flag-5'>接触</b><b class='flag-5'>式</b>位移传感器:以无形之触,丈量工业未来

    企鹅宝宝带你看非接触水位检测方案

    接触
    ICman
    发布于 :2025年11月26日 13:44:49

    接触电容式液位传感器:深耕多领域的“接触监测专家”

    在现代工业生产与日常生活中,液位监测是保障系统安全、提升效率的关键环节。传统接触液位传感器因需直接接触液体,常面临腐蚀、污染、结垢等问题,难以满足高要求场景的需求。而非接触电容式液位
    的头像 发表于 11-17 15:56 1386次阅读
    非<b class='flag-5'>接触电容式</b>液位传感器:深耕多领域的“<b class='flag-5'>无</b><b class='flag-5'>接触</b>监测专家”

    电容液位传感器和传统接触液位传感器比有什么优势?

    维成本更低 传统接触传感器的安装流程复杂、维护频率高,而电容传感器结构简单、易损部件,显著降低了安装和运维成本。(如有需要-联系:刘先生 19210042892) (一)安装方式
    发表于 11-11 11:37

    接触位移传感器:工业测量的“隐形守护者”

    在智能制造与工业4.0浪潮席卷全球的今天,位移测量的精度与稳定性已成为决定生产效率与产品质量的关键因素。传统接触传感器因机械磨损、环境适应性差等问题逐渐暴露局限,而非接触位移传感器
    的头像 发表于 10-23 08:41 534次阅读

    河南移动携手华为完成交互式UE Logo全球首呼

    河南移动携手华为成功打通全球首个交互式UE Logo First Call,正式开启5G-A“体验经营2.0”新时代,在网络能力产品化与用户体验升级领域树立先锋里程碑。
    的头像 发表于 10-21 09:55 1026次阅读

    OBOO鸥柏丨AI室外触摸屏查询一体机户外交互式触控终端信息发布大屏招投标标底参数要求

    整机参数要求:21.5寸/23.8寸/32英寸/43寸/49寸/55寸/65寸/75寸/85-86寸/98寸/100寸/110寸/115寸室外触控一体机户外交互式查询触摸一体机高清信息发布宣传大屏
    的头像 发表于 08-12 10:42 1615次阅读
    OBOO鸥柏丨AI室外触摸屏查询一体机户外<b class='flag-5'>交互式</b>触控终端信息发布大屏招投标标底参数要求

    中山大学:用于呼吸识别和非接触人机交互的均匀快速响应湿度场传感阵列的可扩展制备

    后疫情时代,公共场合的接触人机交互(Human-Machine Interaction, HMI)界面因需物理接触存在让人们感染病毒的风险。相比之下,基于湿度传感器的非
    的头像 发表于 06-07 16:15 888次阅读
    中山大学:用于呼吸识别和非<b class='flag-5'>接触</b><b class='flag-5'>式</b>人机<b class='flag-5'>交互</b>的均匀快速响应湿度场传感阵列的可扩展制备