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

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

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

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

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

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

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

Обновленная справка и документация на программу пока в разработке. Пока вы можете скачать руководство оператора от предыдущей версии программы 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-карту не выполняется, то это индицируется двойной вспышкой светодиода. Как показывает практика, индикация работоспособности кардиографа очень полезная функция.

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

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

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

Версия прошивки Прошивка (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-зубцов реализован в прошивке)

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

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

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

Примеры записей с кардиографа

Примеры визуализации и анализа кардиограмм в программе


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