สารบัญ:

อัตราการเต้นของหัวใจบนหน้าจอ LCD ของ STONE: 7 ขั้นตอน
อัตราการเต้นของหัวใจบนหน้าจอ LCD ของ STONE: 7 ขั้นตอน

วีดีโอ: อัตราการเต้นของหัวใจบนหน้าจอ LCD ของ STONE: 7 ขั้นตอน

วีดีโอ: อัตราการเต้นของหัวใจบนหน้าจอ LCD ของ STONE: 7 ขั้นตอน
วีดีโอ: เครื่องวัดอัตราการเต้นของหัวใจ 2024, กรกฎาคม
Anonim
อัตราการเต้นของหัวใจบนจอ LCD ของ STONE
อัตราการเต้นของหัวใจบนจอ LCD ของ STONE

เมื่อไม่นานมานี้ ฉันพบโมดูลเซ็นเซอร์วัดอัตราการเต้นของหัวใจ MAX30100 ในการช็อปปิ้งออนไลน์ โมดูลนี้สามารถรวบรวมข้อมูลออกซิเจนในเลือดและอัตราการเต้นของหัวใจของผู้ใช้ ซึ่งง่ายและสะดวกต่อการใช้งาน

จากข้อมูล ฉันพบว่ามีไลบรารีของ MAX30100 ในไฟล์ไลบรารี Arduino กล่าวคือ ถ้าฉันใช้การสื่อสารระหว่าง Arduino และ MAX30100 ฉันสามารถเรียกไฟล์ไลบรารี Arduino ได้โดยตรงโดยไม่ต้องเขียนไฟล์ไดรเวอร์ใหม่ นี่เป็นสิ่งที่ดี ดังนั้นฉันจึงซื้อโมดูล MAX30100 ฉันตัดสินใจใช้ Arduino เพื่อตรวจสอบอัตราการเต้นของหัวใจและฟังก์ชันการรวบรวมออกซิเจนในเลือดของ MAX30100

ขั้นตอนที่ 1: ฟังก์ชัน

การทำงาน
การทำงาน

ลิงค์ซื้อโมดูล MAX30100:

item.taobao.com/item.htm?spm=a230r.1.14.69.c0c56556o8wH44&id=559690766124&ns=1&abbucket=2#detail

หมายเหตุ: โมดูลนี้โดยค่าเริ่มต้นเฉพาะกับการสื่อสาร MCU ระดับ 3.3 V เนื่องจากค่าเริ่มต้นคือการใช้พิน IIC ดึงความต้านทาน 4.7 K ถึง 1.8 V ดังนั้นจึงไม่มีการสื่อสารกับ Arduino โดยค่าเริ่มต้น หากคุณต้องการสื่อสารกับ Arduino และต้องการตัวต้านทานแบบดึงขึ้นพิน IIC 4.7 K สองตัวที่เชื่อมต่อกับพิน VIN เนื้อหาเหล่านี้จะถูกแนะนำที่ด้านหลังของบท

การมอบหมายหน้าที่

ก่อนเริ่มโครงการนี้ ฉันนึกถึงคุณสมบัติง่ายๆ บางอย่าง:รวบรวมข้อมูลอัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือด

อัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือดจะแสดงผ่านหน้าจอ LCD

นี่เป็นเพียงสองคุณสมบัติ แต่ถ้าเราต้องการนำไปใช้ เราต้องดำเนินการเพิ่มเติม

กำลังคิด:

ใช้ MCU หลักใด

ชนิดของจอ LCD?

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ เราใช้ Arduino สำหรับ MCU แต่นี่เป็นโครงการแสดงผล Arduino LCD ดังนั้นเราจึงต้องเลือกโมดูลการแสดงผล LCD ที่เหมาะสม ฉันวางแผนที่จะใช้หน้าจอแสดงผล LCD กับพอร์ตอนุกรม ฉันมีตัวแสดง STONE STVI070WT ที่นี่ แต่ถ้า Arduino ต้องการสื่อสารกับมัน จำเป็นต้องใช้ MAX3232 ในการแปลงระดับ จากนั้นกำหนดวัสดุอิเล็กทรอนิกส์พื้นฐานดังนี้:

