Звездчатые многогранники Винил‑плеер Орион‑128 онлайн ЭКГ Антенны Лаборатория Гостевая

Простой самодельный кардиограф с записью на SD карту

Рассматривается простой самодельный электрокардиограф с функцией записи ЭКГ на SD-карту, пригодный для круглосуточного наблюдения, в том числе для Холтеровского мониторирования.

Содержание: Схемы, Прошивки, Программы, Обсуждение.

Внешний вид простого самодельного электрокардиографа с записью на SD карту Кардиограф имеет от одного до трех полностью дифференциальных входов и позволяет осуществлять съём кардиосигнала либо в трех ортогональных отведениях, либо в нескольких стандартных отведениях I, II, III, V.

В реальном времени можно наблюдать кардиограмму на экране компьютера или смартфона/планшета, к которым кардиограф подключаются по usb или блютузу. Также кардиосигнал пишется на SD-карту для последующего углубленного анализа.

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

На кардиографе имеется светодиод для индикации выделенных R-зубцов на кардиосигнале, позволяющий оперативно контролировать правильность хода записи. Авторская программа для анализа ЭКГ позволяет визуализировать кардиограммы, а также автоматически выделять R-зубцы, считать и визуализировать частоту пульса и R-R интервалы для легкого поиска аритмий, экстрасистол и прочих безобразий. Имеется функция экспорта данных в стандартный формат EDF для использования профессиональных программ обработки кардиограмм.

Промышленную плату для кардиографа, трехканальные входные цепи и идеологию работы для версии 3.0 разработал Александр Кравец

Программное обеспечение для отображения кардиограмм и анализа ЭКГ

Для обработки записей кардиограмм и управления с кардиографом создана специальная программа для компьютера. Для неё доступна онлайн-справка.

Отображения кардиограммы на смартфоне

Для отображения кардиограмм на смартфоне или планшете с ОС "Андроид" создано специальное приложение. Оно работает со всеми аппаратными реализациями кардиографа. Достаточно подключить кардиограф (переходник usb-com) к usb host (otg) Вашего устройства. Также поддерживается подключение кардиграфа по блютуз через модули HC-05, HC-06 и другие, причем поддерживается несколько режимов выдачи данных на блютуз. Само приложение тут.

Отображения кардиограммы в браузере

Технология WebUsb позволяет подключить кардиограф к компьютеру или планшету по usb и работать с кардиографом прямо из браузера без установки дополнительных программ.

Примеры и интерпретация записей

Желудочковая экстрасистола на ЭКГ Пример измерения частоты пульса в зависимости от двигательной активности В простейшем случае интерпретация записей не требует специальных знаний, вполне достаточно использовать один канал. Программа автоматически обрабатывает записи и находит R-зубцы на ЭКГ. Измеренные R-R интервалы позволяют контролировать зависимость пульса от физической нагрузки. А по аномальным скачкам времени между импульсами легко выявлять различные аритмии. После выявления аномалий в R-R интервалах можно уже более внимательно изучить кардиосигнал в районе аномалии. Например, на фоне обычных импульсов желудочковые экстрасистолы выглядят характерно и пугающе (хотя малое количество таких экстрасистол это норма).

Для более точной интерпретации кардиосигнала необходимо придерживаться той или иной схемы наложения электродов. Программа поддерживает экспорт записей в стандартный формат EDF для использования профессиональных программ обработки.

Варианты аппаратной части (принципиальные схемы)

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

Варианты кардиографа Схема и описание, прошивка Примечания
Одноканальный кардиограф: частота дискретизации 976.5625 Гц, внутренний АЦП МК 10 бит, запись на SD карту, акселерометр MMA7455LT, измеритель температуры тела DS1621.
1.0 (pic16f873a) Опубликованы в журнале Радиохобби 2012, №4 и на сайте 'паяльник' Простая и надежная схема. Низковато разрешение кардиосигнала по 'вертикали' (хотя для надежной фиксации R-зубцов его вполне хватает). Опционально имеется вход измерения частоты для подключения разных датчиков с преобразованием величиначастота, например, самодельного датчика эрекции.
2.0 (pic16f873a) Схема и описание ниже Значительно улучшено качество записи кардиосигнала, причем без использования дорогих деталей: добавлен только дополнительный ОУ. И приняты меры по снижению помех от цифровой части схемы на аналоговую часть.
Одно- или двухканальный кардиограф: частота дискретизации 976.5625 Гц, внутренний АЦП МК 12 бит, запись на SD карту, акселерометр MMA7455LT, индикация выделения пульса светодиодом.
2.1 (pic18f26k42) Схема и описание ниже Ещё улучшено качество кардиосигнала за счет использования более мощного МК с 12-битным АЦП и большего времени накопления сигнала. Реализовано выделение R-зубцов на микроконтроллере и индикация их светодиодом. Аналоговая часть идентична версии 2.0
2.1 duo (pic18f26k42) Схема и описание ниже То же, что и одноканальная версия 2.1, но одновременно оцифровывается 2 канала (требуются дополнительные усилители в аналоговой части). Частота дискретизации кардиосигнала не изменилась (976.5625 Гц), но поток информации увеличился вдвое
Трехканальный кардиограф для Холтеровского мониторирования: 1,2 или 3 канала, частота дискретизации 976.5625 Гц, внутренний АЦП МК 12 бит, запись на SD карту, акселерометр MPU-6050, барометр bmp280, часы реального времени DS3231, блютуз HC-05/HC-06 и usb otg.
3.0 Холтер (pic18f26k42) Схема и описание ниже Новая аппаратная часть на один, два или 3 канала с улучшенной защитой от помех. Часы реального времени DS3231 - кардиограф в любой момент готов начать запись. Современный акселерометр MPU-6050 и барометр bmp280 для контроля двигательной активности. Встроенная схема зарядки аккумулятора. Промышленная плата. Подключение к телефону / компьютеру по usb или блютуз. Кнопка для подачи сигнала и светодиод для индикации качества записи.

