โปรเจกต์ที่พี่ทำตอนนี้ก็แค่ทำเล่นๆ ฮะ อยากลองทำเซ็นเซอร์วัดอัตราการเต้นของหัวใจแบบง่ายๆ ที่ใช้งานได้ดีสำหรับคนส่วนใหญ่ ไอเดียนี้ไม่ใช่ของพี่เองนะ เลยต้องขอเครดิตให้กับ XTronical ที่ทำวิดีโอนี้ขึ้นมา:
เซ็นเซอร์ตัวนี้ง่ายมากๆ จัดไปวัยรุ่น เพราะไม่ต้องใช้ไลบรารี่ (Library) อะไรเลย
Optical Biometrics: เซ็นเซอร์วัดชีพจรมนุษย์
การอ่านค่าเซ็นเซอร์อุณหภูมินั้นเป็นแบบ Passive ง่ายๆ แต่การจะอ่านชีววิทยาที่ซับซ้อนของมนุษย์เนี่ย ต้องใช้การกรองด้วยอัลกอริทึมแบบ Active Simple Heart Rate Sensor ใช้เทคนิคทางแสงที่เรียกว่า Photoplethysmography (PPG) เพื่อ 'มองเห็น' การขยายตัวระดับจุลภาคของเส้นเลือดฝอยในปลายนิ้วมนุษย์ที่สอดคล้องกับการเต้นของหัวใจ
หลักการสะท้อนแสง
โมดูล PulseSensor หน้าตาเหมือนสติกเกอร์แดงจิ๋วๆ ที่เอามาพันกับนิ้วหรือติ่งหู
- ตัวรับ-ส่งสัญญาณ (Transceiver): ด้านในมี LED สีเขียวสว่างจ้า และเซ็นเซอร์วัดแสงที่จ้องมองกลับมาที่ผิวหนัง
- หลักฟิสิกส์: ทุกครั้งที่หัวใจสูบฉีด เลือดจะวิ่งเข้าไปในเส้นเลือดฝอยที่ปลายนิ้วเป็นระลอก เลือดดูดซับแสงสีเขียว
- ดังนั้น ทุกครั้งที่หัวใจเต้นหนึ่งครั้ง เซ็นเซอร์วัดแสงจะตรวจจับการ ลดลง ของแสงสีเขียวที่สะท้อนกลับมาได้เพียงเสี้ยววินาที!
การคำนวณ BPM ผ่านการตรวจจับจุดสูงสุด (Peak Detection)
สัญญาณอนาล็อกดิบที่เข้ามาทางขา A0 ของ Arduino นั้นเป็นคลื่นยุ่งเหยิง เต็มไปด้วยสัญญาณรบกวนทางสรีรวิทยา (การหายใจ การขยับตัว ฮัมจากไฟฟ้า)
- จะเขียนแค่
if (analogRead(A0) > 500)ไปงั้นไม่ได้นะน้อง มันจะพัง! - ต้องใช้อัลกอริทึม Threshold Peak Detector เท่านั้น
- โค้ดจะสร้างค่า Threshold แบบไดนามิกขึ้นมา เมื่อคลื่นยุ่งๆ นั้นพุ่งขึ้น เหนือ เส้น Threshold ไปอย่างรวดเร็ว Arduino จะตรวจจับมันเป็น
Beat 1 - มันจะบันทึกเวลาตอนนั้นจาก
millis()ไว้ - พอคลื่นพุ่งขึ้นอีกครั้ง ก็จะบันทึก
Beat 2 - สูตรคำนวณ: เวลาระหว่างการเต้น = 800 มิลลิวินาที
BPM = 60,000 / 800 = 75 ครั้งต่อนาที! - Arduino จะกะพริบ LED ภายนอกให้ตรงจังหวะกับการไหลเวียนของเลือดเป๊ะๆ!
อุปกรณ์ที่ต้องจัดมาสำหรับ Biometric Build
- Arduino Uno/Nano (แปลงสัญญาณอนาล็อก 10-bit ได้แม่นยำดี)
- โมดูล PulseSensor Amped (ใช้โฟโตเรซิสเตอร์ธรรมดาไม่ได้นะตัวนี้! เพราะมันต้องมีวงจร Op-amp กรองสัญญาณรบกวนที่อยู่บนบอร์ดด้วย)
- จอ OLED หรือ LCD 16x2 สำหรับแสดงตัวเลขใหญ่ๆ ว่า
BPM: 75 - สายรัดนิ้วแบบตีนตุ๊กแก (Velcro) (การให้เซ็นเซอร์ติดแนบกับผิวหนังโดยไม่ขยับเป็นสิ่งจำเป็น ห้ามช็อตนะตัวนี้)