亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Intel Curie 加速度计驱动的体感触发灯光系统

核心硬件

项目目标

  1. 脚步声控灯:检测脚步冲击自动开关灯。
  2. 节拍同步闪烁:捕捉桌面敲击/舞蹈节奏,LED 跟随闪烁。
  3. 地震波记录仪:通过 USB/蓝牙实时输出加速度计/陀螺仪数据,供上位机分析。

GitHub 仓库

ckuzma/arduino-101-sketches — 包含全部示例草图。

核心示例草图

1. TapFlashTest — 单次敲击闪烁

#include "CurieIMU.h"
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  CurieIMU.begin();
  CurieIMU.attachInterrupt(eventCallback);
  CurieIMU.setDetectionThreshold(CURIE_IMU_SHOCK, 1050); // 1.05 g
  CurieIMU.setDetectionDuration(CURIE_IMU_SHOCK, 75);    // 75 ms
  CurieIMU.interrupts(CURIE_IMU_SHOCK);
}
void loop() {}
static void eventCallback(void) {
  if (CurieIMU.getInterruptStatus(CURIE_IMU_SHOCK)) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(50);
    digitalWrite(LED_BUILTIN, LOW);
  }
}

用于调节冲击阈值与持续时间,验证中断触发可靠性。

2. TapBeatMatch — 节拍同步闪烁

Intel Curie 加速度计驱动的体感触发灯光系统

3. SeismicReader + Python 可视化

Intel Curie 加速度计驱动的体感触发灯光系统

4. VibrationLighting — 双击触发灯带

Intel Curie 加速度计驱动的体感触发灯光系统

扩展:外接 MPU-6050 通用方案

为推广众包地震监测,提供兼容 MPU-6050 (GY-521) 的 ExternalGyroscope 草图,配合 CurieGraph.py 即可在任意 Arduino(UNO/Nano/Mega 等)上采集 6 轴数据并可视化。

#include <Wire.h>
const int MPU_addr = 0x68;
int16_t ax, ay, az, temp, gx, gy, gz;

String jsonEncodeValue(String key, float val) {
  return "\"" + key + "\":" + String(val);
}
String assembleJson(String kv) { return "{" + kv + "}"; }

void setup() {
  Serial.begin(9600);
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); // 唤醒
}

void loop() {
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B); Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr, 14, true);
  ax = Wire.read()<<8 | Wire.read();
  ay = Wire.read()<<8 | Wire.read();
  az = Wire.read()<<8 | Wire.read();
  temp = Wire.read()<<8 | Wire.read();
  gx = Wire.read()<<8 | Wire.read();
  gy = Wire.read()<<8 | Wire.read();
  gz = Wire.read()<<8 | Wire.read();

  String kv = jsonEncodeValue("ax", ax) + ",";
  kv += jsonEncodeValue("ay", ay) + ",";
  kv += jsonEncodeValue("az", az) + ",";
  kv += jsonEncodeValue("gx", gx) + ",";
  kv += jsonEncodeValue("gy", gy) + ",";
  kv += jsonEncodeValue("gz", gz);
  Serial.println(assembleJson(kv));
  delay(100);
}

若 CurieGraph.py 启动失败,多运行 2~3 次通常即可连接。

开发心得

制造工艺

  1. 用 Alexa 控制吊扇:分步指南
  2. 使用 Arduino Uno 轻松编程 Atmel AT89 系列单片机——分步指南
  3. 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
  4. 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
  5. Arduino 电源控制中心:N-FET/P-FET/继电器/RTC 多功能扩展板
  6. 基于 Arduino MKR1000 与 ThingSpeak 的远程 IoT 机械臂控制系统
  7. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  8. DIY Arduino 加湿器控制器:继电器安全控制高压电路
  9. Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
  10. Arduino UNO + WiFi 盾板:串口实时推送温度到网页绘图
  11. Arduino 网页控制灯泡:PHPoC Shield 实现 WebSocket 实时控制
  12. 高级电机控制电路:自锁、停止与延时技术