محاسبه سمپلینگ ریت ماژول سنسور MAX30102 با آردینو IDE

9 ماه قبل
97 بازدید

0

سلام من یه سنسور ضربان قلب دارم
با آردینو کدشو دارم، راه اندازی کردم


الان باید سمپلینگ ریت رو حساب کنم
ولی نمیدونم چجوری
پرسیدم اینو بم گفتند ولی خیلی متوجه نشدم که باید چیکار کنم:


سمپلینگ ریت رو شما برای سنسور تعریف میکنید
به صورت آسفالت برای چندین بار به صورت کوتاه مدت ده ثانیه ای دیتا ریکورد کنید و سمپلینگ ریت رو حساب کنید ببینید چند هست! اگر بخواهید به صورت دقیق باشه از اینترانت استفاده کنید.


وقتی دیفالت سمپلینگ ریت رو حساب کردید میتونید با دیلی ساده کمش کنید.
گقتند بر حسب هرتز یه sequence number بدم ب تموم دیتاهایی ک دارم ریکورد میکنم، مثلا تو 10 ثانیه، بعد ببینم تو اون 10 ثانیه چندتا سمپل جمع شده تقسیم بر دهش کنم.

الان دقیقا باید چیکار کنم؟

 

21 مرداد 02 در 09:43
زهرا توحیدی نژاد
1

با سلام. سوال شما را خیلی خوب متوجه نمیشم. کمی واضح تر بیان کنید. این قسمتی که توضیح دادید چجوری سمپلینگ ریت را محاسبه کنید، راهنمای کس دیگری هست؟  – مجید مرآتی 02-05-21 در 01:55

سلام بله، راهنمای استادم هست. ازم خواستند که سمپلینگ ریت رو یادداشت کنم، من پرسیدم که چطوری و این پاسخ رو گفتند، اما برام گنگ هست  – زهرا توحیدی نژاد 02-05-21 در 02:30

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام.

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

راه حل دیگر هم این است که خودتان سمپلینگ ریت را تعریف کنید. برای این کار باید از وقفه تایمر (timer iinterrupt) استفاده کنید. کد نمونه برداری آنالوگ به دیجیتال را در تابع وقفه بنویسید. با این کار، فرکانس نمونه برداری شما، برابر فرکانس تعریف شده برای تایمر و وقفه آن خواهد بود.

اما برای به دست آوردن تعداد ضربان قلب در دقیقه، می توانید به مدت 2 الی 5 ثانیه از نمونه گیری های خود میانگین و واریانس بگیرید. از میانگین مقادیر برای تعیین حد آستانه (Threshold) برای تشخیص ضربان قلب استفاده کنید. از واریانس نیز برای تشخیص اینکه آیا نمونه برداری شما موثر و مفید است به کار بگیرید.

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

در صورتی که واریان نمونه برداری جدید، از حد آستانه محاسبه شده خیلی بیشتر بود (مثلا بیشتر از 3 برابر)، از داده های ورودی خود صرف نظر کرده و منتظر داده های جدید شوید. در غیر این صورت، ابتدا از نمونه های خود میانگین گرفته، سپس تک تک نمونه های خود را با آن مقایسه کنید و داده هایی که تا حدی بزرگتر از میانگین بودند را به عنوان ضربان قلب تشخیص بدهید.

 

البته در کتابخانه ماژول سنجش ضربان قلب که در سایت موجود داریم، نمونه کد آماده برای سنجش ضربان قلب وجود دارد.

21 مرداد 02 در 02:01
مجید مرآتی
579

یعنی باید یک کد بنویسم برای تایمر، اضافه کنم به کد خودم؟ چجوری از ورودی نمونه‌برداری کنم؟ تعداد داده‌ها رو چجوری میتونم بشمارم از کدوم قسمت؟ توی سریال پلاتر آردینو، صفحه رو نمیتونم متوقف کنم که دیتاهای قبلی رو ببینم. من تو این زمینه خیلی کار نکردم‌. اگر دقیق‌تر راهنماییم کنید ممنون میشم ازتون  – زهرا توحیدی نژاد 02-05-21 در 02:49

همانطور که اشاره کردم، نمونه برداری خود را در تابع وقفه تایمر بنویسید. برای این کار کتابخانه زیر را در نرم افزار آردوینو نصب کنید و فایل مثال TimerInterruptTest را باز کنید. در تابع TimerHandler در خط 73، دستورات خواندن از سنسور ضربان قلب را بنویسید و باقی کدهای این تابع را حذف کنید. https://www.arduino.cc/reference/en/libraries/timerinterrupt/ برای تغییر فرکانس نمونه برداری، می توانید خط 102 را تغییر دهید. define TIMER_INTERVAL_MS 2000 عدد 2000، فاصله زمانی بین دو وقفه با واحد میلی ثانیه است. در این حالت، فرکانس 0.5 هرتز است. با تغییر آن به مثلا 2، می توانید فرکانس نمونه برداری خود را به 500 هرتز برسانید. با این کار، دیگر نیاز به شمارش نموه ها ندارید چون تعداد نمونه برداری در واحد ثانیه را خود شما تعریف کردید. اما برای دیدن دیتاهای قبلی، یک آرایه با اندازه دلخواه ایجاد کنید و داده های خود را در آن ذخیره کنید.  – مجید مرآتی 02-05-22 در 06:04

ممنون از پاسختون  – زهرا توحیدی نژاد 02-05-28 در 10:57

افزودن دیدگاه


انجمن کافه‌ربات © 1400