1. บอร์ดพัฒนา Arduino Mini Pro

2. MAX30100 อัตราการเต้นของหัวใจและโมดูลเซ็นเซอร์ออกซิเจนในเลือด

3. STONE STVI070WT โมดูลแสดงผลพอร์ตอนุกรม LCD

4. โมดูล MAX3232

ขั้นตอนที่ 2: แนะนำฮาร์ดแวร์

MAX30100

MAX30100 เป็นโซลูชันเซ็นเซอร์วัดค่าออกซิเจนในเลือดและอัตราการเต้นของหัวใจแบบบูรณาการ ประกอบด้วยไฟ LED สองดวง เครื่องตรวจจับแสง ออปติกที่ได้รับการปรับปรุง และการประมวลผลสัญญาณแอนะล็อกเสียงรบกวนต่ำเพื่อตรวจจับออกซิเจนในเลือดและสัญญาณอัตราการเต้นของหัวใจ MAX30100 ทำงานจากแหล่งจ่ายไฟ 1.8V และ 3.3V และสามารถปิดเครื่องได้โดยใช้ซอฟต์แวร์ที่มีกระแสไฟสแตนด์บายเพียงเล็กน้อย ทำให้แหล่งจ่ายไฟยังคงเชื่อมต่ออยู่ตลอดเวลา แอปพลิเคชั่น

● อุปกรณ์สวมใส่

● อุปกรณ์ช่วยออกกำลังกาย

● อุปกรณ์ตรวจสอบทางการแพทย์

ประโยชน์และคุณสมบัติ

1、โซลูชัน Pulse Oximeter และ Heart-Rate ที่สมบูรณ์ช่วยให้การออกแบบง่ายขึ้น

ไฟ LED ในตัว โฟโต้เซนเซอร์ และอนาล็อกประสิทธิภาพสูง -End

ขนาดเล็ก 5.6 มม. x 2.8 มม. x 1.2 มม. 14 พิน OpticallyEnhanced System-in-Package

2、Ultra-Low-Power Operation เพิ่มอายุการใช้งานแบตเตอรี่สำหรับอุปกรณ์สวมใส่

อัตราตัวอย่างที่ตั้งโปรแกรมได้และกระแสไฟ LED เพื่อการประหยัดพลังงาน

กระแสไฟปิดต่ำพิเศษ (0.7µA, ประเภท)

3、ฟังก์ชั่นขั้นสูงช่วยปรับปรุงประสิทธิภาพการวัด

SNR สูงให้ความยืดหยุ่นของสิ่งประดิษฐ์เคลื่อนไหวที่แข็งแกร่ง

การยกเลิกแสงโดยรอบในตัว

ความสามารถในการสุ่มตัวอย่างสูง

ความสามารถในการส่งออกข้อมูลที่รวดเร็ว

ขั้นตอนที่ 3: หลักการตรวจจับ

หลักการตรวจจับ
หลักการตรวจจับ
หลักการตรวจจับ
หลักการตรวจจับ
หลักการตรวจจับ
หลักการตรวจจับ

เพียงกดนิ้วของคุณกับเซ็นเซอร์เพื่อประมาณความอิ่มตัวของออกซิเจนในพัลส์ (SpO2) และชีพจร (เทียบเท่ากับการเต้นของหัวใจ)

เครื่องวัดความอิ่มตัวของออกซิเจนในเลือด (oximeter) เป็นเครื่องวัดค่าออกซิเจนขนาดเล็กที่ใช้หลักการของสเปกตรัมการดูดซึมเซลล์เม็ดเลือดแดงที่แตกต่างกันเพื่อวิเคราะห์ความอิ่มตัวของออกซิเจนในเลือด วิธีการวัดแบบเรียลไทม์และรวดเร็วนี้ยังใช้กันอย่างแพร่หลายในข้อมูลอ้างอิงทางคลินิกจำนวนมาก ฉันจะไม่แนะนำ MAX30100 มากเกินไปเพราะเนื้อหาเหล่านี้มีอยู่ในอินเทอร์เน็ต เพื่อนที่สนใจสามารถค้นหาข้อมูลของโมดูลทดสอบอัตราการเต้นของหัวใจบนอินเทอร์เน็ต และทำความเข้าใจหลักการตรวจจับของโมดูลให้ลึกซึ้งยิ่งขึ้น

