dis9029

Solemne 02

Fechas importantes

Descripción del artefacto (proceso)

    // Definicion del pin conectado al sensor de pulso
const int pinSensorPulso = A5; 

int frecCardiacaMin = 60;
int frecCardiacaMax = 100;

void setup() {
  // Iniciar comunicacion serial para mostrar datos
  Serial.begin(9600);   

  // Configurar el pin del sensor como entrada 
  pinMode(pinSensorPulso, INPUT);
}

void loop() {
  // Leer valor del sensor de pulso
  int valorSensor = analogRead(pinSensorPulso);

  if (valorSensor >= frecCardiacaMin && valorSensor <= frecCardiacaMax) {
    Serial.print("Frecuencia cardiaca: ");
    Serial.println(valorSensor);

  } else {
    // Si está fuera del rango, imprimir mensaje "fuera de rango"
    Serial.println("Frecuencia cardiaca fuera de rango");
  }

  // Esperar un segundo antes de la siguiente lectura
  delay(1000);
}
int pulso = 0;

void setup() {
  Serial.begin(9600);
  pinMode(A2, INPUT);
}

void loop() {
  pulso = analogRead(A2);
  delay(1000);
  Serial.println(pulso);
}
// variable para almacenar el tiempo transcurrido
float tiempo;

// color base 1 (rojo)
color colorPrincipal1 = color(255, 0, 0);

// color base 2 (azul)
color colorPrincipal2 = color(100, 0, 255);

// numero de elipses a dibujar
int numeroElipses = 70;

void setup() {
  // establecer el tamano de la ventana segun la resolucion de la pantalla oled
  size(1080, 700);
  // eliminar el trazo
  noStroke();
}

void draw() {
  // borrar el fondo
  background(0);

  // actualizar el tiempo para la animacion
  tiempo += 0.05; 

  // obtener el ancho y el alto de la ventana
  float anchoVentana = width;
  float altoVentana = height;

  // calcular el valor del pulso base en funcion del tiempo y la funcion seno
  float pulso = sin(tiempo) * min(anchoVentana, altoVentana) / 1.5;

  // bucle para dibujar multiples elipses
  for (int i = 0; i < numeroElipses; i++) {
    // calcular el desplazamiento individual del pulso y el cambio de color
    float desplazamiento = sin(tiempo + i * 0.1) * pulso;
    // ajustar el cambio de color segun el indice del bucle
    float cambioColor = abs(sin(tiempo + i * 0.2)); 

    // calcular la posicion de la elipse en funcion del tamano de la ventana y el pulso
    float centroX = map(i, 0, numeroElipses - 1, anchoVentana / 2, 4 * anchoVentana / 2);

    // posicionar las elipses verticalmente con un espaciado uniforme
    float centroY = altoVentana / 2 - i * 30;

    // crear una elipse con tamano y cambio de color pulsantes
    fill(lerpColor(colorPrincipal1, colorPrincipal2, cambioColor), pulso + desplazamiento);
    ellipse(centroX, centroY, pulso + desplazamiento, pulso + desplazamiento);
  }
}

Animación

Peter Vogel

Descripción del artefacto

Collar interactivo de pulso utilizando Arduino. El proyecto consiste en un sistema de comunicación basado en WiFi entre dos microcontroladores Arduino, un servidor y un cliente, y Processing. Arduino actúa como un dispositivo de adquisición de datos del sensor, mientras que la aplicación Processing sirve como una herramienta de visualización de datos.

Tecnologías y Herramientas de trabajo

Instrucciones de instalación

  1. Asignar roles a cada arduino:
  1. Configuración del hardware:
  1. Desarrollo del código Arduino:
  1. Desarrollo del código Processing:

Bibliografía