Переход к практической реализации (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-приложений, которые мы будем разрабатывать, инференс выполняется целиком на устройстве — интернет-соединение для этого не нужно.
Какую плату выбрать?
Оба варианта подходят для проектов этого курса. Выбор зависит от конкретных задач:
| Criterion | Nano R4 | UNO R4 WiFi |
|---|---|---|
| Project size | Compact, integrable | Prototyping with shields |
| Connectivity | USB only | USB + Wi-Fi + Bluetooth |
| Visualization | Status LED | 12×8 LED matrix |
| Shield compatibility | No | Yes |
| Price | Lower | Higher |
Подробные технические характеристики смотрите в официальной документации:
Датчики для 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 проходит по следующим шагам:
- Создание проекта: каждый проект объединяет данные, модель и конфигурацию для конкретного приложения.
- Сбор данных: захват образцов напрямую с устройства Arduino или загрузка готовых данных.
- Проектирование импульса: настройка конвейера обработки — выбор блоков предобработки и типа модели.
- Обучение модели: платформа обучает модель в облаке и отображает метрики производительности.
- Тестирование модели: оценка на тестовых данных перед развёртыванием.
- Развёртывание: загрузка модели в виде готовой Arduino-библиотеки для интеграции в проект.
Настройка среды разработки
Прежде чем приступать к практическим проектам, нужно подготовить среду разработки. Ниже — обзор процесса со ссылками на официальную документацию для детальных инструкций.
Шаг 1: Установка Arduino IDE
Arduino IDE — среда разработки, в которой мы будем писать и загружать код на платы Arduino.
- Скачайте Arduino IDE версии 2.0 или выше с страницы загрузки Arduino IDE
- Установите программу, следуя инструкциям для вашей операционной системы
- Откройте Arduino IDE и убедитесь, что она запускается без ошибок
Подробные инструкции по установке смотрите в official Arduino IDE installation guide.
Шаг 2: Установка поддержки плат R4
Для работы с Arduino UNO R4 WiFi необходим пакет поддержки Arduino Renesas.
- В Arduino IDE перейдите в Tools > Board > Boards Manager
- Найдите «Arduino UNO R4» или «Arduino Renesas»
- Установите пакет Arduino UNO R4 Boards
- После установки выберите вашу плату в Tools > Board > Arduino UNO R4 Boards
Подробные инструкции:
Шаг 3: Создание аккаунта Edge Impulse
Для работы с платформой Edge Impulse нужна учётная запись.
- Перейдите на studio.edgeimpulse.com
- Создайте бесплатный аккаунт через email или через Google/GitHub
- При необходимости подтвердите email
- Войдите в систему и ознакомьтесь с дашбордом
Официальная документация Edge Impulse с подробными руководствами по всем аспектам платформы доступна на docs.edgeimpulse.com.
Шаг 4: Установка Edge Impulse CLI (опционально)
Интерфейс командной строки (CLI) Edge Impulse упрощает сбор данных непосредственно с устройства. Шаг необязательный, но рекомендуемый — с ним работать удобнее.
- Установите Node.js с nodejs.org (рекомендуется LTS-версия)
- Откройте терминал и выполните:
npm install -g edge-impulse-cli - Проверьте установку командой:
edge-impulse-daemon --version
Подробные инструкции для вашей операционной системы — в Edge Impulse CLI installation guide.
Шаг 5: Подключение платы к Edge Impulse
После установки CLI вы можете подключить плату Arduino к Edge Impulse для сбора данных.
- Подключите плату Arduino к компьютеру кабелем USB-C
- Откройте терминал и выполните:
edge-impulse-daemon - Следуйте инструкциям на экране: войдите в аккаунт и выберите проект
- Плата появится как подключённое устройство в дашборде 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 Concept | Implementation 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:
- Постановка задачи: обнаружение аномальных вибраций, которые могут сигнализировать о механических неисправностях
- Сбор данных: запись данных о вибрации при нормальной работе двигателя
- Предобработка: извлечение частотных признаков из сигналов акселерометра
- Обучение: тренировка модели обнаружения аномалий на нормальных данных
- Оценка: проверка, что модель распознаёт смоделированные аномальные условия
- Развёртывание: загрузка модели на плату 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/