Um programa para ESP32-S3 movimenta um motor virtual
Nosso exemplo com um único motor para ESP32-S3 já lê a realimentação e ajusta a saída no computador, com controles de pausa e execução passo a passo. Veja como está o desenvolvimento.
Alguns problemas de controle de motores são difíceis de perceber só lendo o código. O sentido da realimentação está invertido? A saída fica presa no limite? Muitas vezes é preciso conectar uma placa e um motor para ver o que está acontecendo. Estamos trabalhando na simulação do ESP32-S3 para que algumas dessas questões possam ser exploradas primeiro no computador.
Recentemente, conseguimos executar um exemplo com um único motor no Botdraft. Um programa de controle compilado para ESP32-S3 já pode ser executado pela tela do projeto. Sua saída aciona um modelo de motor, o movimento do modelo retorna ao programa por um encoder simulado, e o programa decide o que fazer em seguida. Botdraft ainda é um nome provisório.

O exemplo com um único motor que já conseguimos executar. É um diagrama, não uma captura de tela do produto.
O que já podemos fazer
Podemos iniciar, pausar, executar passo a passo e retomar esse exemplo. A pausa também mantém o modelo no mesmo instante do tempo de simulação. Ao avançar um passo, o programa lê a realimentação e ajusta a saída, enquanto a posição e a orientação do motor na tela acompanham o resultado calculado. Podemos parar em um passo, ver o que aconteceu e continuar.
Queremos usar isso para ajudar a depurar programas de controle. Depois que uma saída é enviada, o modelo muda como esperado? O que o programa faz com a realimentação que recebe? São essas as questões que queremos que os desenvolvedores possam examinar antes de conectar o hardware.
A realimentação lida pelo programa é calculada pelo modelo.
O que ainda falta acrescentar
Por enquanto, temos esse exemplo com um único motor em funcionamento. Ainda não podemos pegar qualquer imagem de firmware para ESP32-S3 e executá-la aqui. Precisamos acrescentar mais periféricos do chip, e não simulamos o circuito completo de uma placa de desenvolvimento.
O modelo de motor ainda usa parâmetros de testes de software. Não o comparamos com hardware físico, então esse resultado não permite dizer como um motor real específico vai se comportar. O tempo de simulação também é diferente do tempo que o computador leva para executá-la; ainda precisamos melhorar a velocidade de execução.
Em seguida, vamos trabalhar nas mudanças de carga e nas interrupções da realimentação pela tela deste projeto: como o programa responde a uma carga e o que faz quando o encoder para de atualizar. Ainda não concluímos esses cenários nessa interface. Também vamos acrescentar modelos de periféricos e parâmetros de motores, conferindo os parâmetros com a documentação pública dos fabricantes que conseguirmos encontrar.
A apresentação do projeto explica a direção geral. Os avanços anteriores do software e das exportações estão na nota sobre o escopo do desenvolvimento (em inglês).