· 2 min read ·233 words

Scratch Robot

Cet article a été traduit de l’anglais.

TLDR, voyez-le en action :

📖 Scratch Robot sur Github.

Le but de cette preuve de concept était de jouer avec blockly.

Cette bibliothèque permet aux utilisateurs de créer un programme avec le langage Scratch. Ainsi, pas besoin de connaître un langage de programmation : il suffit d’assembler des blocs logiques.

Blockly permet de définir et de programmer nos propres blocs.

Par exemple, voici comment j’ai défini le bloc « avance » :

Blockly.defineBlocksWithJsonArray([
  {
    "type": "move_forward",
    "message0": "avance",
    "previousStatement": null,
    "nextStatement": null,
    "colour": "%{BKY_PROCEDURES_HUE}",
    "tooltip": "%{BKY_ROBOT_FORWARD_TOOLTIP}"
  }
]);

Bloc avance
Bloc généré

Et voici comment je le programme :

Blockly.JavaScript['move_forward'] = function (block) {
  return 'Robot_forward();\n';
};

C’est un « générateur », et on peut aussi en définir un pour python, php…

J’ai développé 3 blocs : « avance », « tourne à gauche/droite », « attends N secondes ». Chaque bloc renvoie du Javascript généré qui envoie un ordre au robot Raspberry Pi.

J’ai aussi utilisé Js-Interpreter pour ne pas exécuter directement tout le Javascript généré, mais le mettre en pause et attendre que le robot ait bougé.

Enfin, pour le robot, j’ai réutilisé une API sur laquelle j’avais déjà travaillé pour un autre projet : Darkmira/drop-robotapi. Le readme contient le schéma de câblage pour monter votre propre robot.

📖 Scratch Robot sur Github.

Licence Creative Commons
Julien Maulny