Un programa para ESP32-S3 mueve un motor virtual
Nuestro ejemplo con un solo motor para ESP32-S3 ya lee la realimentación y ajusta su salida en el ordenador, con controles de pausa y ejecución paso a paso. Así va el desarrollo.
Algunos problemas de control de motores son difíciles de detectar solo leyendo el código. ¿Está invertido el sentido de la realimentación? ¿La salida se queda en el límite? A menudo hay que conectar una placa y un motor para ver qué ocurre. Estamos trabajando en la simulación de ESP32-S3 para poder estudiar algunas de estas cuestiones primero en el ordenador.
Hace poco conseguimos ejecutar un ejemplo con un solo motor en Botdraft. Un programa de control compilado para ESP32-S3 ya se ejecuta desde la pantalla del proyecto. Su salida acciona un modelo de motor; el movimiento del modelo vuelve al programa a través de un codificador simulado, y el programa decide qué hacer a continuación. Botdraft sigue siendo un nombre provisional.

El ejemplo con un solo motor que ya podemos ejecutar. Es un diagrama, no una captura del producto.
Qué podemos hacer ahora
Podemos iniciar, pausar, ejecutar paso a paso y reanudar este ejemplo. Al pausarlo, el modelo también se detiene en el mismo instante del tiempo de simulación. Al avanzar un paso, el programa lee la realimentación y ajusta su salida, mientras que la posición y la orientación del motor en pantalla se actualizan según el resultado calculado. Podemos detenernos en un paso, ver qué ha ocurrido y continuar.
Queremos usarlo para ayudar a depurar programas de control. Después de enviar una salida, ¿cambia el modelo como esperábamos? ¿Qué hace el programa con la realimentación que recibe? Son las preguntas que queremos que los desarrolladores puedan examinar antes de conectar el hardware.
La realimentación que lee el programa se calcula en el modelo.
Qué nos falta añadir
Por ahora tenemos este ejemplo con un solo motor en funcionamiento. Todavía no podemos tomar cualquier imagen de firmware para ESP32-S3 y ejecutarla aquí. Hay que añadir más periféricos del chip, y no simulamos el circuito completo de una placa de desarrollo.
El modelo de motor sigue usando parámetros de pruebas de software. No lo hemos contrastado con hardware físico, así que este resultado no permite saber cómo se comportará un motor real concreto. El tiempo de simulación tampoco es lo mismo que el tiempo que tarda el ordenador en ejecutarla; aún tenemos que mejorar la velocidad de ejecución.
A continuación trabajaremos en los cambios de carga y las interrupciones de la realimentación desde esta pantalla del proyecto: cómo responde el programa a una carga y qué hace cuando el codificador deja de actualizarse. Todavía no hemos terminado esos escenarios en esta interfaz. También añadiremos modelos de periféricos y parámetros de motores, contrastando los parámetros con la documentación pública de los fabricantes que podamos encontrar.
La presentación del proyecto explica la dirección general. Los avances anteriores del software y las exportaciones están en la nota sobre el alcance del desarrollo (en inglés).