“体感控制彩灯”的版本间的差异
853387039@qq.com(讨论 | 贡献) (Created page with "{{Language| 体感控制彩灯}} {| style="width: 800px;" |- | ==目的== 做一个根据体感来控制彩色led灯的颜色。 ==原理== 通过姿态传感器检测姿态...") |
853387039@qq.com(讨论 | 贡献) (→搭建硬件) |
||
第32行: | 第32行: | ||
==搭建硬件== | ==搭建硬件== | ||
*Setup 1:将CoreUSB接到电脑。打开示例程序,选择好板卡和串口下载程序。 | *Setup 1:将CoreUSB接到电脑。打开示例程序,选择好板卡和串口下载程序。 | ||
− | + | [https://github.com/Microduino/Microduino_Tutorials/blob/master/MCookie_Tutorial/Colorled_motion/Colorled_motion.ino Colorled_motion] | |
*Setup2:将CoreUSB、Motion和Sensorhub叠加。 | *Setup2:将CoreUSB、Motion和Sensorhub叠加。 | ||
[[File: motion_colorled _setup_1.jpg|600px|center|thumb]] | [[File: motion_colorled _setup_1.jpg|600px|center|thumb]] |
2015年6月26日 (五) 03:13的最新版本
Language | English |
---|
目的做一个根据体感来控制彩色led灯的颜色。 原理通过姿态传感器检测姿态变化(X,Y,Z三个方向相对水平位置的夹角),将三个值量化到彩灯颜色对应的R,G,B值上,即可实现体感来变幻颜色。 设备
搭建硬件
软件调试
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
ax = map(abs(ax / 180), 0, 100, 0, 255);
ay = map(abs(ay / 180), 0, 100, 0, 255);
az = map(abs(az / 180), 0, 100, 0, 255);
if (ax - cx >= 10 || ay - cy >= 10 || az - cz >= 10)
{
cx = ax;
cy = ay;
cz = az;
safe_ms = millis();
colorWipe(strip.Color(ax, ay, az));
/*
Serial.print("color:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.println("\t");
*/
}
else if (millis() - safe_ms > timer)
{
colorWipe(strip.Color(0, 0, 0));
safe_ms = millis();
}
#define timer 10000
结果转动搭好的系统,可以看到彩灯在不停的变幻颜色,当保持不动时,10S之后彩灯将关闭。 视频 |