العتاد المستخدم في جهاز قياس نبضات القلب:
لا يستطيع الراسبيري باي قراءة القيم الناتجة عن حساس النبضات القلبية مباشرة حيث ينتج الحساس خرجاً تناظريّاً والراسبيري باي يقرأ الخرج الرقمي فقط خلافاً للأردينو. لذا، سنحتاج إلى محول تناظري رقمي ADC ليعمل كجسر بين الحساس والراسبري باي.
المكونات المستخدمة في هذا المشروع:
- حساسُ نبض معدلِ ضرباتِ القلب.
- MCP3008 ADC محولٌ تناظريّ رقمي.
- لوحة تجارِبٍ صغيرة.
- أسلاكُ توصيل.
وتأتي حساساتُ النبض غالباً برباط لاصق يلف على الإصبع بإحكام مما يضمن صحة نواتج القياس.
تركيب جهاز قياس نبضات القلب بالراسبري باي:
لما كان حساس النبض مصمماً في الأساس ليعمل مع الأردوينو وليس الراسبيري باي، فإن خرجه يصبح تناظريّاً وليس رقميّاً كما ذكرنا آنفاً، لذا سنستخدم محولاً تناظريّاً رقميّاً، كـ MCP3008. يمكنك أن تستخدم أيَّ القنوات أردت ما دمتَ ستضبط ذلك في الكود البرمجي.
يوصل القطبُ الموجب إلى حساس النبض بالرجل ذات 3.3 فولطاً من الراسبيري باي والقطب السالب بالأرضي، وتوصل رجل البيانات/الإشارة بالحساس- ويرمز لها بالرمزS- إلى القناة0 لـ MCP3008.
حمّل مكتبة: SpiDev library لاستعمالها مع المحول التناظري الرقمي ADC.
الكود البرمجي لقراءة معدل ضربات القلب/ النبض:
أولا تحتاج إلى تنزيل git وتحديثه إن لم تكن تستعمل آخرَ إصدار من نظام التّشغيل Raspbian/NOOBS باستخدام الأوامر الآتية:
sudo apt-get update sudo apt-get upgrade sudo apt-get install git
ثم حمّل مكتبة تسجيل معدل ضربات القلب من GitHub:
git clone https://github.com/tutRPi/Raspberry-Pi-Heartbeat-Pulse-Sensor
وتحتوي المكتبة على مثال لقراءة معدل ضربات القلب في كل ثانية ويمكنك رؤية ذلك في الفيديو أدناه:
ولنبدأ الآن بهذا المثال، انتقل إلى مجلده ثم استدعي السكريبت example.py لتبدأ بقراءة قيم الحساس
cd Raspberry-Pi-Heartbeat-Pulse-Sensor/ sudo python example.py
سيظل السكريبت يعمل حتي تضغط على CTRL+C.
لنتمعن أكثر الآن في كيفية عمل هذا المثال، سنجد أننا حين نستدعي p.startAsyncBPM() نبدأ مهمة thread الذي يقيس النبض في الخلفية، ونستخدم p.stopAsyncBPM() لإيقاف هذه المهمة وإيقاف عملية القياس، ويمكنك تخصيص الكود البرمجي على وَفق رغباتك.
تطوير برنامج حساس النبض للراسبيري باي:
يعرض الفيديو التالي المثالَ السّابق إذ قست فيه معدلاً نبضيّاً، وقد قست سابقاً معدلَ ضربات قلبيّاً بهاتفي الذكي (المدمج به حساس معدل الضربات القلبيّة) ووجدت نبضي تقريباً 55 نبضة في الدقيقة.
http://https://youtu.be/s027fBoh96k
ربما لاحظت أن القياس ليس دقيقاً دائماً وهذا يحدث حين لا يلامس الإصبع الحساس، لذا نحتاج إلى وسيلة للتأكد من حدوث الملامسة قبل الشروع في القياس كحساس ضغط مثلاً، حيث تبدأ عملية القياس بعد التأكد تماماً حدوث الملامسة حدوثاً صحيحاً.
انتبه أيضاً إلى أن الحساس يستغرق بضعَ ثوانٍ ليسجل النواتج تسجيلاً صحيحًا، ويعد ذلك عيباً لا يوجد في مقاييس النبض التجاريّة.
وللتعرّف أكثر طريقةَ عمل حساس نبضات القلب اطلع على هذا المثال:
<https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino>. ويمكنك عرض النواتج في صورة بيانية باستخدام هذا البرنامج على: github
<https://github.com/alexriss/heartex>مع تعديله ليتناسب مع المكتبة المستخدمة.
المصدر: هنا
ترجمة: مي همدر, مراجعة: عبد الرحمن صابر, تدقيق لغوي: محمد بابكر, تصميم: علي العلي, تحرير: قحطان غانم.