Необходимые прошивки для МК с исходниками см. ниже.

Совершенствование схемотехники самодельного кардиографа

Схема и описание первого варианта самодельного кардиографа с функцией записи на SD карту опубликована в журнале Радиохобби 2012, №4 и на сайте "Паяльник" (сперва статья была отправлена в журнал "Радио", но они ответили, что "Статья о кардиографе не по профилю нашего журнала". А редактор "Радиохобби" забыл о статье и она больше года провалялась в редакции). Судя по полученным отзывам, в целом схема кардиографа оказалась удачной: повторение конструкции не вызывало сложностей, собранный кардиограф не требовал настройки и работал сразу после включения.

Тем не менее, и схема и программное обеспечение кардиографа могут быть усовершенствованы (см. версии 2.0, 2.1 и 3.0).

Во-первых, программу для анализа кардиограмм можно улучшать бесконечно в плане визуализации и анализа кардиосигнала, автоматического выявления сердечных импульсов (R-зубцов), поиска проблем с ритмом. Тут опубликованы обновления программы и некоторые примеры работы с программой по выявлению аномалий в функционировании сердца.

Во-вторых, аппаратная часть кардиографа улучшалась в нескольких направлениях:

Поскольку более мощные микроконтроллеры (а тем более высококачественные АЦП) стоят дороже и зачатую менее доступны, предлагается гибкое изменения аппаратной части. Простая доработка исходной схемы уже позволяет добиться максимального качества оцифровки кардиосигнала (без дополнительного АЦП), а это без сомнения самое главное. Независимо можно рассмотреть вариант установки более мощного микроконтроллера с 12-битным встроенным АЦП (версия 2.1). Более продвинутый вариант аппаратной части рассчитан на три входных канала и использует более новые датчики (версия 3.0). Самый "крутой" вариант кардиографа - многоканальный внешний специализированный АЦП + USB микроконтроллер пока в разработке (правда не понятно, нужен ли этот вариант: качества съёма ЭКГ уже достаточно, а на ещё большую миниатюризацию особо рассчитывать не приходится).

Версия кардиографа 2.0: простые доработки аналоговой части кардиографа для улучшения качества кардиосигнала

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

Принципиальная схема простого кардиографа с записью на sd-карту с улучшениями качества записи
Комментарии пользователей к схеме находятся ниже

Главное улучшение схемы - перед подачей на АЦП МК кардиосигнал дополнительно усиливается ОУ DA3.1 в ~50раз, что соответственно уменьшает ошибки дискретизации. Перед усилением из сигнала фильтром ВЧ на C4,R10 исключается постоянная составляющая. В результате динамический диапазон АЦП полноценно используется для оцифровывания именно полезного кардиосигнала сигнала, а не смещений изолинии, возникающих из-за разбаланса электродов.

Также для уменьшения шумов применен ФНЧ на R12, C3, а кроме того усиление DA3.1 на высоких частотах ограничено C5 в цепи обратной связи.

По стандартам, во избежание искажения кардиосигнала, фильтр постоянной составляющей должен иметь постоянную времени τ не менее 5 сек. Благо, это легко обеспечить за счет высокого входного сопротивление ОУ DA3.1. Недостатком дополнительного усиления кардисигнала является том, что при резком изменении напряжения разбаланса электродов, например, в процессе установке электродов на тело, возникнет перегруза усилителя и кардиограф окажется "слеп" на время нескольких τ. Конечно, полезная информация при этом фактически не теряется, но эту особенность поведения стоит иметь в виду при интерпретации данных кардиографа.

Для дальнейшего увеличения качества кардиосигнала приняты меры по уменьшению помех, которые SD-карта и МК создают при своей работе. Для этого применен стабилизатор напряжения питания аналоговой части DA5. Соответственно, это стабильное напряжение подано на МК в качестве опорного для АЦП (VREF). Для питания цифровой части (МК, SD-карта, датчики) также применен отдельный стабилизатор DA6 на 3.3в, это позволяет SD-карте и акселерометру всегда работать при номинальных напряжениях.

