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

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

3天内不再提示

怎样用声音控制RGBLED的颜色

454398 来源:工程师吴畏 2019-07-31 11:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

连接RGB LED的最长脚到Arduino。通过220欧姆电阻将其他支路连接到Arduino的引脚9,10和11,如下面的电路图所示。

怎样用声音控制RGBLED的颜色

如何运行程序

首先,粘贴在Arduino IDE中本文末尾为Arduino提供的代码并上传代码。

然后,您需要从Wekinator的示例页面下载草图。

下载MFCC的可执行文件(mel频率倒频谱系数)。我有一个64位操作系统,所以我从那里下载了“win64”。

下载后,解压缩并运行“.exe”文件。它将如下所示。现在您需要一个麦克风来为Wekinator提供输入。如果您已连接外接麦克风,请确保在计算机的声音设置中选择它。

您将需要另一个草图(“输出草图”) )从Wekinator获得输出。该草图在本文末尾给出。将其粘贴到新的处理窗口并运行草图。

现在打开Wekinator并进行如下图所示的设置。将输入设置为13,将输出设置为1.将类型设置为“所有动态时间扭曲”,使用3种手势类型,然后单击“下一步”。

现在按住output_1前面的“+”按钮并说“红色”。

然后按住output_2前面的“+”按钮并说“绿色”。

然后按住output_3前面的“+”按钮并说“蓝色”。

之后,单击“Train”,然后单击“Run”。现在,RGB LED的颜色将根据您说的颜色名称而改变。

Arduino代码

#include //Including the library that will help us in receiving and sending the values from processing

ValueReceiver《1》 receiver; /*Creating the receiver that will receive 1 value.

Put the number of values to synchronize in the brackets */

/* The below variable will be synchronized in the processing

and they should be same on both sides. */

int output;

// Initializing the pins for led‘s

int red_light_pin= 11;

int green_light_pin = 10;

int blue_light_pin = 9;

void setup()

{

/* Starting the serial communication because we are communicating with the

Processing through serial. The baudrate should be same as on the processing side. */

Serial.begin(19200);

pinMode(red_light_pin, OUTPUT);

pinMode(green_light_pin, OUTPUT);

pinMode(blue_light_pin, OUTPUT);

// Synchronizing the variable with the processing. The variable must be int type.

receiver.observe(output);

}

void loop()

{

// Receiving the output from the processing.

receiver.sync();

// Matching the received output to light up the RGB LED

if (output == 1)

{

RGB_color(255, 0, 0); // Red

}

else if (output == 2)

{

RGB_color(0, 255, 0); // Green

}

else if (output ==3)

{

RGB_color(0, 0, 255); // Blue

}

}

void RGB_color(int red_light_value, int green_light_value, int blue_light_value)

{

analogWrite(red_light_pin, red_light_value);

analogWrite(green_light_pin, green_light_value);

analogWrite(blue_light_pin, blue_light_value);

}

处理代码(输出草图)

import vsync.*; // Importing the library that will help us in sending and receiving the values from the Arduino

import processing.serial.*; // Importing the serial library

// Below libraries will connect and send, receive the values from wekinator

import oscP5.*;

import netP5.*;

// Creating the instances

OscP5 oscP5;

NetAddress dest;

ValueSender sender;

// This variable will be syncronized with the Arduino and it should be same on the Arduino side.

public int output;

void setup()

{

// Starting the serial communication, the baudrate and the com port should be same as on the Arduino side.

Serial serial = new Serial(this, “COM10”, 19200);

sender = new ValueSender(this, serial);

// Synchronizing the variable as on the Arduino side.

sender.observe(“output”);

// Starting the communication with wekinator. listen on port 12000, return messages on port 6448

oscP5 = new OscP5(this, 12000);

dest = new NetAddress(“127.0.0.1”, 6448);

}

//This is called automatically when OSC message is received

void oscEvent(OscMessage theOscMessage) {

if (theOscMessage.checkAddrPattern(“/output_1”)==true)

{

output = 1;

}

else if (theOscMessage.checkAddrPattern(“/output_2”)==true)

{

output = 2;

}

else if (theOscMessage.checkAddrPattern(“/output_3”) == true)

{

output = 3;

}

else

{

}

}

void draw()

