Monsieur Jourdain: Adieu Sganarelle, quoi de prévu pour aujourd'hui?
Sganarelle: Les tests unitaires.
Monsieur Jourdain: Ah... Mais vous êtes au courant que même si l'on sait que c'est bien, on n'aime pas faire ça...
Sganarelle: Ouais, mais là j'ai un argument choc: le développement sur microcontrôleurs!
Monsieur Jourdain: ...
Ça annonce du lourd, n'est-ce pas?
J'ai eu très récemment besoin d'écrire une classe de pilotage de moteur pas à pas pour un microcontrôleur type Arduino (Teensy pour être exact, mais là n'est pas la question).
La classe en question doit gérer l'accélération et décélération du moteur en début et fin de mouvement.
Vous allez me dire, il existe déjà des bibliothèques pour ça. Hé bien oui, mais vous commencez à me connaitre, et j'étais très curieux de développer mon propre contrôleur de moteur. C'était d'ailleurs très instructif de se replonger dans les maths de terminale S pour calculer tout ce bordel; notamment réapprendre la notion d'intégrale pour calculer la distance parcourue pendant la durée du mouvement, avec une accélération et décélération constantes en début et fin de mouvement.
J'en ai aussi profité pour découvrir des outils mathématiques en ligne extrêmement pratiques, comme Desmos ça, c'est la courbe de vitesse par rapport au temps
En résumé, j'ai dû écrire une série de fonctions de calcul purement mathématiques pour calculer la durée d'accélération, le nombre de pas selon l'accélération et la vitesse max, ce genre de trucs.
J'aurais pu y aller empiriquement, et débugger avec des traces dans la console Arduino, à base de Serial.println(), mais franchement... franchement... C'est super relou de débugger sur ce genre de plateforme...
Alors dans un premier temps, j