هدف ما از انجام این پروژه چیست؟
هدف این پروژه، اتصال و استفاده از ماژول AD8232 توسط آردوینو میباشد که میتوان از آن برای اندازهگیری و پایش سیگنالهای زیستی بدن انسان مانند ECG استفاده کرد. این ماژول قادر است سیگنالهای زیستی با دقت بالا را تشخیص داده و به صورت دیجیتال به سیستم منتقل کند، که آن را برای کاربردهایی مانند مانیتورینگ قلب، سیستمهای پزشکی پوشیدنی و تحقیقات بیولوژیکی مناسب میسازد. کاربران میتوانند با خواندن مقادیر این ماژول، سیستمهایی توسعه دهند که به تغییرات وضعیت سلامتی واکنش نشان داده و در نتیجه دقت و قابلیت اطمینان مانیتورینگ زیستی را بهبود بخشند.
در این آموزش چه چیزهایی یاد میگیریم؟
- چگونه ماژول AD8232 را به آردوینو وصل کنید.
- کتابخانهای را برای استفاده با آردوینو تغییر دهید و با نحوه انتقال دادهها در سیگنالهای زیستی آشنا شوید.
- چگونه سیگنالهای ECG را بخوانید و این دادهها را برای کاربردهای واقعی مانند مانیتورینگ سلامت استفاده کنید.
- پروژههایی مثل سیستمهای مانیتورینگ قلب، دستگاههای پوشیدنی و تحقیقات زیستی را با این ماژول اجرا کنید و مهارتهای عملی برای ساخت سیستمهای دقیق و قابل اعتماد در حوزه پزشکی یاد بگیرید.
- این آموزش به شما کمک میکند ماژول را به درستی راهاندازی کرده و دادههای زیستی را به صورت لحظهای با آردوینو پردازش و نمایش دهید.
برای انجام این پروژه به چه چیزهایی نیاز داریم؟
همانطور که احتمالا میدانید برای انجام این پروژه به سخت افزارها و نرم افزارهایی نیاز داریم. عناوین این سخت افزارها و نرم افزارها در جدول زیر در اختیارتان قرار داده شده که میتوانید با کلیک روی هرکدام از آنها، آنها را تهیه/دانلود کنید و برای شروع آماده شوید.
سخت افزارهای مورد نیاز
|
نرم افزارهای مورد نیاز
|
---|---|
Arduino UNO
|
ابتدا مانند تصویر زیر ماژول GebraBit AD8232 را به صورت زیر به آردوینو متصل می کنیم:

رنگ
|
AD8232
|
Arduino
|
---|---|---|
نارنجی
|
OUT
|
A3
|
قرمز
|
3V3
|
3V3
|
مشکی
|
GND
|
GND
|
نحوه اتصال لیدها به بدن
برای اتصال دستگاه به بدن از یک کابل ECG سه لید با جک هدفون نری استفاده میشود . در کابلهای ECG سه لید، لیدها به سه رنگ قرمز ، سبز و زرد هستند که لید قرمز به دست راست، لید زرد به دست چپ و لید سبز به پای راست شخص وصل میشود.

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

برای اتصال این سه لید به بدن، روشهای مختلفی وجود دارد و روش ذکرشده تنها یکی از این روشها است. پیش از چسباندن لیدها، حتماً سطح مورد نظر را با الکل تمیز کنید. وجود گرد و غبار و چربی یا مو روی سطح مورد نظر میتواند کیفیت سیگنالهای دریافتی از ماژول را کاهش دهد و دقت اندازهگیری را تحت تأثیر قرار دهد.
برنامه نمونه در آردوینو
برای را اندازی سنسور و مشاهده سیگنال نوار قلب بر روی plotter آردوینو بعد از اتصال لید ها به بدن کد نمونه را به آردوینو اضافه کنید.
متن کد فایل آردوینو:
const int ecgPin = A3; // AD8232 output connected to A3
int ecgValue = 0; // Variable to store the ECG signal
int smoothedValue = 0; // Variable to store the smoothed signal
const int numReadings = 4; // Number of readings for moving average
int readings[numReadings]; // Array to store readings
int readIndex = 0; // Index of the current reading
int total = 0; // Total of the readings
int average = 0; // Average of the readings
void setup() {
// Start serial communication at 9600 baud rate
Serial.begin(9600);
// Initialize all readings to 0
for (int i = 0; i < numReadings; i++) {
readings[i] = 0;
}
}
void loop() {
// Read the ECG signal from the AD8232
ecgValue = analogRead(ecgPin);
// Subtract the last reading from the total
total -= readings[readIndex];
// Add the new reading to the total
readings[readIndex] = ecgValue;
total += ecgValue;
// Move to the next index, and wrap around if necessary
readIndex = (readIndex + 1) % numReadings;
// Calculate the average of the readings
average = total / numReadings;
// Print the smoothed value to the serial monitor (it will show up on the Serial Plotter)
Serial.println(average);
// Add a small delay to make the plot smoother (optional)
delay(10); // Adjust delay for smoother data depending on sampling rate
}
آردوینو خود را به کامپیوتر متصل کنید و مدل و پورت آردوینو خود را انتخاب کنید.

سپس نمونه کد را ابتدا Verify و سپس Upload کنید

بعد از Upload کردن کد به Tools > Serial Plotter را باز کرده و می توانید خروجی ماژول را مشاهده کنید

حتما BaudRate را روی 9600 تنظیم کنید در غیر این صورت دیتای درستی دریافت نخواهید کرد.

در ادامه می توانید نمونه کد AD8232, شماتیک و دیتاشیت ماژول را دانلود نمایید.
تصاویر خروجی برنامه:
تصویر خروجی ECG:

توجه : تمیزی سیگنال خروجی به عوامل محیطی بسیاری مثل تداخلات الکترومغناطیسی، نویز برق شهر، حرکات فیزیکی بیمار، شرایط الکترودها، و تغییرات امپدانس پوست بستگی دارد. این عوامل میتوانند باعث آلودگی سیگنال ECG شوند و دقت تحلیل آن را کاهش دهند.
برای بهبود کیفیت سیگنال خروجی، لازم است که نویزهای محیطی و بیولوژیکی کاهش یابند. برخی از راهکارهای موثر شامل موارد زیر هستند:
- کاهش تداخلات الکترومغناطیسی: استفاده از کابلهای شیلددار، فیلترهای حذف نویز و فاصلهگیری از تجهیزات الکترونیکی پرقدرت.
- حذف نویز برق شهر: بهکارگیری فیلتر Notch در فرکانس 50/60Hz.
- کاهش نویز حرکتی: تثبیت صحیح الکترودها روی پوست، استفاده از فیلترهای Adaptive برای پردازش سیگنال.
- پیشپردازش سیگنال: اعمال فیلترهای باندپاس (معمولاً بین 0.5Hz تا 100Hz) و روشهای پردازش سیگنال مانند Wavelet Transform یا PCA/ICA برای تفکیک نویز از سیگنال اصلی.
در نهایت، بهینهسازی شرایط ثبت سیگنال و استفاده از الگوریتمهای پردازشی مناسب نقش کلیدی در دستیابی به سیگنال ECG باکیفیت و قابلاعتماد دارد.