По сравнению с первой версией кардиографа, на схеме отсутствует термодатчик на DS1621, так как польза от него сомнительная. Измерения температуры тела вообще задача сложная. Но при желании этот датчик можно поставить и включить опрос в прошивке. Акселерометр BK1 также не обязателен. Однако опыт показывает несомненную пользу от него при интерпретации длинных записей, так как при этом всегда возникают вопросы: изменения кардиограммы связаны с двигательной активностью или возникли сами по себе.

Также в первой версии кардиографа вывод МК RA3 (выв. 5) использовался как выход сигнала CS выборки SD карты. Теперь RA3 необходим как вход опорного напряжения для АЦП МК. Поэтому сигнал CS для SD карты выдаётся с выв. МК RA5 (выв. 7). Также сигнал с выхода доп. усилителя подается на второй вход АЦП AN1. На первый вход AN0 по прежнему подаётся сигнал напрямую с выхода инструментального усилителя DA4. Это позволяет программно переключаться между 'старым' и новым усиленным сигналами, чтобы наглядно убедиться в пользе от дополнительного усилителя.
Все это потребовало соответствующих (минимальных) изменений прошивки. Новая прошивка выдает CS для SD карты на RA5 (выв. 7), а также по умолчанию записывает усиленный сигнал со второго (AN1) входа АЦП. Прошивка поддерживает переключение по команде с компьютера с AN1 на AN0, а также выбор различных опорных напряжений для АЦП.

Дополнительный ОУ DA3 - практически любой, ибо требования к шумовым характеристика для него ниже, чем для усилителей в предварительных каскадах. В качестве DA4, DA5 можно использовать любые аналоговые микросхемы - стабилизаторы питания на 3.3в и ток до 100мА с низким падением напряжения (LDO). Не стоит использовать стабилизаторы, рассчитанные на большой ток (амперы), так как падение напряжение на них и собственное энергопотребление значительны.

Для питания кардиографа наиболее целесообразно использовать литиевые аккумуляторы подходящей емкости и размеров, которые можно заряжать от usb через стандартные схемы зарядки. Можно разместить схему зарядки и переходник usb-com в корпусе кардиографа, чтобы получить прибор с интерфейсом usb. Впрочем, возможно для экономии размеров носимого прибора, переходник и схему зарядки целесообразно сделать внешними. Это также позволяет иметь два переходника: первый с гальванической развязкой на оптопарах для наблюдения за кардиосигналом в реальном времени и второй без развязки для зарядки и скачивания кардиограмм в компьютер.

Версия кардиографа 2.1: новый МК с АЦП 12 бит (совместимый по выводам со старым)

После доработки аналоговой части логично обновить цифровую, использовав вместо морально устаревшего Pic16f873a более современный МК с 12-битным АЦП. Для владельцев уже собранного кардиографа лучше всего, если новый МК будет совместим с исходной схемой по выводам. К сожалению это ограничивает выбор МК (в частности исключает МК с usb). Впрочем и без usb новый МК позволит обеспечить лучшее качество кардиосигнала, а это главное. Кроме того, у com-порта есть свое преимущество: куда проще сделать оптоэлектронную гальваническую развязку (нужна буквально пара дешевых оптопар).

В настоящее время прошивка успешно портирована на pic18f26k42. Это один из самых новых 8-битных МК от микрочип. При том же кварце на 10МГц рабочая частота МК в 4 раза выше. За счет этого до 39062.5 Гц увеличена частота опроса АЦП, при этом одна выборка кардиосигнала формируется суммированием 40 выборок АЦП. Высокая частота опроса АЦП снижает требования к аналоговым фильтрам по входу АЦП и несколько повышает "битность", примерно на log2(400.5) ≈ 2.6 бита.

Размер буфера для кардиосигнала увеличен до 512 байт, это снижается требования к скоростным характеристикам SD-карты и позволяет потенциально повысить частоту опроса кардиосигнала (которая впрочем и так довольно высока, ~1кГц) и число записываемых каналов.

Вместо МК pic18f26k42 можно использовать pic18f27k42 или pic18f25k42.

Также в новую прошивку добавлена функция анализа кардиосигнала по распознаванию R-зубцов. Пока это распознавание используется только для индикации светодиодом VD1 качества кардиосигнала. Каждый R-зубец отмечается вспышкой светодиода длительность 10мс, если идет запись на SD-карту. Если же запись на SD-карту не выполняется, то это индицируется длительной вспышкой светодиода. Как показывает практика, индикация работоспособности кардиографа очень полезная функция.

Для повышения качества записей кардиограф следует собирать на двухсторонней плате с переходными отверстиями и обширными земляными полигонами.

Для прошивки нового МК разработаны вспомогательные программы

Двухканальная версия кардиографа 2.1 duo

Использование мощного МК pic18f26k42 позволяет без проблем оцифровывать несколько каналов кардиограммы. Разработана версия прошивки, которая одновременно оцифровывает сигналы по входам AN0 и AN1 МК и соответствующая программа визуализации и обработки кардиограмм.