หิน STVI070WT-01

บทนำสู่ตัวแสดง

ในโครงการนี้ ฉันจะใช้ STONE STVI070WT เพื่อแสดงข้อมูลอัตราการเต้นของหัวใจและข้อมูลออกซิเจนในเลือด ชิปไดรเวอร์ถูกรวมเข้ากับหน้าจอแสดงผลและมีซอฟต์แวร์สำหรับผู้ใช้ ผู้ใช้เพียงแค่เพิ่มปุ่ม กล่องข้อความ และตรรกะอื่นๆ ผ่านรูปภาพ UI ที่ออกแบบ จากนั้นจึงสร้างไฟล์การกำหนดค่าและดาวน์โหลดลงในหน้าจอแสดงผลเพื่อเรียกใช้ การแสดงผลของ STVI070WT จะสื่อสารกับ MCU ผ่านสัญญาณ uart-rs232 ซึ่งหมายความว่าเราจำเป็นต้องเพิ่มชิป MAX3232 เพื่อแปลงสัญญาณ RS232 เป็นสัญญาณ TTL เพื่อให้เราสามารถสื่อสารกับ Arduino MCU ได้

หากคุณไม่แน่ใจว่าจะใช้ MAX3232 อย่างไร โปรดดูภาพต่อไปนี้:

หากคุณคิดว่าการแปลงเลเวลนั้นยากเกินไป คุณสามารถเลือกตัวแสดงประเภทอื่นของ STONE ได้ ซึ่งบางประเภทสามารถส่งสัญญาณ uart-ttl ได้โดยตรง เว็บไซต์อย่างเป็นทางการมีข้อมูลและคำแนะนำโดยละเอียด: https://www.stoneitech.com/ หากคุณต้องการใช้วิดีโอสอนและบทช่วยสอน คุณสามารถค้นหาได้จากเว็บไซต์ทางการ

ขั้นตอนที่ 4: ขั้นตอนการพัฒนา

ขั้นตอนการพัฒนา
ขั้นตอนการพัฒนา
ขั้นตอนการพัฒนา
ขั้นตอนการพัฒนา
ขั้นตอนการพัฒนา
ขั้นตอนการพัฒนา

สามขั้นตอนของการพัฒนาหน้าจอแสดงผลของ STONE:

ออกแบบตรรกะการแสดงผลและตรรกะของปุ่มด้วยซอฟต์แวร์ STONE TOOL และดาวน์โหลดไฟล์การออกแบบไปยังโมดูลการแสดงผล

MCU สื่อสารกับโมดูลแสดงผล LCD STONE ผ่านพอร์ตอนุกรม

ด้วยข้อมูลที่ได้รับในขั้นตอนที่ 2 MCU จะดำเนินการอื่นๆ

การติดตั้งซอฟต์แวร์ STONE TOOL

ดาวน์โหลดซอฟต์แวร์ STONE TOOL เวอร์ชันล่าสุด (ปัจจุบันคือ TOOL2019) จากเว็บไซต์ และทำการติดตั้ง หลังจากติดตั้งซอฟต์แวร์แล้ว อินเทอร์เฟซต่อไปนี้จะเปิดขึ้น:

คลิกปุ่ม "ไฟล์" ที่มุมซ้ายบนเพื่อสร้างโครงการใหม่ ซึ่งเราจะพูดถึงในภายหลัง

