创客项目秀 | 基于使用 XIAO BLE Sense 和 Edge Impulse 的宠物活动跟踪器

news2024/10/21 14:28:31

今天为大家带来的是来自美国的创作者米顿-达斯的作品:宠物活动跟踪器.这个装置主要是为宠物主人提供关于宠物日常活动量的详尽数据,还能够根据宠物的独特需求,提供个性化的健康建议和活动指导。

项目背景

为了全面促进宠物的健康与活力,采用了创新的TinyML技术,并结合了先进的数据分析算法。这款TinyML模型经过精心设计,用于精确解析来自三轴惯性测量单元(IMU)的数据,从而能够实时监测和预测宠物的活动水平。通过深入分析宠物的运动模式和行为特征,不仅能够为宠物主人提供关于宠物日常活动量的详尽数据,还能够根据宠物的独特需求,提供个性化的健康建议和活动指导。这种集成系统的设计旨在帮助宠物主人更好地理解和响应宠物的健康需求,从而有效提升宠物的整体福祉和生活质量。不仅注重宠物的身体健康,还关注宠物的心理健康和幸福感。通过监测宠物的活动水平,宠物主人可以更好地了解宠物的喜好和需求,为其提供更加舒适和愉悦的生活环境。我们相信,这款基于TinyML技术的宠物活动监测系统将成为宠物主人与宠物之间沟通的桥梁,让宠物享受到更加健康、快乐的生活。

材料清单

硬件部分

  • Seeed Studio Seeed XIAO BLE nRF52840 Sense

  • 3.7V可充电电池

软件应用程序和网络工具包

  • Arduino IDE

  • Edge Impluse Studio

  • Google Flutter

手动工具和制造机器

  • 3D打印机

  • 电烙铁

宠物也是我们生活中的重要伙伴,它们的健康和活力同样值得我们和社会的关注。为了让宠物也能享受到科技带来的便利,特别选择了 XIAO BLE Sense 这款精致的微控制器。它不仅内置了强大的 Nordic nRF52840 MCU,还支持蓝牙 5.0 无线通信技术。其搭载的 32 位 ARM® Cortex™-M4 CPU 配合 6 轴惯性测量单元(IMU),能够精确追踪宠物的休息、行走、跑步等多种活动状态,为我们的小伙伴保持最佳活力状态提供科学依据。这款设备的出现,不仅填补了宠物健身追踪市场的空白,更是宠物健康护理领域的一次重要创新。通过实时监测宠物的活动数据,宠物主人可以更加科学地调整宠物的饮食和运动计划,让宠物的生活更加健康和快乐。让科技的力量,为我们的宠物带来更美好的生活。

硬件介绍

图1 XIAO BLE Sense

图1是XIAO BLE Sense的基础介绍,在开始使用 XIAO进行编程之前,我们需要安装电路板固件。最好的资源是官方 wiki,它将一步步指导帮助我们设置 Arduino IDE。在开始制作这个项目前,要确保已经安装了必要的驱动程序和软件,例如 Arduino IDE 和相应的开发板管理器。这样就可以轻松地安装 XIAO BLE Sense 的固件。

EI BLUE

对于任何机器学习项目来说,数据收集都是非常重要的一部分。为了捕获更准确的数据,我必须在狗狗佩戴项圈的时候收集数据,这就排除了通过 USB 将 XIAO BLE Sense 连接到计算来收集数据传统方法。因此,我创建了一个名为 EI Blue 的移动应用程序,它可以从 XIAO 通过蓝牙无线采集数据。这个应用程序能够将加速度计数据直接传输到 Edge Impulse studio,以便进行进一步的分析和处理。使用 EI Blue 应用程序进行数据采集简单便捷。首先,我们需要将固件烧录到XIAO BLE Sense 开发板上。接着,使用应用程序扫描二维码,来配置我们的项目。完成这些步骤后,我们就可以开始收集数据了。大家可以查看以下链接中的视频,以获取详细的操作指南。在烧录固件和配置应用程序之后,请确保您的手机与 XIAO BLE Sense 开发板之间的蓝牙连接稳定。这将有助于您获得准确和连续的数据流。此外,大家也可以克隆项目,并在您自己的计算机上构建应用程序。这样,就可以开始收集和分析您家宠物的活动数据,为您的宠物健康提供更精细的护理。

