Кардиограф на основе модуля AD8232

Malusk

✩✩✩✩✩✩✩
26 Апр 2021
2
0
Добрый День! Сейчас занимаюсь написанием дипломной работы. В планах сделать кардиограф на ардуино используя модуль AD8232 и Arduino nano. Столкнулась с таком проблемой, как помехи. В идеале вывести эту кардиограмму на дисплей TFT LCD 2.4" (с его подключением тоже проблемы, просто белый экран). Вы бы могли мне помочь или проконсультировать по этой теме?
1619431706164.png
Скетч использовала этот:
void setup() {
// initialize the serial communication:
Serial.begin(9600);
pinMode(10, INPUT); // Setup for leads off detection LO +
pinMode(11, INPUT); // Setup for leads off detection LO -

}

void loop() {

if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
Serial.println('!');
}
else{
// send the value of analog input 0:
Serial.println(analogRead(A0));
}
//Wait for a bit to keep serial data from saturating
delay(1);
}
Схема подключения
1619438727084.png
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
2,956
886
Я скептически отношусь к возможностям nano по АЦП: как по точности, так и по времени преобразования. По хорошему нужно использовать внешний АЦП или делать схему, аналогичную указанной в datasheet. Кстати, скетч-то приведен, а схема подключения?
Вывод на монитор - не проблема. Но монитор должен иметь интерфейс, и это должен быть явно не HDMI или DVI, иначе на nano это не сделать.
По хорошему надо делать правильно аналоговую часть, с расчётами ФНЧ, ФВЧ, предусмотренными выбранной микросхемой, и выбранным сценарием использования.
Нужно делать хорошее аналогово-цифровое преобразование с записью на карту, например. Типовое решение есть в datasheet, но отдельных АЦП - пруд пруди! С записью на карту вполне справится nano. Как вариант: писать в серийный порт микрокомпьютера.
А уже с карты/диска микрокомпьютера визуализировать на монитор. Тут бы я использовал какой-нибудь Raspberry.
 
  • Лойс +1
Реакции: Malusk

Malusk

✩✩✩✩✩✩✩
26 Апр 2021
2
0
Избыточное цитирование
Я скептически отношусь к возможностям nano по АЦП: как по точности, так и по времени преобразования. По хорошему нужно использовать внешний АЦП или делать схему, аналогичную указанной в datasheet. Кстати, скетч-то приведен, а схема подключения?
Вывод на монитор - не проблема. Но монитор должен иметь интерфейс, и это должен быть явно не HDMI или DVI, иначе на nano это не сделать.
По хорошему надо делать правильно аналоговую часть, с расчётами ФНЧ, ФВЧ, предусмотренными выбранной микросхемой, и выбранным сценарием использования.
Нужно делать хорошее аналогово-цифровое преобразование с записью на карту, например. Типовое решение есть в datasheet, но отдельных АЦП - пруд пруди! С записью на карту вполне справится nano. Как вариант: писать в серийный порт микрокомпьютера.
А уже с карты/диска микрокомпьютера визуализировать на монитор. Тут бы я использовал какой-нибудь Raspberry.
Еще использовала Arduino Mega, результат был такой же
 

poty

★★★★★★✩
19 Фев 2020
2,956
886
@Malusk, думаю, это "птицы" одного порядка, если говорить об АЦП.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Что поздновато проснулись. Мои дипломники уже всё сдали. Там работы не на 5 минут.

Или малинка или STM там очень больших скоростей вывода на экран можно достичь.
И в даташите на эту микросхему Указан микроконтроллер с очень хорошим АЦП, а Вы на ведре с гайками хотите получить приемлемые результаты.
Причём АЦП должен быть с дифференциальным входом.
 
Изменено:

PiratFox

★★★★★✩✩
13 Фев 2020
1,694
472
Что поздновато проснулись. Мои дипломники уже всё сдали.
Хвосты, батенька, хвостыыыы. :ROFLMAO: :ROFLMAO: :ROFLMAO:
Причём АЦП должен быть с дифференциальным входом.
А вот это в яблочко. Синфазных помех как не бывало. :giggle:
 

Fleshdeck

★★★✩✩✩✩
19 Янв 2019
349
174
Киев
Для начала можно было бы использовать внешний АЦП ADS1115, очень популярный модуль, если питание хорошее он не сильно шумит
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
@PiratFox, Дело не в цене, а в качестве. А здесь именно про качество и разговор.
Для начала можно было бы использовать внешний АЦП ADS1115
Да, можно и так. У него есть возможность синфазные сигналы снимать.
 

poty

★★★★★★✩
19 Фев 2020
2,956
886
@Эдуард Анисимов, выход с микросхемы не дифференциальный. Если размещать ADC и процессор близко, то выигрыша вряд ли можно достичь, а усложнение значительное. Если далеко, то да, лучше балансным способом передать сигнал, но тогда много согласующих устройств придётся добавлять.
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,694
472
, выход с микросхемы не дифференциальный.
Правильно, выход цифровой по I2C, но при чём здесь это? Речь шла о входе АЦП...