ArduinoArduino เป็นแพลตฟอร์มต้นแบบอิเล็กทรอนิกส์แบบโอเพนซอร์สที่ใช้งานง่ายและใช้งานง่าย ประกอบด้วยส่วนฮาร์ดแวร์ (บอร์ดพัฒนาต่างๆ ที่สอดคล้องกับข้อกำหนดของ Arduino) และชิ้นส่วนซอฟต์แวร์ (Arduino IDE และชุดพัฒนาที่เกี่ยวข้อง) ส่วนฮาร์ดแวร์ (หรือบอร์ดพัฒนา) ประกอบด้วยไมโครคอนโทรลเลอร์ (MCU) หน่วยความจำแฟลช (แฟลช) และชุดอินเทอร์เฟซอินพุต/เอาต์พุตสากล (GPIO) ซึ่งคุณสามารถคิดได้ว่าเป็นมาเธอร์บอร์ดไมโครคอมพิวเตอร์ ส่วนซอฟต์แวร์ส่วนใหญ่ประกอบด้วย Arduino IDE บนพีซี แพ็คเกจสนับสนุนระดับบอร์ดที่เกี่ยวข้อง (BSP) และไลบรารีฟังก์ชันของบุคคลที่สามที่หลากหลาย ด้วย Arduino IDE คุณสามารถดาวน์โหลด BSP ที่เกี่ยวข้องกับบอร์ดพัฒนาและไลบรารีที่คุณต้องการได้อย่างง่ายดาย เพื่อเขียนโปรแกรมของคุณ Arduino เป็นแพลตฟอร์มโอเพ่นซอร์ส จนถึงปัจจุบัน มีหลายรุ่นและตัวควบคุมที่ได้รับมามากมาย รวมถึง Arduino Uno, Arduino Nano, ArduinoYun เป็นต้น นอกจากนี้ Arduino IDE ไม่เพียงแต่รองรับบอร์ดพัฒนาซีรีส์ Arduino เท่านั้น แต่ยังเพิ่มการรองรับสำหรับบอร์ดพัฒนายอดนิยมเช่น เช่น Intel Galileo และ NodeMCU โดยแนะนำ BSP Arduino ตรวจจับสภาพแวดล้อมผ่านเซ็นเซอร์ต่างๆ ควบคุมไฟ มอเตอร์ และอุปกรณ์อื่นๆ เพื่อป้อนกลับและส่งผลต่อสิ่งแวดล้อม ไมโครคอนโทรลเลอร์บนบอร์ดสามารถตั้งโปรแกรมด้วยภาษาการเขียนโปรแกรม Arduino คอมไพล์เป็นไบนารี และเบิร์นลงในไมโครคอนโทรลเลอร์ได้ สำหรับ Arduino นั้นใช้กับภาษาการเขียนโปรแกรม Arduino (ตาม Wiring) และสภาพแวดล้อมการพัฒนา Arduino (ตามการประมวลผล) โปรเจ็กต์ที่ใช้ Arduino สามารถมี Arduino ได้เท่านั้น เช่นเดียวกับ Arduino และซอฟต์แวร์อื่น ๆ ที่ทำงานบนพีซีและสื่อสารกับแต่ละ อื่นๆ (เช่น Flash, Processing, MaxMSP)

สภาพแวดล้อมการพัฒนาสภาพแวดล้อมการพัฒนา Arduino คือ Arduino IDE ซึ่งสามารถดาวน์โหลดได้จากอินเทอร์เน็ต ลงชื่อเข้าใช้เว็บไซต์อย่างเป็นทางการของ Arduino และดาวน์โหลดซอฟต์แวร์ https://www.arduino.cc/en/Main/Software?setlang=cn หลังจากติดตั้ง Arduino IDE อินเทอร์เฟซต่อไปนี้จะปรากฏขึ้นเมื่อคุณเปิดซอฟต์แวร์:

Arduino IDE สร้างสองฟังก์ชันโดยค่าเริ่มต้น: ฟังก์ชันการตั้งค่าและฟังก์ชันวนรอบ มีการแนะนำ Arduino มากมายบนอินเทอร์เน็ต หากคุณไม่เข้าใจบางสิ่ง คุณสามารถไปที่อินเทอร์เน็ตเพื่อค้นหาสิ่งนั้น

ขั้นตอนที่ 5: กระบวนการดำเนินการโครงการ Arduino LCD

กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD
กระบวนการดำเนินการโครงการ Arduino LCD

การเชื่อมต่อฮาร์ดแวร์

เพื่อให้แน่ใจว่าขั้นตอนต่อไปในการเขียนโค้ดจะดำเนินไปอย่างราบรื่น ก่อนอื่นเราต้องกำหนดความน่าเชื่อถือของการเชื่อมต่อฮาร์ดแวร์ มีเพียงสี่ชิ้นส่วนของฮาร์ดแวร์ที่ใช้ในโครงการนี้:

1. บอร์ดพัฒนา Arduino Mini pro

2. STONE STVI070WT หน้าจอแสดงผล tft-lcd

3. MAX30100 อัตราการเต้นของหัวใจและเซ็นเซอร์ออกซิเจนในเลือด

4. MAX3232 (rs232-> TTL) บอร์ดพัฒนา Arduino Mini Pro และหน้าจอแสดงผล tft-lcd STVI070WT เชื่อมต่อผ่าน UART ซึ่งต้องการการแปลงระดับผ่าน MAX3232 จากนั้นบอร์ดพัฒนา Arduino Mini Pro และโมดูล MAX30100 จะเชื่อมต่อผ่านอินเทอร์เฟซ IIC. หลังจากคิดให้ชัดเจนแล้ว เราสามารถวาดภาพการเดินสายไฟต่อไปนี้:

ตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาดในการเชื่อมต่อฮาร์ดแวร์ และดำเนินการในขั้นตอนต่อไป

การออกแบบส่วนต่อประสานผู้ใช้ LCD-TFT ก่อนอื่น เราต้องออกแบบรูปภาพที่แสดง UI ซึ่งสามารถออกแบบโดย PhotoShop หรือเครื่องมือออกแบบรูปภาพอื่นๆ หลังจากออกแบบรูปภาพที่แสดง UI แล้ว ให้บันทึกรูปภาพในรูปแบบ-j.webp

ลบรูปภาพที่โหลดโดยค่าเริ่มต้นในโปรเจ็กต์ใหม่ และเพิ่มอิมเมจ UI ที่เราออกแบบ เพิ่มองค์ประกอบการแสดงข้อความ ออกแบบตัวเลขที่แสดงและจุดทศนิยม รับตำแหน่งที่เก็บของส่วนประกอบการแสดงข้อความใน displayer ผลกระทบมีดังนี้:

ที่อยู่ส่วนประกอบการแสดงข้อความ: การเชื่อมต่อ sta: 0x0008

อัตราการเต้นของหัวใจ: 0x0001

ออกซิเจนในเลือด: 0x0005

เนื้อหาหลักของอินเทอร์เฟซ UI มีดังนี้:

สถานะการเชื่อมต่อ

แสดงอัตราการเต้นของหัวใจ

ออกซิเจนในเลือดแสดงให้เห็น

ขั้นตอนที่ 6: สร้างไฟล์กำหนดค่า

สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า
สร้างไฟล์กำหนดค่า

เมื่อการออกแบบ UI เสร็จสมบูรณ์ ไฟล์การกำหนดค่าจะถูกสร้างขึ้นและดาวน์โหลดไปยังจอแสดงผล STVI070WT

ขั้นแรก ให้ทำตามขั้นตอนที่ 1 จากนั้นเสียบแฟลชไดรฟ์ usb เข้ากับคอมพิวเตอร์ จากนั้นสัญลักษณ์ดิสก์จะปรากฏขึ้น จากนั้นคลิก "ดาวน์โหลดลงดิสก์ u" เพื่อดาวน์โหลดไฟล์การกำหนดค่าไปยังแฟลชไดรฟ์ usb จากนั้นใส่แฟลชไดรฟ์ usb ลงใน STVI070WT เพื่อสิ้นสุดการอัพเกรด

