Programmation graphique du robot Scribbler 2 (1/2)

Ce document propose une présentation de la programmation du robot Scribbler 2 à l’aide du Scribbler Program Maker, un langage de programmation entièrement graphique conçu pour le robot Scribbler 2.

Le robot mobile Scribbler 2

Avant toute chose, présentons le robot Scribbler 2. Comme son nom l’indique, il s’agit de la deuxième version de ce robot, proposée à la commercialisation en 2011. Le Scribbler 2 a été conçu par la société Parallax au même titre que d’autres robots mobiles programmables. Le tableau ci-dessous présente un rapide comparatif des principaux robots de la marque Parallax.

Robot Public Microcontôleur Programmation
graphique
Programmation
textuelle
Difficulté
Boe-Bot Robot Mobile programmable Boe-Bot de Parallax Lycée & Université Basic Stamp 2 Non Oui ++
Scribbler 2 Robot Mobile programmable Scribbler 2 de Parallax Collège & Lycée Propeller Oui Oui +
SumoBot Robot Mobile programmable SumoBot de Parallax Lycée & Université Basic Stamp 2 Non Oui ++
StingRay Robot Mobile programmable StingRay de Parallax Lycée & Université Propeller Non Oui ++

Cliquez sur le nom ou l’image de chaque robot afin d’obtenir une présentation détaillée de ses spécifications fonctionnelles et techniques.

Le robot Scribbler 2 ne nécessite aucune construction et est directement utilisable.

Le Scribbler 2 est un robot mobile, c'est-à-dire qu’il est capable de se déplacer, autonome, c'est-à-dire qu’il peut prendre ses propres décisions grâce à son microcontrôleur embarqué et ses différents capteurs lui permettant de percevoir l’environnement et programmable, c'est-à-dire que l’on peur créer et modifier le programme qui le rend autonome.

La robotique mobile est une branche bien particulière de la robotique qui est aujourd’hui largement enseigné. Les robots mobiles se distinguent entre eux par le nombre et la diversité des capteurs qu’ils embarquent. En effet, plus un robot aura de capteurs et de capteurs différents, plus il aura une « vision » complète et sincère de son environnement immédiat. Le robot Scribbler 2 comporte 3 capteurs de lumières, deux capteurs de suivi de ligne, trois capteurs de distance à infrarouge et un capteur de détection de blocage (capteur qui indique si le robot est bloqué contre un obstacle et que ses roues patinent). Le robot Scribbler 2 est bien doté en termes de capteurs, ce qui en fait un robot particulièrement adapté à l’enseignement de la robotique.

La caractéristique principale de cette version 2 du Scribbler est son microcontrôleur. Il s’agit du Propeller, microcontrôleur réalisé par Parallax et qui a la particularité d’être multicœur, c'est-à-dire qu’il est capable d’exécuter réellement en parallèle des tâches, ce qui est primordial pour un robot. Le Propeller est également le microcontrôleur qui équipe le robot Stingray.

Microcontrôleur Propeller Multicoeur de Parallax
Le microcontrôleur Propeller

Pour une description plus détaillée du robot Scribbler 2, rendez-vous sur http://www.generationrobots.com/fr/401387-robot-autonome-scribbler-2-parallax.html

Programmer le robot Scribbler 2

Le Propeller est programmable à l’aide du langage SPIN, langage créé par Parallax pour ce microcontrôleur. SPIN peut être utilisé pour programmer le Scribbler 2. Cependant, comme le Scribbler 2 s’adresse avant tout à de jeunes étudiants du collège ou du lycée, Parallax propose un logiciel de programmation graphique nommé Scribbler Program Maker. Ce logiciel de programmation est téléchargeable gratuitement sur le site de Parallax à l’adresse http://www.parallax.com/Portals/0/Downloads/docs/prod/robo/scribbler2/S2GraphicalUserInterfacev1.3.1.zip

