Как сделать кардиограф своими руками
Кардиограф на основе Arduino своими руками
В настоящее время имеет место бурное развитие разнообразной медицинской техники. В том числе техники и технологий исследования организма. Идея достаточна очевидна. Мы отслеживаем при помощи приборов всевозможные характеристики организма, например, биотоки, биопотенциалы сердца, мозга, мышц, других органов. В идеале человек должен быть обвешан датчиками не хуже новогодней ёлки. Далее применяя тот или иной вид лечения, от лекарств до всевозможных физических, умствтвенных, эмоциональных, дыхательных гимнастик, меняя режим труда и отдыха, питания и так далее, следим при помощи приборов за тем, на пользу или нет те или иные воздействия на организм.
Всё это применяется не только для лечения, но и для развития физических, умственных способностей и тому подобное. Например, спортсмены, отслеживая биотоки мышц, делают выводы о пользе различных упражнений для данных мышц. Тот же принцип используется для тренировки сердечной мышцы при помощи электрокардиографов. Сейчас широко известны так называемые майнд-машины (см. здесь), где та или иная световая, звуковая, тактильная стимуляция призвана улучшать память, обучаемость, эмоциональный настрой человека и так далее. Для отслеживания эффективности майнд-машин применяют приборы для фиксирования энцефалограмм мозга – энцефалографы.
Другая сфера применения указанных технологий – это, так называемые, детекторы лжи см., например, здесь.
Приборы на основе энцефалографов в настоящее время так же применяются для управления техникой (например, компьютером) что называется «силой мысли» (см., например, здесь).
Здесь выкладываются и обсуждаются материалы по самостоятельному изготовлению электрокардиографа и энцефалографа с минимальными затратами деталей и усилий. Изложение ведётся максимально простым языком, чтобы все эти устройства мог бы повторить и начинающий радиолюбитель даже ни разу в жизни не бравший в руки паяльник. В связи с этим здесь также выкладываются объяснения принципов работы тех или иных устройств с точки зрения практика.
Прежде всего, необходимо отметить, что всё изложенное на сайте не прошло официальную проверку на электробезопасность поэтому вы пользуетесь данной информацией на свой страх и риск. Авторы сайта снимают с себя всякую ответственность за любые прямые или косвенные последствия, в том числе и для организма, к которым может привести использование обсуждаемых на сайте приборов.
Начнём с наиболее простого – как сделать своими руками кардиограф. Далее разовьём данную схему до энцефалографа. Итак.
Электрокардиограф
Электрокардиограф (или кардиограф) состоит из двух частей – аналоговой и цифровой (см. рис.1). Аналоговая часть представляет собой всего лишь усилитель с коэффициентом усиления около 1000 – он усиливает изменяющуюся во времени разность потенциалов на теле человека (которая и есть в нашем случае, по сути, электрокардиограмма) примерно в 1000 раз. Далее усиленный сигнал поступает на цифровую часть, где сигнал оцифровывается (см. про то, что такое оцифровка здесь) и подаётся в цифровом виде на компьютер (у нас цифровой сигнал подаётся по радиоканалу блютуз – см. ниже).
рис.1
В итоге компьютер при помощи специальной программы расшифровывает полученный от цифровой части (у нас она реализована на основе платы Arduino – см. ниже) цифровой сигнал и отрисовывает на экране монитора график электрокардиограммы (ЭКГ).
Цифровая часть схемы
Для упрощения изготовления прибора в качестве цифровой части возьмем плату типа Arduno (Ардуино) c блютузом на борту. Например, в качестве такой платы можно взять Iteaduino BT v1.1. Цена этого устройства около 1200 руб. (см., например, здесь). При этом особенность нашей системы в том, что цифровой сигнал будет передаваться на компьютер обязательно по каналу блютуз т.е. по радиоканалу. Таким образом, не будет никакой гальванической связи между компьютером и нашим прибором, а значит и телом пациента. Это обеспечивает отсутствие возможности попадания на тело пациента опасных напряжений, например, с корпуса компьютера, которые могут достигать до 110В (см., например, здесь). Поэтому ещё раз подчеркнём, в целях электробезопасности при подключении прибора к телу пациента сигнал на компьютер должен передаваться только по блютуз, эту возможность и предоставляет выбранная нами плата. Таким образом, тело пациента будет подключено к прибору, питаемому от 9В и никоем образом не связанным с источниками питания с опасным уровнем напряжения.
В итоге разработка цифровой части сводится лишь к настройке канала блютуз нашей платы, «заливке» на плату соответствующей программы (скетча) – эта программа “объясняет” Arduino с какого разъёма плата будет читать сигнал (у нас с разъёма A0) чтобы оцифровать и в каком формате этот оцифрованный сигнал будет передаваться на компьютер. Ещё будет нужна компьютерная программа, которая читает и расшифровывает данные, поставляемые платой на компьютер – на один из его программных com-портов. В итоге в железе цифровая часть проекта у нас выглядит уже вот так:
рис.2
Также целесообразно подключать его аналоговую часть к Arduino через стабилитроны и диод Шоттки – вот так:
рис.3
Здесь диод Шоттки (BAT85) и стабилитроны (BZX55C2V4) – для защиты от неправильной полярности и превышения сигналом 5В на входе Arduino. Они нужны как минимум на этапе настройки схемы, когда можно перепутать плюс с минусом и т.д. и в итоге спалить достаточно недешёвую Arduino. Также эти диоды в данном проекте важны не только с этой точки зрения (см. ниже). Если кратко, то смысл этой защиты в следующем. Диод Шоттки (BAT85), если аналоговая часть схемы пытается подать между A0 и GND положительное напряжение, имеет сопротивление близкое к бесконечности, тогда на A0 и GND благополучно поступает это самое положительное напряжение (положительная разность потенциалов) от аналоговой части. Если же аналоговая часть попытается каким-то образом подать на A0 и GND отрицательное напряжение, то диод Шоттки превращается в закоротку – резистор с сопротивлением близким к нулю. В итоге весь ток течёт через диод Шоттки, а напряжение между A0 и GND стремится к нулю. Два последовательно включённых стабилитрона (BZX55C2V4) в данной схеме, если на них подано положительное напряжение, как и диод Шоттки имеют сопротивление близкое к бесконечности, но только если это напряжение в пределах 4.5В. Если же аналоговая часть схемы попытается каким-то образом подать на A0 и GND напряжение больше 4.5В, то эти два диода также превращаются в резисторы с малым сопротивлением – практически весь ток течёт через них и таким образом напряжение между точками A0 и GND не превышает 4.5В. Подробнее о защитных диодах также можно посмотреть здесь. Про настройку блютуза, «заливку» скетчей в Arduino и разных способах просмотра полученных данных на компьютере см. здесь. Таким образом, то, что заняло бы времени у начинающего радиолюбителя на изготовление и настройку цифровой части минимум от 1-2 месяцев у нас, благодаря использованию Arduino, занимает максимум 3-7 дней.
Аналоговая часть схемы
Теперь переходим к аналоговой части нашей схемы. Аналоговая часть строится
Комментарии
Мария
09/09/13 16:20
Здравствуйте! Спасибо большое за информацию, которой Вы делитесь здесь. Я собираюсь сделать электроэнцефалограф, и нигде не могу найти Iteaduino BT V1.1 (ATmega 328). Скажите, можно ли вместо него использовать Iteaduino BT V1.0 (ATmega 328) или другие микроконтроллеры. И, если можно, то какие или чем это чревато. Заранее спасибо!
Константин
09/09/13 18:17
Мария
10/09/13 15:11
Спасибо огромное! Вы мне очень помогли! Если я разработаю на базе Вашего ЭЭГ что-нибудь стоящее для науки, то я буду обязана этим Вам))
Мария
10/09/13 16:00
Константин
10/09/13 20:37
Приятно, конечно, что информация на этом сайте полезна и востребована. Тем более для науки :-). Что касается TL431, то если будете собирать всё сначала на основе платы беспаечного монтажа (кстати, рекомендую начинать именно так), то без сомнения удобнее будет в корпусе TO92 – например, вот эта: http://www.chipdip.ru/product/tl431ilp/ Ну, а если сразу собираетесь паять, то могу сказать, что планарные элементы (там, где в ваших ссылках тип корпуса SO, SOT) – это довольно мелкие вещи (в даташите можете посмотреть размеры) и без соответствующего опыта паять их, например, обычным паяльником, довольно трудно (хотя, если почитать Интернет, потренироваться, то и это не такая уж большая проблема). Обычно это паяется при помощи паяльной станции. Так что и здесь рекомендую в корпусе TO92.
Сергей
24/01/14 18:03
Константин
24/01/14 20:54
earth_man
30/04/15 17:20
Здравствуйте Константин, спасибо большое за сайт. Я никогда прежде не занимался электроникой и познания мои в этой области стремятся к нулю. Скажите, насколько возможно создать то что вы предлагаете в вашей инструкции с нулевым багажом знаний по теме? Что посоветуете почитать чтобы более мягко и без стресса войти в тему и сделать ЭКГ, ЭЭГ самому?
Константин
30/04/15 18:44
earth_man
30/04/15 21:54
Спасибо большое за вдохновляющий ответ. Нужно будет почитать физику за восьмой клас:), хотелось бы получше разобраться с теоретической частью, прежде чем начинать любые манипуляции.
Ринат
16/01/16 1:34
Iteaduino BT v1.1. Интернет магазин: http://devicter.ru/goods/Iteaduino-BT-with-ATMega328P Я не смог найти. Может под другим имением, но и по картинке тоже нет.
Константин
16/01/16 9:35
Здравствуйте, Ринат! Да, посмотрел, тоже сейчас у них эту плату не обнаружил, хотя раньше покупал именно у них. Тут либо придётся искать данную плату в другом месте, либо можно купить стандартную Arduino, модуль блютуза HC-05 и подключить его к плате. В интернете есть как это сделать. Можно также в том же магазине http://devicter.ru/ купить Iteaduino IBoard V1.1 (ATmega 328) (http://devicter.ru/goods/Iteaduino-Iboard) и к ней блютуз или даже wi-fi модуль серии XBee (эта плата как раз их поддерживает). Серия XBee в этом магазине здесь: http://devicter.ru/catalog/BeeSeries
Ринат
16/01/16 20:53
Константин спасибо. Попробую поискать teaduino BT v1.1. Так как, схему придётся изменять, а я в первые в такие дебри лезу. Давно хотел иметь энцефалогрраф.
Анастасия
29/09/18 0:52
Здравствуйте, Константин. Посоветуйте, пожалуйста, где в Украине найти плату Iteaduino BT V1.1 ATmega 328.
Константин
29/09/18 12:44
Светлана
18/01/21 20:24
Здравствуйте, пишу уже в 2021! Это устройство меня очень заинтересовало. Константин, не могли бы вы подсказать конкретнее, какие именно должны быть выходные параметры при сборке, как вы уже указывали выше в комментариях, по шагам. С питанием еще понятно, но далее повторителя догадаться уже сложнее. Буду благодарна за ответ и наставления!
Константин
20/01/21 8:16
Самодельный кардиограф (несколько вариантов)
max68.2011
Посетитель
Позволяет записать кардиограмму в файл.bin
а так-же воспроизвести в реальном времени результаты сохраненных замеров.
К сожалению не нашел программ для расшифровки кардиограмм
и не знаю как правильно сохранить файл, поэтому это просто *.bin файл.
Может пригодиться для выявления редких отклонений в ЭКГ,
которые бывает трудно зафиксировать при редких
и коротких посещениях кабинета ЭКГ
или просто для наблюдения за сердцем если у вас есть знакомый кардиолог(.
Посмотреть список литературы по этой теме и добавить свою информацию
можно на форуме в теме Какие книги посоветуете?
Узнать что делать с полученой кардиограммой
и предложить свой вариант можно на форуме
в теме Кардиограмма получена. Что дальше?
Там же на форуме можно посмотреть и добавить свои Ссылки на сайты о кардиологии и кардиографах
Подключать электроды будем по самой простой схеме:
Электроды для начала могут быть самодельными, но, учитывая сложность задачи, желательно со временем обзавестись промышленными из специальных материалов.
Вот, например один из множества вариантов:
Disposable ECG Electrode is Ag or AgCl electrode, which consist of base lining material, conductive gel, and electrode buckle.
Так как усилители не имеют гальваноразвязки, то все эксперименты в целях безопасности и для снижения помех необходимо проводить с ноутбуком не подключенным к сети 220В.
Программа ECG.llb Для версии LabVIEW5.0
В моем случае используется модуль KARDIO от USB_осциллографа.
Схема и конструкция выглядят так:
R6+R7+R8 = 100-400 Ом (150)
max68.2011
Посетитель
Файл платы кардиоусилителя в формате JPG: CARDIO_JPG.zip в формате PCB2004: Kardio_PCB2004.zip
Все объединено в один корпус для компактности. Если в этом нет необходимости можно просто использовать модуль осциллографа
в паре с модулем кардиоусилителя. Или сделать свое устройство передающее данные в указаном в модуле осциллографа формате.
Программа корректор. Korrektor.llb
Позволяет выровнять кардиограмму :
Выглядеть этот вариант может так:
2. Кардиограф на базе звуковой USB платы
ECG of the USB sound card
Верся для USB sund card на базе микросхемы для SKYPE телефонов AP-T6911 или любой другой, позволяющей измерять напряжение постоянного тока:
1. Приобретаем за 2-10$ нечто подобное :
Выглядит это примерно так:
при условии что там стоит микросхема SKYPE телефона AP-TP6911_02EV10
Предупреждение: модели меняются постоянно.
Хороших точностных показателей не ждите. Особенно стабильности 0.
max68.2011
Посетитель
В сборе это выглядит так:
5. Для отладки аппаратуры можно имитировать сигнал с помощью ГЕНЕРАТОРА-ИМИТАТОРА загрузив в него файл образца одного периода сигнала
например такой: ECG_1_282_76_9.dat (zip) (кардиосигнал с частотой 76,9 ударов/мин + 50Гц помеха)
Это обычный текстовый файл но, т.к. генератор предназначен для имитации сигналов датчиков 4-х тактного двигателя ось Х должна быть от 0 до 720 град,
а частоту ударов сердца нужно задавать в генераторе в оборотах в минуту
. Обязательно 76.9 иначе сигнал помехи будет не равен 50 Гц.
По соседнему каналу рекомендую пустить прямоугольный сигнал со скважностью около 5% для контроля искажений.
К сожалению USB и SOUND варианты создают *.bin файлы с разной частотой оцифровки сигнала.
Если в ECG_USB_SND.llb это можно исправить в программе то ЕХЕ вариант прошит жестко на 48000/32 выборок в сек.
В случае работы со штатной звуковой платой вам придется найти переходные конденсаторы в канале микрофонного входа
(обычно 1 на входе и 1 в усилителе микрофона) и увеличить их емкость до десятков микрофарад.
3. Кардиограф на базе bluetooth гарнитуры с микросхемой BC31A223A (От телефонов Sony Ericsson):
1. Подготовка гарнитуры.
Заключается в отключении микрофона путем удаления конденсатора C10, вывода на разъем дифф входа
микрофонного усилителя микросхемы ( MIC_N и MIC_P ) и напряжения VOUT (2,7V) для питания подключаемых к разему усилителей.
Как это было сделано показано на рисунке ниже.
Телефон гарнитуры решил пока не трогать для того чтобы использовать по его прямому назначению.
2. Установка драйверов BLUETOOTH имеющих поддержку гарнитуры.
В моем случае не подошли следующие драйвера:
Widcomm — он не распознал оба моих USB-Bluetooth устройства
Вопрос достаточно проблемный поэтому кому-то возможно придется решать его по другому.
После этого можно начинать эксперименты.
На данный момент имеются следующие результаты:
Максимальный входной сигнал имеет размах +/- 32мВ при 15 битах разрешения и частотой оцифровки 8кГц что позволяет снимать кардиограмму
при подключении электродов через разделительный конденсатор к контактам MIC_N и MIC_P выведеным на внешний разъем.
Пример картинок приведены на рисунке.
Связь оказалась достаточно некачественной. Довольно часто проходят помехи или разрывы потока, что проявляется в виде импульсной помехи.
Так что мониторирование ЭКГ по Холтеру через Bluetooth-гарнитуру, похоже, невозможно.
После обычной процедуры подключения гарнитуры кардиограмму можно записать удобным вам способом в *.wav файл
для дальнейшей обработки или воспользоваться приведенной выше программой Кардиографа на базе звуковой USB платы
Задачи решаемые устройством(пока):
1.Оцифровка сигнала 12-битным АЦП (2 байта) с частотой 1кГц
2.Отключаемая фильтрация сигнала (LP_cutoff = 30Hz или выше)
3.Непрерывная отправка 2-х байтных отсчетов АЦП в COM-порт (побайтно: младший-старший пакетами по 64байта).
Если совсем не хочется делать свою аналоговую часть, то можно обойтись и тем что есть в PSoC :
От себя придется добавить 3 резистора и 2 конденсатора.
Выглядеть может так:
Можно использовать указаную выше гляделку, тлоько масштаб по оси х будет неверным.
Реальный сигнал, снятый на человеке выглядит так:
Хотелось бы сделать индикацию на LCD и запись на SD-card, но, мне это пока не по зубам.
Устройство предназначено для облегчения отладки устройств
путем создания сигналов, имитирующих реальный сигнал датчиков.
В данном варианте зто кардиосигнал.
Конструкция явно избыточная, но это делалось для освоения работы с