Un programme pour ESP32-S3 fait tourner un moteur virtuel
Notre exemple à un seul moteur pour ESP32-S3 lit désormais le retour du codeur et ajuste sa sortie sur ordinateur, avec des commandes de pause et d’exécution pas à pas. Voici où en est le développement.
Certains problèmes de commande de moteur sont difficiles à repérer en lisant le code. Le sens du retour du codeur est-il inversé ? La sortie reste-t-elle bloquée à sa limite ? Il faut souvent brancher une carte et un moteur pour voir ce qui se passe. Nous travaillons sur la simulation de l’ESP32-S3 pour pouvoir examiner certaines de ces questions d’abord sur ordinateur.
Nous avons récemment réussi à faire fonctionner un exemple à un seul moteur dans Botdraft. Un programme de commande compilé pour ESP32-S3 s’exécute désormais depuis l’écran du projet. Sa sortie commande un modèle de moteur ; le mouvement du modèle revient au programme par l’intermédiaire d’un codeur simulé, puis le programme décide de la suite. Botdraft reste un nom provisoire.

L’exemple à un seul moteur que nous faisons fonctionner aujourd’hui. Il s’agit d’un schéma, pas d’une capture d’écran du produit.
Ce que nous pouvons faire aujourd’hui
Nous pouvons démarrer cet exemple, le mettre en pause, l’exécuter pas à pas et le reprendre. La pause maintient aussi le modèle au même instant du temps de simulation. En avançant d’un pas, le programme lit le retour du codeur et ajuste sa sortie, tandis que la position et l’orientation du moteur à l’écran suivent le résultat calculé. Nous pouvons nous arrêter à une étape, regarder ce qui s’est passé, puis continuer.
Nous voulons nous en servir pour aider au débogage des programmes de commande. Une fois une sortie envoyée, le modèle évolue-t-il comme prévu ? Que fait le programme des informations qu’il reçoit en retour ? Ce sont les questions que nous voulons permettre aux développeurs d’examiner avant de brancher le matériel.
Les informations de retour lues par le programme sont calculées par le modèle.
Ce qu’il reste à ajouter
Pour le moment, nous avons cet exemple à un seul moteur qui fonctionne. Nous ne pouvons pas encore prendre n’importe quelle image de micrologiciel pour ESP32-S3 et l’exécuter ici. D’autres périphériques intégrés à la puce doivent être ajoutés, et nous ne simulons pas le circuit complet d’une carte de développement.
Le modèle de moteur utilise encore des paramètres de tests logiciels. Nous ne l’avons pas comparé à du matériel physique ; ce résultat ne permet donc pas de dire comment se comportera un moteur réel donné. Le temps de simulation ne correspond pas non plus au temps réellement écoulé sur l’ordinateur ; nous devons encore améliorer la vitesse d’exécution.
Nous travaillerons ensuite sur les variations de charge et les interruptions du retour du codeur depuis cet écran du projet : comment le programme réagit à une charge et ce qu’il fait lorsque le codeur cesse de se mettre à jour. Nous n’avons pas encore terminé ces scénarios dans cette interface. Nous ajouterons aussi des modèles de périphériques et des paramètres de moteurs, en vérifiant ces paramètres dans la documentation publique des fabricants que nous pourrons trouver.
La présentation du projet décrit l’orientation générale. Les progrès précédents du logiciel et des exports sont présentés dans la note sur le périmètre du développement (en anglais).