Главная chevron_right Уроки chevron_right Edge AI chevron_right Переход к практической реализации (4/4)

Переход к практической реализации (4/4)

Модуль знакомит с железом и инструментами для Edge AI, помогает настроить среду разработки и разбирает референсный проект обнаружения аномалий двигателя.

В предыдущих модулях мы разобрали теоретическую базу Edge AI: что это такое, как алгоритмы машинного обучения работают на устройствах с ограниченными ресурсами и как выглядит рабочий процесс создания приложений. Теперь пора переходить к практике.

Этот модуль знакомит с железом и программными инструментами, которые мы будем использовать во второй части курса, помогает настроить среду разработки и разбирает референсный проект, демонстрирующий все изученные концепции в действии.

Введение в железо и программные инструменты

Платы Arduino для Edge AI

Arduino предлагает несколько плат, совместимых с Edge AI-приложениями. В этом курсе мы будем работать с двумя вариантами из семейства R4 — они используют один и тот же микроконтроллер и полностью совместимы с нашими проектами.

Arduino Nano R4

Arduino Nano R4 — компактная плата для проектов, где важен размер. Ключевые характеристики: 32-битный микроконтроллер Renesas RA4M1 с тактовой частотой 48 MHz, 256 КБ Flash-памяти для хранения программ и ML-моделей, 32 КБ SRAM для инференса и небольшой форм-фактор, удобный для интеграции в прототипы и готовые изделия.

На плате есть разъём Qwiic — он позволяет подключать совместимые датчики без пайки и «висящих» проводов, что заметно ускоряет прототипирование.

Arduino UNO R4 WiFi

Arduino UNO R4 WiFi построена на том же микроконтроллере, что и Nano R4, но добавляет беспроводное подключение и дополнительные возможности. Помимо характеристик Nano R4, здесь есть встроенный модуль Wi-Fi и Bluetooth (ESP32-S3), матрица из 12×8 светодиодов для визуализации данных, а также форм-фактор, совместимый с классическими шилдами Arduino UNO.

Wi-Fi позволяет отправлять данные в облако или получать обновления моделей удалённо. Однако для Edge AI-приложений, которые мы будем разрабатывать, инференс выполняется целиком на устройстве — интернет-соединение для этого не нужно.

Какую плату выбрать?

Оба варианта подходят для проектов этого курса. Выбор зависит от конкретных задач:

CriterionNano R4UNO R4 WiFi
Project sizeCompact, integrablePrototyping with shields
ConnectivityUSB onlyUSB + Wi-Fi + Bluetooth
VisualizationStatus LED12×8 LED matrix
Shield compatibilityNoYes
PriceLowerHigher

Подробные технические характеристики смотрите в официальной документации:

Датчики для Edge AI

Edge AI-приложения нуждаются в датчиках, которые захватывают данные из реального мира. Самые распространённые типы в проектах на Arduino:

Датчики движения (IMU)

Датчики движения объединяют акселерометр и гироскоп для измерения линейного ускорения и угловой скорости. Они незаменимы для распознавания жестов, определения активности и мониторинга вибраций.

Варианты, совместимые с платами R4:

  • Modulino Movement: IMU-датчик с подключением через разъём Qwiic — никакой ручной разводки проводов. Включает 6-осевой акселерометр и гироскоп.
  • ADXL335: 3-осевой аналоговый акселерометр, подключается к аналоговым пинам платы. Бюджетный вариант для проектов по обнаружению вибраций.

Аудиодатчики

Микрофоны захватывают звуковые сигналы для распознавания голосовых команд и классификации звуков окружающей среды.

  • MEMS-микрофоны: такие варианты, как SPH0645 или INMP441, обеспечивают хорошее качество звука для задач распознавания речи.

Датчики изображения

Камеры открывают возможности компьютерного зрения: классификацию объектов, обнаружение людей и многое другое.

  • OV7670: бюджетный камера-модуль, совместимый с Arduino, подходит для простых задач классификации изображений.

Датчики окружающей среды