Двухканальную прошивку 2.1duo можно использовать с аппаратной частью одноканальной версии 2.1 кардиографа, при этом будет фиксироваться сигнал до и после дополнительного усиления (что может быть полезно для проверки работы усилителя, а также расширяет динамический диапазон кардиографа).

Также можно добавить в аппаратную часть второй канал: два новых электрода, входной ОУ, инструментальный усилитель и при необходимости дополнительный усилитель. Схемы виртуальной и активной земли дублировать не надо. Сформированные аналоговой частью сигналы двух каналов подаются на входы AN0 и AN1 МК. На схеме двухканального кардиографа ниже датчик ускорения не показан, его подключение к I2C-шине такое же, как в одноканальной версии.

Принципиальная схема простого двухканального кардиографа с записью на sd-карту с улучшениями качества записи

При наложении электродов надо стремиться к тому, чтобы на вход AN0 МК подавался сигнал с наиболее высокими R-зубцами, поскольку именно этот канал используется для выделения R-зубцов при управлении светодиодом и при обработке на компьютере.

В прошивке есть возможность переключаться с пары входов AN0, AN1 на входы ANB0, ANB1, на которые подаётся сигнал без дополнительного усилителя. Это позволяет оценить работу дополнительного усилителя и при необходимости изменить его усиление под конкретные задачи.

Трехканальный кардиографа 3.0 для Холтеровского мониторирования

Это наиболее новая и продвинутая схема. Используются более новые датчики: акселерометр MPU-6050, барометр bmp280, часы реального времени, модуль блютуз hc-06 (hc-05). Принципиальная схема новой аппаратной части самодельного кардиографа приведена на рисунке ниже, файлы с прошивками в таблице.

Принципиальная схема трехканального кардиографа для Холтеровского мониторирования

В схеме имеется три независимых полностью дифференциальных канала для записи кардиосигнала. Все входы выведены на один входной разъём, на котором их можно скоммутировать требуемым образом. Например, если требуется получить не три ортогональных, а классические отведения I, II, III, V, то для их формирования достаточно собрать только два дифференциальных входа, нужные отведения формируются программно как линейная комбинация исходных сигналов с требуемыми весами.

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

В схеме применены более современный датчики физической активности: акселерометр MPU-6050 и датчик атмосферного давления bmp280, способный почувствовать подъём подопытного по лестнице даже на единицы метров.

Большое внимание уделено защите от помех: для питания цифровой и аналоговой частей используются различные стабилизаторы, опорное напряжение для АЦП МК берется с аналоговой части. Предусмотрены также многочисленные фильтры по питанию. Наконец, для полной защиты от помех  Александр Кравец  разработал двухстороннюю плату с обширными земляными полигонами для промышленного изготовления через сайт jlcpcb.com.

Новая плата кардиографа от Александра

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

Также в схему добавлен блютуз-модуль HC-06 (можно HC-05), который позволяет подключить к кардиграфу без использования проводов компьютер или смартфон. Обычно для экономии питание на блютуз-модуль не подаётся, для его включения и выключения необходимо удерживать кнопку в течение 5 секунд. Факт включения и состояние bluetooth модуля индицируется отдельным светодиодом.

Ради передачи трех каналов скорость com-порта пришлось увеличить до 115200 бод (в предыдущих версиях было 57600 бод). Поэтому необходимо использовать последнюю версию программы, а в настройках приложения для смартфона указывать скорость подключения.

В схеме имеется микросхема зарядки литиевого аккумулятора TP4056. Ток зарядки выставляется резистором по выводу 2, его необходимо задать таким, чтобы он не был чрезмерным для применяемого аккумулятора. Контроля разряда нет, поэтому необходимо применять аккумулятор с встроенным контролем чрезмерного переразряда.

В схеме имеется микросхема часов реального времени (RTC), которая запитана напрямую от аккумулятора, миную выключатель питания. Это позволяет всегда иметь привязку записи ко времени без дополнительных манипуляций с подключением устройства к компьютеру. Т.е. кардиограф в любой момент готов к работе (если аккумулятор заряжен и время RTC выставлено).

В качестве ОУ можно использовать AD8542 или аналог TP8542 или вообще любой rail-to-rail ОУ с питанием в 3.3в. ФНЧ после ad623 можно сделать на 10КОм и 0.047 мкФ вместо 4.7 КОм и 0.1 мкФ. ФВЧ перед дополнительным усилением можно сделать 1 мкФ и 5.1МОм вместо 4.7мкФ и 1МОм, такой вариант позволяет обойтись менее дефицитным конденсатором меньшей ёмкости, благо входное сопротивление ОУ очень высокое. При желании усиление AD623 можно уменьшить до 6, увеличив задающий усиление резистор до 20 КОм, тогда дальнейшее усиление необходимо увеличить, увеличив резистор в обратной связи ОУ с 240 КОм до 510КОм, а соответствующий конденсатор уменьшив с 1000пФ до 240 пФ.

При генерации средней точки резисторы на 150 КОм можно увеличить до 510 КОм с целью экономии. Не очень понятно, стоит ли ставить обозначенные на схеме многочисленные фильтрующие конденсаторы по линии UREF: с одной стороны они уменьшают помехи, с другой стороны - закороченный емкостями выход ОУ может привести к потере устойчивости.

Блютуз-модуль hc-06 можно заменить на hc-05, учитывая отличия в распиновке (такая замена даже рекомендуется). Можно использовать и другие блютуз-модули, но в этом случае их придётся отдельно сконфигурировать на скорость com-интерфейса в 115200 бод. Доступно несколько режимов выдачи данных на блютуз, которые отличаются требуемой пропускной способностью интерфейса. Для передачи полного потока информации требуется ~2.2 кбайта в секунду на один канал ЭКГ на скорости 115200 бод. Соответственно такая скорость должна быть обеспечена блютуз-модулем. При желании частоту дискретизации ЭКГ для блютуза можно урезать до 100Гц. А радикально сократить поток можно передавая, например, только R-R интервалы или частоту пульса (этакий режим спортивного пульсомера), благо прошивка уже реализует распознавание R-зубцов. Это позволяет использовать экономичные модули BLE, хотя и несколько обесценивает саму идею снятия кардиограммы.

Применение готовых модулей датчиков с али экспресс

Если позволяют габариты (или при макетировании) вместо микросхем зарядки TP4056 и датчиков bmp280, MPU-6050 и DS3231 можно применять соответствующие готовые модули с али-экспресс. При этом для датчиков достаточно линии SDA и SCL шины I2C МК подключить к одноименным выводам модулей датчиков и подать на модули питание. Другие выводы модулей (CSB и SDO для bmp280, AD0 для MPU-6050) должны быть подключены к земле или питанию согласно основной схеме).

Необходимо учитывать, что "ардуинные" модули с али обычно рассчитаны на подключение к питанию +5в, хотя сами микросхемы требуют питания +3.3в. Поэтому модули обычно содержат на себе микросхему-стабилизатор (LDO) на 3.3в, и зачастую имеют хитрую схему преобразования уровней SDA и SCL. Поэтому необходимо:

Вообще, каждый модуль с али может содержать свои подтягивающие резисторы на шине I2C (можно посмотреть их на плате или на схеме модуля). В результате общее сопротивление подтяжек на I2C при подключении нескольких модулей может оказаться весьма низким. На работоспособности это не скажется, но потребление тока и помехи повышаются при уменьшении сопротивления подтяжек. Поэтому в идеале хорошо бы было заменить или выкусить лишние резисторы, чтобы общее сопротивление подтяжек было порядка 10-20 КОм.

Также для экономии аккумулятора лучше удалить с модулей светодиоды, если они там есть.

Все файлы прошивок микроконтроллера для кардиографа с исходниками

Версия прошивки Прошивка (hex, исходники) Примечания
1.0 (pic16f873) hex, src Вход кардиосигнала - AN0. Дополнительно прошивка обеспечивает опрос термометра DS1621 и акселерометра MMA7455LT, а также измерение частоты сигнала на входе RC2 (CCP1)
2.0 (pic16f873) hex, src Управление входом CS SD-карты перенесено на вывод RA5. Опрос термометра DS1621 отключен (легко включить в исходниках). Кардиосигнал оцифровывается по входу AN1, входы AN2,3 используются как опорные напряжения для АЦП МК. Поддерживаются команды с компа по переключения входа кардиосигнала (AN1 или AN0), выбору опорных напряжений АЦП (со входов AN2,3 или от питания МК), с накоплением сигнала или с прореживанием. Если вставлена SD-карта, то при возникновении ошибки записи на SD-карту устройство перезагружается: если уж запланированы измерения, то они должны вестись
2.1 (pic18f26k42) hex, src Кардиосигнал занимает полные 16 бит (12 бит АЦП + накопление по 40 выборок). Опрос термометра и измерение частоты не поддерживаются. Добавлено управление светодиодом по RC1 (CCP2), который мигает в соответствии с выделенными R-зубцами (алгоритм выделения R-зубцов реализован в прошивке)
2.1_duo (pic18f26k42) hex, src Оцифровывается одновременно сигнал по входам AN0 и AN1. Формат записи на SD-карту не изменился, AN0 пишется в четные выборки, AN1 в нечетные. Частота опроса кардиосигнала не изменилась (976.5625 Гц), в каждом канале выборка формируется накоплением 20 отсчётов АЦП. Поток записи на карту SD увеличился в 2 раза.
3.0 (pic18f26k42) hex 1 канал,
hex 2 канала,
hex 3 канала,
src
Поддерживаются новые датчики: акселометр MPU-6050, барометр bmp280, часы реального времени ds3231, а также кнопка и блютуз-модуль c гибкой настройкой. Запись от 1 до 3 каналов ЭКГ (входы МК RA0, RA1, RB0). Число каналов определяется значение 'ChsN' при компиляции исходников, а программа для компа опознаёт число каналов автоматически. Формат записи на SD-карту немного изменился с сохранением совместимости. Частота работы com-порта увеличина до 115200 бод. Частота опроса кардиосигнала не изменилась (976.5625 Гц).