MAX30100MAX30100 สื่อสารผ่าน IIC หลักการทำงานของมันคือค่า ADC ของอัตราการเต้นของหัวใจสามารถรับได้ผ่านการฉายรังสีด้วยอินฟราเรด LED การลงทะเบียน MAX30100 สามารถแบ่งออกเป็นห้าประเภท: การลงทะเบียนสถานะ FIFO การลงทะเบียนการควบคุมการลงทะเบียนอุณหภูมิและการลงทะเบียน ID การลงทะเบียนอุณหภูมิ อ่านค่าอุณหภูมิของชิปเพื่อแก้ไขค่าเบี่ยงเบนที่เกิดจากอุณหภูมิ การลงทะเบียน ID สามารถอ่านหมายเลข ID ของชิปได้

MAX30100 เชื่อมต่อกับบอร์ดพัฒนา Arduino Mini Pro ผ่านอินเทอร์เฟซการสื่อสาร IIC เนื่องจากมีไฟล์ไลบรารี MAX30100 สำเร็จรูปใน Arduino IDE เราจึงสามารถอ่านข้อมูลอัตราการเต้นของหัวใจและออกซิเจนในเลือดได้โดยไม่ต้องศึกษาการลงทะเบียนของ MAX30100 สำหรับผู้ที่สนใจสำรวจการลงทะเบียน MAX30100 โปรดดูเอกสารข้อมูล MAX30100

แก้ไขตัวต้านทานแบบดึงขึ้น MAX30100 IIC

ควรสังเกตว่าความต้านทานการดึงขึ้น 4.7k ของพิน IIC ของโมดูล MAX30100 เชื่อมต่อกับ 1.8v ซึ่งไม่ใช่ปัญหาในทางทฤษฎี อย่างไรก็ตาม ระดับลอจิกการสื่อสารของขา Arduino IIC คือ 5V ดังนั้นจึงไม่สามารถสื่อสารกับ Arduino ได้โดยไม่ต้องเปลี่ยนฮาร์ดแวร์ของโมดูล MAX30100 การสื่อสารโดยตรงเป็นไปได้หาก MCU เป็น STM32 หรือ MCU ระดับลอจิก 3.3v อื่น ดังนั้น ดังต่อไปนี้ ต้องทำการเปลี่ยนแปลง:

ถอดตัวต้านทาน 4.7k สามตัวที่ทำเครื่องหมายไว้ในภาพด้วยหัวแร้งไฟฟ้า จากนั้นเชื่อมตัวต้านทาน 4.7k สองตัวที่พินของ SDA และ SCL เข้ากับ VIN เพื่อให้เราสื่อสารกับ Arduino ได้ Arduino เปิด Arduino IDE แล้วค้นหาสิ่งต่อไปนี้ ปุ่ม:

ค้นหา "MAX30100" เพื่อค้นหาสองไลบรารีสำหรับ MAX30100 จากนั้นคลิกดาวน์โหลดและติดตั้ง

หลังการติดตั้ง คุณสามารถค้นหาการสาธิตของ MAX30100 ในโฟลเดอร์ไลบรารี LIB ของ Arduino:

ดับเบิลคลิกที่ไฟล์เพื่อเปิด

การสาธิตนี้สามารถทดสอบได้โดยตรง หากการเชื่อมต่อฮาร์ดแวร์ใช้ได้ คุณสามารถดาวน์โหลดการคอมไพล์โค้ดลงในบอร์ดพัฒนา Arduibo และดูข้อมูลของ MAX30100 ในเครื่องมือแก้ไขจุดบกพร่องแบบอนุกรม

ขั้นตอนที่ 7: เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้:

เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้
เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้
เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้
เอฟเฟกต์สามารถเห็นได้ในภาพต่อไปนี้

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับโครงการคลิกที่นี่

โปรดติดต่อเราหากต้องการรหัสที่สมบูรณ์:

ฉันจะตอบกลับคุณภายใน 12 ชั่วโมง

แนะนำ: