Tabla de contenido:

Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial: 7 pasos (con imágenes)
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial: 7 pasos (con imágenes)

Video: Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial: 7 pasos (con imágenes)

Video: Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial: 7 pasos (con imágenes)
Video: CIIMMA │ Conferencia Magistral 1 2024, Mes de julio
Anonim
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial
Pantalla de ergómetro simple basada en Arduino con retroalimentación diferencial

El ejercicio cardiovascular es aburrido, especialmente cuando se hace ejercicio en interiores. Varios proyectos existentes intentan aliviar esto haciendo cosas interesantes como acoplar el ergómetro a una consola de juegos o incluso simular un paseo en bicicleta real en realidad virtual. Por muy emocionantes que sean, técnicamente no ayudan mucho: el ejercicio sigue siendo aburrido. Entonces, en cambio, me gustaría poder leer un libro o mirar televisión mientras entreno. Pero luego es difícil mantener un ritmo constante.

La idea, aquí, es enfocarse en el último problema y proporcionar comentarios directos, sobre si su nivel actual de capacitación es lo suficientemente bueno o si debe esforzarse un poco más. Sin embargo, el nivel "suficientemente bueno" variará no solo por persona, sino también con el tiempo (a largo plazo, a medida que mejora, pero también dentro de una sesión de entrenamiento: por ejemplo, es casi imposible ir a toda velocidad antes de que Calentado). Por lo tanto, la idea detrás de este proyecto es simplemente registrar a) la ejecución anterior yb) la mejor ejecución (también conocida como puntuación más alta), y luego proporcionar comentarios directos sobre cómo le está yendo actualmente en comparación con esas carreras.

Si eso suena un poco abstracto, salte al Paso 7 para obtener detalles sobre lo que mostrará la pantalla completa

Otro objetivo de este proyecto es mantener las cosas realmente simples y económicas. Dependiendo de dónde ordene sus piezas, puede completar este proyecto por alrededor de $ 5 (o alrededor de $ 30 cuando realiza un pedido a vendedores nacionales premium), y si ha jugado con el entorno Arduino antes, hay una gran posibilidad de que ya tenga la mayoría o todas las piezas que necesita.

Paso 1: Lista de piezas

Lista de
Lista de

Repasemos la lista de cosas que necesita:

Un microprocesador compatible con Arduino

Prácticamente cualquier Arduino vendido durante los últimos años servirá. La variante exacta (Uno / Nano / Pro Mini, 8 o 16 MHz, 3.3. O 5V) no importa. Sin embargo, necesitará un procesador ATMEGA328 o mejor, porque usaremos casi 2k de RAM y 1k de EEPROM. Si está familiarizado con los entresijos del mundo Arduino, le recomiendo usar un Pro Mini a 3.3V, ya que será más barato y más eficiente en la batería. Si eres (relativamente) nuevo en Arduino, te recomiendo un "Nano", ya que proporciona la misma funcionalidad que un "Uno" en un paquete más pequeño y económico.

Tenga en cuenta que este instructivo no le explicará los conceptos básicos. Al menos debe tener instalado el software Arduino y saber cómo conectar su Arduino y cargar un boceto. Si no tiene idea de lo que estoy hablando, lea estos dos sencillos tutoriales, primero: Primero, segundo.

Una pantalla OLED SSD1306 de 128 * 64 píxeles (variante I2C, es decir, cuatro pines)

Esta es una de las pantallas más baratas y sencillas disponibles en la actualidad. De acuerdo, es pequeño, pero lo suficientemente bueno. Por supuesto, si ya tiene una pantalla de resolución similar o mejor, será posible usarla, pero este instructable está escrito para un SSD1306.

  • Una "placa de pruebas sin soldadura" y un cable de puente para construir su prototipo
  • Un condensador cerámico de 100 nF (puede ser necesario o no; consulte el Paso 4)
  • O unas pinzas de cocodrilo o un imán, un interruptor de lengüeta y algo de cable (consulte el paso 4)
  • Un LED rojo y uno verde, cada uno (opcional; consulte el Paso 5)
  • Dos resistencias de 220 ohmios (si usa los LED)
  • Un pulsador (también opcional)
  • Una batería adecuada (consulte el paso 6)

Paso 2: Conexión de la pantalla

Conexión de la pantalla
Conexión de la pantalla

Como primera cosa, conectaremos la pantalla al Arduino. Hay instrucciones detalladas disponibles. Sin embargo, el SSD1306 es realmente fácil de conectar:

  1. Pantalla VCC -> Arduino 3.3V o 5V (cualquiera de los dos servirá)
  2. Display Gnd -> Arduino Gnd
  3. Pantalla SCL -> Arduino A5
  4. Pantalla SCA -> Arduino A4

A continuación, en su entorno Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas e instale "Adafruit SSD1306". Desafortunadamente, tendrá que editar la biblioteca para configurarla para la variante de 128 * 64 píxeles: busque la carpeta "bibliotecas" de arduino y edite "Adafruit_SSD1306 / Adafruit_SSD1306.h". Busque "#define SSD1306_128_32", deshabilite esa línea y habilite "#define SSD1306_128_64" en su lugar.