Примечание: для компиляции исходников под МК pic18f26k42 на ассемблере MPASM необходима MPLAB IDE X версии от v5.10 до v5.35. Более старые версии не поддерживают этот микроконтроллер, а более новые не поддерживают компилятор MPASM (такое вот кидалово от микрочип).

Вспомогательные программы для прошивки МК Pic18f26k42

Программа Exe и исходники Примечания
NikyComProgPic18F26k42, программа для обновления прошивок pic18f26k42 через com-порт exe, src Для нового МК изменились максимальный размер прошивки и размер станицы flash-памяти МК, поэтому программа для обновления прошивок через com-порт не встроена в программу обработки кардиограмм, а реализована отдельно
NikyJMDProgPic26k42, программа для первичной (высоковольтной) прошивки pic18f26k42 через jdm-совместимый (подключается к com-порту) программатор exe, src Данный МК довольно новый, поэтому были сложности с прошивкой его через jdm-совместимый (который подключается к com-порту) программатор из-за отсутствия поддержки в софте (например, PicPgm). Фирма микрочип подразумевает, что надо купить новый программатор. Однако протокол высоковольтного программирования современных Pic МК настолько прост, что была разработана собственная программа для высоковольтного программирования через com-порт

Подключение к кардиографу вместо электродов пояса пульсомера

Пояс пульсомера Пояс пульсомера свернут Можно подключить к кардиографу вместо электродов пояс от спортивного пульсомера. При этом два контакта пояса подключаются к входам E+ и E-. Поскольку заземляющий электрод у пояса отсутствует, необходимо установить 2 симметрирующих резистора от E+ и E- к виртуальной земле UREF. Сопротивления резисторов должны быть порядка 560КОм (подобраны экспериментально, хотя теоретически возможны и большие значений).

Поскольку активная земля (E0) в таком включении не используется, при подключении кардиографа к компьютеру без гальванической развязки визуализация кардиограммы становится невозможной из-за превалирующих наводок. Поэтому целесообразно вывести контакт виртуальной земли E0 наружу - при прикосновении к нему можно смотреть кардиограмму. Также можно сделать гальваническую развязку com-интерфейса на оптопарах или использовать блютуз. Впрочем, при штатной работе (батарейном питании и отсутствии подключения к компу) наводки эффективно подавляются без активной земли.

Также отсутствие заземляющего электрода пояс представляет угрозу для входных цепей кардиографа. В момент подключения к компьютеру единственный путь для статического заряда, накопленного на теле (иногда весьма значительного), лежит через входы ОУ DA1. Поэтому целесообразно поставить последовательно со входами E+, E- резисторы на 20-100 КОм, а также перед подключением кардиографа к компьютеру предварительно разряжать "статику" на корпус компа.

Пояс пульсомера хорош тем, что легко и быстро надевается, и в сочетании с кардиографом позволяет получать надежные измерения пульса: в отличии от (даже дорогих и навороченных) спортивных пульсомеров, сбойные участки кардиограммы (часто возникающие во время движения) можно достоверно обнаружить и отбраковать. Что вообще там показывают спортивные пульсомеры в момент интенсивных движений - вопрос дискуссионный. Однако не оптимальный выбор мест наложения электродов у пояса уменьшает амплитуду полезного кардиосигнала и снижает помехозащищенность от "подвижек" электродов. При этом конструкция пояса такова, что электроды пояса реагируют на большой спектр движений тела. Наконец, долго носить пояс трудно, особенно это видно в сравнении с электродами - даже из монет на пластыре, не говоря уж о специализированных электродах для холтеровского мониторирования, которые практически не ощущаются.

Комментарии

12.12.2019, Василий
А какой ток потребления у кардиографа с новым микроконтроллером?
Автор
Потребляемый ток, конечно, увеличился, точно не мерил. МК работает на частоте 40МГц (10 mips) и постоянно что-то делает, возможные подходы к снижению потребления пока не используются.

1.05.2020, Игорь
Здравствуйте. Хотел бы спросить, собирали ли вы этот ЭКГ? Если да то могли бы вы скинуть фотографию? А так же есть ли печатная плата (схема). Был бы очень признателен! Спасибо.
Автор
Вот фотки 2011 года: без акселерометра, с акселерометром и ещё фото. Фото 2016 года с литиевым аккумулятором Вот. Но всё это старые версии 1.0 без дополнительного усилителя. Вот фото с навешенным доп. усилителем и стабилизаторами по питанию, но такой 3d - монтаж сугубо на любителя. Вот кнопки для подключения пояса пульсомера.
Вот чертежи платы 2012 года (верх и низ). Ещё есть вариант платы, разведенной одним хорошим человеком, собравшим этот кардиограф, там даже разведен переходник usb-com на ft232, файлы для пикада: pcb и pdf. Но все эти платы без доп. усилителя и не рекомендуются к повторению.
Новые платы тут.