Измеряют температуру, влажность, качество воздуха — для задач мониторинга и прогнозирования.

  • Modulino Thermo: датчик температуры с подключением через Qwiic.
  • BME280: комбинированный датчик температуры, влажности и атмосферного давления.

Платформа Edge Impulse

Edge Impulse — платформа разработки, которая упрощает создание ML-приложений для встраиваемых устройств. Именно она станет нашим главным инструментом в практической части курса [1].

Почему Edge Impulse?

Платформа предлагает несколько преимуществ для тех, кто только начинает работать с Edge AI:

  • Визуальный интерфейс: весь рабочий процесс — от сбора данных до развёртывания — управляется через удобный веб-интерфейс.
  • Интеграция с Arduino: платы Arduino подключаются напрямую к платформе для сбора данных и загрузки оптимизированных моделей.
  • Автоматическая оптимизация: платформа автоматически квантует и оптимизирует модели под выбранное железо.
  • Бесплатный тариф: бесплатного плана вполне достаточно для учебных проектов и прототипов.

Рабочий процесс в Edge Impulse

Разработка проекта в Edge Impulse проходит по следующим шагам:

  1. Создание проекта: каждый проект объединяет данные, модель и конфигурацию для конкретного приложения.
  2. Сбор данных: захват образцов напрямую с устройства Arduino или загрузка готовых данных.
  3. Проектирование импульса: настройка конвейера обработки — выбор блоков предобработки и типа модели.
  4. Обучение модели: платформа обучает модель в облаке и отображает метрики производительности.
  5. Тестирование модели: оценка на тестовых данных перед развёртыванием.
  6. Развёртывание: загрузка модели в виде готовой Arduino-библиотеки для интеграции в проект.

Настройка среды разработки

Прежде чем приступать к практическим проектам, нужно подготовить среду разработки. Ниже — обзор процесса со ссылками на официальную документацию для детальных инструкций.

Шаг 1: Установка Arduino IDE

Arduino IDE — среда разработки, в которой мы будем писать и загружать код на платы Arduino.

  1. Скачайте Arduino IDE версии 2.0 или выше с страницы загрузки Arduino IDE
  2. Установите программу, следуя инструкциям для вашей операционной системы
  3. Откройте Arduino IDE и убедитесь, что она запускается без ошибок

Подробные инструкции по установке смотрите в official Arduino IDE installation guide.

Шаг 2: Установка поддержки плат R4

Для работы с Arduino UNO R4 WiFi необходим пакет поддержки Arduino Renesas.

  1. В Arduino IDE перейдите в Tools > Board > Boards Manager
  2. Найдите «Arduino UNO R4» или «Arduino Renesas»
  3. Установите пакет Arduino UNO R4 Boards
  4. После установки выберите вашу плату в Tools > Board > Arduino UNO R4 Boards

Подробные инструкции:

Шаг 3: Создание аккаунта Edge Impulse

Для работы с платформой Edge Impulse нужна учётная запись.

  1. Перейдите на studio.edgeimpulse.com
  2. Создайте бесплатный аккаунт через email или через Google/GitHub
  3. При необходимости подтвердите email
  4. Войдите в систему и ознакомьтесь с дашбордом

Официальная документация Edge Impulse с подробными руководствами по всем аспектам платформы доступна на docs.edgeimpulse.com.

Шаг 4: Установка Edge Impulse CLI (опционально)

Интерфейс командной строки (CLI) Edge Impulse упрощает сбор данных непосредственно с устройства. Шаг необязательный, но рекомендуемый — с ним работать удобнее.

  1. Установите Node.js с nodejs.org (рекомендуется LTS-версия)
  2. Откройте терминал и выполните: npm install -g edge-impulse-cli
  3. Проверьте установку командой: edge-impulse-daemon --version

Подробные инструкции для вашей операционной системы — в Edge Impulse CLI installation guide.

Шаг 5: Подключение платы к Edge Impulse