模型训练

我收集好我的数据并上传到Edge Impulse网站上面。

图2 Edge Impulse 网站采集数据

我们应该能在 Edge Impulse Studio 看到如图2所示的数据。已经收集了 5 秒钟的样本。为了建立一个稳健的机器学习模型,请尽可能多地收集数据。已经收集了大约 6 分钟的数据来开始,并将随着时间的推移继续收集更多数据

设置脉冲模型

如图3所示,在这里,我们将使用指定模型的输入数据、数字信号处理步骤以及所需的神经网络架构。众所周知,加速度计数据是属于时间序列的原始数据。设定了 50Hz 的采样频率,因此每秒将获得 50 个加速度计数据点,数据点的采集间隔为 1000/50,即每 200 毫秒采集一次。

图3 Edge Impulse 网站设置模型

然后选择频谱分析作为处理模块,因为它能够有效地从加速度计数据中提取出有用的特征。

图4 Edge Impulse 网站模型训练

如图4所示,在 “Spectral Analysis”(频谱分析)页面上,请确保选中的是“Calculate feature importance “(计算特征重要性)选项,这将根据我们收集的数据展示哪些特征是最为关键的。例如,我们可能会看到 “accX Spectral Power”(X轴光谱功率)的特征重要性最高,这是因为包含了休息、步行和跑步等多种状态的数据,这些活动都是在X轴上的变化较大,从而导致了数据的分离。

图5 Edge Impulse 网站模型结果

如图5所示,在模型测试阶段,此模型实现了 90% 的准确率。但请大家记住,这仅是一个概念验证,因为作者只收集了我家狗狗的数据。理想情况下,为了增加数据集的多样性并使模型更具普遍性,我们应该去收集不同品种狗狗的数据。不过,目前的结果已经达到了初步目标。完成这些步骤后,训练好的模型可以导出成Arduino 库,我们可以下载这个Arduino 库并将其添加到 Arduino IDE 中。然后,将 XIAO_BLE_Pet_Activity.ino 程序上传到 XIAO BLE Sense 开发板。当然,在模型训练和测试完成后,我们也可以通过调整参数和优化模型来进一步提高准确率。此外,还可以考虑将模型部署到其他微控制器或设备上,以便在不同的环境中使用。

移动应用程序

移动应用程序是用 Flutter 编写的,因此像完成这个项目需要安装 Flutter 环境。作者也强烈建议使用 VS Code 软件配合 Flutter 插件进行开发,这样可以更便捷地编写 Flutter/Dart的代码。

因为目前没有用安卓系统的设备,所以只为 iOS 平台构建了应用程序。但 Flutter 是一个跨平台移动框架,这意味着相同的代码也可以用于构建安卓的应用程序。

如果要为 iOS 构建应用程序,请在项目文件夹的根目录下运行以下命令。

open ios/Runner.xcworkspace/

这将启动 Xcode。使用配置文件对应用程序并进行签名,然后将其部署到手机上。

此外,这个项目还在 PCBWay 上进行了发布。

如图6所示,配套的移动应用程序通过蓝牙无缝连接至设备,微控制器实时工作,每分钟发送一次精准的活动预测数据。这些数据会被安全地存储在手机的本地存储器中,并转化为直观的图表,为宠物主人提供宝贵且易于理解的健康见解。

定制部件和外壳

这款设备的外壳用的是3d打印打印出来的,如图7所示XIAO BLE Sense和锂电池当好的放进这个便携的外壳之中,也多谢于XIAO BLE Sense的体积很小,非常适合用于穿戴式的的设备中。

图7 成品组装

