Avec les extensions, une nouveauté de Scratch dans sa version 3, nous avons la possibilité de connecter du LEGO Mindstorms EV3. Oui, nous pouvons enfin contrôler du Mindstroms avec Scratch.

Quel est l’intérêt vu que le Mindstorms se programme déjà avec un outil graphique ? Et bien d’une part, Scratch est plus simple et accessible. Il sera donc un excellent outil pour initier à la robotique les plus jeunes. D’autre part, les briques du Mindstorms s’intègrent comme les autres briques dans les scripts Scratch. Vous allez donc pouvoir contrôler les lutins avec les capteurs du Mindstorms.

Allez, je vous propose un tour rapide.

Mais juste avant, je dois vous dire que lors de la rédaction de cet article, mon Mindstorms était sur la base de la photo ci-dessous. Les moteurs sont donc montés sur des chenilles et le bouton sert de capteur de contact (la lame de bulldozer sert à l’actionner).

La configuration de mon Mindstorms à la rédaction de cet article.

Cette configuration me donne une base et me permet d’y accrocher des modules (le bouton avec sa lame en est un). Mais elle m’a aussi influencée sur les tests que j’ai fait avec Scratch.

Connecter le Mindstorms

Fenêtre du Scratch Link

Pour contrôler le Mindstorms EV3, Scratch utilisera le Bluetooth. Pour permettre aussi bien à l’application Scratch que l’application en ligne (sur Internet) d’utiliser le Bluetooth, il faut installer un petit logiciel : Scratch Link. La page de présentation de l’extension Mindstroms EV3 sur le site Scratch propose un lien vers le Scratch Link qui contient toutes les informations pour l’installer.

Une fois Scratch Link installé (et lancé), il faut évidemment allumer le Mindstorms EV3 et le configurer, si ce n’est déjà fait, pour se connecter en Bluetooth. Assurez-vous que la connexion iPad n’est pas activée, sinon ça ne marche pas.

Il ne vous reste plus qu’à activer l’extension LEGO EV3. Pour tester que tout fonctionne, connectez un moteur à la brique EV3, configurez sur le bon port un des blocs moteur et cliquez dessus. Le moteur doit s’activer pendant une seconde.

Les briques LEGO EV3

Grâce à Scratch, vous allez pourvoir manipuler les moteur du Mindstorms EV3 mais aussi réagir à la pression du bouton, la distance et la luminosité. Inutile de dire, lorsqu’on découvre les brisques disponibles, que les possibilités sont très limitées par rapport à ce que peut faire le Mindstorms EV3. Cette intégration n’a pas pour vocation de remplacer les outils complets par Scratch mais permettre une initiation à la programmation de robots.

Ceci étant dit, voyons ce que nous pouvons faire.

Réagir aux capteurs

Le script de base qui permet de jouer un son sur la brique EV3 à la pression du bouton.

Le petit script le plus simple va consister à émettre un son à la pression sur le bouton.

Mais il ne faut pas oublier que les briques Mindstorms sont des briques comme les autres. Vous pouvez donc les ajouter à n’importe quel script de n’importe quel lutin. Plutôt que de jouer un son, on va ajouter une brique de mouvement. Ainsi, à chaque pression du bouton, le son sera joué et le lutin va se déplacer de 10 pas.

Le script de base qui en plus fait avancer le lutin de 10 pas.

Vous pouvez de la même manière déclencher une action lorsque le capteur de distance verra une distance inférieur à une valeur ou le capteur de luminosité une luminosité inférieure à une valeur. L’opérateur de comparaison pour les déclenchements de ces actions est malheureusement fixé à supérieur. Vous pourrez réagir au fait qu’il fait trop sombre mais pas utiliser le Mindstorms et Scratch comme réveil au lever du soleil.

Actionner les moteurs

Il y a 3 briques d’action pour les moteurs : une pour aller en avant pendant un certain temps, une pour aller en arrière un certain temps et une pour définir la puissance du moteur.

La seconde brique set power est nécessaire pour rétablir la puissance du moteur à 100 % après l’avoir descendue à 80 en première action.

Si vous n’utilisez que les briques d’activation du moteur, celui-ci sera par défaut à 100 %. Si vous la modifiez par la brique set power, cette valeur est conservée pour les actions suivantes. Donc si dans votre script, vous modifiez la puissance des moteurs, assurez vous d’avoir la bonne valeur avant chaque action.

Il est facile de contrôler un moteur avec Scratch. Il faut simplement faire utiliser la bonne brique en fonction du sens de rotation du moteur.

Mais ça se corse si vous souhaitez contrôler un véhicule avec 2 moteurs actionnés simultanément. Il n’y a pas de bloc qui permet d’actionner simultanément 2 moteurs et si vous utilisez deux blocs, ceux-ci vont s’exécuter l’un après l’autre.

Il y a cependant une solution qui passe par les messages. Si plusieurs scripts sont déclenchés à la réception d’un message, ils s’exécutent en même temps.

Il faut de définir 2 scripts, une pour chaque moteur, s’activant à la réception d’un message qui sera envoyé pour faire avancer (ou reculer) le véhicule. Et voilà votre véhicule qui avance tout droit.

Exemple de scripts pour faire avancer un robot en activant simultanément 2 moteurs à la pression de la flèche du curseur vers le haut.

Une astuce supplémentaire : dans la capture ci-dessus, il y a un script recevant le message Go forward qui ne sert qu’à envoyer 2 autres messages dédiés à chaque moteur. Oui, si il y a un script pour aller vers l’avant, on peut en ajouter un pour aller en arrière. Et ainsi, on pourra ajouter les actions de tourner qui consisteront à actionner un moteur vers l’avant et l’autre vers l’arrière. J’ai ainsi ces scripts (entre autres) en plus des précédents qui sont adaptés au montage sur chenille que je vous ai présenté en introduction. Quand je vous avais dit que mon montage m’a influencé…

Exemple de scripts en complément pour faire tourner un robot vers la droite en activant un moteur dans un sens et l’autre, dans l’autre sens.

Une petite précision : pour ces deux exemples, les messages d’activation des moteurs sont envoyés l’un après l’autre (B puis C). Mais ces briques se contentent d’envoyer le message ce qui fait que leur enchainement sera très rapide et la différence d’activation des moteurs sera imperceptible.

En conclusion

L’ajout du contrôle du LEGO Mindstorms EV3 dans Scratch m’offre une possibilité que j’attendais depuis longtemps : pouvoir faire de l’initiation à la robotique. Le LEGO Mindstorms EV3 est un ensemble de robotique relativement accessible contrairement au LEGO WeDo qui était pris en charge depuis des années. Ceci offre donc la possibilité d’initier les plus jeunes au rudiment de la robotique.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.