Игорь
Большое спасибо. Заметил что элементная база стала более сложнее и уже не соответствует плате 2011 года. Очень интересно следить за дальнейшим развитием. Если будет возможность буду очень признателен если сбросите элементную базу или фото собранной платы на основе схемы на МК pic18f26k42. И еще вопрос, не размышляли об увеличении количества электродов и сложностей которые могут возникнуть? На сколько сейчас стоит акум (мАхов) и на сколько его в теории/практике хватает.
Автор
Для pic18f26k42 плата не делалась, он совместим по выводам с Pic16f873, поэтому просто воткнул в панельку (вот преимущество дип-корпуса для разработчика). Давно бы перешёл на usb МК - но выводы не совместимы.
Раньше аккумулятора 600 мА·ч хватало на двое суток, теперь с pic18f26k42 ровно на одни сутки (значит общее потребление ~25 мА, но не мерил). Впрочем, прошивка написана не оптимально в плане энергосбережения, зато удобно для программирования, да и усреднение измерений АЦП максимальное, и даже выделение R-зубцов налету работает.
Новая плата, думаю, будет заказана у китайцев, чтобы был хороший земляной полигон для минимума помех. И smd для уменьшения габаритов. Сейчас идет разработка (см. тут). Ну и спец. АЦП ads1294 тоже в планах попробовать, для сравнения качества, только дорогая она и сильно мелкая.
Добавить ещё канал ЭКГ не проблема, думаю в новой версии он будет в качестве эксперимента. Вопрос больше зачем - электроды цеплять дольше (и уже надо знать куда), а дополнительной информации для не для специалиста не очень много. Ну наверное второй канал нужен, чтобы P зубец лучше видеть, но выделять P автоматом - задача неблагодарная... Вот желудочковая экстрасистола на графике выглядит шикарно и понятно, но даже это - норма...

30.06.2019, Автор
Выложена двухканальная версия прошивки и соответствующая программа для компа.

04.07.2020, Александр
Здорово! Спасибо огромное! Обязательно буду собирать. Просто удивительно, как быстро Вы работаете и создаете новые версии прошивок, ПО и варианты прибора! Версия ПО для ДУО на данный момент недоступна. Видимо, дорабатываете еще? Какой коэффициент усиления имеет каждый канал до входа АЦП? Есть ли смысл его повышать?
Автор
Программа и прошивка оттестированы, всё работает и теперь доступно для скачивания.
При указанных на схеме номиналах сперва DA4 AD623 усиливает сигнал в 6 раз, затем DA3 ещё в 53 раза. Наверное с учетом 12-битного АЦП у нового МК pic18f26k42 усиление DA3 стоить снизить до ~10 хотя бы в главном канале, где R-зубцы высокие.

17.02.2023, Автор
Выложена новая версия аппаратной части 3.0. Цифровая часть обзавелась новыми более современными датчиками и блютуз-модулем. А аналоговая расширена до 3 каналов (хотя все 3 собирать не обязательно, можно 1 и 2) и получила цепи защиты от статики и помех по питанию. Плата для промышленного изготовления тут.

14.06.2023, Алина
Спасибо большое за такую подробную статью! Я собрала версию 2.1 на pic18f25k42, но, видимо, прошивка от pic18f27k42 не совсем подходит, инициализация SD-карты не выполняется, хотя при форматировании выставляется начальное состояние 0x10000 и отображаются в программе в основном помехи.
Автор
Странно, разницы между pic18f25k42 и pic18f26k42 буквально никакой, только в объёмах ОЗУ (но версии 2.1 должно по любому хватать), EEPROM (тоже не должно быть проблем) и Flash (максимум перестанет работать обновление через ком, но если программатор внешний, то это не проблема). Даже перекомпилировать не надо. Коротните входы у усилителя и смотрите, что выдаёт МК.

12.10.2023, Автор
Обновлены программа, приложение и прошивка для аппаратной части 3.0. Программа теперь универсальная, поддерживает старые и новые версии аппаратной части. Плюс добавлена возможность конфигурирования блютуз-модуля HC-05 прямо из программы.
Главное: в прошивку и ПО добавлена поддержка выдачи по блютузу урезанного потока данных (с прицелом на BTE-модули).

22.12.2023, Сергей
Замечательное устройство! Спасибо автору за проделанную работу в течение многих лет. Хотел бы спросить: возможна ли доработка ПО Windows под собственные потребности?
Автор
Конечно доработка возможна. Могу исходники дать. Или раскажите о сути доработок...

26.12.2023, Михаил
Здравствуйте, очень захотелось собрать данное устройство, но схемы оставленные в предыдущих комментариях не отрываются, выдает ошибку чтения файла. Не могли бы вы предоставить файлы pcb для учебно ознакомительных целей?
Автор
Не знаю, в каких программах Вы пытались открывать файлы плат. Вероятно нужна подходящая программа. Последние платы разрабатывал Александр Кравец, попробуйте связаться с ним.