首先,使用3D建模软件SolidWorks来设计外壳的各个部分,包括顶部、底部、固定和支撑部分。设计时需要考虑XIAO BLE Sense开发板和电池的尺寸,并预留足够的空间。确保外壳设计具有良好的结构强度和机械连接方式,它们都留有螺丝孔,可以用螺丝将他们一个一个的紧密连接起来。如图8所示,这是让我的宠物狗能够佩戴着这个设备随意奔跑所设计的固定部分,它能牢固地将外壳固定在项圈上面。

图8 项圈固定器

如图9所示,这个是外壳中间的支持部分,这里考虑的XIAO BLE Sense开发板的大小,并且也要保证不让它和外壳别的部分撞到下面放到锂电池上。

图9 外壳支撑

如图10所示,顶部外壳的设计是我最喜欢也是最经典的狗爪子标志,让这个设备有很强的识别度。

图10 顶部外壳

最后如图11所示,这里是我放置锂电池的地方,壳子两边留有与项圈固定的位置,它也是能固定在项圈的重要部分之一。

图11 底部外壳

成品展示

完成所有的软硬件设计后,只需进行硬件组装工作,并将外壳固定在狗狗的项圈上面大功告成了!最终的成品如图12所示!

图 12 成品展示

总结

这个项目的设计初衷是为了帮助宠物主人更好地了解宠物的状态。创新性地应用了先进的tinyML模型和三轴IMU传感器,成功地将先进技术与宠物健康监测相结合,为主人提供了更好了解宠物状态的途径,项目成功地将物联网技术应用于宠物活动跟踪,为宠物主人提供了便捷的监控手段,提高了宠物的生活质量。这篇文章详细介绍了如何使用XIAO BLE Sense和Edge Impulse创建一个宠物活动跟踪器,步骤清晰,对于想要进行类似项目开发的读者非常有帮助。文章中提到了一些关键的技术要点,如使用XIAO BLE Sense作为微控制器,通过蓝牙将移动应用程序连接至设备,使用Edge Impulse进行数据分析等。这些技术要点都是实现宠物活动跟踪器项目的重要部分,需要读者仔细学习和理解。此外,文章还提供了一些关于定制部件和外壳的信息,这对于项目的实物制作也非常有帮助。通过阅读这篇文章,对于如何使用XIAO BLE Sense和Edge Impulse创建一个宠物活动跟踪器会有了更深入的了解,同时也会对于物联网应用的开发有了更浓厚的兴趣。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

来可电子CAN数据记录仪通过智诊小助手TF卡记录文件导出

若想将TF卡中记录的数据文件导出可按以下的流程进行配置: 点击主界面中的导出选项即可进入到下图中TF卡应用界面 点击TF卡应用界面中“查看记录文件”的选项,进入导出文件界面。 点击“选择”进入勾选文件的界面 点击“导出”后,点击“确定”…

Vulnhub打靶-napping

基本信息 靶机下载:https://download.vulnhub.com/napping/napping-1.0.1.ova 攻击机器:192.168.20.128(Windows操作系统)& 192.168.20.138(kali) 提示信息:甚至管理员也可以在工作中睡…

统信UOS与Windows11传输数据

原文连接:统信UOS与Windows11相互传输数据 hello,大家好啊,今天给大家带来一篇统信UOS与Windows11之间通过共享文件夹传输数据的方法,首先在Windows11上创建共享文件夹,然后通过smb协议在UOS上进行连接访问&#xff0c…

彻底解决IDEA SpringBoot项目yml文件没有小树叶,读取配置文件失败问题

报错说没有配置dubbo:application:name,其实是配置了的,就是读不到,那有没有可能是yml文件不是绿叶的问题?网上查了很多文章配置小绿叶,最后还是报这个错,而且网上的文章配置小绿叶也太过于繁琐,其实就一招…

【Java后端】之 ThreadLocal 详解

想象一下,你有一个工具箱,里面放着各种工具。在多人共用这个工具箱的时候,很容易出现混乱,比如有人拿走了你的锤子,或者你找不到合适的螺丝刀。为了避免这种情况,最好的办法就是每个人都有自己独立的工具箱…

Wasm解析入口分析

直接postman请求,发现返回了一个wasm,需要解析这个wasm获取到参数。下面找到页面入口,如下: 也是个VM解析,VM太多了,扣出来就行,不难,就是麻烦的很。

