Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Компоненты и материалы

Arduino 101Встроенный акселерометр, доп. компоненты не нужны×1
Arduino UNOМожно использовать вместо 101, но нужен внешний акселерометр×1
Аналоговый акселерометр ADXL335 (Adafruit или SparkFun)Для Arduino, отличных от 101×1

О проекте

Обзор

Учебник по добавлению базового распознавания жестов в Arduino-проекты с помощью системы ESP. Примеры: теннисные удары (форхенд, бэкхенд, подача), танцевальные движения, упражнения с весами. Жесты фиксируются акселерометром, данные отправляют в приложение ESP на компьютере. ESP использует простой алгоритм машинного обучения (Dynamic Time Warping) для сопоставления живых данных с записанными образцами. Система распознаёт отдельные дискретные жесты, не оценивая качество исполнения.

Скачать ESP Gesture Recognition:

Шаг 1. Подключение акселерометра

Если используете Arduino 101 — пропустите шаг. Иначе припаяйте 핀-хедеры к breakout-плате и подключите к Arduino. Можно вставить прямо в аналоговые входы (питание и землю настраиваются в коде) или через макетную плату к 5V, GND и трём аналоговым входам (X, Y, Z).

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Шаг 2. Загрузка Arduino-кода

Выберите подходящий скетч (для ADXL335 или Arduino 101), проверьте соответствие пинов, загрузите.

Шаг 3. Проверка данных в Serial Monitor

Откройте Serial Monitor на 9600 бод — должны быть три колонки чисел, меняющихся при движении. Используйте Serial Plotter для графика. Закройте монитор перед запуском ESP.

Шаг 4. Запуск ESP и выбор COM-порта

В меню конфигурации выберите порт Arduino. Появятся живые графики трёх осей (красный — X, зелёный — Y, синий — Z).

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство
Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Шаг 5. Запись калибровочных образцов

Положите акселерометр на ровную поверхность, Z вверх. Зажмите клавишу «1» на секунду — запишется образец «Upright». Переверните вверх дном, зажмите «2» — образец «Upside down». ESP определит 0g по X/Y и 1g по Z.

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Шаг 6. Запись примеров жестов

Перейдите на вкладку «Training» (клавиша T). Можно записать до 9 жестов. Делайте жест, удерживая клавишу с нужным номером (1–9). Записывайте только фазу движения, без возврата руки в исходную позицию. Хороший образец начинается и заканчивается короткими плато. Рекомендуется 5–10 образцов на жест; качество важнее количества.

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство
Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство
Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Плохие образцы можно удалить (delete), обрезать (trim) или переназначить (re-label). Переименовать класс — кнопка rename.

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Шаг 7. Обучение системы

Нажмите «t» для обучения. Появится «training successful». Теперь при выполнении похожего жеста его имя появится на графике живых данных.

Распознавание жестов с ESP32 и акселерометром Arduino 101: простое DIY-руководство

Если система не срабатывает — добавьте образцы. Если ложные срабатывания — удалите плохие образцы или уменьшите параметр variability. После изменений нажмите «t» снова.

Шаг 8. Настройка параметров

В конфигурации (click to open configuration) два параметра: variability (допустимое отличие от образца) и timeout (мс паузы перед следующим распознаванием). После изменения — переобучите («t»).

Шаг 9. Интеграция в Arduino-проект

При распознавании ESP шлёт в Arduino номер жеста (ASCII + newline, например «1\n»). Читая последовательный порт, Arduino может реагировать. Также данные идут по TCP на localhost:5204 (для Processing и др.).

Как это работает

Алгоритм Dynamic Time Warping (DTW) деформирует живой сигнал (удаляет/дублирует отсчёты), создаёт вариации и ищет ближайший обучающий образец. Если расстояние ниже порога — предсказание выдаётся. Порог настраивается параметром variability.

ESP основан на Gesture Recognition Toolkit (GRT) — наборе алгоритмов ML для реального времени. Существуют примеры для цвета, позы, аудио. Подробнее на GitHub ESP.

Код

Arduino ADXL335 Code

Читает ADXL335: X -> A5, Y -> A4, Z -> A3. Отправляет табуляцию-разделенные строки на 9600 бод.

Arduino 101 Accelerometer Code

Читает встроенный акселерометр Arduino 101. Отправляет табуляцию-разделенные строки на 9600 бод.

Производственный процесс

  1. Надежная система учета рабочего времени на Arduino с RFID и Python
  2. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  3. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  4. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  5. Точное измерение частоты и коэффициента заполнения на Arduino UNO
  6. Управление Arduino-роботом через Firmata и геймпад Xbox One
  7. Измерение расстояния в реальном времени: Ардуино-сонар с визуализацией в Processing
  8. Бесшовное управление яркостью светодиодов с помощью Bolt IoT и Arduino UNO
  9. Умная робо-рука на Arduino: простое DIY-руководство
  10. Цифровой компас в реальном времени на Arduino и Processing