体感控制彩灯
853387039@qq.com(讨论 | 贡献)2015年6月26日 (五) 03:10的版本 (Created page with "{{Language| 体感控制彩灯}} {| style="width: 800px;" |- | ==目的== 做一个根据体感来控制彩色led灯的颜色。 ==原理== 通过姿态传感器检测姿态...")
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之后彩灯将关闭。 视频 |