Точный анализатор ЭКГ на Edge Impulse и Arduino Nano 33 BLE Sense
Компоненты и материалы
- Arduino Nano 33 BLE Sense — 1 шт.
- SparkFun Single Lead Heart Rate Monitor (AD8232) — 1 шт.
- OLED-дисплей 0,96″ 128×64 — 1 шт.
- Электроды ЭКГ (накладные, 3 шт.), перемычки, паяльница
Проблема и решение
В развивающихся странах нехватка медицинского оборудования и специалистов приводит к высокой смертности от внезапных сердечных приступов. Проект создает портативный автономный анализатор ЭКГ, работающий без облака (TinyML на устройстве). Модель классифицирует ритм на три класса: Норма, Фибрилляция предсердий, Блокада 1-й степени. Размер модели ~15 КБ, латентность минимальна.
Архитектура решения
- Снятие ЭКГ через AD8232 (усилитель с фильтрами).
- Генерация синтетических данных для патологий в MATLAB Signal Builder (редактирование P-R интервала, R-R интервалов).
- Новый подход к фичам: из исходного ЭКГ выделяются две производные волны — R-R интервал и P-R интервал. При нормальном ритме они постоянны (100 и 50). При фибрилляции R-R скачет → -100 за цикл. При блокаде 1-й степени P-R > 200 мс → -50 за цикл. Это подняло точность с <23% до >90%.
- Обучение в Edge Impulse Studio: окно 3000 мс, шаг 2999 мс, спектральные признаки (без фильтра), NN-классификатор (40 эпох, lr=0.005), K-means аномалия на RMS интервалов. Точность теста ~97%.
- Деплой как Arduino Library + интеграция пользовательского кода декодирования ЭКГ (библиотека ECG_Analyzer).
Аппаратная часть
Подключение по Fritzing-схеме: AD8232 → A0 Nano 33 BLE, LO+/LO- → D2/D3 (детект отвода электродов). OLED — I2C (SDA/SCL). Электроды накладываются на RA, LA, LL (правая/левая рука, левая нога).

Программный процесс
- В библиотеке ECG_Analyzer установить
SIMULATION = 0для реального сенсора (1 — для симуляции из массивов). - Раскомментировать нужный буфер данных (Normal / AFib / AVBlock).
- Собрать датасет в Edge Impulse: записать данные под тремя метками (Normal, Atrial fibrillation, First-Degree Heart Block) через
edge-impulse-daemon --frequency 202. - Создать Impulse, обучить, задеплоить как Arduino Library.
- Добавить сгенерированную библиотеку и
ECG_Analyzer(с GitHub) в Arduino IDE. - Загрузить итоговый скетч
ECGAnalyzer.ino(модифицированный пример continuous inference).
Результат
Готовое устройство в компактном корпусе показывает на OLED класс ритма в реальном времени. Точность на тестовой выборке ~97%. Проект открыт: GitHub репозиторий (скетч, библиотека, MATLAB-скрипты, Signal Builder модель).
Производственный процесс
- Искусство и ремесло тиар: история, материалы и современный дизайн
- Колючая проволока: история, конструкция и современное применение
- Монитор гигиены туалета на базе Walabot
- Практикум по машинному обучению на reTerminal: Edge Impulse и ARM NN Demo
- Превратите сломанный игрушечный грузовик в Raspberry Pi-управляемую RC-машину
- Набор MOSMusic: MOSFET, Arduino и управление светом по музыке
- 6 типов организаций, движущих революцию периферийных вычислений
- Премиальный станок для производства шестиугольной плетеной сетки для сельского хозяйства и птицеводства
- Мастерство проводниковой резки: всеобъемлющее руководство по Wire EDM
- ЧПУ проволочная резка: определение, процесс и применения