由于母亲总是需要付出额外的努力,而如今可穿戴电子设备变得越来越普遍,因此可以通过简单的技术来关注您的宝宝,尤其是在他们第一次冒险散步时。
例如,当您的孩子在另一个房间跌倒时,该系统会通过 Android 应用程序通知您。它由一个在行走/跌倒时检测加速度的IMU传感器模块(H0BR40)、一个发送视觉警报的RGB LED模块(H01R0x)和一个通过“Hexabitz”将警报事件直接发送到手机的蓝牙模块(H23R1x)组成跌倒检测”专用应用程序。
我们将列出该项目中使用的工具和模块:
1)六位IMU模块(H0BR40):
H0BR4x 是结合了 3 轴数字罗盘模块的 3 轴惯性测量单元 (IMU) [1]。
2) 六位RGB LED模块(H01R0x):
H01R0x 是一款智能 RGB LED 模块 [2]。
3) Hexabitz蓝牙/BLE 模块 (H23R1x):
H23R1x 是一个蓝牙/BLE 模块 [3]。
4) 用户工具包:
该套件包括编程、调试和为 Hexabitz 模块供电所必需的工具。
4针USB 2.0转UART串口线是Hexabitz开发不可或缺的利器!它结合了 FTDI 的 USB 到 UART 接口 [4]。
Hexabitz BitzClamp 是一种改进的开尔文电流钳,焊接到两根 2.56 毫米间距的阳跨接导线 [5]。
H40Rx 是一个编程器模块,包含用于 STM32 微控制器(Hexabitz 模块和其他 MCU)的 STLINK-V3MODS 独立调试和编程微型探针 [6]。
您可以使用我们为您组装的现成的 EZ-Hook 套件,而不是在那里焊接 SMD 连接器 [7]。
我们将逐步说明从项目设计到实施的步骤:
1.规划阵列和组装硬件:
首先,我们准备项目部分并通过并排对齐三个模块来规划我们的阵列设计。然后我们使用 Hexabitz Fixture 将模块焊接在一起。
2、用STM32CubeIDE软件编写代码:
该项目使用的技术基于通过跟踪 x 轴方向的加速度变化来检测佩戴传感器的婴儿的运动和身体位置变化的原理。
在为三个模块创建拓扑并设置它们的配置后,我们为每个模块添加拓扑。请参阅此链接以获取有关创建拓扑文件的帮助。
首先,我们在模块 IMU (H0BR40) 的 main.c 文件中定义我们的传感器加速度计变量:
/* Private variables ---------------------------------------------------------*/
float ax = 0.0f;
float ay = 0.0f;
float az = 0.0f;
然后我们使用 H0BR40 资料单中的以下 API 以 g 为单位获得加速度计的过滤和校准值:
在 UserTask 函数中,我们现在编写重复代码来检查婴儿是否有规律地移动。这里,x 轴的值在 (ax ≤ 0.99 g) 的范围内。在这种情况下,我们向模块 RGB LED 发送一条消息,使其呈绿色亮起(保存模式)。
否则,如果婴儿摔倒了,x 轴的值会短暂地变为 1 g 以上的值范围。在这种情况下,LED 模块的颜色在昏暗模式(跌倒警报模式)下变为红色。然后向蓝牙模块发送一条消息,同时在您手机上的 Android 应用程序中接收到该消息,并触发声音警报并在屏幕上显示红色消息。
首先使用 STM32CubeIDE 调试功能监控这些值,以监控我们的加速度计实时表达式,如图(10)所示。
SampleAccG(&ax, &ay, &az);
if(ax<=0.99){
messageParams[0] = 0;
messageParams[1] = GREEN;
messageParams[2] = 15;
SendMessageToModule(2, CODE_H01R0_COLOR, 3);
}
else if(ax>1){
messageParams[0] = RED;
messageParams[1] = RGB_DIM_UP_DOWN_WAIT;
messageParams[2] = (uint8_t)(30000>>24);
messageParams[3] = (uint8_t)(30000>>16);
messageParams[4] = (uint8_t)(30000>>8);
messageParams[5] = (uint8_t)(30000);
messageParams[6] = (uint8_t)(1000>>24);
messageParams[7] = (uint8_t)(1000>>16);
messageParams[8] = (uint8_t)(1000>>8);
messageParams[9] = (uint8_t)(1000);
messageParams[10] = 0;
messageParams[11] = 0;
messageParams[12] = 0;
messageParams[13] = 1;
SendMessageToModule(2, CODE_H01R0_DIM, 14);
writePxMutex(P3, (char*)"a",1 , cmd50ms, HAL_MAX_DELAY);
}
3. 使用 MIT App Inventor 构建 Android 应用程序:
图 (11) 显示了应用程序屏幕和为应用程序用户创建的案例:
图 (12) 显示了用于在 Hexabitz 模块和使用蓝牙技术的 Android 应用程序之间建立连接的块 [8]。
[1]:IMU 和数字罗盘 (H0BR4x) – Hexabitz
[3]:蓝牙/BLE (H23R1x) – Hexabitz
[5]:Hexabitz BitzClamp – Hexabitz
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !