آموزش آردوینوپروژه های آردوینو

ساخت الکتروکاردیوگرام ECG قلب با AD8232 و آردوینو

علم پزشکی DIY می‌تواند به طرز شگفت‌انگیزی سرگرم‌کننده باشد. فقط با چند قطعه ساده و در دسترس، می‌توانید شروع به بررسی سیگنال‌های الکتریکی بسیار کوچکی کنید که بدن شما را در حال کار نگه می‌دارند. در حالی که پزشکان و بیمارستان‌ها از این داده‌ها برای پایش سلامت استفاده می‌کنند، علاقه‌مندان به الکترونیک و سازندگان خلاق می‌توانند آزادانه آزمایش کنند، کشف کنند و به شیوه‌ای خلاقانه یاد بگیرند.

یکی از بهترین نقاط شروع، قلب است. ماژول مانیتور ضربان قلب AD8232 این امکان را فراهم می‌کند که سیگنال‌های الکتریکی تولیدشده توسط قلب در هر ضربان را به‌راحتی تشخیص داده و مشاهده کنید.

در این آموزش، یاد می‌گیرید چگونه ماژول AD8232 را به آردوینو متصل کنید، یک مانیتور ECG (الکتروکاردیوگرام) ساده بسازید و ضربان قلب خودتان را به‌صورت زنده مشاهده کنید.

درک سیگنال ECG

قبل از شروع، مهم است بدانیم دقیقاً قصد اندازه‌گیری چه چیزی را داریم. سیگنال‌های الکتریکی تولیدشده توسط قلب شما الگوی بسیار مشخصی دارند و آشنایی با اصول اولیه این الگو کمک می‌کند بهتر متوجه شوید که ماژول AD8232 چه چیزی را ثبت می‌کند.

بیایید نگاهی سریع به نحوه عملکرد قلب بیندازیم.

قلب شما چهار حفره اصلی دارد: دهلیز راست و دهلیز چپ در قسمت بالا، و بطن راست و بطن چپ در قسمت پایین.

درک سیگنال ECG

سمت راست قلب (دهلیز راست و بطن راست) خونی را جمع‌آوری می‌کند که قبلاً اکسیژن را به بدن رسانده و اکنون کم‌اکسیژن است. این خون کم‌اکسیژن به ریه‌ها فرستاده می‌شود تا دوباره اکسیژن دریافت کند. سمت چپ قلب (دهلیز چپ و بطن چپ) این خون تازه اکسیژن‌دار را از ریه‌ها دریافت کرده و آن را به سراسر بدن پمپاژ می‌کند. پس از مصرف اکسیژن توسط سلول‌ها، خون دوباره به سمت راست قلب بازمی‌گردد و این چرخه از نو آغاز می‌شود.

ضربان قلب با گروه ویژه‌ای از سلول‌ها در دهلیز راست به نام گره سینوسی-دهلیزی (SA Node) آغاز می‌شود. این بخش به‌عنوان ضربان‌ساز طبیعی قلب شناخته می‌شود. این گره یک سیگنال الکتریکی ارسال می‌کند که ضربان قلب را فعال کرده و ریتم آن را تنظیم می‌کند.

در ادامه می‌بینیم هر بخش از سیگنال الکتریکی چگونه با یک موج یا بخش مشخص در نمودار ECG مرتبط است:

موج P

زمانی که دهلیزها از خون پر می‌شوند، گره SA فعال می‌شود. این سیگنال الکتریکی در دهلیزها پخش شده و باعث انقباض آن‌ها می‌شود تا خون را به سمت بطن‌ها هدایت کنند. در نمودار ECG، این رویداد الکتریکی به‌صورت موج P نمایش داده می‌شود.

موج P

بخش PR

بلافاصله پس از موج P، بخش PR قرار دارد. این تأخیر کوتاه به بطن‌ها زمان کافی می‌دهد تا قبل از انقباض، به‌طور کامل از خون پر شوند. در این فاصله، سیگنال الکتریکی از دهلیزها به مسیر ویژه‌ای به نام گره دهلیزی-بطنی (AV Node) منتقل می‌شود.

بخش PR

کمپلکس QRS

پس از رسیدن سیگنال به گره AV، جریان الکتریکی از طریق مجموعه‌ای از رشته‌های عصبی به نام دسته هیس (Bundle of His) ادامه می‌یابد که به شاخه‌های راست و چپ تقسیم می‌شود. این شاخه‌ها سیگنال را به سمت پایین قلب (نوک یا Apex) هدایت می‌کنند. این فرآیند باعث انقباض بطن‌ها می‌شود و خون را از قلب خارج می‌کند—به سمت ریه‌ها (از بطن راست) و به سمت سایر بخش‌های بدن (از بطن چپ). این رویداد الکتریکی قوی در نمودار ECG به شکل یک قله تیز به نام کمپلکس QRS دیده می‌شود.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

کمپلکس QRS

بخش ST

در طول بخش ST، خون به‌طور فعال از قلب به بیرون پمپاژ می‌شود.

بخش ST

موج T

پس از آن‌که بطن‌ها خون را پمپاژ کردند، شروع به شل شدن و بازگشت به حالت استراحت می‌کنند. این بخش از سیگنال الکتریکی در نمودار ECG به‌صورت موج T نمایش داده می‌شود. در پایان موج T، بطن‌ها کاملاً در حالت استراحت قرار گرفته‌اند و قلب آماده است تا چرخه کامل را دوباره آغاز کند.

موج T

معرفی ماژول ECG AD8232

حالا که درک اولیه‌ای از سیگنال ECG و معنای آن دارید، بیایید نگاهی دقیق‌تر به سخت‌افزاری بیندازیم که این پروژه را ممکن می‌سازد.

ماژول AD8232 به‌طور خاص برای تشخیص و پردازش فعالیت الکتریکی قلب طراحی شده است.

ماژول AD8232 این سیگنال‌ها را شناسایی می‌کند، نویزهای محیطی را حذف می‌کند و آن‌ها را تقویت می‌کند تا تحلیلشان ساده‌تر شود. سپس سیگنال پاک‌شده و تقویت‌شده را به صورت ولتاژ آنالوگ خروجی می‌دهد تا ADC یک میکروکنترلر بتواند آن را بخواند. پس از تبدیل به شکل دیجیتال، این داده‌ها می‌توانند برای ایجاد ECG یا الکتروکاردیوگرام استفاده شوند.

چیپ AD8232

در مرکز ماژول، چیپ AD8232 قرار دارد. یک فرانت‌اند ECG تک‌ سیمه با مصرف کم، ساخته شرکت Analog Devices.

معرفی ماژول ECG AD8232

این چیپ دارای ویژگی‌های بسیاری است که برای ارائه اندازه‌گیری دقیق ECG لازم هستند:

  • تقویت ابزاری (Instrumentation Amplification): سیگنال‌های بیوپتانسیل بسیار کوچک را تقویت می‌کند. این سیگنال‌ها که در میکروولت یا میلی‌ولت اندازه‌گیری می‌شوند، نیاز به تقویت قابل توجه دارند تا توسط مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر خوانده شوند. AD8232 تقویت سیگنال بالایی برای این منظور ارائه می‌دهد.
  • فیلترینگ: سیگنال‌های ECG در معرض انواع نویز، از جمله نویز ناشی از حرکت و تداخل فرکانس شبکه (مثلاً نویز 50/60 هرتز از خطوط برق) هستند. AD8232 شامل یک فیلتر بالاگذر دو قطبی قابل تنظیم برای حذف نویزهای حرکتی و پتانسیل نیم‌سلول از الکترودها و یک فیلتر پایین‌گذر سه قطبی قابل تنظیم برای حذف نویز اضافی است.
  • درایو پا راست (Right Leg Drive – RLD): برای بهبود حذف نویز حالت مشترک، این چیپ شامل تقویت‌کننده RLD است. این مدار ولتاژ حالت مشترک بدن را به یک پتانسیل مرجع (معمولاً زمین مجازی ایجادشده توسط خود چیپ) هدایت می‌کند و بدین ترتیب تداخل کاهش می‌یابد.
  • بازیابی سریع (Fast Restore): AD8232 دارای عملکرد بازیابی سریع است که اجازه می‌دهد پس از تغییر ناگهانی سیگنال که ممکن است آمپلی‌فایر را «railing» کند، سریعاً بازگردد، مثلاً زمانی که یک الکترود جدا می‌شود.

تمام این ویژگی‌ها اجازه می‌دهند ماژول AD8232 در طیف گسترده‌ای از کاربردهای ECG و مانیتور ضربان قلب مرتبط با سلامت، از جمله مانیتورهای فعالیت و ضربان قلب، ECG قابل حمل، دستگاه‌های پوشیدنی و پایش از راه دور، استفاده شود.

تشخیص جدا شدن لید (Lead-Off Detection)

یکی از ویژگی‌های بسیار مهم، توانایی تشخیص زمانی است که یکی از پدهای الکترود (لید) به‌درستی متصل نشده باشد. چیپ دارای دو پین ویژه به نام‌های LO+ و LO− است که وقتی یکی یا هر دو لید متصل نیستند، اطلاع می‌دهند. این مهم است زیرا یک لید گم‌شده یا شل می‌تواند منجر به داده‌های نادرست یا عدم وجود داده شود.

تشخیص جدا شدن لید (Lead-Off Detection)

حالت کم‌مصرف

چیپ AD8232 دارای حالت مصرف کم است که با کشیدن پین SDN (Shutdown) به سطح منطقی LOW فعال می‌شود و مصرف انرژی را به‌طور قابل توجهی کاهش می‌دهد. این ویژگی برای دستگاه‌های باتری‌خور مانند مانیتورهای قابل حمل یا دستبندهای ورزشی ایده‌آل است.

اگر از ویژگی تشخیص جدا شدن لید استفاده کنید، می‌توانید میکروکنترلر را طوری برنامه‌ریزی کنید که همزمان به حالت آماده‌به‌کار برود و انرژی بیشتری صرفه‌جویی شود.

کابل سنسور و الکترودهای ECG

ماژول با کابلی ارائه می‌شود که یک انتهای آن جک صوتی 3.5 میلی‌متری استاندارد و انتهای دیگر آن سه کانکتور کوچک برای اتصال به الکترودهای ECG دارد. این الکترودها پدهای چسبنده کوچک هستند. پس از جدا کردن پشت چسب، آن‌ها را به بدن خود می‌چسبانید و کانکتورها را روی آن‌ها متصل می‌کنید.

کابل سنسور و الکترودهای ECG

به یاد داشته باشید که الکترودها معمولاً فقط برای یک یا دو بار استفاده مناسب هستند، زیرا پس از جدا شدن، چسبندگی و توانایی هدایت الکتریکی خود را از دست می‌دهند.

سیگنال‌های الکتریکی قلب بسیار ضعیف هستند، بنابراین قرار دادن صحیح الکترودها برای دریافت خوانش دقیق حیاتی است.

کانکتور جک 3.5 میلی‌متری

ماژول دارای کانکتور جک 3.5 میلی‌متری است که کابل سنسور به آن متصل می‌شود.

LED نشانگر و جامپر

ماژول همچنین دارای یک چراغ LED کوچک است که با ضربان قلب شما چشمک می‌زند. این روش ساده اما بسیار مفید برای دیدن سریع عملکرد دستگاه و دریافت سیگنال است.

یک جامپر لحیم‌کاری روی ماژول وجود دارد که به شما امکان می‌دهد این LED را روشن یا خاموش کنید. این برای پروژه‌هایی که با باتری کار می‌کنند، جایی که هر مقدار انرژی اهمیت دارد، مفید است تا LED انرژی مصرف نکند.

پین اوت ماژول AD8232

ماژول AD8232 نه پین از چیپ را به بیرون هدایت می‌کند.

پین اوت ماژول AD8232

  • GND پین زمین است.
  • 3.3V پین تغذیه؛ آن را به منبع تغذیه 3.3 ولت متصل کنید.
  • OUTPUT پین خروجی آنالوگ است که سیگوصل کردن ماژول AD8232 به آردوینووصل کردن ماژول AD8232 به آردوینونال قلب تقویت و فیلتر شده از آن خارج می‌شود. این پین را به یک ورودی آنالوگ میکروکنترلر مانند آردوینو (مثلاً پین A0) وصل کنید.
  • LO− و LO+ پین‌های لید-آف هستند. این پین‌ها اگر یک الکترود شل شود، سیگنال HIGH ارسال می‌کنند و به شما اطلاع می‌دهند که اتصال‌ها درست است.
  • SDN (Shutdown) پین ویژه‌ای است که چیپ را در حالت کم‌مصرف قرار می‌دهد. برای این کار، پین را به ولتاژ LOW بکشید.
  • RA، LA و RL پین‌های جایگزین برای اتصال سنسور یا الکترودهای سفارشی هستند. این پین‌ها به ترتیب نماینده بازوی راست، بازوی چپ و پای راست هستند و معمولاً در تنظیمات پیشرفته‌تر استفاده می‌شوند.

وصل کردن ماژول AD8232 به آردوینو

حالا بیایید ماژول AD8232 را به آردوینو متصل کنیم.

ابتدا پین 3.3V ماژول را به پین 3.3V آردوینو وصل کنید و پین GND را به یکی از پین‌های زمین آردوینو متصل کنید. سپس پین OUTPUT ماژول را به پین ورودی آنالوگ A0 روی آردوینو وصل کنید.

همچنین مفید است که پین‌های LO+ و LO− ماژول را به پین‌های 10 و 11 آردوینو متصل کنید. بدین ترتیب، وقتی الکترودها متصل نباشند، آردوینو می‌تواند لیدهای گم‌شده را شناسایی کرده و از ارسال داده‌های بی‌معنی به Serial Monitor جلوگیری کند.

وصل کردن ماژول AD8232 به آردوینو

پس از آن، طبق دیاگرام، اتصالات لازم را برقرار کنید.

نحوه قرار دادن الکترودها

پس از تکمیل سیم‌کشی، مرحله بعدی قرار دادن پدهای الکترود روی بدن است.

الکترودها سیستم نامگذاری ساده‌ای دارند: RA، LA و RL که به ترتیب نماینده بازوی راست، بازوی چپ و پای راست هستند. RA و LA به ماژول کمک می‌کنند اختلاف پتانسیل الکتریکی بین بازوی راست و بازوی چپ را اندازه‌گیری کند. RL یک نقطه مرجع برای حذف نویز فراهم می‌کند.

کابل‌ها معمولاً بر اساس رنگ‌بندی استاندارد، مطابق با مثلث اینت‌هوون (Einthoven’s triangle) هستند.

یک روش رایج، قرار دادن الکترودها روی ساعدها و پای راست است. روش دیگر، قرار دادن آن‌ها روی قفسه سینه است، به‌طوری که الکترودهای RA و LA نزدیک شانه‌ها یا قسمت بالایی قفسه سینه قرار بگیرند و الکترود RL درست بالای مفصل ران راست باشد.

نحوه قرار دادن الکترودها

ما دریافتیم که گزینه دوم خوانش‌های قوی‌تر و قابل اعتمادتری ارائه می‌دهد، زیرا سیگنال‌ها نزدیک‌تر به خود قلب ثبت می‌شوند.

کد پروژه ECG با برد Arduino

در ادامه یک اسکچ ساده آورده شده که داده‌های سیگنال قلب را از ماژول AD8232 می‌خواند و آن‌ها را در Serial Monitor چاپ می‌کند تا بتوانید در زمان واقعی تغییرات را مشاهده کنید.

هشدار: این ماژول صرفاً برای اهداف آموزشی و آزمایشی با فناوری ECG طراحی شده است. برای استفاده بالینی یا پزشکی تأیید نشده و نباید برای تشخیص یا درمان هیچ بیماری استفاده شود.

const int SENSOR_PIN = A0;
const int LO_POS_PIN = 8;
const int LO_NEG_PIN = 9;

void setup() {
  // راه‌اندازی ارتباط سریال
  Serial.begin(9600);

  // تنظیم پین‌ها برای تشخیص جدا شدن لید
  pinMode(LO_POS_PIN, INPUT);
  pinMode(LO_NEG_PIN, INPUT);
}

void loop() {
  if ((digitalRead(LO_POS_PIN) == 1) || (digitalRead(LO_NEG_PIN) == 1)) {
    Serial.println('!');
  } else {
    Serial.println(analogRead(SENSOR_PIN));
  }
  // کوتاه کردن وقفه برای جلوگیری از اشباع داده‌های سریال
  delay(1);
}

پس از آپلود این اسکچ روی آردوینو، Serial Monitor را باز کنید و مطمئن شوید که Baud Rate روی 9600 تنظیم شده است. شما باید اعداد چاپ‌شده روی صفحه را مشاهده کنید. این اعداد نشان‌دهنده سیگنال قلب هستند و با تغییر ضربان قلب تغییر می‌کنند.

نتیجه الکتروکاردیوگرام با آردوینو