Nous allons dans cet article décrire succinctement ce logiciel puis réaliser un programme d’évitement d’obstacle. Il est notable de remarquer que ce logiciel ne nécessite aucune compétence particulière en programmation.

Installation du logiciel de programmation du robot Scribbler 2

Tout d’abord, téléchargez le fichier .zip et décompressez le à l’endroit de votre choix. Double cliquez ensuite sur l’exécutable contenu dans le répertoire décompressez et suivez les instructions d’installation. Il se peut que la version du logiciel soit légèrement différente mais le procédé reste le même.

Il n’est pas nécessaire d’avoir le robot pour tester le logiciel, alors n’hésitez pas !

Présentation du Scribbler Program Maker

L’interface du Scribbler Program Maker est la suivante :

Interface du Scribbler Program Maker, logiciel de programmation du robot Scribbler 2
Le Scribbler Program Maker, logiciel de programmation graphique du robot Scribbler 2

Le principe de programmation est simple, il consiste à cliquer sur l’une des icônes se trouvant dans la barre latérale gauche et de déposer le bloc correspondant entre les deux blocs marquant le début du programme (avec une roue dentée verte) et la fin du programme (avec un panneau rayé jaune et noir).

Afin de comprendre le fonctionnement, cliquez sur l’icône montrant un Scribbler 2 avec une flèche blanche dessus (Deuxième icône en partant du haut dans la colonne de droite). Cette icône permet de piloter les déplacements du robot.

Une fois cliqué, l’icône est entourée de bleu clair. Placez ensuite votre souris entre les blocs de début et de fin de programme, il apparait alors une double flèche grise avec les pointes de flèches renversées, comme le présente l’image suivante.

Positionnement d'un bloc de programme dans le logiciel de programmation du robot Scribbler 2
Positionnement d'un bloc de programme

Figure 3 : Positionnement d'un bloc de programme Lorsque la flèche grise apparait, cliquez une fois et le bloc sélectionné à gauche apparait alors sur la feuille de programmation, entre les blocs de début et de fin de programme, à l’endroit de la flèche grise. Une petite fenêtre est apparue et elle vous permet de paramétrer le bloc de déplacement que vous venez de déposer.

Fenêtre de paramétrage du bloc de déplacement dans le logiciel de programmation du robot Scribbler 2
Fenêtre de paramétrage du bloc de déplacement

La figure ci-dessus présente cette fenêtre de paramétrage.

  1. Ce curseur permet de déterminer la puissance des moteurs faisant tourner les roues. Plus la puissance est grande (dans un sens comme dans l’autre), plus le robot va vite. Lorsque le curseur est au milieu, la puissance est nulle et le robot est à l’arrêt. Ce curseur est une mesure de la puissance moyenne. Vous pouvez également paramétrer un seul des deux moteurs en déplaçant la flèche rouge ou la flèche verte, ce qui aura pour effet de déplacer le curseur et de faire tourner le robot
  2. Le chronomètre indique pendant combien de temps le déplacement doit être effectué. Cliquez dessus pour l’activer. Il est gradué en secondes et peut être paramétré pour 5 secondes au maximum. S’il reste gris le mouvement est répété indéfiniment jusqu’à ce que le programme rencontre un nouveau bloc déplacer ou bien jusqu’à la fin du programme. Vous noterez que le réglage du chronomètre sur la partie graphique fait également bouger le curseur en dessous. Ils gèrent tous les deux la même information.
  3. Ce sont des compteurs qui font apparaitre les valeurs manipulées en manipulant les flèches ou le chronomètre graphique, la couleur faisant la correspondance avec la variable manipulée.
  4. Boutons de validation (coche verte) ou d’annulation (croix rouge). Ces deux boutons ferment la fenêtre de paramétrage.
  5. Bouton sélecteur permettant de prépositionner les valeurs des puissances moteur pour effectuer l’un des mouvements standardisés.

