Carrera Led avanzado (Led race). Versiones 4 y 5Parte de los dos programas expuestos a lo largo de este artículo han sido explicadas en tutoriales anteriores sobre carreras led. Puedes encontrarlos en: Carrera Led (Led race). Primeras 3 versiones en orden creciente de dificultad.
Los programas propuestos se pueden importar directamente para no tener que volver a elaborarlos.
https://youtu.be/nksbfs0Ng54
Carrera Led 4: Versión avanzada con ecuaciones de cinemáticas y dinámicas reales en circuito sin pendiente
En este programa cambiamos la filosofía de trabajo a la hora de medir y gestionar la velocidad con la que se va a mover cada vehículo. Vamos a calcular la velocidad con la que se acciona el pulsador que activa el movimiento, a traducir esto a valores de aceleración y con ella, calcular el movimiento y la velocidad de dicho vehículo, siguiendo las ecuaciones del movimiento rectilíneo uniformemente acelerado (MRUA).
Tutorial en vídeo explicando el programa:
https://www.youtube.com/watch?v=wNVMAF0FiWs&t=2s
Recordamos el esquema de conexión para dos jugadores:
Recuerda poner en común el cero voltios de la fuente de alimentación de la tira Neopixel y GND de Arduino.
Ten en cuenta también que la fuente de alimentación debe poder suministrar la intensidad demandada por la tira Neopixel. Si es muy larga y enciendes bastantes led simultáneamente, puede que el consumo se eleve.
Las ecuaciones cinemáticas que describen este MRUA, son:
La aceleración dependerá de la velocidad con la que cada jugador accione un pulsador. Como no va a ser una aceleración uniforme, vamos a usar valores de aceleración discretizados en porciones de tiempo muy pequeñas, pudiendo considerarse así, su valor contante en ese breve tiempo.
Si lo calculamos en ArduinoBlocks y enviamos los datos al puerto serie, vemos que coinciden perfectamente:
Un programa para calcular el MRUA, lo puedes calcular en: http://www.arduinoblocks.com/web/project/164502
Las ecuaciones de la dinámica intervienen para hacer que la aceleración total del vehículo dependa también del rozamiento de este, del freno motor y de la pendiente que tenga la calzada en el punto en el que se encuentra. En este programa haremos un circuito en el que no haya pendiente, o mejor dicho, la pendiente sea cero.
Las ecuaciones de la dinámica son:
El programa, que se explica detalladamente en el vídeo, lo puedes importar en: http://www.arduinoblocks.com/web/project/171838
Programa:
Las funciones que no se desglosan se incluyen comprimidas porque ya se han explicado en programas anteriores y no han sufrido modificación. A continuación puedes ver cómo aparecen en el ordenador las variables monitorizadas de uno de los jugadores, cuando se está acelerando y cuando el vehículo avanza por su propia inercia:
Carrera Led 5: Versión avanzada completa incluyendo pendientes en el trazado
Creamos pendiente. Para este ejemplo, es ascendente desde el pixel 10 al 30 y descendente desde el 30 al 50. El resto es llano.
El tutorial completo en vídeo es el siguiente:
https://youtu.be/zoHEgVYcND4
Puedes importar el programa en: http://www.arduinoblocks.com/web/project/171935
Recuerda que ahora en la función anterior hay que quitar la condición de que no pueda ir hacia atrás:
No te quedes en importar los programas y no dudes en preguntar las dudas que te surjan y, sobre todo, en proponer y compartir mejoras y cambio.