برای درک بهتر سیگنال، می‌توانید از Serial Plotter در Arduino IDE استفاده کنید: مسیر Tools > Serial Plotter را دنبال کنید. در این حالت، موجی که با ضربان قلب شما حرکت می‌کند، نشان داده می‌شود و اگر الکترودها به‌درستی قرار گرفته و در حالت سکون باشید، سیگنال به شکل الگویی صاف و تکرارشونده دیده می‌شود، این همان ECG یا الکتروکاردیوگرام شماست.

آموزش ساخت دستگاه ECG با Arduino

توضیح کد

ابتدا پین‌هایی که استفاده می‌کنیم را تعریف می‌کنیم. سیگنال آنالوگ از AD8232 به پین A0 متصل است و دو پین تشخیص جدا شدن لید (LO+ و LO−) به پین‌های 10 و 11 متصل هستند.

const int SENSOR_PIN = A0;
const int LO_POS_PIN = 10;
const int LO_NEG_PIN = 11;

در تابع setup()، ابتدا Serial Monitor راه‌اندازی می‌شود. سپس پین‌های LO+ و LO− به‌صورت ورودی دیجیتال تنظیم می‌شوند تا توسط آردوینو خوانده شوند.

void setup() {
  Serial.begin(9600);
  pinMode(LO_POS_PIN, INPUT);
  pinMode(LO_NEG_PIN, INPUT);
}

در بخش loop()، ابتدا پین‌های LO+ و LO− خوانده می‌شوند. اگر هر یک از این پین‌ها HIGH باشد، به این معناست که یک الکترود شل شده یا به‌درستی به بدن متصل نیست. در این صورت، علامت ! در Serial Monitor چاپ می‌شود تا هشدار دهد. اگر همه چیز به‌درستی متصل باشد و هر دو پین LOW باشند، سیگنال آنالوگ از خروجی سنسور خوانده شده و مقدار آن در Serial Monitor چاپ می‌شود. این مقادیر نشان‌دهنده واقعی سیگنال قلب هستند. در پایان loop()، یک تأخیر کوتاه 1 میلی‌ثانیه اضافه می‌کنیم تا خروجی سریال با حجم زیاد داده سریع پر نشود.

void loop() {
  if ((digitalRead(LO_POS_PIN) == 1) || (digitalRead(LO_NEG_PIN) == 1)) {
    Serial.println('!');
  } else {
    Serial.println(analogRead(SENSOR_PIN));
  }
  delay(1);
}

دریافت یک خوانش ECG خوب

اگر نمودار ECG شما واضح یا تیز به نظر نمی‌رسد، نگران نباشید، این بسیار رایج است. ECG ها کمی نویزی هستند، به‌ویژه زیرا شما یک پالس الکتریکی بسیار کوچک از یک عضله بزرگ و پیچیده را اندازه‌گیری می‌کنید. این سیگنال‌ها بسیار ضعیف هستند و به راحتی می‌توانند تحت تأثیر نویز قرار بگیرند. اما چند راه ساده برای بهبود کیفیت سیگنال وجود دارد:

  • پدها را نزدیک قلب قرار دهید. هر چه پدها به قلب نزدیک‌تر باشند، سیگنال قوی‌تری دریافت می‌کنند.
  • جایگذاری پدها را بررسی کنید. مطمئن شوید پدهای RA و LA روی سمت صحیح بدن قرار گرفته‌اند. جایگذاری نادرست می‌تواند منجر به سیگنال ضعیف یا معکوس شود.
  • ثابت بمانید. هنگام اندازه‌گیری، حرکت نکنید. حرکت عضلات اسکلتی می‌تواند نویز ایجاد کرده و سیگنال قلب را مختل کند.
  • از پدهای تازه استفاده کنید. الکترودها پس از چند بار استفاده توانایی انتقال سیگنال را از دست می‌دهند. استفاده از پد جدید برای هر اندازه‌گیری تفاوت زیادی ایجاد می‌کند.
  • محل را تمیز کنید. قبل از چسباندن پدها، مطمئن شوید پوست تمیز و خشک است. سطح تمیز کمک می‌کند اتصال خوبی برقرار شود. موها هادی خوبی برای برق نیستند، بنابراین پدها را روی پوست صاف قرار دهید.
  • برای هر فرد تنظیم کنید. بدن هر فرد کمی متفاوت است، بنابراین ممکن است نیاز باشد جایگذاری پدها را برای بهترین سیگنال هر فرد تنظیم کنید.
3 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *