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

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

Новые улучшенные схемы аппаратной части

Варианты кардиографа Схема и описание, прошивка Примечания
Одноканальный кардиограф: частота дискретизации 976.5625 Гц, внутренний АЦП МК 10-12 бит, запись на SD карту, доп. датчики, подключение к телефону для отображения кардиограммы
1.0 (pic16f873a) Опубликованы в журнале Радиохобби 2012, №4 и на сайте 'паяльник' Простая и надежная схема. Низковато разрешение кардиосигнала по 'вертикали' (хотя для надежной фиксации R-зубцов его вполне хватает)
2.0 (pic16f873a) Схема и описание ниже Значительно улучшено качество записи кардиосигнала, причем без использования дорогих деталей: добавлен только дополнительный ОУ.
2.1 (pic18f26k42) Схема и описание ниже Ещё улучшено качество кардиосигнала за счет МК с 12-битным АЦП и большего времени накопления. Реализовано выделение R-зубцов на микроконтроллере и индикация их светодиодом
Двухканальный кардиограф: два канала ЭКГ, частота дискретизации 976.5625 Гц, внутренний АЦП МК 12 бит, запись на SD карту, доп. датчики, подключение к телефону для отображения кардиограмм
2.1 duo (pic18f26k42) Схема и описание ниже То же, что и одноканальная версия 2.1, но одновременно оцифровывается 2 канала. Частота дискретизации кардиосигнала не изменилась, но поток информации увеличился вдвое

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

Создана программа для отображения кардиограмм на телефоне или планшете с ОС андроид. Достаточно подключить переходник usb-com к usb host (otg) Вашего устройства. Поддерживаются переходники usb-com на популярных микросхемах CP210x, PL2303, CH340G.

Ссылка на apk:
EKG_SD_2020_04_15.apk, исходники тут.

Обновленная программа для взаимодействия с кардиографом и обработки записей ЭКГ

Последняя обновленная версия программы для компьютера:
EKG_SD_2017_v2_10 от 24.08.2017.

Версия для двухканального кардиографа:
EKG_SD_2020_v2_11duo от 05.07.2020.

Программа совместима со всеми аппаратными реализациями кардиграфа. Список изменений:

Обновленная справка и документация на программу пока в разработке. Пока вы можете скачать руководство оператора от предыдущей версии программы EKG_SD_2010 - рук_пользователя.doc.

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

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

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

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

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

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

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

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


Комментарии пользователей к схеме находятся ниже

Главное улучшение схемы - перед подачей на АЦП МК кардиосигнал дополнительно усиливается ОУ 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 МК. На схеме двухканального кардиографа ниже датчик ускорения не показан, его подключение такое же, как в одноканальной версии.

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

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

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

Версия прошивки Прошивка (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 раза.

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

Программа Exe и исходники Примечания
NikyComProgPic18F26k42, программа для обновления прошивок pic18f26k42 через com-порт exe, src Для нового МК изменились максимальный размер прошивки и размер станицы flash-памяти МК, поэтому программа для обновления прошивок через com-порт не встроена в программу обработки кардиограмм, а реализована отдельно
NikyJMDProgPic26k42, программа для первичной (высоковольтной) прошивки pic18f26k42 через jmd-совместимый (подключается к com-порту) программатор exe, src Данный МК довольно новый, поэтому были сложности с прошивкой его через jmd-совместимый (который подключается к 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. Но все эти платы без доп. усилителя и не рекомендуются к повторению. Новые платы проектируются сейчас, но уже для usb МК.

Игорь
Большое спасибо. Заметил что элементная база стала более сложнее и уже не соответствует плате 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-зубцы высокие.

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

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