查看“蓝牙彩灯”的源代码
←
蓝牙彩灯
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language| 蓝牙彩灯}} {| style="width: 800px;" |- | ==目的== 通过Android手机结合Microduino-BT与Microduino-CoreUSB进行蓝牙通讯,从而控制彩灯的颜色。 ==原理== ==设备== {|class="wikitable" |- |模块||数量||功能 |- |[[Microduino-CoreUSB/zh]]||1||核心板 |- |[[Microduino-Sensorhub/zh]]||1||传感器转接板 |- |[[Microduino-BT/zh]]||1||蓝牙模块 |- | [[Microduino-Lantern/zh]]||1||彩灯 |- | [[Microduino-BM/zh]]||1||电池管理 |} [[File:ble_lamp.jpg|600px|center|thumb]] ==文档== Android客户端: 注意:新版BT是蓝牙4.0,需要Android 4.3以上的系统才能支持。这里只提供Android的APP。 APP下载:'''[[File:Microduino-LAMP-APP.zip]]'' ==搭建硬件== *Setup 1:将CoreUSB、BT与Sensorhub叠堆。 [[File:CoreUSB_Ble_Sensorhub.jpg|600px|center|thumb]] *Setup 2:将彩灯接到Sensorhub的A0引脚上。 [[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]] [[File:mic_colorled_ble.jpg|600px|center|thumb]] ==软件调试== *Setup 1:搭建开发环境,将CoreUSB接到电脑,下载程序代码。 *Setup 2:下载Android客户端。解压安装并打开,如果没有打开蓝牙,会提示用户需要打开蓝牙设备。 [[File:Microduino_BT_Serial_1.png||300px|center|thumb]] *Setup 3:点击右上角SCAN搜索设备,设备名为Microduino,点击进行连接。 [[File:Microduino_BT_Serial_2.png||300px|center|thumb]] *Setup 4:初始情况在右上角出现Serial Present,等待变成Serial ready,此时就能正常通讯了。 [[File:Microduino_BT_Serial_3.png||300px|center|thumb]] *APP说明: **如果你有多个彩灯,可通过切换到Multi Color模式来调节,最多接6个。Single Color不管接多少个彩灯,所有灯的颜色都一致。 **可通过圆环来调节等的亮度。 **可通过底下的开关来切换开启或关闭灯光。 [[File:Microduino_BT_Serial_5.png||300px|center|thumb]] *代码说明,一部分接收蓝牙信息,另一部分根据模拟值的大小控制灯的颜色组合。 **蓝牙信息读取 CoreUSB与蓝牙的通讯串口:Serial1 <source lang="cpp"> #define my_Serial Serial1 </source> <source lang="cpp"> void ble() { while (my_Serial.available()) { char c = my_Serial.read(); delay(2); if (c == 'C') buffer_sta = true; if (c == '\n') { color_en = true; safe_ms = millis(); } if (buffer_sta) { buffer[buffer_num] = c; buffer_num++; } // Serial.println(c); //Serial.println(color_en); } if (buffer_sta) { buffer_sta = false; sscanf((char *)strstr((char *)buffer, "C:"), "C:%d,%d,%d,%d", &sta[0], &sta[1], &sta[2], &sta[3]); for (int a = 0; a < buffer_num; a++) buffer[a] = NULL; buffer_num = 0; for (int i = 0; i < 4; i++) { Serial.print(sta[i]); Serial.print(","); } Serial.println(" "); if (-1 == sta[3]) { colorSet(strip.Color(sta[0], sta[1], sta[2])); } else if ((0 <= sta[3]) && (sta[3] < PIXEL_COUNT)) { colorSet(strip.Color(sta[0], sta[1], sta[2]), sta[3]); } } if (millis() - safe_ms > 3000) { safe_ms = millis(); color_en = false; } } </source> **灯颜色变换 当有蓝牙连接时,蓝牙控制灯的颜色 <source lang="cpp"> if (-1 == sta[3]) { colorSet(strip.Color(sta[0], sta[1], sta[2])); } else if ((0 <= sta[3]) && (sta[3] < PIXEL_COUNT)) { colorSet(strip.Color(sta[0], sta[1], sta[2]), sta[3]); } </source> 否则自动控制颜色 <source lang="cpp"> if (!color_en) { rainbowCycle(10, 255, 0, 0, 0); rainbowCycle(10, 255, 0, 0, 1); rainbowCycle(10, 0, 255, 0, 0); rainbowCycle(10, 0, 255, 0, 1); rainbowCycle(10, 0, 0, 255, 0); rainbowCycle(10, 0, 0, 255, 1); rainbowCycle(10, 255, 0, 225, 0); rainbowCycle(10, 255, 0, 225, 1); rainbowCycle(10, 247, 139, 5, 0); rainbowCycle(10, 247, 139, 5, 1); rainbowCycle(10, 255, 255, 0, 0); rainbowCycle(10, 255, 255, 0, 1); rainbowCycle(10, 0, 255, 255, 0); rainbowCycle(10, 0, 255, 255, 1); for (int i = 0; i < 3; i++) rainbow(30); } </source> ==结果== 通过Microduino可以成功实现用手机控制彩灯,得到你想要的任意颜色。你也可以通过乐高搭建一个漂亮的外观。 ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
蓝牙彩灯
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息