Dans notre exemple, positionnons les deux moteurs au maximum ainsi que le chronomètre au maximum. Le robot va donc avancer à pleine vitesse en ligne droite pendant 5 secondes.

Effectuons la même manipulation en déposant ensuite le bloc de sons représenté par des notes de musique dans la barre d’outils.

Insertion du bloc de sons dans le logiciel de programmation du robot Scribbler 2
Insertion du bloc de sons

Ce bloc permet de faire jouer un son ou une mélodie au robot. Cela est très utile pour marquer des étapes dans un programme. La fenêtre de paramétrage est divisée verticalement en deux. A gauche vous bénéficiez d’une bibliothèque de sons et de mélodies. A droite vous avez votre partition sur laquelle vous allez positionner vos sons et vos mélodies, le robot les jouera ensuite de manière enchainées. Pour ajouter un son sur votre partition, cliquez sur une case de couleur à gauche, elle se retrouvera automatiquement à droite. Vous pouvez directement écouter le résultat en cliquant sur le bouton en forme de bouton de lecteur (avec un triangle orienté vers la droite). Pour en supprimer de votre partition, cliquez sur le bouton en forme de poubelle.

Sélectionnez vos mélodies puis validez. La structure du programme doit à présent être celle-ci :

Programme terminé dans le logiciel de programmation du robot Scribbler 2
Programme terminé

Nous allons à présenter exécuter le programme. Pour cela, vous devez brancher votre robot à votre PC en utilisant le câble USB et l’adaptateur USB-Série vendu avec votre robot. Attention, la toute première fois, vous devez tout d’abord installer le pilote USB-Série que vous trouverez sur le site de Parallax à l’adresse http://www.parallax.com/usbdrivers en ne branchant que l’adaptateur USB-Série à votre PC via le câble. Ce n’est qu’ensuite que vous y branchez votre robot.

Allumez votre robot puis appuyer sur le bouton « Copie le programme vers le Scribbler » qui est le 4ème bouton en partant de la gauche dans la barre d’outils horizontale qui se trouve en haut.

Une petite fenêtre marquée « uploading » apparaît le temps que votre programme soit transféré à votre robot. Si le robot n’est pas allumé ou bien mal branché, bref si votre PC ne trouve pas le robot, une fenêtre apparaît avec la mention « No connection could be made to your Scribbler ». Vérifiez alors que votre robot est bien allumé et branché et recommencez.

Au contraire lorsque le robot est bien branché, une fenêtre « Upload succeful » est affichée et votre programme démarre aussitôt.

Voilà, vous avez créé votre premier programme !

Dans le reste de cet article, nous allons faire connaissance avec les principaux blocs disponibles.

Modification des paramètres d’un bloc

Avant de découvrir d’autres blocs fonctionnels, regardons comment modifier un bloc qui a été paramétré car c’est très utile.

Pour ce faire, cliquez sur le bloc de déplacement, il se « soulève » dans l’interface signifiant ainsi qu’il est sélectionné.

Cliquez à l’aide du bouton droit de la souris, une petite fenêtre « Editer » apparait comme le présente l’image ci-dessous :

Fenêtre de modification des blocs fonctionnels dans le logiciel de programmation du robot Scribbler 2
Fenêtre de modification des blocs fonctionnels