Товарищи - господа, на самом деле мы полезли в дебри. Это жеж дипломный проект, и ничего более. По-моему, для ТС важно, чтобы с виду работоспособно было, да прошивка чтоб не совсем уродская. В общем, защитить и забыть. Смысл этого ТС в том, чтобы получить здесь бесплатные консультации, а уж если кто-нибудь ещё и схему нарисует да прошивку набросает - так совсем гуд. Или я не прав?
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
2,956
886
AD8232 не имеет I2C интерфейса. "Сигнальный выход" - аналоговый (single ended), чтобы его подключить к балансному ADC необходимо собрать балансер или применить трансформатор. Выход ADC - уже цифровой, может быть тоже балансным, но вход в МП - снова небалансный, снова нужно преобразовывать.
Про схему я спросил в первом же сообщении.
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,694
472
@poty, я про ADS1115, который тут упоминали... А вообще, напрасно мы тут мозги ломаем да распинаемся. :cry: ;)
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
выход с микросхемы не дифференциальный
Да. Попутал немного. Не внимательно посмотрел. Просто эти выходы первыми в глаза бросились. Дальше смотреть не стал.
Как обычно, поспешишь - людей насмешишь.
 

poty

★★★★★★✩
19 Фев 2020
2,956
886
@Эдуард Анисимов, сам на это "купился", как стал смотреть datasheet. В таких вещах приходится всё читать, а где время взять? :-( Хотелось помочь, думал, может, интегрированное что, с цифровым выходом, но... как до аналога дошёл, сразу понял, что дело - швах. Быстро не решить.
 

Fleshdeck

★★★✩✩✩✩
19 Янв 2019
349
174
Киев
@poty,я в смарт часах использовал специальный микроконтроллер max32664 и сенсор к нему max86141 в bga корпусах для измерения пульса и кислорода, вот там реально можно мозг сломать, а использовать аналоговый датчик с АЦП типа ads1115 очень даже простой и бюджетный вариант, к тому же ничего сложного в этом нет, а из-за высокой битности АЦП график должен быть максимально подробный
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Посмотрел материал с которого Вы начали.
Там дана информация про построение таких систем. Но сразу идёт упрощение схемы. Меня это сразу насторожило. Любое упрощение схемы ведёт к её неработоспособности или глюкам.

Микросхема AD8232, по даташиту, должна подключаться к двум АЦП, Ваша же прошивка контролирует только один выход.
Я бы пошёл по такому пути. Перевести даташит на русский с помощью, хотя бы, яндекс переводчика. Он сейчас довольно прилично переводит.
Внимательно изучить даташит и понять что там нужно оцифровывать. Уже исходя из этого писать прошивку.

Дополнительно - чтобы у плохого АЦП ибавиться от шума, отбрасываются два последних бита.
 

skynepdai

✩✩✩✩✩✩✩
9 Мар 2020
19
0
@Эдуард Анисимов, А мощностей АЦП у Esp 32 не хватит?. Ведь её можно настроить как веб сервер и отправлять данные по wi-fi на любой экран...
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
@skynepdai, Как правило АЦП встроенные в контроллер не очень высокого качества. И при точных измерениях используются внешние. Как с АЦП у Esp обстоят дела, я не знаю.
Ведь её можно настроить как веб сервер
Любой МК можно настроить как WEB сервер. Лишь бы ресурсов хватало.
 

poty

★★★★★★✩
19 Фев 2020
2,956
886
@skynepdai, очень много составляющих. Скорость измерений (это всё же прибор, который должен рисовать кривую, а не импульсы), защиту от шумов и точность (полностью согласен с
@Эдуард Анисимов, в этом плане), необходимость "нормализации", чтобы использовать полный входной диапазон АЦП...
 
Изменено:

skynepdai

✩✩✩✩✩✩✩
9 Мар 2020
19
0
@Эдуард Анисимов,На esp32 есть 2-ядерный 32-битный процессор Tensilica Xtensa LX6 с блоками памяти ROM на 448 КБ и SRAM на 520 КБ. В кристалле также расположены беспроводные технологии Wi-Fi/Bluetooth, радио-модуль, датчик Холла и сенсор температуры. И АЦП 12 бит. Я просто тоже подумываю подцепить AD8232, но у меня нет отдельного ads1115.А цену сейчас китайцы из-за нехватки сырья для процессоров и нехватки морских контейнеров взвинтили в 4 раза! Если не сложно объясните не радиоинженеру, насколько "шумнее" будет обработка сигнала с 12 битной АЦП, против 16 битной у ads1115 и есть ли возможность её подавлять программно, если подцепить 2 АЦП и их сравнивать на ошибки?
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
@skynepdai, Я мало работал с АЦП.
Могу сказать только одно. На Атмеле они никакие по сравнению с чем либо другим.
И я сталкивался с такой ситуацией в промышленной аппаратуре - Хоть практически каждый МК имеет АЦП, разработчики всё равно ставят внешний, если аппаратура должна мерять очень точно и пройти государственную сертификацию для военного применения. Думаю что это не просто так.
А самый простой метод избавится от шумов, отбросить один - два младших бита после преобразования.
 
  • Лойс +1
Реакции: skynepdai

skynepdai

✩✩✩✩✩✩✩
9 Мар 2020
19
0
@Эдуард Анисимов,Спасибо. И маленькое уточнение: отбросить два последних бита - это побитовый сдвиг вправо или обнуление последних?