En este punto, debe cargar Archivo-> Ejemplos-> Adafruit SSD1306-> ssd1306_128x64_i2c para probar que su pantalla está conectada correctamente. Tenga en cuenta que es posible que deba ajustar la dirección I2C. 0x3C parece ser el valor más común.

En caso de problemas, consulte las instrucciones más detalladas.

Paso 3: cargue el boceto

Si todo funcionó, hasta ahora, es el momento de cargar el boceto real en su Arduino. Encontrará una copia del boceto a continuación. Para obtener una versión potencialmente más reciente, consulte la página del proyecto github. (Dado que se trata de un boceto de un solo archivo, basta con copiar el archivo erogmetrino.ino en la ventana de Arduino).

Si hubiera tenido que modificar la dirección I2C en el paso anterior, tendrá que hacer el mismo ajuste, nuevamente, ahora, en la línea que comienza con "display.begin".

Después de la carga, debería ver algunos ceros en la pantalla. Veremos el significado de las distintas secciones de la pantalla, después de que todo lo demás esté conectado.

Tenga en cuenta que en el primer inicio, la pantalla tardará bastante en iluminarse (puede tardar unos diez segundos), ya que el boceto pondrá a cero todos los datos almacenados en la EEPROM, primero.

Paso 4: Conexión del ergómetro

Conexión del ergómetro
Conexión del ergómetro

Este paso realmente no se puede describir de manera universal, ya que no todos los ergómetros son iguales. Sin embargo, tampoco todos son diferentes. Si su ergómetro incluye una pantalla electrónica de velocidad, debe tener un sensor electrónico para detectar las revoluciones de los pedales, o algún volante (posiblemente interno), en algún lugar. En muchos casos, eso consistirá simplemente en un imán que pasa cerca de un interruptor de lengüeta (ver también, a continuación). Cada vez que pasa el imán, el interruptor se cerrará, indicando una revolución a la pantalla de velocidad.

Lo primero que debe hacer es examinar la pantalla de velocidad de su ergómetro en busca de cables entrantes. Si encuentra un cable de dos hilos proveniente de algún lugar dentro del ergómetro, es casi seguro que haya encontrado la conexión con el sensor. Y con un poco de suerte, simplemente puede desenchufarlo y conectarlo a su Arduino con algunos clips de cocodrilo (le diré a qué pines conectarse en un minuto).

Sin embargo, si no puede encontrar un cable de este tipo, no está seguro de haber encontrado el correcto o no puede desconectarlo sin dañar nada, simplemente puede pegar un pequeño imán a uno de los pedales y fijar un interruptor de lengüeta en el marco de su erogómetro., de modo que el imán pasará muy cerca de él. Conecte dos cables al interruptor y conéctelos a su Arduino.

Conecte los dos cables (ya sea el suyo propio o los de un sensor existente) irá a Arduino Gnd y al pin D2 de Arduino. Si tiene uno a mano, también conecte el condensador de 100nF entre el pin D2 y Gnd para un poco de "eliminación de rebotes". Esto puede ser necesario o no, pero ayuda a estabilizar las lecturas.

Cuando termine, es hora de encender su Arduino y subirse a la bicicleta para una primera prueba rápida. El número superior izquierdo debería comenzar a mostrar una medida de velocidad. Si esto no funciona, verifique todo el cableado y asegúrese de que el imán esté lo suficientemente cerca del interruptor de lengüeta. Si la medida de velocidad parece constantemente demasiado alta o demasiado baja, simplemente ajuste la definición de "CM_PER_CLICK" cerca de la parte superior del boceto (nota: el boceto usa nombres de métricas, pero no se muestran ni guardan unidades en ninguna parte, así que simplemente ignórelo y suministrar 100.000ésimas de milla por clic).

Paso 5: LED de estado rápido opcionales

LED de estado rápido opcionales
LED de estado rápido opcionales

Los LED que se describen en este paso son opcionales, pero geniales: si se toma en serio la lectura de un libro o la televisión mientras hace ejercicio, no querrá tener que mirar demasiado la pantalla. Pero dos LED de diferentes colores se notarán fácilmente en la visión periférica y serán suficientes para darte una idea aproximada de cómo te está yendo.

  • Conecte el primer LED (rojo) al pin D6 (la pata más larga del LED va al Arduino). Conecte la pata corta del LED a tierra a través de una resistencia de 220 ohmios. Este LED se encenderá cuando estés un 10% o más por debajo de tu mejor velocidad en la fase actual del entrenamiento. ¡Es hora de esforzarse más!
  • Conecte el segundo LED (verde) al pin D5, nuevamente con una resistencia a Gnd. Este LED se iluminará cuando esté dentro del 1% o por encima de su mejor carrera. ¡Lo estás haciendo bien!

¿Quiere que los LED se enciendan dependiendo de cómo le vaya en comparación con su carrera anterior, o alguna velocidad promedio arbitraria? Bueno, simplemente conecte un pulsador entre el pin D4 y Gnd. Con ese botón puedes alternar la referencia entre "tu mejor carrera", "tu carrera anterior" o "tu velocidad actual". Una letra pequeña "P" o "C" en la esquina inferior izquierda significará los dos últimos modos.

Paso 6: Encendido de la pantalla del ergómetro

Encendido de la pantalla del ergómetro
Encendido de la pantalla del ergómetro

Hay muchas formas de alimentar su pantalla, pero señalaré dos que parecen bastante más prácticas que otras:

  1. Cuando use un Arduino Uno o Nano, probablemente desee alimentarlo con un banco de energía USB con indicación de batería baja incorporada.
  2. Cuando use un Arduino Pro Mini @ 3.3V (mi recomendación para usuarios avanzados), puede alimentarlo directamente desde una sola batería LiPo o tres celdas NiMH. Como el ATMEGA tolerará voltajes de suministro de hasta 5,5 V, puede conectarlo a "VCC / ACC", directamente, sin pasar por el regulador de voltaje integrado. En esta configuración, también habrá una advertencia de "batería baja" alrededor de 3.4V, sin ningún hardware adicional (que se muestra en la esquina inferior derecha). Como se puede esperar que el ATMEGA funcione correctamente, al menos hasta 3,0 V más o menos, eso debería dejarte tiempo suficiente para terminar tu unidad de entrenamiento antes de recargarla.

Paso 7: uso de la pantalla del ergómetro

Uso de la pantalla de su ergómetro
Uso de la pantalla de su ergómetro
Uso de la pantalla de su ergómetro
Uso de la pantalla de su ergómetro

Echemos un vistazo más de cerca a los distintos números en su pantalla. El número mayor de la parte superior izquierda es simplemente tu velocidad actual, y el número mayor de la parte superior derecha es la distancia total en tu entrenamiento actual.

La siguiente línea es su velocidad promedio desde el inicio del entrenamiento (izquierda) y el tiempo desde el inicio del entrenamiento (derecha). Tenga en cuenta que el cronometraje se detiene mientras la bicicleta está parada.

Hasta ahora tan trivial. Las dos líneas adicionales en el lado derecho son donde se pone interesante: estas comparan su tiempo actual con su entrenamiento anterior y el mejor, respectivamente. Es decir. Un "- 0:01:23" en la parte superior de estas líneas significará que ha alcanzado su distancia actual 1 minuto y 23 segundos antes que en su carrera anterior. Bueno. Una línea inferior de "+ 0:00:12" significará que hasta el punto actual, se está retrasando 12 segundos con respecto a su mejor carrera. (Tenga en cuenta que estos tiempos diferenciales no serán 100% exactos. Los puntos de tiempo se almacenan cada 0,5 km / millas, y se interpolan entre ellos). Por supuesto, inevitablemente, en su primera ejecución, todavía no se han registrado referencias de tiempo, y por lo que las dos líneas anteriores solo mostrarán "-: -: -".

Finalmente, la región inferior izquierda de la pantalla contiene un gráfico de su velocidad durante el último minuto. Esto le permite ver de un vistazo si va de manera estable o desacelera. (Tenga en cuenta que esta línea será mucho más suave en el entrenamiento real, pero simplemente no es fácil mantener un ritmo constante mientras intenta tomar una foto …) Las líneas horizontales indican la velocidad anterior / mejor que logró cerca del punto actual de su anterior entrenamientos.

Los LED montados cerca de la parte superior comparan su velocidad actual con su mejor velocidad durante esta fase del entrenamiento. El verde muestra que estás dentro del 1% de tu mejor nivel, el rojo muestra que eres más de un 10% más lento que tu mejor entrenamiento. Cuando vea la luz roja, es hora de esforzarse un poco más. Tenga en cuenta que, contrariamente a los tiempos diferenciales descritos anteriormente, estos se refieren únicamente a la parte actual del entrenamiento, es decir, es posible que se esté quedando atrás en el tiempo absoluto, pero el verde indica que se está poniendo al día y viceversa.

La velocidad de referencia utilizada para los dos LED se puede cambiar mediante el botón pulsador. Una pulsación lo cambiará de la mejor formación grabada a la anterior (aparecerá una letra pequeña "P" en la parte inferior izquierda). Otra presión y su velocidad actual al momento de presionar el botón se convertirá en la nueva velocidad de referencia (se mostrará una letra pequeña "C"). Este último es especialmente útil durante su primer entrenamiento con su nueva pantalla de ergómetro, cuando aún no se ha registrado ninguna referencia.

Cuando haya terminado con su entrenamiento, simplemente desconecte la batería. Su entrenamiento ya se ha guardado en la EEPROM interna de su Arduino.

Como puede ver, terminé soldando mi prototipo. Seguro que me gustó el resultado, a mí mismo. Espero que también te resulte útil. ¡Feliz ejercicio!

Recomendado: