Szukam wykopka który siedzi dużo w C++ na arduino (dokładnie chodzi o ESP32) oraz jest zaznajomiony z czujnikiem MAX30102 oraz jego bibliotekami, potrzebuje pomocy z badaniem saturacji tlenem bo już mi wszystko opada (╯︵╰,) #arduino #cpp #programowanie #programista15k #mikrokontrolery #pomocy #iot #kiciochpyta #esp32
@Szalaputka: Jaki masz problem ? Z kodem, komunikacją czy jakiś sprzętowy ? Może będę w stanie Ci pomóc, parę lat zajmowałem się projektowaniem i programowaniem takich ustrojstw ;)
@Mr_Przyjemny: @fiddle: tak jak mierzenie heart rate samo w sobie działa idealnie, to po użyciu algorytmu do detekcji saturacji tlenem, wyniki są z kosmosu. HR skacze 50-250 a saturacja tlenenem od 50 do -999 xD np. Przy hr 214 saturacja wynosi 67, albo 150/25 itd. RAW data z diody IR i RED po przyłożeniu palca jest na poziomie 240-242k więc te odczyty są okej. Wyniki HR I sp2o w ogóle
@Aqvis: czytałem o tym, ale jak się zagłębiłem, to kompletnie tego w bibliotece nie mogłem znaleźć aby zamienić, chyba że wystarczy w setupie jakieś 2 linijki kodu napisać
@Aqvis: void sp2oMeasurement() { bufferLength = 100; // buffer length of 100 stores 4 seconds of samples running at 25sps // read the first 100 samples, and determine the signal range for (byte i = 0; i < bufferLength; i++) { redBuffer[i] = PulseAndSP2OSensor.getRed(); irBuffer[i] = PulseAndSP2OSensor.getIR(); PulseAndSP2OSensor.nextSample(); // We're finished with this sample so move to next sample } // calculate heart rate and SpO2 after first 100 samples (first
@Aqvis: @Mr_Przyjemny dobra mamy to, zmniejszyłem irBuffer i redBuffer do 50 sampli, zmodyfikowałem loopy w kodzie oraz zamieniłem diody software'owo, sp2o naprawione, działa poprawnie (skacze jedynie 96-100 ale jest tak czy tak stabilne) tylko HR jest z dupy XD 150-214
@Aqvis: @Mr_Przyjemny kalkulacja HR przebiega za pomocą linii *pnheartrate =(int32_t)( (FreqS*60)/ npeakintervalsum );, gdzie FreqS = 25 // sampling frequency, a npeak_interval sum chyba za pomocą for'a ze zdjęcia
#arduino #cpp #programowanie #programista15k #mikrokontrolery #pomocy #iot #kiciochpyta #esp32
@Szalaputka:
https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library/blob/master/examples/Example8_SPO2/Example8_SPO2.ino#L38
sproboj zmniejszyc bufory do np po 50 i zmodyfikuj te filtry na nich zeby liczyly na mniejszej probce je, wyglda jakbys mial za malo pamieci tam jak masz wynik na minusie
{
bufferLength = 100; // buffer length of 100 stores 4 seconds of samples running at 25sps
// read the first 100 samples, and determine the signal range
for (byte i = 0; i < bufferLength; i++)
{
redBuffer[i] = PulseAndSP2OSensor.getRed();
irBuffer[i] = PulseAndSP2OSensor.getIR();
PulseAndSP2OSensor.nextSample(); // We're finished with this sample so move to next sample
}
// calculate heart rate and SpO2 after first 100 samples (first