6个最佳核心应用仪表盘构建工具

核心应用仪表盘(Core App Dashboard)的概念或许你不太熟悉,但仪表盘你一定不陌生。 从汽车的仪表盘显示速度和油量,到运动手环仪表盘追踪步数和心率,再到金融投资仪表盘监控股票和基金的实时行情,它们通过…

Flink窗口分配器WindowAssigner

前言 Flink 数据流经过 keyBy 分组后,下一步就是 WindowAssigner。 WindowAssigner 定义了 stream 中的元素如何被分发到各个窗口,元素可以被分发到一个或多个窗口中,Flink 内置了常用的窗口分配器,包括:tumbling wi…

JAVA线程的多种状态

线程的状态图 new状态(新建状态): 创建了一个线程的对象,但是这个线程没有启动start,那么此时这个线程的状态就是NEW也就是新建状态 此时线程对象就是一个普通的JAVA对象,CPU还没有给其分配资源 public class Main16 {…

微信小程序案例:计算器(含代码)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

动态中的守候:滑动窗口与距离的诗篇

公主请阅 1. 长度最小的子数组1.1 题目说明 示例 1 示例 1 示例 2 示例 3 1.2 题目分析1.3 代码部分1.4 代码分析 2. 无重复字符的最长子串2.1 题目说明示例 1示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析2.5 代码深度分析 1. 长度最小的子数组 题目传送门 1.1 题…

2020年计算机网络408真题解析

第一题: 解析:OSI参考模型网络协议的三要素 网络协议的三要素:语法 ,语义,同步(时序) 语法:定义收发双方所交换信息的格式 语法:定义收发双方所要完成的操作 网页的加载 …

「iOS」——YYModel学习

iOS学习 前言优势使用方法简单的Model与JSON互转多样化的数据类型交换容器类数据交换 model中包含其他model白名单与黑名单 总结 前言 YYModel是YYKit的高效组件之一,在实际场景中的非常实用,在项目中使用MVC架构时,可以简化数据处理。在性能…

Tailwind Starter Kit 一款极简的前端快速启动模板

Tailwind Starter Kit 是基于TailwindCSS实现的一款开源的、使用简单的极简模板扩展。会用Tailwincss就可以快速入手使用。Tailwind Starter Kit 是免费开源的。它不会在原始的TailwindCSS框架中更改或添加任何CSS。它具有多个HTML元素,并附带了ReactJS、Vue和Angul…

tensorflow c++ api + windwos + vs部署 详细避坑

文章目录 前言一、安装MSYS2二、选择tensorflow的版本三、安装Bazel四、配置一个anconda的tensorflow环境五、生成dll,lib,include六、在vs2019中配置项目七、测试并针对性修补问题 前言 不能使用vs2022配置tensorflow c api,即使要安装 2.10.0版本,也尽…

【Next.js 项目实战系列】02-创建 Issue

原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】01-创建项目 创建 Issue 配置 MySQL 与 Prisma​ 在数据库中可以找到相关内容&…

机器学习篇-day09-支持向量机SVM

一. 支持向量机介绍 支持向量机 介绍 SVM全称是Supported Vector Machine(支持向量机) 即寻找到一个超平面使样本分成两类,并且间隔最大。 是一种监督学习算法,主要用于分类,也可用于回归 与逻辑回归和决策树等其…

Android摄像头Camera2和Camera1的一些总结

Android 系统对摄像头的同时使用有限制,不能同时使用摄像头进行预览或者录制音视频。 例如:界面上有两个SurfaceView, 这两个SurfaceView不能同时预览或者录制音视频,只能有一个正常工作(一个SurfaceView预览前置摄像头&#xff…

Linux 问题故障定位的技巧大全

1、背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提…

Mybatis day 1020

ok了这周学习了mybatis框架,今天最后一天,加油各位!!!(接上文) 八.MyBatis扩展 8.1 Mapper批量映射优化 需求 Mapper 配置文件很多时,在全局配置文件中一个一个注册太 麻烦,希望有一个办法…