Algorithmic Biometrics: Heart Rate Pulse Sensor
สวิตช์ธรรมดาสามารถตั้งโปรแกรมได้ง่าย หัวใจของมนุษย์เป็นปั๊มชีวภาพที่สับสนวุ่นวายและไม่แน่นอนอย่างน่าตกใจ อุปกรณ์ Heart Rate Pulse Sensor Device ใช้เทคนิค photoplethysmography ทางกายภาพ (โดยการกะพริบ Green LED ส่องผ่านปลายนิ้วมนุษย์โดยตรง) เพื่อวัดการขยายตัวระดับจุลภาคของเส้นเลือดฝอย Arduino ต้องใช้อัลกอริทึมขนาดใหญ่เพื่อกรอง Optical noise และจับเวลาทางคณิตศาสตร์ได้อย่างแม่นยำเมื่อเลือดสูบฉีดอย่างรุนแรง!

Photoplethysmography (The PulseSensor.com Module)
Pulse Sensor จะส่งสัญญาณ Analog ที่มีลักษณะเป็นคลื่นหยักขนาดใหญ่เข้าไปยัง A0
- ทุกครั้งที่หัวใจบีบตัวทางกายภาพ เลือดจะไหลเวียนผ่านนิ้วของคุณ ซึ่งจะเปลี่ยนปริมาณ Green Light ที่สะท้อนกลับเข้าไปยัง photodiode ขนาดเล็กภายใน!
- ฝันร้ายของ Analog Noise: หากคุณเขียนเพียง
if (analogRead(A0) > 550) { count++; }คุณจะล้มเหลวอย่างร้ายแรง เซ็นเซอร์มีความไวมากจนสามารถตรวจจับการสั่นสะเทือนระดับจุลภาคของมือคุณ หรือการกะพริบ 50Hz ทั่วไปของหลอดไฟฟลูออเรสเซนต์บนเพดานของคุณ!
The Peak-Detect Algorithm (Moving Averages)
โค้ด C++ ต้องรันอัลกอริทึมการกรองขนาดใหญ่บนโปรเซสเซอร์ 16MHz!
- Arduino จะสุ่มตัวอย่าง
A0ทุก 2 มิลลิวินาทีอย่างเคร่งครัดผ่านTimer Interrupt - มันจะบันทึกค่าการอ่าน 10 ครั้งล่าสุดลงใน cyclical Array และคำนวณ "Mean" ทางคณิตศาสตร์ (เพื่อหาค่าเฉลี่ย Noise ภายในห้อง!)
- การคำนวณ Peak: มันจะมองหาค่า Spike ที่ไม่น่าเชื่อและเกิดขึ้นอย่างกะทันหันใน waveform ที่ถูกกรอง
(Signal > Threshold_Level) - เมื่อตรวจพบ Spike มันจะบันทึก
millis()
unsigned long currentTime = millis();
int IBI = currentTime - lastBeatTime; // Inter-Beat Interval (Milliseconds between two beats)
BPM = 60000 / IBI; // Convert milliseconds instantly to Beats Per Minute!
- ตัวเลข
BPM 72จะอัปเดตอย่างรวดเร็วบน I2C OLED Display พร้อมกับเสียง 'Beep' ของ Piezo Buzzer ที่ดังมาก ซึ่งตรงกับมิลลิวินาทีที่เลือดในเส้นเลือดฝอยพุ่งพล่าน!
Optical Biometric Components
- Arduino Uno/Nano (ยอดเยี่ยมสำหรับการรัน
Timer2ที่สะอาดและไม่หยุดชะงัก) - Generic Pulse Sensor Amped Module (โดยทั่วไปมีลักษณะเป็นวงกลมสีดำขนาดเล็กสมบูรณ์แบบ มี Green LED สว่าง และโลโก้รูปหัวใจบน PCB ด้านหน้า)
- 0.96" SSD1306 OLED I2C Screen เพื่อทำแผนที่และวาดกราฟ waveform เหมือน EKG ที่น่าตกใจและกวาดไปมาแบบไดนามิกบนหน้าจอเมื่อหัวใจเต้น!