“开源智能彩虹音乐触摸灯/zh”的版本间的差异
(→材料清单) |
(→概述) |
||
第8行: | 第8行: | ||
*难度:中 | *难度:中 | ||
*耗时:2小时 | *耗时:2小时 | ||
− | * | + | *制作者:ray |
*简介: | *简介: | ||
本次教程我们将使用Microduino产品模块快速搭建一个智能彩虹音乐触摸灯, | 本次教程我们将使用Microduino产品模块快速搭建一个智能彩虹音乐触摸灯, |
2016年3月4日 (五) 03:50的版本
Language | English |
---|
概述
本次教程我们将使用Microduino产品模块快速搭建一个智能彩虹音乐触摸灯, 该系统通过触摸按键探测表面是否有人触摸。当有人触摸时,就会有对应位置的彩灯亮并产生一个对应的音符。 材料清单
实验原理开源智能彩虹音乐触摸灯主要分为触摸检测与音频播放控制两个部分。按键检测部分采用按键触摸传感器Microduino-TOUCH,能够检测是否有人触摸。控制部分主要为声光控制,发光部件采用14个彩灯为一的彩灯带,能让彩虹灯呈现美轮美奂的颜色;音频部分通过Microduino-Aduio模块管理音频文件,Microduino-Amplifier功率放大模块驱动1个喇叭发出动听的声音。 整体系统的控制原理即接入以上两个部分,Microduino-Core+核心通过触摸传感器探测到有人触摸后,系统控制彩灯带对应的灯产生颜色,Auido模块将产生一个对应的音符,从而实现彩虹触摸灯的效果。
Microduino-TOUCH/zh是电容式触摸检测传感器模块。 电容特性为充放电时间短、通交流阻直流。触摸传感器的回路电流为直流电,所以触摸传感器两端在通电后相当于开路,触摸传感器两端为高电平。人体组织和体液都可以导电,人体接触电容两端之后,触摸传感器两端变成低电平。人体结束和触摸传感器的接触后,电容暂瞬间开始充电,达到电容的额定容量之后,电容两端相当于开路,触摸传感器两端又变成高电平。触摸传感器通过两端电压的变化判断是否有触摸。 文档触摸灯代码:【触摸灯代码下载】 触摸灯代码github:BluButterflyLight Android客户端: 注意:新版BT是蓝牙4.0,需要Android 4.3以上的系统才能支持。这里只提供Android的APP。 手机APP和测试程序:[1] 调试过程
将Microduino-Core+与Microduino-USBTTL叠加(无上下顺序),通过USB数据与电脑连接起来。 打开BluButterflyLight.ino文件 在工具->板那里选择Microduino-Core+(644pa)。在处理器选项里面选择处理器(Atmega644pa@16M,5V),在端口选项里面选择正确的端口号,然后直接烧录程序。 使用USB数据线将Microduino-Audio模块与电脑连接。 连接成功能显示出一个名为Microduino Audio的CD驱动器 打开CD驱动器后以管理员权限执行音乐更新软件Music Update tool,选择“音频加载”选项 点击“浏览”,选择“keytones”文件夹中的音频文件,将音频文件添加到软件中 在”更新下载”选项中选择“更新”,更新完成后,音频文件就已写入flash中 组装拼装时首先将Microduino-Duo-S1板用尼龙螺柱固定在底板上面。 之后将Core+(在最下),BT,Audio,Amplifier,Sensorhub(在最上)按顺序叠加起来,之后加在Microduino-Duo-S1底板上 将喇叭连接到Amplifier的接口上(没有左右顺序区别) 之后将触摸传感器和彩灯带与Hub连接,按如图所示位置 彩灯带有线的头方向放在靠底板那边,触摸传感器按照上面图和下面图顺序依次放好 喇叭的固定座放在喇叭上 然后将固定座和喇叭一起连接到外壳 之后把内部结构拼好 最后把侧面也装上 这样彩虹灯外形拼好了。然后用USB数据线将电脑和彩虹触摸灯连接上,用手触摸彩虹灯上面,就会产生一个音符并在对应位置LED灯亮。 程序说明
void ble() {
if (my_Serial.available() > 0) { //如果有蓝牙发送的信息
currentInfo = my_Serial.readStringUntil('\n'); //读取信息
Serial.println(currentInfo);
if(currentInfo=="ERROR") {
return;
} else if (currentInfo.startsWith("Connected")) { //成功读取则进行下一步
bleEnable=true;
} else if (currentInfo.startsWith("Disconnected")) {
bleEnable=false;
}
if(!bleEnable) { //不成功读取则结束
return;
}
if (currentInfo.startsWith("do")) { //接收到的不同命令
audio_play(1, 5, 500);
led_off(1, 5);
}else if (currentInfo.startsWith("re")) {
audio_play(2, 5, 500);
led_off(2, 5);
}else if (currentInfo.startsWith("mi")) {
audio_play(3, 5, 500);
led_off(3, 5);
}else if (currentInfo.startsWith("fa")) {
audio_play(4, 5, 500);
led_off(4, 5);
}else if (currentInfo.startsWith("so")) {
audio_play(5, 5, 500);
led_off(5, 5);
}else if (currentInfo.startsWith("la")) {
audio_play(6, 5, 500);
led_off(6, 5);
}else if (currentInfo.startsWith("si")) {
audio_play(7, 5, 500);
led_off(7, 5);
} else if (currentInfo.startsWith("xxx")) {
for(int a=0;a<42;a++) {
audio_play(songs[0][a*2], 5, songs[0][a*2+1]);
led_off(songs[0][a*2],5);
}
} else if (currentInfo.startsWith("lzlh")) {
for(int a=0;a<42;a++) {
audio_play(songs[1][a*2], 5, songs[1][a*2+1]);
led_off(songs[1][a*2],5);
}
}else if (currentInfo.startsWith("apple")) {
for(int a=0;a<42;a++) {
audio_play(songs[2][a*2], 5, songs[2][a*2+1]);
led_off(songs[2][a*2],5);
}
}
}
}
视频 |