10.03.2024, Сергей
Здравствуйте. Не могли бы Вы выложить файл платы от Александр Кравец в lay6 или хотя бы в виде рисунков с более высоким разрешением?
Автор
К сожалению у меня их нет - он мне готовую плату прислал. Попробуйте с ним связаться по мылу...
11.03.2024, Сергей
Возможно ли использовать модули AD8232 в какой либо из Ваших схем (например, три таких модуля в трех канальном варианте)?
Автор
Конечно можно. AD8232 заменяет аналоговые цепи одного канала, её выход подключается к входу АЦП МК.

12.03.2024, Сергей
Еще выскажу просьбу от пенсионеров. Гироскоп, датчик давления и часы присутствуют в трехканальной схеме в виде микросхем. На Алиэкспрессе есть готовые модули всех этих микросхем. Если бы Вы смогли нарисовать трехканальную схему, в которой будут использованы готовые модули, а не отдельные микросхемы, это бы сильно упростило сборку устройства и "двинуло его в массы". Запаять микруху 4х4мм - сможет далеко не каждый.
Автор
На счет трудно "запаять" - совершенно с Вами согласен (лично я запаять 4х4мм не могу). На сайт добавлен раздел про применение датчиков с али. Вот фотка моего первого многострадального ЭКГ с новыми датчиками-модулями c али для отладки.
Сергей
Спасибо за Ваш быстрый и подробный ответ. Выпаять что то из модуля или запаять перемычки не проблема. STM32F100 запаиваю без проблем.

14.03.2024, Сергей
Правильно ли я предполагаю, что можно заменить датчик давления bmp280 на bmp180?
Автор
Нет, bmp280 на bmp180 менять нельзя! Совсем другие регистры... Можно было бы добавить поддержку в прошивку и программы, но смысла особого нет: bmp280 лучше и стоит копейки.

15.03.2023, Автор
Есть смутные планы перенести прошивку на esp32, чтобы можно было использовать дешевый модуль c али esp32-s2-mini. Тогда будет fat32 на sd-карте, wi-fi и веб-морда. Но энергопотребление станет конским (впрочем, акк. сейчас большие) и помехи по ЭКГ увеличатся (в плане помех pic18f26k42 легко порвёт более навороченные МК и их быстрые АЦП).
Сергей
Увеличение помех волнует больше,чем увеличение энергопотребления. Что ухудшится - понятно, а что улучшится - не совсем ясно.

19.03.2024, Сергей
Насчет программатора хотел уточнить. МК можно прошить обычным JDM программатором (или он таки зовется JMD программатором?) с помощью Ваших программ? Почему две программы для прошивки? Спасибо за Вашу помощь в разъяснении не совсем понятных моментов.
Автор
МК необходимо прошить (через ноги RB7, RB6 и MCLR) любым подходящим программатором, например, тем, который у Вас есть. Я пользуюсь самодельным JDM программатором (это простейший, который подключется к ком-порту). Но найти программу, которая бы смогла прошить относительно новый pic18f26k42 я в своё время не смог, поэтому пришлось делать свою. Надо иметь в виду, что напряжение программирования на MCLR для этого МК +9в максимум, а не +12в, как обычно, хотя он поддерживает и чисто низковольтный режим.
Вторая программа - это уже для обновления прошивок через com-порт, но сперва МК необходимо запрограммировать обычным образом. Функции этой программы уже встроены в основную.

3.04.2024, Сергей
У меня есть JDM программатор, которым я прошивал PIC16F873A. Правильно я понимаю, что в нем самом никакой переделки для прошивки PIC18F26K42 не требуется? Как же получить +9в?
Автор
А в софте, которым Вы прошивали, есть ли там pic18f26k42 в списке подерживаемых МК? Если есть, наверное программатор умеет убавлять напряжение, если нет - вероятно не умеет и вваливает полные +12в со всеми вытекающими. Так то теоретически любой JDM программатор должен подойти, кроме острой необходимости убавления напряжения Vpp до +9в и наличия подходящей программы для работы с этим новым МК. Возможно в программаторе достаточно заменить стабилитрон на 9-вольтовый и можно экспериментировать.
Сергей
Я тоже, как и Вы, не смог найти программу для прошивки PIC18F26K42, Микрочип об этом "позаботился". На Али есть PICKIT4 за несусветную цену в 150$ и больше, подозреваю, что он таки сможет прошить этот PIC. Я намереваюсь воспользоваться Вашей программой для прошивки PIC18F26K42. Я правильно понимаю, что она сама понизит напряжение и в моем JDM ничего менять не нужно?
Автор
Нет, как программа может понизить напряжение? Надо в программаторе менять стабилитрон или внешнюю цепь со стабилитроном на 9в навесить. Или попросите кого-нибуть с программатором...

Добавить комментарий
Имя*:
Е-мэил*: Получать информацию об ответах
Ваш сайт: что это?
Текст комментария*:
Я согласен с правилами публикации комментариев
  Или просто пишите на почту Адрес электронной почты службы поддержки

Егошкин Н.А., Рязань, © 2007-2024