Измерение скорости снижения пульса после нагрузки
- Войдите на сайт для отправки комментариев
Ср, 11/03/2020 - 11:22
Добрый день!
Задача состоит в измерении скорости снижения пульса после нагрузки.
Есть вот такой код, он выводит показания с датчиков.
теперь возник вопрос как обработать эти показания и посчитать скорость изменения снижения пульса. Конечная задача состоит в сравнении скорости снижения пульса с двух датчиков от двух человек. у кого быстрее.
// Чтение данных, поступающих с модуля сопряжения от одного беспроводного
// модуля и отображение этих данных средствами среды Arduino IDE.
// Последовательность действий
// 1. Вставьте USB-to-UART переходник в одно из любых четырех USB гнёзд микрокомпьютера Raspberry
// 2. Соедините пины USB-to-UART переходника с пинами на плате Ардуино:
// Arduino pin D10 соединить с TxD на USB-to-UART переходнике (подключен к Raspberry Pi)
// Arduino pin D11 соединить с RxD на USB-to-UART переходнике (подключен к Raspberry Pi)
// Arduino pin Gnd соединить с Gnd на USB-to-UART переходнике (подключен к Raspberry Pi)
// 3. Загрузите скетч в Ардуино
// 4. В меню Инструменты откройте Плоттер по последовательному соединению и укажите скорость 115200
// 5. Включите беспроводной модуль и разместите электроды (датчики) в соответствии с инструкцией
// к этому беспроводному модулю.
// 6. Включите питание Raspberry
// После загрузки Raspberry (15-20 секунд) на экране начнет отображаться сигнал.
// Если сигнала нет, то выключите питание Raspberry и включите снова, а на Ардуино нажмите кнопку Reset
// Для работы с Raspberry включайте этот код в начало своего скетча
// Начало блока кода
#include <SoftwareSerial.h>
// используется для обмена данными с Raspberry
SoftwareSerial piSerial(10, 11); // RX, TX
// инициализация работы с Raspberry
// Укажите номера используемых беспроводных модулей и их количество
void uniorBegin(const int channels[], int number_of_channels)
{
piSerial.begin(57600);
piSerial.write(0xff);
while (true)
{
String s = piSerial.readString();
if (s == "OK\n")
{
//Serial.println("Unior is ready");
String s;
for (int n = 0; n < number_of_channels; n++)
{
if (n != 0) s += ";";
s += channels[n];
}
piSerial.println(s); // send channels mask
break;
}
}
}
// чтение данных по запросу для указанного беспроводного модуля (по индексу)
// возвращает false если данных нет и true если данные есть.
// Если данные есть, то значение помещается в переменную value
bool uniorRead(uint8_t channel_no, float& value)
{
while (piSerial.available()) piSerial.read();
piSerial.write(channel_no);
int readCnt = piSerial.readBytes((byte*)&value, sizeof(float));
return (readCnt == sizeof(float)) && (value == value);
}
// конец блока
///////////////////////////////////////////////////////////////////
// Для удобства обозначим индекс беспроводного модуля константой
const int cEEG1 = 1;
const int cEEG2 = 2;
void setup()
{
Serial.begin(115200);
// Инициализируем модуль сопряжения на базе Raspberry (всего две строчки)
const int channels[] = {cEEG1}; // или, например для двух каналов: //
//const int channels[] = {cEEG1, cEEG2};
uniorBegin(channels, sizeof(channels)/sizeof(channels[0]));
}
void loop() // run over and over
{
// Читаем данные и выводим их для отображения
float v, v1;
while (uniorRead(cEEG1, v))//&&uniorRead(cEEG2, v1))
{
//Serial.println(v);
Serial.println(v1);
}
}
А что, разве вчера такой темы не было? Где-то я её уже видел.
Я не видел, если дадите ссылку на обсуждение, буду благодарен.
Эмм, школьная математика?
V[n] = (X[n] - X[n-1]) * f