提交完整工程
BIN
资料/95ad7e49dee0f5c716f523c7f0d327e9.jpg
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
资料/E108-GN03+Series_UserManual_CN_V1.4 (1).pdf
Normal file
BIN
资料/SY8089A1AAC说明书.pdf
Normal file
BIN
资料/图片资料/000c60633867dddb2b8b1718da159103.png
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
资料/图片资料/13ff1ed3a05aa082de4079f447903419.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
资料/图片资料/438802cd0793e25ff9d842f848dc486a.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
资料/图片资料/523e859ccbb30ea4fb57a7d98c0f72f3.jpg
Normal file
|
After Width: | Height: | Size: 703 KiB |
BIN
资料/图片资料/641f6ffc3490db1505efcbea38f1f696.jpg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
资料/图片资料/6750aaae275448535c155bedf83feff9.png
Normal file
|
After Width: | Height: | Size: 488 KiB |
BIN
资料/图片资料/a4f7ad5fee39b4dcc702ab6af3eca08d.png
Normal file
|
After Width: | Height: | Size: 275 KiB |
BIN
资料/图片资料/a5a7f87c1e29e8f96ab05ef1980ed485.png
Normal file
|
After Width: | Height: | Size: 249 KiB |
BIN
资料/图片资料/da134af86812ada3bb519768294b2ae1.png
Normal file
|
After Width: | Height: | Size: 261 KiB |
BIN
资料/图片资料/dc0864e295e6831fd51a445ba67d4b26.mp4
Normal file
BIN
资料/图片资料/e391e5005c0d1d4915cd1e04457412fe.mp4
Normal file
BIN
资料/图片资料/e56b047c76b6f17fb55336f1594f2b88.mp4
Normal file
BIN
资料/图片资料/f415f6da5421ba09709ca3c8db0b2afb.png
Normal file
|
After Width: | Height: | Size: 228 KiB |
154
资料/智能拐杖开发记录.md
Normal file
@@ -0,0 +1,154 @@
|
||||
## 原始需求----智能拐杖跌倒检测与定位报警系统设计
|
||||
|
||||
- 研制出便携式智能拐杖原型机,具备跌倒自动报警、手动求助、定位追踪等核心功能,满足老人户外出行防护需求。研究内容如下:
|
||||
|
||||
1. 基于三轴加速度传感器与陀螺仪融合算法,开发拐杖端跌倒状态检测模块,区分正常行走、静坐、跌倒等不同姿态。
|
||||
2. 利用 GPS 或北斗定位模块,实现老人位置信息实时采集;搭载 GSM 模块,设计跌倒触发后自动向监护人发送位置短信与报警信号的功能。
|
||||
3. 基于 STM32 单片机搭建主控系统,完成传感器数据采集、姿态算法运算、定位与通信模块的联动控制;增设手动紧急呼叫按键,满足主动求助需求。
|
||||
4. 设计低功耗供电电路,适配锂电池充放电管理,保障系统长时间续航。
|
||||
|
||||
需要有 STM32,定位模块,GSM 模块(用于发短信),姿态传感器,电源管理,电池,紧急报警。
|
||||
硬件功能就是检测他的行走坐卧还有跌倒,如果跌倒了就发短信给家人,短信内容要有定位。
|
||||
我还要保证长时间的一个嗜好。
|
||||
另外还有一个就是手动的报警,就是他没有跌倒,但是他按了报警的按钮也会发送报警的短信给他的家人。
|
||||
|
||||
产品与用户视角:功能是否“过度”?
|
||||
|
||||
这需要将技术模块转化为用户可感知的体验来评估:
|
||||
功能模块 用户感知与价值 是否核心/可精简
|
||||
跌倒自动报警 “摔倒了,能自动通知孩子” 绝对核心,不可精简
|
||||
手动求助按键 “感觉不舒服,一键就能叫人” 核心安全冗余,不可精简
|
||||
定位追踪 “发出报警时,能告诉孩子我在哪里” 报警的必要信息,不可精简。但“实时追踪”模式可能非必需。
|
||||
长续航 “充一次电能用一个星期,不麻烦” 核心体验,不可精简
|
||||
可能的“过度”功能 示例:心率监测、社交娱乐、复杂界面 需要警惕。这些会增加成本、复杂度和功耗,可能偏离“安全拐杖”的主线。
|
||||
|
||||
要使用 LIS3DHTR 加速度传感器来监测拐杖使用者是否跌倒(即检测“人拿着拐杖行走 → 突然跌倒”这一事件),需要从硬件电路配置和软件逻辑设计两方面入手。下面将结合 LIS3DHTR 的特性,给出完整、实用的方案。
|
||||
|
||||
✅ 一、核心思路:如何用加速度判断“跌倒”?
|
||||
|
||||
人在正常行走或坐着时,拐杖的加速度具有以下特征:
|
||||
|
||||
- 行走:有周期性上下/前后振动(加速度幅值中等,频率 ~1–2 Hz)
|
||||
- 静坐/静止:加速度 ≈ 1g(Z 轴朝下),波动小
|
||||
- 跌倒瞬间:
|
||||
- 先经历 短暂失重(3g)(撞击地面)
|
||||
- 之后 长时间静止(接近 1g,但方向可能异常)
|
||||
|
||||
因此,可利用 LIS3DHTR 的两个关键功能:
|
||||
|
||||
1. 自由落体检测(Free-fall detection)
|
||||
2. 活动/静止状态判断(Inactivity detection)
|
||||
|
||||
💡 组合逻辑:
|
||||
“先检测到自由落体 + 随后长时间无运动” → 判定为跌倒
|
||||
|
||||
✅ 二、LIS3DHTR 硬件电路配置(针对拐杖应用)
|
||||
|
||||
1. 供电与接口选择
|
||||
|
||||
- 供电:3.3V(必须!不可接 5V)
|
||||
- 通信接口:I²C 模式(节省引脚,适合低功耗 MCU)
|
||||
- 封装处理:建议使用现成模块(如带稳压的 LIS3DH breakout),避免手工焊 LGA 封装
|
||||
|
||||
2. 关键引脚连接(I²C 模式)
|
||||
LIS3DHTR 引脚 连接方式 说明
|
||||
VDD, VDD_IO 3.3V 必须同时接
|
||||
|
||||
GND (所有) + 底部焊盘 GND 良好接地,降低噪声
|
||||
|
||||
CS 接 3.3V 启用 I²C 模式
|
||||
|
||||
SA0 接 GND I²C 地址 = 0x18
|
||||
|
||||
SCL MCU_I2C_SCL 加 4.7kΩ 上拉(若 MCU 无内部上拉)
|
||||
|
||||
SDA MCU_I2C_SDA 同上
|
||||
|
||||
INT1 MCU_GPIO(中断输入) ⭐ 关键!用于唤醒 MCU
|
||||
|
||||
INT2 可悬空 本方案暂不用
|
||||
|
||||
🔋 电源建议:
|
||||
拐杖内可用 1 节锂电(3.7V)+ LDO(如 AMS1117-3.3) 供电,或直接用 2 节 AA 电池(3V)。
|
||||
|
||||
✅ 三、LIS3DHTR 寄存器配置(关键设置)
|
||||
|
||||
通过 I²C 写入以下寄存器(基于官方 datasheet):
|
||||
|
||||
1. 启用传感器 & 设置采样率
|
||||
// CTRL_REG1 (0x20)
|
||||
// ODR = 100 Hz(足够捕捉跌倒瞬态),启用 XYZ 轴
|
||||
writeRegister(0x20, 0b01010111); // 100 Hz, XYZ enable
|
||||
|
||||
2. 设置量程为 ±16g
|
||||
// CTRL_REG4 (0x23)
|
||||
// FS = ±16g(跌倒冲击可能 >5g,需高量程)
|
||||
writeRegister(0x23, 0b00111000); // ±16g, high resolution
|
||||
|
||||
3. 配置自由落体检测(FF_WU_SRC)
|
||||
// FF_WU_CFG (0x30) — 自由落体配置
|
||||
writeRegister(0x30, 0b11000100); // AOI=1, 6D=0, ZHIE=1, ZLIE=1, YHIE=1, YLIE=1, XHIE=1, XLIE=1
|
||||
|
||||
// FF_WU_THS (0x32) — 阈值(单位:1/64 g)
|
||||
// 设为 20/64 ≈ 0.31g(典型自由落体阈值)
|
||||
writeRegister(0x32, 20);
|
||||
|
||||
// FF_WU_DURATION (0x33) — 持续时间(单位:1/100 秒)
|
||||
// 设为 2 → 持续 20ms(防止误触发)
|
||||
writeRegister(0x33, 2);
|
||||
|
||||
4. 配置静止检测(Inactivity)
|
||||
用于判断跌倒后是否长时间不动
|
||||
|
||||
// ACT_THS (0x24) — 活动阈值(设为 10/64 ≈ 0.16g)
|
||||
writeRegister(0x24, 10);
|
||||
|
||||
// ACT_DUR (0x25) — 静止持续时间(单位:1/1000 秒)
|
||||
// 设为 2000 → 2 秒(跌倒后若 2 秒不动,则触发)
|
||||
writeRegister(0x25, 2000 & 0xFF); // 低 8 位
|
||||
writeRegister(0x26, (2000 >> 8) & 0xFF); // 高 8 位(ACT_DUR 是 16 位!)
|
||||
|
||||
⚠️ 注意:LIS3DH 的 Inactivity 检测需通过轮询 STATUS_REG 或使用 FIFO,不支持直接中断。
|
||||
因此更推荐:仅用自由落体中断唤醒 MCU,然后 MCU 主动检测后续是否静止。
|
||||
|
||||
✅ 四、优化方案:仅用 自由落体中断 + 后续静止判断
|
||||
|
||||
这是最可靠且低功耗的方式:
|
||||
|
||||
步骤:
|
||||
|
||||
1. MCU 默认睡眠
|
||||
2. LIS3DH 配置自由落体中断 → 输出到 INT1
|
||||
3. 当跌倒发生(自由落体)→ INT1 拉低 → 唤醒 MCU
|
||||
4. MCU 被唤醒后:
|
||||
- 读取加速度值(X, Y, Z)
|
||||
- 开启一个 2~5 秒计时器
|
||||
- 在此期间持续读取加速度:
|
||||
- 若 RMS 加速度 0.25) { // 有明显运动
|
||||
isStill = false;
|
||||
break;
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
|
||||
if (isStill) {
|
||||
triggerAlarm(); // 发送求救信号
|
||||
}
|
||||
|
||||
// 重新使能中断
|
||||
attachInterrupt(INT1_PIN, onFallDetected, FALLING);
|
||||
enterSleep();
|
||||
}
|
||||
|
||||
✅ 总结
|
||||
|
||||
要实现拐杖跌倒检测,LIS3DHTR 的最佳配置是:
|
||||
|
||||
- 硬件:3.3V 供电,I²C 接口,INT1 连 MCU 中断
|
||||
- 功能:启用 自由落体中断(0.3g, 20ms)
|
||||
- 逻辑:中断唤醒后,检测后续 2~5 秒是否静止且姿态异常
|
||||
- 优势:超低功耗(待机电流 <10μA),高可靠性,成本低
|
||||
|
||||
📌 这种方案已在老人防跌倒手环、智能拐杖等产品中广泛应用。
|
||||
|
||||
如果您提供具体的单片机型号(如 ESP32、STM32F1、nRF52832 等),我可以给出完整的 电路图 + 初始化代码 + 中断处理函数!
|
||||