Le monde réel contre-attaque

Mon fils était dans « Secret Coders », une série de romans graphiques dans laquelle deux enfants découvrent et déjouent un complot visant à conquérir le monde en apprenant à programmer dans le langage informatique LOGO. Quand je lui ai dit que ces « robots tortues » étaient à l’origine de vraies choses physiques, il en voulait un. Nous en avons donc construit un à partir de quelques beaux moteurs à courant continu à engrenages que j’avais traînés.

Un robot tortue a essentiellement trois tâches : avancer en ligne droite sur une distance contrôlée, tourner d’un nombre donné de degrés et lever et abaisser un enclos. Si vous criez déjà « utilisez des moteurs pas à pas! » à votre écran, eh bien, vous avez probablement raison. Mais j’avais ces beaux motoréducteurs Faulhaber/Micromo avec des encodeurs qui ne faisaient que ramasser la poussière dans le placard, alors je les ai utilisés. Et à cause de cela, le robot trébuche sur deux de ses trois objectifs dans la vie – le lève-stylo servo fonctionne très bien.

Les moteurs à courant continu parfaitement adaptés n’existent pas. Bien sûr, je le savais, car j’ai déjà construit des robots avec des moteurs à courant continu. Mais ils ont tous eu des mécanismes de contrôle complexes et/ou des réactions qui les ont rendus sans objet. Pas ici. Ce bot doit conduire parfaitement droit sans aucune ligne pour le guider ou algorithmes de navigation plus intéressants.

Nous avons passé une bonne demi-heure à le conduire dans des carrés pas tout à fait mais presque, à peaufiner les PWM de chaque côté, à faire tourner les moteurs en arrière pendant de courtes rafales pour freiner les roues et à essayer généralement de cartographier les degrés de rotation en millisecondes de moteur. Et vous savez quoi, mon fils a adoré. Les concepts étaient assez simples pour un élève de deuxième année, et deviner les bonnes valeurs PWM était comme un jeu. Quand nous l’avons finalement eu assez bien, il y a eu une petite fête.

Bien sûr, je sais que ce dont il a vraiment besoin, c’est du retour de l’encodeur. J’ai installé ces motoréducteurs à encodeur exprès après tout. Mais gérer la quadrature et probablement une boucle PID pour contrôler et synchroniser les deux côtés n’est pas pour mon fils, du moins pas avant quelques années. (Ils faire apprendre la théorie du contrôle en boucle fermée en quatrième année ces jours-ci, n’est-ce pas?) Je devrai faire tout cela hors ligne une nuit pendant qu’il dort.

Mais j’espère qu’il se souviendra des leçons apprises en le poignardant de manière naïve. Les abstractions sont excellentes, mais il n’y a jamais deux moteurs parfaitement identiques. Vous penseriez que vous pourriez simplement le calibrer, mais les moteurs diffèrent en termes d’entraînement et comportement en roue libre, vous avez donc beaucoup plus de calibrage à faire que vous ne le pensez au début. Le monde réel est difficile, et bien qu’il soit important d’avoir une théorie, des idées et des abstractions pour vous guider, vous allez devoir ajuster pour que cela fonctionne lorsque les roues touchent le sol. Mais aussi que c’est amusant de le faire, et super gratifiant quand il dessine enfin un carré bancal.