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.
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 | ![]() |
Lycée & Université | Basic Stamp 2 | Non | Oui | ++ |
| Scribbler 2 | ![]() |
Collège & Lycée | Propeller | Oui | Oui | + |
| SumoBot | ![]() |
Lycée & Université | Basic Stamp 2 | Non | Oui | ++ |
| StingRay | ![]() |
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.
Pour une description plus détaillée du robot Scribbler 2, rendez-vous sur http://www.generationrobots.com/robot-autonome-scribbler-2-parallax,fr,4,28136-Scribbler-2-Robot.cfm
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.
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 !
L’interface du Scribbler Program Maker est la suivante :
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.
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.
La figure ci-dessus présente cette fenêtre de paramétrage.
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.
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 :
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.
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 :
Il y a 6 boutons dans cette fenêtre :
Voilà, à ce stade vous savez modifier vos erreurs, ce n’est pas si mal et c’est en tout cas très utile.
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.
Une nouvelle fois, six boutons sont proposés dans la fenêtre de paramétrage :
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.
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.
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.
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.
|
|