合宙LuatOS的个人空间 https://www.eechina.com/space-uid-176273.html [收藏] [复制] [RSS]

博客

极简之力:exvib库如何让三轴传感精准检测“化繁为简”

已有 236 次阅读2025-9-18 13:32 |个人分类:4G模组| 物联网, 单片机, 4G模块, 通讯模组, 嵌入式硬件

面对三轴传感开发的复杂性,exvib扩展库以“极简”破局!通过抽象化API设计,开发者无需掌握底层原理,即可快速构建精准检测系统,数据稳定、响应迅速,让技术落地更轻松。

 

一、exvib库典型应用及检测模式

1.1 三种典型应用

exvib.open(mode)接口针对三种典型应用场景提供了不同取值,可以根据自己的应用场景进行选择,也可以自己对扩展库的值进行修改。

微小震动检测:用于检测轻微震动的场景(例如:用手敲击桌面);加速度量程2g。
 

运动检测:用于电动车或汽车行驶时的检测,人行走和跑步时的检测;加速度量程4g。

跌倒检测:用于人或物体瞬间跌倒时的检测;加速度量程8g。

 

1.2 两种震动检测模式

持续震动检测模式:震动强度超过设定阈值时,会进入中断处理函数,获取xyz三轴的数据;

有效震动模式:当10秒内触发5次震动强度超过设定阈值时,持续触发震动事件,并执行相应的处理函数,30分钟内只能触发一次,直到30分钟之后,再重新开始检测。

实际应用中,也可以根据项目需求自己修改相关代码。

 

二、exvib库应用示例


本文以Air8000开发板为例,分享exvib库三轴加速度传感器的震动触发功能应用要点。
 

最新源码下载:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/vibration 

实操教程详见:https://docs.openluat.com/air8000/luatos/app/gsensor/  


 

2.1 示例代码解析

1)main.lua

程序主入口,主要用于加载vibration模块。



2)vibration.lua

加载了exvib库,开启task协程,调用exvib.open(1)接口开启震动检测模式:

微小震动检测,设置gpio.WAKEUP;

防抖100ms,防抖的作用是100ms只能触发一次,防止误触;

然后设置中断模式触发。

关于触发方式,这里提供了两种应用:

第一种是持续震动:只要检测到震动,就会一直触发;

第二种是有效震动:在10秒内检测到5次震动,则判定为有效震动;有效震动触发之后,30分钟之后才能再次触发。

有效震动的判断逻辑:示例使用循环定时器的方式每秒都把tick值+1,每次触发震动则记录tick值到表里面,然后对表里面的最后一次触发的tick和第一次触发的tick进行对比——如果小于10并且第五次的值为有效值,就判定为有效震动。

也可以根据实际情况,改为自己项目的有效震动逻辑。



2.2 示例效果展示

Air8000开发板通过LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行,查看示例运行结果。


1)有效震动模式日志:


2)持续震动模式日志:


今天的内容就分享到这里了~


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部