Eksperymenty związane z EKG
Od dawna uważałem za interesujące rozważania o własnych systemach EKG. Szczególnie interesują mnie rozwiązania niedrogie i łatwe w konfiguracji. W tym artykule przedstawiono kilka sposobów wykorzystania tej techniki. Ale najpierw coś podstawowego:
Ze względu na bezpośredni kontakt elektrod EKG z ciałem, wszystkie elementy mogą być zasilane wyłącznie akumulatorami lub bateriami. Żadna część, tj. PC, oscyloskop, złącza USB nie mogą mieć połączenia sieciowego. Komputer może być zasilany wyłącznie baterią (laptop), wszystkie obwody nie mogą być nigdy zasilane z zasilacza. Należy zawsze brać pod uwagę, że zasilacze mogą być wadliwe i istnieje ryzyko porażenia prądem.
Poniżej znajdziemy kilka eksperymentów, które przybliżą nas do techniki EKG. Eksperymenty te nigdy nie powinny być wykorzystywane do celów diagnostycznych, a jedynie jako ciekawe projekty hobbystyczne.
Symulator EKG
Zanim podłączymy się do urządzenia EKG, zostaną opisane eksperymenty, które można wykorzystać do wygenerowania "sztucznego" EKG. Może to być przydatne do testowania komponentów zewnętrznych, takich jak oscyloskop lub szeregowego przesyłania danych EKG.
Punktem wyjścia jest mały ATTiny13, który wysyła zapisane dane EKG albo jako PWM, a tym samym wartości analogowe, albo jako wartości szeregowe do interfejsu szeregowego. Pierwszy wariant może być używany z oscylografem, drugi z programem terminala na PC i późniejszym zaprezentowaniem, np. w Excelu.
Symulator EKG z wyjściem analogowym
ATTiny13 z programem ,,ekg_sim_pwm01.bas" autonomicznie wysyła analogowe sygnały EKG bezpośrednio do np. oscylografu. Ponieważ nie ma tu kontaktu fizycznego, można użyć dowolny oscylograf z podłączeniem do sieci. Realizuje to następujący prosty obwód:
Symulator EKG z wyjściem analogowym
Symulator EKG z wyjściem szeregowym
Jeśli chce się wyświetlić symulowane dane EKG na komputerze, np. za pomocą programu EXCEL, dane mogą być przesyłane przez interfejs szeregowy. W tym celu ponownie używany jest ATTiny 13 z wewnętrznie zapisanymi wartościami EKG. Tym razem jednak przesyła je jako szeregowy strumień danych. Program ,,ekg_sim_ser01" realizuje tę funkcję. Układ wygląda wtedy tak:
Symulator EKG z wyjściem szeregowym
Aby ocenić dane szeregowe, obecne tutaj dane TTL muszą zostać najpierw przekonwertowane. Używam programu Pololu USB AVR Programmer V2.1., który oprócz interfejsu wymaganego do programowania procesorów ATMEGA/ATTiny zapewnia dodatkowy interfejs RS232 przez USB:
https://www.amazon.de/s?k=Pololu+USB-AVR+Prog...tive=6742&linkCode=ur2&tag=mikroelektronik-21
Umożliwia to przesyłanie danych szeregowych w formacie TTL do wirtualnego (tj. przez USB) interfejsu COM na komputerze PC. Używam programu hterm na PC. Podczas łączenia z komputerem PC programator Pololu udostępnia dwa nowe porty COM, które można znaleźć za pomocą menedżera urządzeń:
Pololu USB AVR Programmer v2.1 Port programowania (COM17)
Pololu USMAVR Programmer v2.1 Port szeregowy TTL (COM16)
Ten ostatni jest kanałem komunikacyjnym do szeregowej transmisji danych. W programie hterm w obszarze wprowadzania (górna część) wprowadzane są następujące wpisy:
Port "COM16" (u mnie, proszę sprawdzić w menedżerze urządzeń)
Baud "9600", Data "8", Stop "1", Parity "None"
Zaznaczenie w Ascii, Newline at "CR+LF"
Dla Save Output wybierz opcję "RAW"
Jeśli ATTiny13 jest zaprogramowany, wartości powinny przewijać się w dół zaraz po "Connect". Po kilku sekundach strumień danych można zatrzymać za pomocą "Disconnect" i zapisać za pomocą "Save Output". Plik dziennika można znaleźć w folderze "hterm" jako "output_2022-04-27_11-29-05.log" - tutaj tylko jako przykład. Plik ten można wczytać bezpośrednio do programu EXCEL, ale najpierw należy aktywować "wszystkie pliki", ponieważ nie jest to typowy plik programu EXCEL. Zaraz po wczytaniu można utworzyć wykres pliku poprzez: Wstaw -> Linia (ndiagramm), który wtedy wygląda mniej więcej tak:
Wykres EXCEL z symulatora
Mniejsze obszary można również wybrać jako dane do wykresu, tak aby na przykład pojawiły się tylko dwa "bicia serca", co wtedy wygląda lepiej:
Fragment
Teraz "prawdziwe" EKG
Podobnie jak wielu innych, autor opracował swój własny wzmacniacz EKG wiele lat temu ze sporym wysiłkiem i z mniejszym lub większym sukcesem. Teraz wszystko jest o wiele łatwiejsze. Na przykład "Sparkfun" opracował prosty moduł, który jest gotowy do użycia i umożliwia proste EKG. Istnieje możliwość dostarczenia niezbędnych kabli i samoprzylepnych elektrod. Szczegółowe instrukcje można również zobaczyć na Sparkfun. Jednak rzeczy w Sparkfun kosztują dużo (obecnie moduł 21,50 EUR, zestaw kabli 5,50 EUR, opakowanie 10 elektrod samoprzylepnych 8,95 EUR). Dostałem te same moduły z Aliexpress dużo taniej, z kompletem kabli za 3,99 EUR:
https://de.aliexpress.com/item/33007711518.ht...etail.0.0.14036368S98Z2t&gatewayAdapt=glo2deu
Nie jestem w stanie ocenić, czy to klony, czy resztki z produkcji dla Sparkfun - w każdym razie wszystkie działały dokładnie tak, jak twierdził Sparkfun. Kto może poczekać kilka tygodni na dostawę, może tutaj dużo zaoszczędzić.
Zanim zaczniemy od pierwszych eksperymentów, jeszcze jedna ważna uwaga. Moduły pracują z napięciem nominalnym 3,3 V, maksymalnie 3,6 V. Z własnego doświadczenia wiem, że wyższe napięcia są "zabójcze" dla modułów. Zasilacze i tak nie wchodzą w rachubę (patrz wyżej), ale akumulatory Li-Ion również mogą być niebezpieczne, ponieważ po pełnym naładowaniu dają do 4,2 V. Przydatne okazały się 2 baterie NiMh (maks. 3 V) lub 2 ogniwa alkaliczne (maks. 3 V). To wystarcza do prawie wszystkich kolejnych eksperymentów.
Pierwszy wariant, Heart Rate Monitor - AD8232 z oscyloskopem
Nie ma tu wiele do zrobienia, przymocowanie elektrod samoprzylepnych do ciała, włożenie wtyku do gniazda i podłączenie modułu do 3,3 V i masy poprzez 6-pinową listwę. Następnie podłączenie OUTPUT i masy do oscyloskopu. Rozmieszczenie elektrod pokazano na następnym rysunku:
Rozmieszczenie elektrod
Słowo o oscyloskopie. Używam PicoScope 3204 z oprogramowaniem PicoScope 7 T&M Early Access. Jest to oscyloskop USB, który jest zasilany przez interfejs USB laptopa. Gwarantuje to, że nie ma ryzyka porażenia prądem, gdy laptop jest zasilany z własnej baterii. Inne oscyloskopy zasilane z sieci są niebezpieczne i nie wolno ich używać.
Na oscyloskopie należy dokonać następujących ustawień:
Podstawa czasu 500ms/działka
Kanał A +- 2V napięcie przemienne (przy napięciu stałym występują ruchy krzywych w górę i w dół)
Jeśli wszystko działa, wynik wygląda tak:
W przypadku braku odpowiedniego oscyloskopu, istniała stosunkowo niedroga alternatywa, Xprotolab Plain GT-0007 firmy Gabotronics. jest to mała płytka drukowana z 2-kanałowym oscyloskopem, który przenosi oscylogramy na komputery PC i urządzenia z systemem Android za pośrednictwem połączenia USB i odpowiedniego oprogramowania. Niestety nie znalazłem ostatnio żadnego źródła dla tego urządzenia - poza japońskim https://www.elefine.jp/SHOP/XprotolabPlain.html. Jednak Gabotronics oferuje również inne oscyloskopy, niektóre nawet z wyświetlaczem.
Xprotolab Plain (zdjęcie Gabotronics)
Heart Monitor i Xprotolab-Plain
Jeśli oba komponenty zostaną pomyślnie połączone, wynik może wyglądać tak. Oprogramowanie dla komputerów PC i urządzeń z systemem Android jest trochę niedojrzałe - wymagane jest trochę manipulacji.
Kolejny poziom - szeregowa transmisja zapisów EKG
Podobnie jak w przypadku symulatora EKG, będziemy teraz przesyłać szeregowo rzeczywiste dane EKG do laptopa. Tutaj również używamy ATTiny13, aby najpierw odczytać wartości analogowe z Heart Monitor, a następnie przesłać je do komputera jako szeregowy strumień danych. Jak wyżej, warunkiem koniecznym jest programator Pololu-USB AVR V2.1 lub oczywiście podobne urządzenie, które może przesyłać dane szeregowe TTL na interfejs USB.
rzeczywiste EKG do interfejsu szeregowego
Ocena jest ponownie przeprowadzana jak powyżej przy użyciu programu terminalowego, takiego jak hterm, a następnie, na przykład, w programie Excel.
Długotrwałe zapisy EKG z OpenLog
Obserwacja EKG jest ekscytująca, jednak obserwowanie EKG staje się naprawdę interesujące, gdy można rejestrować EKG przez dłuższy czas i analizować je później. W takim przypadku pojawiają się na przykład wahania lub zaniki tętna. Znowu uwaga, że takie obserwacje nie powinny być wykorzystywane do diagnozy. Zastosowane pochodne i proste składniki nie nadają się do tego. Po pierwsze - niektóre z dotychczas stosowanych modułów i programów umożliwiają już dłuższe zapisy, jak np. opcje przechowywania różnych oscyloskopów. Jednak jest to łatwiejsze z innym bardzo prostym komponentem, również od Sparkfun:
Odradza się tanie chińskie Klony - autor miał złe doświadczenia z tymi identycznie wyglądającymi komponentami - były kompletnie niezaprogramowane i przez to nieodpowiednie. Jeśli ktoś wie jak zainstalować odpowiedni firmware - byłbym wdzięczny...
Moduł OpenLog umożliwia zapisywanie tekstu w prosty sposób (nasze wartości EKG są również tekstem w najszerszym znaczeniu) przez interfejs szeregowy w formacie TTL na karcie µSD. Można dostosować OpenLog do różnych szybkości transmisji za pomocą pliku tekstowego na karcie µS-SD - prawidłowa konfiguracja jest już ustawiona na 9600 Bd w momencie dostawy i nie trzeba nic robić. Jeśli pracowano już z innymi ustawieniami, plik tekstowy ,,config.txt" o następującej zawartości "9600,26,3,0,1,1,0" jest zapisywany na karcie µSD, dzięki czemu dane mogą być teraz zapisywane w 9600 bodów. Teraz potrzebujemy komponentu, który generuje szeregowy strumień danych z sygnału analogowego Heart Monitor. Jest to również obsługiwane przez ATTiny13:
EKG przez ATTiny13 do OpenLog
Jest jednak problem z OpenLog i dotychczasowymi komponentami. Podczas gdy Heart Monitor pracuje z maksymalnym napięciem 3,6 V, OpenLog wymaga co najmniej 3,3 V, czyli znacznie więcej niż 2 ogniwa NiMH lub alkaliczne. Pomagamy sobie dodatkowym ogniwem dla komponentów OpenLog i ATTiny 13. Jeżeli do powyższego układu jest doprowadzone zasilanie, zapis rozpoczyna się natychmiast i za każdym razem jako plik tekstowy z kolejną numeracją.
Uwaga, jest to tłumaczenie artykułu zamieszczonego przez użytkownika na niemieckiej wersji elektroda: https://www.elektroda.de/rtvforum/topic3892589.html Możesz odpowiedzieć na ten wątek, wtedy Twój post zostanie przetłumaczony autorowi tematu na język niemiecki.
Od dawna uważałem za interesujące rozważania o własnych systemach EKG. Szczególnie interesują mnie rozwiązania niedrogie i łatwe w konfiguracji. W tym artykule przedstawiono kilka sposobów wykorzystania tej techniki. Ale najpierw coś podstawowego:
Ze względu na bezpośredni kontakt elektrod EKG z ciałem, wszystkie elementy mogą być zasilane wyłącznie akumulatorami lub bateriami. Żadna część, tj. PC, oscyloskop, złącza USB nie mogą mieć połączenia sieciowego. Komputer może być zasilany wyłącznie baterią (laptop), wszystkie obwody nie mogą być nigdy zasilane z zasilacza. Należy zawsze brać pod uwagę, że zasilacze mogą być wadliwe i istnieje ryzyko porażenia prądem.
Poniżej znajdziemy kilka eksperymentów, które przybliżą nas do techniki EKG. Eksperymenty te nigdy nie powinny być wykorzystywane do celów diagnostycznych, a jedynie jako ciekawe projekty hobbystyczne.
Symulator EKG
Zanim podłączymy się do urządzenia EKG, zostaną opisane eksperymenty, które można wykorzystać do wygenerowania "sztucznego" EKG. Może to być przydatne do testowania komponentów zewnętrznych, takich jak oscyloskop lub szeregowego przesyłania danych EKG.
Punktem wyjścia jest mały ATTiny13, który wysyła zapisane dane EKG albo jako PWM, a tym samym wartości analogowe, albo jako wartości szeregowe do interfejsu szeregowego. Pierwszy wariant może być używany z oscylografem, drugi z programem terminala na PC i późniejszym zaprezentowaniem, np. w Excelu.
Symulator EKG z wyjściem analogowym
ATTiny13 z programem ,,ekg_sim_pwm01.bas" autonomicznie wysyła analogowe sygnały EKG bezpośrednio do np. oscylografu. Ponieważ nie ma tu kontaktu fizycznego, można użyć dowolny oscylograf z podłączeniem do sieci. Realizuje to następujący prosty obwód:

Symulator EKG z wyjściem analogowym
Code: vbnet
Symulator EKG z wyjściem szeregowym
Jeśli chce się wyświetlić symulowane dane EKG na komputerze, np. za pomocą programu EXCEL, dane mogą być przesyłane przez interfejs szeregowy. W tym celu ponownie używany jest ATTiny 13 z wewnętrznie zapisanymi wartościami EKG. Tym razem jednak przesyła je jako szeregowy strumień danych. Program ,,ekg_sim_ser01" realizuje tę funkcję. Układ wygląda wtedy tak:

Symulator EKG z wyjściem szeregowym
Aby ocenić dane szeregowe, obecne tutaj dane TTL muszą zostać najpierw przekonwertowane. Używam programu Pololu USB AVR Programmer V2.1., który oprócz interfejsu wymaganego do programowania procesorów ATMEGA/ATTiny zapewnia dodatkowy interfejs RS232 przez USB:
https://www.amazon.de/s?k=Pololu+USB-AVR+Prog...tive=6742&linkCode=ur2&tag=mikroelektronik-21
Umożliwia to przesyłanie danych szeregowych w formacie TTL do wirtualnego (tj. przez USB) interfejsu COM na komputerze PC. Używam programu hterm na PC. Podczas łączenia z komputerem PC programator Pololu udostępnia dwa nowe porty COM, które można znaleźć za pomocą menedżera urządzeń:
Pololu USB AVR Programmer v2.1 Port programowania (COM17)
Pololu USMAVR Programmer v2.1 Port szeregowy TTL (COM16)
Ten ostatni jest kanałem komunikacyjnym do szeregowej transmisji danych. W programie hterm w obszarze wprowadzania (górna część) wprowadzane są następujące wpisy:
Port "COM16" (u mnie, proszę sprawdzić w menedżerze urządzeń)
Baud "9600", Data "8", Stop "1", Parity "None"
Zaznaczenie w Ascii, Newline at "CR+LF"
Dla Save Output wybierz opcję "RAW"
Jeśli ATTiny13 jest zaprogramowany, wartości powinny przewijać się w dół zaraz po "Connect". Po kilku sekundach strumień danych można zatrzymać za pomocą "Disconnect" i zapisać za pomocą "Save Output". Plik dziennika można znaleźć w folderze "hterm" jako "output_2022-04-27_11-29-05.log" - tutaj tylko jako przykład. Plik ten można wczytać bezpośrednio do programu EXCEL, ale najpierw należy aktywować "wszystkie pliki", ponieważ nie jest to typowy plik programu EXCEL. Zaraz po wczytaniu można utworzyć wykres pliku poprzez: Wstaw -> Linia (ndiagramm), który wtedy wygląda mniej więcej tak:

Wykres EXCEL z symulatora
Mniejsze obszary można również wybrać jako dane do wykresu, tak aby na przykład pojawiły się tylko dwa "bicia serca", co wtedy wygląda lepiej:

Fragment
Code: vbnet
Teraz "prawdziwe" EKG
Podobnie jak wielu innych, autor opracował swój własny wzmacniacz EKG wiele lat temu ze sporym wysiłkiem i z mniejszym lub większym sukcesem. Teraz wszystko jest o wiele łatwiejsze. Na przykład "Sparkfun" opracował prosty moduł, który jest gotowy do użycia i umożliwia proste EKG. Istnieje możliwość dostarczenia niezbędnych kabli i samoprzylepnych elektrod. Szczegółowe instrukcje można również zobaczyć na Sparkfun. Jednak rzeczy w Sparkfun kosztują dużo (obecnie moduł 21,50 EUR, zestaw kabli 5,50 EUR, opakowanie 10 elektrod samoprzylepnych 8,95 EUR). Dostałem te same moduły z Aliexpress dużo taniej, z kompletem kabli za 3,99 EUR:
https://de.aliexpress.com/item/33007711518.ht...etail.0.0.14036368S98Z2t&gatewayAdapt=glo2deu
Nie jestem w stanie ocenić, czy to klony, czy resztki z produkcji dla Sparkfun - w każdym razie wszystkie działały dokładnie tak, jak twierdził Sparkfun. Kto może poczekać kilka tygodni na dostawę, może tutaj dużo zaoszczędzić.
Zanim zaczniemy od pierwszych eksperymentów, jeszcze jedna ważna uwaga. Moduły pracują z napięciem nominalnym 3,3 V, maksymalnie 3,6 V. Z własnego doświadczenia wiem, że wyższe napięcia są "zabójcze" dla modułów. Zasilacze i tak nie wchodzą w rachubę (patrz wyżej), ale akumulatory Li-Ion również mogą być niebezpieczne, ponieważ po pełnym naładowaniu dają do 4,2 V. Przydatne okazały się 2 baterie NiMh (maks. 3 V) lub 2 ogniwa alkaliczne (maks. 3 V). To wystarcza do prawie wszystkich kolejnych eksperymentów.
Pierwszy wariant, Heart Rate Monitor - AD8232 z oscyloskopem
Nie ma tu wiele do zrobienia, przymocowanie elektrod samoprzylepnych do ciała, włożenie wtyku do gniazda i podłączenie modułu do 3,3 V i masy poprzez 6-pinową listwę. Następnie podłączenie OUTPUT i masy do oscyloskopu. Rozmieszczenie elektrod pokazano na następnym rysunku:

