[PRZYKŁAD] Pulsoksymetr MAX30100 + KAmduino UNO

Po podłączeniu układu można przejść do napisania oprogramowania na platformę Arduino (Pełny kod znajduje się w sekcji „do pobrania”, na końcu artykułu). Do napisania programu użyta została biblioteka dostępna pod adresem https://github.com/oxullo/Arduino-MAX30100. Należało w niej jednak wprowadzić niewielkie modyfikacje. Podczas uruchamiania przykładowego kodu okazało się, że tętno autora wynosi ok. 30 uderzeń na minutę. Okazało się, że jest to równe częstotliwości sprawdzania pomiaru temperatury i czujnik reagował na momenty zbierania próbek. W związku z tym w funkcji odświeżającej wartości z czujnika zakomentowana została część odpowiedzialna za pomiar temperatury. Funkcja PulseOximeter::update w pliku MAX30100_PulseOximeter.cpp wygląda teraz tak:

Także w pliku MAX30100_BeatDetector.h zamieniono parametr BEATDETECTOR_BPFILTER_ALPHA  na wartość 0.2 w celu lepszego uśredniania wartości tętna.

Zmodyfikowana wersja biblioteki znajduje się w paczce „Kod projektu”. Teraz można przejść do kodu głównego.

Najpierw zostaną zaimportowane biblioteki oraz zadeklarowane niezbędne stałe i zmienne.

W funkcji setup inicjalizowane są urządzenia – czujnik MAX30100 oraz ekran LCD. Prąd diody podczerwonej ustawiany jest na wartość 11 mA. Warto zwrócić uwagę, że zbyt duży prąd diody może powodować stałe przesterowanie detektora, a w konsekwencji brak możliwości zaobserwowania zmian w sygnale wyjściowym.

W głównej pętli programu aktualizowane są odczyty czujnika MAX30100. Następnie, co 200 ms, na ekranie LCD wyświetlane są aktualne wskazania tętna i saturacji.

Działanie przykładu zostało zaprezentowane na poniższym materiale wideo:

Do pobrania

O autorze