Вариант A: Использование с Arduino IDE
Загрузите файл arduino-*.zip.
В Arduino IDE: Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку....
Выберите загруженный ZIP-файл.
Откройте пример: Файл -> Примеры -> Найдите свою библиотеку (она будет называться как ваш проект) -> static_buffer (или другой пример).
Этот пример уже содержит код для захвата данных с датчиков и запуска вашей модели.
Вариант B: Использование с PlatformIO (как C++ Library)
Загрузите файл cpp-*.zip.
Распакуйте архив в папку lib вашего PlatformIO-проекта.
В коде вашего проекта (main.cpp) добавьте заголовочные файлы:
#include <your_project_name_inferencing.h> // Заголовок с моделью
#include "edge-impulse-sdk/dsp/numpy.hpp" // Для функций обработки сигналов
Используйте код из примеров в архиве для захвата данных и запуска модели.
Шаг 4: Тестирование на реальном устройстве
После загрузки прошивки на устройство:
Откройте Serial Monitor (Монитор порта) в Arduino IDE или PlatformIO.
Вы должны увидеть логи инициализации, а затем предсказания вашей модели в реальном времени.
Проведите тест: подайте на устройство тестовый сигнал (произнесите слово, сделайте жест). В мониторе порта вы должны увидеть, как меняются показания модели (например, Predictions: noise: 0.02, light: 0.01, fan: 0.97).
Точное соответствие предобработки: Код, работающий на устройстве, в точности повторяет шаги предобработки, которые вы настроили в студии Edge Impulse (нормализация, вычисление MFCC и т.д.). Библиотека делает это автоматически.
Проверка памяти (RAM/Flash): Убедитесь, что модель и буферы помещаются в память микроконтроллера. Edge Impulse показывает размер модели. Если он слишком велик, потребуется упростить модель.
Скорость работы (Latency): Замерьте, сколько времени занимает один цикл предсказания. Он должен укладываться в требования вашего приложения (например, для реального времени — десятки миллисекунд).
Реальное тестирование (In-the-wild testing): Это самый важный тест. Проверяйте устройство в тех же условиях, где оно будет работать: при разном освещении, с фоновым шумом, от разных пользователей.
Вывод: Развертывание — это мост между виртуальной моделью и физическим устройством. Успешное прохождение этого этапа означает, что вы создали полноценный продукт с машинным обучением на микроконтроллере! Если модель на устройстве работает хуже, чем в студии, вернитесь к этапам сбора данных и тестирования.