Rozmieszczenie elektrod
Słowo o oscyloskopie. Używam PicoScope 3204 z oprogramowaniem PicoScope 7 T&M Early Access. Jest to oscyloskop USB, który jest zasilany przez interfejs USB laptopa. Gwarantuje to, że nie ma ryzyka porażenia prądem, gdy laptop jest zasilany z własnej baterii. Inne oscyloskopy zasilane z sieci są niebezpieczne i nie wolno ich używać.
Na oscyloskopie należy dokonać następujących ustawień:
Podstawa czasu 500ms/działka
Kanał A +- 2V napięcie przemienne (przy napięciu stałym występują ruchy krzywych w górę i w dół)
Jeśli wszystko działa, wynik wygląda tak:
W przypadku braku odpowiedniego oscyloskopu, istniała stosunkowo niedroga alternatywa, Xprotolab Plain GT-0007 firmy Gabotronics. jest to mała płytka drukowana z 2-kanałowym oscyloskopem, który przenosi oscylogramy na komputery PC i urządzenia z systemem Android za pośrednictwem połączenia USB i odpowiedniego oprogramowania. Niestety nie znalazłem ostatnio żadnego źródła dla tego urządzenia - poza japońskim https://www.elefine.jp/SHOP/XprotolabPlain.html. Jednak Gabotronics oferuje również inne oscyloskopy, niektóre nawet z wyświetlaczem.

