littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于C语言的Edge Impulse开源固件

项目简介

本项目是基于C语言的Edge Impulse开源固件,专为边缘设备打造。它能够在资源受限的嵌入式系统(像Arduino、Raspberry Pi等)上运行机器学习模型,让开发者可轻松处理传感器数据,在设备上执行模型推理,并将结果上传至服务器,适用于需要实时数据处理和机器学习的应用场景。

项目的主要特性和功能

  1. 支持在设备上运行机器学习模型,对传感器数据进行处理。
  2. 具备音频和IMU传感器的数据采集模块,支持多种传感器类型。
  3. 提供跨平台的编译和烧录脚本,支持macOS、Linux和Windows系统。
  4. 允许开发者通过Edge Impulse Studio生成自定义模型并集成到固件中。
  5. 提供命令行接口,便于开发者进行固件的编译、烧录和调试。

安装使用步骤

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. 自定义模型集成

  1. 从Edge Impulse Studio部署你的模型为Syntiant NDP101库。
  2. 将生成的model-parameters文件夹中的dsp_blocks.hmodel_metadata.h文件复制到src/model-parameters目录。
  3. 确保在model_variables.h文件中包含以下路径: cpp #include "../edge-impulse-sdk/classifier/ei_model_types.h"
  4. 按照上述步骤重新编译和烧录固件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】