Il y a 6 boutons dans cette fenêtre :

  1. Le premier bouton est spécifique au bloc sélectionné. Dans notre exemple, si vous cliquez dessus, la fenêtre « Editer » disparaît et la fenêtre de paramétrage du bloc apparait.
  2. Le second bouton permet de copier le bloc sélectionné. Une fois ce bouton cliqué, fermez la fenêtre « Editer » à l’aide de l’avant dernier bouton puis positionnez votre curseur à l’endroit de votre diagramme où vous souhaitez coller le bloc (rappelez vous, la flèche grise apparaît) et utilisez ensuite le bouton de collage qui se trouve dans la barre des blocs à gauche (il s’agit du second bloc en partant du haut dans la première colonne, celui qui a un presse papier vert dessus) et voilà, votre bloc est copié !
  3. Le troisième bouton est le bouton « couper ». Il fonctionne comme le précédent mais coupe au lieu de coller.
  4. Le bouton « poubelle » est le quatrième bouton, il permet de supprimer le bloc courant. Il suffit de le cliquer puis de sélectionner le 5ème bouton pour fermer la fenêtre «Editer » et votre bloc est supprimé.
  5. Le 5ème bouton permet de valider le choix effectué et de fermer la fenêtre « Editer ».
  6. Le 6ème et dernier bouton permet de ne pas valider le choix effectué et de fermer la fenêtre « Editer ».

Voilà, à ce stade vous savez modifier vos erreurs, ce n’est pas si mal et c’est en tout cas très utile.

Les conditions

Tout programme quel qu’il soit intègre des tests aussi appelées conditions. En robotique, on va par exemple tester la valeur d’un capteur pour prendre une décision.

Reprenons notre programme précédent et au lieu de faire jouer une belle mélodie à votre robot Scribbler 2 après 5 secondes de course effrénée, effectuons un test de luminosité. Si la lumière est assez forte, il joue de la musique, si elle n’est pas assez forte, il ne joue pas de musique.

Insérons un bloc « Test » entre les deux blocs précédents. Le bloc « Test » est le bloc jaune avec un gros point d’interrogation. Le bloc a un aspect différent des deux blocs précédents, nous y reviendrons après. Attardons nous sur la fenêtre de paramétrage.

Fenêtre de paramétrage du bloc de test dans le logiciel de programmation du robot Scribbler 2
Fenêtre de paramétrage du bloc "Test"

Une nouvelle fois, six boutons sont proposés dans la fenêtre de paramétrage :

  1. Permet de tester si un drapeau est levé ou non. Nous le verrons après, un drapeau est une variable qui prend deux valeurs (les habitués de la programmation parleront de valeurs booléennes) : levé ou non. Cela permet de tester un état que l’on aura défini.
  2. Permet de tester si un obstacle est détecté par les capteurs infrarouge et si oui, où celui-ci se situe-t-il (devant, à gauche ou à droite). Il permet également de détecter un patinage, c'est-à-dire si les roues tournent mais que le robot est bloqué.
  3. Permet de tester la valeur d’un test de jet de pièce virtuel, c'est-à-dire d’un test aléatoire.
  4. Interroge les capteurs de suivi de ligne infrarouge situés sous le robot. Ces capteurs sont utilisés pour effectuer du suivi de ligne
  5. Interroge les capteurs de lumière. Il y a 12 conditions que l’on peut tester :
    • La valeur d’un des trois capteurs est au moins de X (x allant de 0 qui représente le noir à 255 qui représente la plus grande intensité lumineuse mesurable).
    • La valeur de l’un des trois capteurs est la plus lumineuse des 3 d’au moins X
    • La valeur de l’un des trois capteurs est la moins lumineuse des 3 d’au moins X
    • La moyenne, le maximum et le minimum est au moins X
  6. Le dernier bouton permet d’inverser les conditions vrai ou faux du bloc de test (essentiellement pour de la présentation)

Sélectionnez donc le test de lumière que vous souhaitez réaliser. Il est conseillé de sélectionner un test sans ambigüité, comme l’absence totale de lumière (si vous mettez vos doigts sur l’un des capteurs de lumière).

Il reste à présent à déplacer le bloc qui joue du son de manière à ce qu’il ne joue le son que lorsque la condition est vraie ou que lorsqu’elle est fausse (au choix). Pour cela, couper/coller votre bloc son déjà en place et collez le sous le bloc de « Test ». Sur l’image précédente, le numéro 7 représente une condition vraie car elle se trouve sous la coche verte du bloc de test. Le numéro 8 représente la condition fausse car elle se trouve sur le chemin de la flèche noire qui se trouve après la coche rouge en forme de croix sur le bloc de test.