Xprotolab Plain (zdjęcie Gabotronics)

Heart Monitor i Xprotolab-Plain
Jeśli oba komponenty zostaną pomyślnie połączone, wynik może wyglądać tak. Oprogramowanie dla komputerów PC i urządzeń z systemem Android jest trochę niedojrzałe - wymagane jest trochę manipulacji.
Kolejny poziom - szeregowa transmisja zapisów EKG
Podobnie jak w przypadku symulatora EKG, będziemy teraz przesyłać szeregowo rzeczywiste dane EKG do laptopa. Tutaj również używamy ATTiny13, aby najpierw odczytać wartości analogowe z Heart Monitor, a następnie przesłać je do komputera jako szeregowy strumień danych. Jak wyżej, warunkiem koniecznym jest programator Pololu-USB AVR V2.1 lub oczywiście podobne urządzenie, które może przesyłać dane szeregowe TTL na interfejs USB.

rzeczywiste EKG do interfejsu szeregowego
Ocena jest ponownie przeprowadzana jak powyżej przy użyciu programu terminalowego, takiego jak hterm, a następnie, na przykład, w programie Excel.
Długotrwałe zapisy EKG z OpenLog
Obserwacja EKG jest ekscytująca, jednak obserwowanie EKG staje się naprawdę interesujące, gdy można rejestrować EKG przez dłuższy czas i analizować je później. W takim przypadku pojawiają się na przykład wahania lub zaniki tętna. Znowu uwaga, że takie obserwacje nie powinny być wykorzystywane do diagnozy. Zastosowane pochodne i proste składniki nie nadają się do tego. Po pierwsze - niektóre z dotychczas stosowanych modułów i programów umożliwiają już dłuższe zapisy, jak np. opcje przechowywania różnych oscyloskopów. Jednak jest to łatwiejsze z innym bardzo prostym komponentem, również od Sparkfun:
Odradza się tanie chińskie Klony - autor miał złe doświadczenia z tymi identycznie wyglądającymi komponentami - były kompletnie niezaprogramowane i przez to nieodpowiednie. Jeśli ktoś wie jak zainstalować odpowiedni firmware - byłbym wdzięczny...
Moduł OpenLog umożliwia zapisywanie tekstu w prosty sposób (nasze wartości EKG są również tekstem w najszerszym znaczeniu) przez interfejs szeregowy w formacie TTL na karcie µSD. Można dostosować OpenLog do różnych szybkości transmisji za pomocą pliku tekstowego na karcie µS-SD - prawidłowa konfiguracja jest już ustawiona na 9600 Bd w momencie dostawy i nie trzeba nic robić. Jeśli pracowano już z innymi ustawieniami, plik tekstowy ,,config.txt" o następującej zawartości "9600,26,3,0,1,1,0" jest zapisywany na karcie µSD, dzięki czemu dane mogą być teraz zapisywane w 9600 bodów. Teraz potrzebujemy komponentu, który generuje szeregowy strumień danych z sygnału analogowego Heart Monitor. Jest to również obsługiwane przez ATTiny13:

EKG przez ATTiny13 do OpenLog
Code: vbnet
Jest jednak problem z OpenLog i dotychczasowymi komponentami. Podczas gdy Heart Monitor pracuje z maksymalnym napięciem 3,6 V, OpenLog wymaga co najmniej 3,3 V, czyli znacznie więcej niż 2 ogniwa NiMH lub alkaliczne. Pomagamy sobie dodatkowym ogniwem dla komponentów OpenLog i ATTiny 13. Jeżeli do powyższego układu jest doprowadzone zasilanie, zapis rozpoczyna się natychmiast i za każdym razem jako plik tekstowy z kolejną numeracją.
Uwaga, jest to tłumaczenie artykułu zamieszczonego przez użytkownika na niemieckiej wersji elektroda: https://www.elektroda.de/rtvforum/topic3892589.html Możesz odpowiedzieć na ten wątek, wtedy Twój post zostanie przetłumaczony autorowi tematu na język niemiecki.
Cool? Ranking DIY