После установки CLI вы можете подключить плату Arduino к Edge Impulse для сбора данных.

  1. Подключите плату Arduino к компьютеру кабелем USB-C
  2. Откройте терминал и выполните: edge-impulse-daemon
  3. Следуйте инструкциям на экране: войдите в аккаунт и выберите проект
  4. Плата появится как подключённое устройство в дашборде Edge Impulse

Инструкции по подключению плат Arduino — в Edge Impulse compatible devices documentation.

Практическое задание: референсный проект

Чтобы показать, как все концепции из предыдущих модулей работают вместе, разберём полноценный Edge AI-проект — систему обнаружения аномалий двигателя.

Описание проекта

Проект «Motor Anomaly Detection» демонстрирует, как построить систему прогностического обслуживания, которая в реальном времени отслеживает вибрации двигателя и обнаруживает отклонения от нормального режима работы [2].

Система использует:

  • Железо: Arduino UNO R4 WiFi с акселерометром (ADXL335 или Modulino Movement)
  • Программное обеспечение: Edge Impulse для обучения модели обнаружения аномалий
  • Техника ML: обнаружение аномалий с помощью кластеризации K-means (обучение без учителя)

Связь с концепциями курса

Проект наглядно демонстрирует концепции, которые мы изучали:

Course ConceptImplementation in the Project
Data types (Module 1.3)Motion sensor data (accelerometer)
Preprocessing (Module 1.3)Frequency feature extraction with Spectral Analysis
Anomaly detection (Module 1.2)K-means model trained only with "normal" data
Optimization (Module 1.2)Automatic quantization for microcontroller execution
Evaluation metrics (Module 1.3)Configurable anomaly threshold
Deployment (Module 1.2)Real-time inference with latency < 20 ms

Рабочий процесс проекта

Разработка проекта следует рабочему процессу Edge AI, изученному в модуле 1.3:

  1. Постановка задачи: обнаружение аномальных вибраций, которые могут сигнализировать о механических неисправностях
  2. Сбор данных: запись данных о вибрации при нормальной работе двигателя
  3. Предобработка: извлечение частотных признаков из сигналов акселерометра
  4. Обучение: тренировка модели обнаружения аномалий на нормальных данных
  5. Оценка: проверка, что модель распознаёт смоделированные аномальные условия
  6. Развёртывание: загрузка модели на плату Arduino для мониторинга в реальном времени

Доступ к полному проекту

Полная прикладная заметка включает пошаговые инструкции по:

  • подключению железа (соединения акселерометра)
  • сбору данных о вибрации с помощью Edge Impulse
  • обучению модели обнаружения аномалий
  • развёртыванию модели на плате Arduino
  • интерпретации результатов и настройке оповещений

Полная прикладная заметка: Motor Anomaly Detection with the Arduino R4 WiFi

Обзор концепций и подготовка ко второй части

Итоги первой части

За четыре модуля первой части мы сформировали прочную теоретическую базу по Edge AI:

Модуль 1.1 — Основы Edge AI: разобрали, что такое Edge AI, чем оно отличается от облачной обработки и в чём преимущества запуска ML-моделей непосредственно на встраиваемых устройствах.

Модуль 1.2 — Основы ML для периферийных устройств: изучили типы алгоритмов, подходящих для Edge AI, техники оптимизации — квантование и прунинг, а также инструменты экосистемы TinyML.

Модуль 1.3 — Рабочий процесс создания приложений: подробно рассмотрели четыре ключевые фазы разработки: сбор данных, предобработку, обучение и оценку.

Модуль 1.4 — Переход к практической реализации: познакомились с железом и программными инструментами, настроили среду разработки и разобрали референсный проект.

Если у вас остались вопросы по теоретическим концепциям — самое время вернуться к предыдущим модулям, прежде чем переходить к практике.

Ссылки

[1] Edge Impulse, «Edge Impulse Documentation», 2024. [Online]. Available: https://docs.edgeimpulse.com/

[2] Arduino, «Motor Anomaly Detection with the Arduino R4», Application Note, 2025. [Online]. Available: https://docs.arduino.cc/