项目简介
本项目是基于C语言的Edge Impulse开源固件,专为边缘设备打造。它能够在资源受限的嵌入式系统(像Arduino、Raspberry Pi等)上运行机器学习模型,让开发者可轻松处理传感器数据,在设备上执行模型推理,并将结果上传至服务器,适用于需要实时数据处理和机器学习的应用场景。
项目的主要特性和功能
- 支持在设备上运行机器学习模型,对传感器数据进行处理。
- 具备音频和IMU传感器的数据采集模块,支持多种传感器类型。
- 提供跨平台的编译和烧录脚本,支持macOS、Linux和Windows系统。
- 允许开发者通过Edge Impulse Studio生成自定义模型并集成到固件中。
- 提供命令行接口,便于开发者进行固件的编译、烧录和调试。
安装使用步骤
1. 环境准备
- macOS/Linux:确保已安装
arduino-cli
编译器。 - Windows:需安装Arduino IDE(建议使用v1.8.15版本),并手动下载Arduino SAMD BOARDS(32 - bits ARM Cortex - M0+)版本1.8.9。
2. 编译与烧录
macOS/Linux
- 音频支持:
bash ./arduino-build.sh --build
- IMU传感器支持:
bash ./arduino-build.sh --build --with-imu
- 烧录固件:
bash ./arduino-build.sh --flash
- 同时编译与烧录:
bash ./arduino-build.sh --all [--with-imu]
Windows
- 音频支持:
- 打开
firmware-syntiant-tinyml.ino
文件。 - 选择MKRZero作为目标板,编译并上传。
- IMU传感器支持:
- 打开
src/syntiant.cpp
文件,取消注释以下行:cpp //#define WITH_IMU
- 打开
firmware-syntiant-tinyml.ino
文件。 - 选择MKRZero作为目标板,编译并上传。
3. 自定义模型集成
- 从Edge Impulse Studio部署你的模型为Syntiant NDP101库。
- 将生成的
model-parameters
文件夹中的dsp_blocks.h
和model_metadata.h
文件复制到src/model-parameters
目录。 - 确保在
model_variables.h
文件中包含以下路径:cpp #include "../edge-impulse-sdk/classifier/ei_model_types.h"
- 按照上述步骤重新编译和烧录固件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】