{

// Nothing to be drawn for this example

}

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

    关注

    243

    文章

    24438

    浏览量

    687466
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何进行声音定位?

    文章主要介绍了如何利用一种简单的TDOA算法进行声音点位,并使用数据采集卡进行声音定位的实验。
    的头像 发表于 09-23 15:47 1069次阅读
    如何进行<b class='flag-5'>声音</b>定位?

    如何使用 M487 微控制器 (MCU) 通过 DAC 在 SD 卡上播放 WAV 文件声音

    使用 M487 微控制器 (MCU) 通过 DAC 在 SD 卡上播放 WAV 文件声音
    发表于 08-20 06:05

    声源定位模块-AR1105# 声源定位# 声音定位

    声音降噪
    深圳市声讯电子有限公司
    发布于 :2025年08月01日 16:01:09

    为什么现在的PCB大部分都是绿色?PCB 不同的颜色到底代表什么意思?

    一、PCB颜色代表什么意思?PCB颜色一般是指拿到一块PCB板时最直观看到的板子上的油色,PCB表面的颜色就是阻焊剂的颜色。PCB板染色颜料是一种硬化树脂,主体树脂是无色近透明的,绿色
    的头像 发表于 07-18 10:03 1343次阅读
    为什么现在的PCB大部分都是绿色?PCB 不同的<b class='flag-5'>颜色</b>到底代表什么意思?

    求助,关于SGTL5000 LINE-IN声音录制问题

    位值显示为0x1。所以那里也没有问题。 我使用 tinycap 进行录音。 我 tinyplay 打开声音文件。我通过争边球引脚获得声音。我可以听普通的 wav 文件,只有我录制的文件没有
    发表于 04-11 06:49

    PCB颜色代表什么颜色?如何选择PCB颜色?一文帮你快速搞定

    今天给大家介绍的是:PCB颜色,包括PCB颜色差异、如何选择PCB颜色?为什么大多数PCB都是绿色? 一、PCB颜色是什么?我们看到的PCB颜色
    发表于 04-08 11:22

    颜色如何影响PCBA加工成本?一文带你揭秘

    一站式PCBA智造厂家今天为大家讲讲影响PCBA板颜色选择的因素有哪些?PCBA板颜色对PCBA加工成本的影响。在PCBA制造过程中,颜色是PCB板设计的一个可选项,通常并不影响电路板的性能。然而
    的头像 发表于 03-10 09:27 634次阅读

    PCBA板的颜色密码:选美大赛还是实用主义?

    同关于颜色下深藏这怎样的故事吧。 这些色彩斑斓的"外衣"其实是阻焊层涂料,就像电路板的防晒霜,主要作用是保护铜箔不被氧化。常见颜色里,绿色占全球80%的产量,不是因为它最漂亮,而是这种松香树脂材料最便宜——在广东工厂里,绿
    的头像 发表于 02-28 08:53 861次阅读

    DLPC150采用I2C控制时,如何控制LED开关?如何控制显示的颜色

    在DLPC150 Programmer’s Guide文件只有对投影图像的控制命令,没有对灯光开关和颜色控制,请提供相关资料。
    发表于 02-21 10:41

    网线的顺序颜色排位

    网线的顺序颜色排位通常遵循TIA/EIA 568B或TIA/EIA 568A标准,以下是这两种标准的详细颜色排位: TIA/EIA 568B标准 这是最常用的网线颜色排位标准,具体顺序如下: 橙白线
    的头像 发表于 02-20 09:46 6974次阅读

    使用ADS1281的SPI采集数据,各个引脚应该怎么连接?

    我想使用ADS1281的SPI采集数据,各个引脚应该怎么连接?那些是必须用I/O口,那些可以直接上拉或下啦,如果想预留PIN模式,怎样用最少的I/O口接线,还有同步输入引脚的作用是什么?应该怎么接线?谢谢
    发表于 02-10 06:52

    KT148A语音芯片的声音小,如何让喇叭声音变大?声音影响注意点

    声音的大小是一个系统的工作,KT148A本身驱动声音的能力是很大的,达到200mA,通过电流也可以看出来。所以一般8欧姆1w以内的,不需要考虑外挂功放 喇叭的选择原则上越大越好,视结构而定。 尽量选择纸盆类型的喇叭【某宝搜搜】,发声更清晰,更大,也就贵一点点而已
    的头像 发表于 01-10 09:53 1209次阅读
    KT148A语音芯片的<b class='flag-5'>声音</b>小,如何让喇叭<b class='flag-5'>声音</b>变大?<b class='flag-5'>声音</b>影响注意点

    adss光缆颜色详细分析

    ADSS(All Dielectric Self-Supporting,全介质自承式)光缆的颜色,特别是其内部光纤的颜色,通常遵循一定的色谱排列规律。这些色谱排列不仅有助于光缆的制造和安装
    的头像 发表于 01-08 10:47 1430次阅读

    如何选择PCB颜色

    一、PCB颜色代表什么意思?   PCB颜色一般是指拿到一块PCB板时最直观看到的板子上的油色,PCB表面的颜色就是阻焊剂的颜色。PCB板染色颜料是一种硬化树脂,主体树脂是无色近透明的
    的头像 发表于 12-24 11:33 1609次阅读

    如何用SS1系列颜色传感器示教多通道颜色

    基于白色LED光源的特性,深视智能SS1系列颜色传感器突破了传统单色RGB、融合光RGB的波长限制,将发射波长的范围覆盖到整个可见光谱,最大支持检测16种颜色。那么,我们如何利用SS1系列颜色传感器
    的头像 发表于 12-23 08:17 1064次阅读
    如何用SS1系列<b class='flag-5'>颜色</b>传感器示教多通道<b class='flag-5'>颜色</b>?