背景
我们的宠物应该得到更多保持活跃的方法。我正在使用 XIAO BLE Sense,它是一款配备强大 Nordic nRF52840 MCU 的微型微控制器,采用蓝牙 5.0 模块设计,围绕 32 位 ARM® Cortex™-M4 CPU 构建。它有 6 Axis IMU,用于预测诸如休息、步行和跑步等活动。tinyML 模型根据来自 3 Axis IMU 的数据预测活动。
随附的移动应用程序通过蓝牙连接到设备,微控制器每分钟发送一次预测数据。数据存储在移动本地存储上并绘制在图表上以提供有意义的洞察力。
从 XIAO 开始构建
在开始使用 XIAO 编程之前,您需要安装板固件。最好的资料来源是wiki ,你可以在上面得到逐步的指导,以设置您的 Arduino IDE。
EI Blue - 通过蓝牙收集数据
对于任何机器学习项目,数据收集都是非常重要的部分。为了捕捉更准确的数据,我必须在我的狗戴着项圈时收集数据,这意味着我无法收集通过 USB 线将 XIAO BLE Sense 连接到计算机的数据。因此,我创建了一个名为 EI Blue 的移动应用程序,使用它从 XIAO 无线收集数据。该应用程序将加速度计数据直接发送到 Edge Impulse 工作室。
该应用程序非常易于使用。您需要将固件内核上传到您的XIAO,扫描二维码在应用程序上配置项目并开始采样。
您应该在 Edge Impulse Studio 上看到如下数据。我收集了5s样本。为稳健的 ML 模型收集尽可能多的数据。我已经收集了大约 6 分钟的数据以开始使用,并且随着时间的推移将继续收集更多数据。
创造行为
您可以在此处定义输入数据、要用于模型的任何数字信号处理和神经网络。
如您所知,加速度计数据基本上是时间序列原始数据。我选择了频率 = 50Hz,这意味着每秒将有 50 个加速度计数据读数,间隔为 1000/50=200 毫秒。
我选择了光谱分析作为我的处理模块,因为它可以很好地与加速度计数据一起提取有意义的特征。
在光谱分析页面上,确保选中“计算特征重要性”,这将根据您的数据指示哪些特征很重要。例如,如您在上图中所见,“accX Spectral Power”具有最高的重要性,因为我有休息、步行和跑步的数据,其中 X 轴变化很大并进行了分离。
我在模型测试期间获得了 90% 的准确率但请记住,这是一个概念证明,我只从我的狗那里收集数据。理想情况下,我应该收集来自不同犬种的数据,这将增加数据集中的多样性并使模型变得健壮。但就目前而言,它解决了目的。
完成后,下载 Arduino 库并添加到 Arduino IDE。然后上传XIAO_BLE_Pet_Activity.ino程序到XIAO BLE Sense。
为 iOS 构建移动应用程序
移动应用程序是用 Flutter 编写的。所以你需要安装颤振。我强烈建议使用 Flutter 配置 VS Code,这使得在 flutter/dart 中编写代码变得非常容易。按照此链接开始从安装到编写第一个 Flutter 应用程序的 Flutter。
安装和配置所有软件后,克隆此repo 。
我已经为 iOS 构建了该应用程序,因为我现在没有任何 Android 设备。但是 Flutter 是一个混合移动框架,这意味着相同的代码也应该适用于 Android 应用程序。
要为 iOS 构建,请从项目文件夹的根目录运行以下命令。
open ios/Runner.xcworkspace/
之后就会打开 Xcode,你就可以使用您的配置文件签署应用程序并在您的手机上运行,到此一切准备工作就完成了。
全部0条评论
快来发表一下你的评论吧 !