“开源智能蓝牙彩灯照明器(体感)/zh”的版本间的差异
502748957@qq.com(讨论 | 贡献) (→文档) |
(→概述) |
||
(未显示2个用户的3个中间版本) | |||
第9行: | 第9行: | ||
*耗时:2小时 | *耗时:2小时 | ||
*制作者: | *制作者: | ||
+ | *责任编辑:jiale | ||
*简介: | *简介: | ||
本次教程我们将使用Microduino产品模块快速搭建一个体感小球彩灯, | 本次教程我们将使用Microduino产品模块快速搭建一个体感小球彩灯, | ||
− | + | 该彩灯通过姿态传感器[[Microduino-Module Motion/zh]]采集姿态数据并反映到ColorLED灯组上,使得小球在滚动中可以根据姿态变幻颜色。 | |
− | |||
==材料清单== | ==材料清单== |
2016年3月4日 (五) 06:38的最新版本
Language | English |
---|
概述
本次教程我们将使用Microduino产品模块快速搭建一个体感小球彩灯, 该彩灯通过姿态传感器Microduino-Module Motion/zh采集姿态数据并反映到ColorLED灯组上,使得小球在滚动中可以根据姿态变幻颜色。 材料清单
实验原理整个系统由姿态获取部分和彩灯控制两个部分组成,姿态获取部分使用Microduino-Motion传感器获取三轴姿态数据,每一个不同的角度对应的数值都不相同,之后根据获得的数值控制彩灯的颜色变幻。彩灯使用Microduino-ColorLED,串联方式连接,每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s
文档体感球灯:【体感小球代码】 体感球灯github: MotionBall 调试将Microduino-Core与Microduino-USBTTL叠加(无上下顺序),通过USB数据与电脑连接起来。 注意:最好不要将所有模块堆叠在一起之后再上传程序 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开文件夹后选择body_welcome.ino 点击"√",编译程序。 点击【工具】,在板选项里面选择板卡(Microduino-Core),在处理器选项里面选择处理器(Atmega328p@16M,5V),再在端口选项里面选择正确的端口号,然后直接烧录程序。 点击"→",进行上传。 拼装
首先使用螺丝将Microduino-ColorLED固定在侧板上(共6块)
首先将四块侧板,两对边向上,两对边向下(如图4.6所示)注意:木板中部有变宽部分,以此分辨上下方向 按照如图的方式放进圆形外框中 将两边的木板轻微向外分开,之后开始连接ColorLED的连线。 任选一个ColorLED作为第一个,用一根传感器连接线一端连接Microduino-Sensorhub的A0/A1接口另一端连接ColorLED的IN接口。 之后继续用传感器线连接第一个ColorLED的OUT接口和下一个ColorLED的IN接口。以此类推(上一个的OUT连接下一个的IN),先连接好除开关木板以外的其他5块木板。最后,将”底板”上的ColorLED作为倒数第二个LED,使用传感器线连接好IN和OUT接口,并且将OUT接口的传感器线通过方块中心伸到对面,准备连接开关木板上的ColorLED。这个过程比较繁琐,只要抓住核心原则,上一个ColorLED的OUT连接下一个ColorLED的IN即可。 最后给BM模块上连接好电池,将BM与其他模块插接好,并且开关木板上的ColorLED连接好底板上拉过来的传感器连线,将所有连线与模块、电池一起放入方块中,盖好即可。 最后将圆形板放入小球中,四个凹孔对应小球上的四个螺丝孔,此时注意,将开关板的一面和小球有旋盖的一面对应好。之后将小球盖好,用长螺丝拧紧。 打开开关,此时会看到所有灯都亮起,之后可以滚动小球,就会看到所有LED炫酷的颜色变化啦。 注意事项注意将开关部分向上,即仓鼠球的开盖方向。 操作说明连接好锂电池并盖好开关一侧的木板,之后将仓鼠球四周螺丝拧好。之后打开仓鼠球的顶盖并打开开关,四周的LED灯就可以发亮了,变换仓鼠球的角度可以观察到彩灯绚丽的颜色变化。 程序说明主程序部分 void loop()
{
strip.begin();
strip.show(); // Initialize all pixels to 'off'
getMPU();
colorWipe(strip.Color(Angel_accX, Angel_accY, Angel_accZ), 10);
safe_ms = millis();
}
ColorLED控制部分 void colorWipe(uint32_t c, uint8_t wait)
{
for(uint16_t i = 0; i < strip.numPixels(); i++)
{
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
视频 |