Pour être sûr du bon fonctionnement, vous pouvez insérer deux actions différentes en fonction du résultat du test. L’image suivant présente le cas où si l’environnement du robot est suffisamment lumineux il joue un son, et si l’environnement n’est pas suffisamment lumineux (si l’on bouche son capteur de lumière avant gauche à l’aide de son doigt), il allume simultanément ses 3 led.

Mise en œuvre d'une condition simple dans le logiciel de programmation du robot Scribbler 2
Mise en œuvre d'une condition simple

Les boucles

On ne va pas terminer cette première présentation sans s’attarder sur les boucles de répétition. Il s’agit avec les conditions, des structures de programmation les plus utilisées. Une boucle sert à répéter un certain nombre de fois (déterminé ou non) une suite d’actions.

Reprenons le code présenté dans l’image précédente et imaginons que nous souhaitons que l’ensemble du programme se répète 4 fois pour avoir le temps de tester ce programme. Il faut donc insérer un bloc de type répétition autour de nos 4 blocs fonctionnels.

Pour réaliser cela, sélectionnez le bloc de début de boucle qui est le 7ème bloc en partant du haut dans la colonne de gauche des blocs fonctionnels. Il est bleu avec une flèche incurvée pointant vers la droite. Placez ce bloc en tout début de votre programme, directement sous le bloc de démarrage rouge. Une fenêtre de paramétrage du bloc boucle apparaît comme à chaque fois que vous déposez un bloc fonctionnel sur votre diagramme.

Fenêtre de paramétrage du bloc Boucle dans le logiciel de programmation du robot Scribbler 2
Fenêtre de paramétrage du bloc "Boucle"

La fenêtre de paramétrage se présente comme un compteur. Ce compteur est grisé par défaut. Si vous cliquez sur le bouton de validation sans modifier le compteur, alors aucun nombre de tour de boucle ne sera défini ce qui correspondra à une répétition sans fin du programme. Si au contraire vous sélectionnez un nombre dans le compteur et cliquez sur le bouton de validation, le nombre de tour de boucle sera défini, c'est-à-dire que le programme cessera de lui-même après X répétition. Dans notre exemple, nous positionnons le compteur sur 4.

Il nous reste à présent à couper/coller les blocs fonctionnels du programme afin de les coller dans le bloque « Boucle ». Pour cela, cliquez sur le bloc en forme de doigt en haut à gauche qui retransforme votre curseur en mode sélection et cliquez successivement sur le bloc déplacement et le bloc de test. Vous remarquez que lorsque vous cliquez sur le bloc « Test », les blocs situés dessous, dans ses conditions vrai et fausse sont également sélectionnés. La sélection sélectionne un bloc et tous les blocs qui en dépendent. Effectuez à présent l’opération de couper/coller comme nous l’avons vu auparavant.

Programme finalisé avec 4 répétitions dans le logiciel de programmation du robot Scribbler 2
Programme finalisé avec 4 répétitions

Conclusion

Dans cet article, nous avons découvert l’interface de programmation graphique du Scribbler 2. Nous y avons vu un concept de programmation linéaire par flux, comment on pouvait agir sur les déplacements du robot, comment on pouvait interroger ses capteurs, gérer une condition et enfin effectuer des répétitions. Ces concepts de base permettent de réaliser nombre de comportements simples, idéal pour les débutants en programmation, en particulier les plus jeunes. Il n’est en effet pas nécessaire de connaitre la programmation et l’interface visuelle est très compréhensible.

Nous verrons dans un second article comment aller plus loin, en particulier dans la modularisation du code mais aussi et surtout dans la gestion des tâches parallèles. En effet, le microcontrôleur Propeller a été conçu dans cette optique.

 


 

Génération Robots (http://www.generationRobots.com)

Tout usage et reproduction soumis à autorisation explicite préalable.