Constructeur de Robots
Transcription
Constructeur de Robots
Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Logiciel d’initiation à la robotique pour les ingénieurs en herbe et pour l’enseignement POB-TECHNOLOGY – 4, rue Nicéphore Niépce - 69 680 CHASSIEU - France - Tél. : +33 (0) 4 72 43 02 36 SARL au capital de 15 000 Euros - SIRET 483 594 386 000 28 - APE 742C Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Table des matières 1 INTRODUCTION ................................................................................................................... 5 2 PRESENTATION GENERALE .............................................................................................. 6 2.1 Installation et configuration................................................................................................. 6 Installation .......................................................................................................................... 6 Configuration...................................................................................................................... 6 2.2 Les zones de l’écran principal ............................................................................................ 8 ZONE 1 : Liste des icônes disponibles regroupées en 3 onglets : ..................................... 8 ZONE 2 : Le plateau de votre programme ......................................................................... 8 ZONE 3 : La description des icônes ................................................................................... 9 ZONE 4 : La zone de paramètres des icônes .................................................................... 9 ZONE 5 : Affichage pas à pas en mode DEBUG ............................................................... 9 ZONE 6 : Les bouton GO, DEBUG et FIND ....................................................................... 9 2.3 Manipulation de groupes d’icônes ...................................................................................... 9 2.4 Outils d’aide à la navigation ............................................................................................. 11 Bouton FIND .................................................................................................................... 11 Mini Map........................................................................................................................... 11 .............................................................................................................................................. 11 2.5 Mode DEBUG, aide à l’explication pédagogique, aide à la mise au point ........................ 12 Principes du mode « DEBUG »........................................................................................ 12 Cas particulier des entrées numériques et analogiques du robot..................................... 13 3 DETAIL DES ICONES......................................................................................................... 14 3.1 Les ordres généraux ........................................................................................................ 14 Icônes de début et fin de programme, commentaires ...................................................... 14 Marqueurs VERTS : Goto et boucles ............................................................................... 15 Marqueurs ROUGES : Sous programmes ....................................................................... 16 Les variables et opérations sur les variables.................................................................... 17 La Comparaison ............................................................................................................... 18 3.2 Les ordres de base........................................................................................................... 19 POB-Technology – All rights reserved Page 2 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Déplacements du robot .................................................................................................... 19 La temporisation............................................................................................................... 20 Gestion des servomoteurs ............................................................................................... 20 Acquisition de capteurs numériques et analogiques ........................................................ 21 3.3 4 Les ordres spéciaux ......................................................................................................... 22 Reconnaissance de formes sur le POB-Bot ..................................................................... 22 Joystick du POB-Bot ........................................................................................................ 24 Affichage à l’écran du robot.............................................................................................. 24 PRINCIPES DE PROGRAMMATION AVEC RISBEE......................................................... 25 4.1 Généralités....................................................................................................................... 25 Logique habituelle d’un programme robotique ................................................................ 25 4.2 Structure d’un programme et sous-programmes .............................................................. 26 4.3 Utilisation du GOTO : Canons verts et Balances vertes................................................... 27 4.4 Notions de gestion du temps en robotique ....................................................................... 27 5 EXEMPLES DE PROGRAMMES ET EXERCICES............................................................. 29 5.1 Les ordres de base du robot et notions de programmation .............................................. 29 Faire avancer le robot ...................................................................................................... 29 Faire avancer le robot pendant 5 secondes ..................................................................... 29 Illustration de l’importance de la temporisation ................................................................ 30 Bouger la caméra du POB-Bot en modifiant la position du servomoteur.......................... 31 Boucle infinie avec un GOTO : drapeau vert et canon à boulets verts ............................. 32 Boucle finie : Le robot avance et recule 3 fois pour signaler la fin du programme ........... 33 Variables : Régler l’ouverture de la pince du robot en positionnant votre main devant le capteur de distance ................................................................................................................. 34 Comparaison : Lire un capteur de distance frontal pour éviter les chocs ......................... 36 5.2 6 Programmes plus évolués................................................................................................ 37 Reconnaissance de formes : Le robot avance tant qu’il voit une croix ............................. 37 Sous programmes : Le robot avance tant qu’il voit une croix ........................................... 39 ANNEXE 1 : FORMES A IMPRIMER .................................................................................. 41 6.1 Formes d’environ 5 centimètres de diagonale.................................................................. 41 6.2 Formes d’environ 20 centimètres de diagonale................................................................ 42 7 ANNEXE 2 : CONNECTER DES CAPTEURS SUR LE POB-BOT..................................... 54 POB-Technology – All rights reserved Page 3 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Document management Filename Creation date Author Modification RISBEE Documentation Français.doc 27/11/2007 Philippe 06/03/2008 POB-Technology contacts Address Mail Phone Fax POB-TECHNOLOGY 4, rue Nicéphore Niépce 69 680 CHASSIEU, FRANCE [email protected] +33 (0)4 72 43 02 36 +33 (0)4 72 66 18 99 POB-Technology – All rights reserved Page 4 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 1 Introduction RISBEE est un logiciel d’initiation à la robotique dédié aux utilisateurs qui ont peu de connaissances techniques en programmation. RISBEE se présente comme un plateau sur lequel l’on positionne des icônes intuitives représentant des actions simples. Les différentes icônes permettent de structurer un programme robotique et d’en définir son comportement en fonction des informations provenant de l’environnement du robot. Il s’agit d’un outil pédagogique pour travailler : • • • • La structure et la logique de programmation sans les difficultés liées à la syntaxe des langages de développement; L’analyse des informations extérieures à un robot Le comportement qu’un robot doit adopter en fonction de ces informations De multiples sous ensembles pédagogiques comme les mathématiques élémentaires, l’électricité, l’électronique, les sciences physiques… RISBEE est un outil puissant pour stimuler la curiosité des élèves, favoriser le travail collectif et émuler la prise d’initiatives dans un environnement ludique. Le logiciel RISBEE a été conçu pour devenir rapidement multi plateforme robotique. Ainsi, il sera bientôt possible de programmer différents robots en n’ayant qu’un seul logiciel simple à maîtriser. POB-Technology – All rights reserved Page 5 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 2 Présentation générale Ce chapitre présente les bases de l’utilisation de RISBEE. 2.1 Installation et configuration Installation RISBEE Fonctionne en environnement Windows XP et VISTA. Vous devez voir préalablement installé le Framework Microsoft .Net V2. Le Framework .net V2 est disponible en téléchargement libre sur le site de Microsoft : www.microsoft.com/downloads Installez ensuite le logiciel RISBEE en votre possession en exécutant le RISBEE_Setup.exe. Configuration Le bouton vert « MENU » vous donne accès au bouton « SETTINGS » pour configurer le logiciel. Cliquez sur le Bouton « SETTING » pour ouvrir la fenêtre de configuration. POB-Technology – All rights reserved Page 6 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Spécifiez le port de communication série de votre ordinateur sur lequel sera connecté le robot. Si vous utilisez une connexion Bluetooth (adaptateur Série/Bluetooth) entre le robot et l’ordinateur, spécifié le numéro de Port Com Série émulé. Choisissez la langue de travail pour obtenir tous les commentaires des icônes en Français ou en Anglais. Le bouton « Flash POB-EYE » permet de télécharger sur votre robot l’interpréteur des commandes RISBEE. Ainsi, RISBEE pourra a tout moment télécharger le programme sur le robot en cliquant sur le bouton « GO » de l’écran principal de RISBEE. Pour cela, placez le POB-Eye en mode programmation, appuyez sur le bouton « reset » du POB-Eye puis cliquez sur le bouton « Flash POB-EYE ». Une fois l’opération terminée, replacez votre POB-Eye en mode exécution et resetez à nouveau le POB-Eye. Votre robot est prêt pour fonctionner avec RISBEE. Cette opération n’est à faire qu’une seule fois tant vous programmez le robot avec RISBEE. Si pour d’autres utilisations du robot vous utilisez les logiciels POB-Tools, alors vous devrez renouveler cette manipulation pour travailler de nouveau avec RISBEE. Si vous faites une mise à jour de RISBEE, renouvelez également cette opération. POB-Technology – All rights reserved Page 7 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 2.2 Les zones de l’écran principal RISBEE se présente suivant 6 zones d’écran ci-dessous numérotées de 1 à 6. ZONE 1 : Liste des icônes disponibles regroupées en 3 onglets : • • • Les ordres généraux sont icônes représentatives des fonctions de programmation. Les ordres de base sont les icônes représentatives des actions communes à tous les robots. Les ordres spéciaux sont les icônes représentatives d’actions spécifiques à un robot particulier. Utiliser le « Glisser » à la souris pour placer une icône sur le plateau. ZONE 2 : Le plateau de votre programme Les icônes sont interprétées séquentiellement de la gauche vers la droite POB-Technology – All rights reserved Page 8 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement ZONE 3 : La description des icônes Dans cette partie de l’écran est affichée la description de l’icône qui est survolée à la souris. ZONE 4 : La zone de paramètres des icônes Certaines icônes ont besoin de paramètres descriptifs pour le comportement du robot. C’est ici que l’on choisit les noms de variables à manipuler, que l’on fixe les valeurs ou l’on choisit les opérations à effectuer…. Pour modifier ou consulter les paramètres d’une icône, sélectionnez une icône sur le plateau (zone 2), les paramètres associés à cette icône s’affichent automatiquement. Voir le détail dans le chapitre de description des icônes ZONE 5 : Affichage pas à pas en mode DEBUG En sélectionnant une icône du programme de la zone 2, le bouton DEBUG permet d’afficher les instructions pas à pas dans cette zone. A chaque clique sur le bouton DEBUG le programme avance d’une icône et affiche ici le comportement du robot. ZONE 6 : Les bouton GO, DEBUG et FIND Cliquez sur le bouton « GO » pour télécharger votre programme sur le robot. Le bouton « FIND » permet de retrouver facilement un commentaire ou bien drapeau rouge ou vert. Le bouton « DEBUG » permet d’exécuter le programme RISBEE sur le PC en mode Pas à Pas. Le résultat est affiché dans la zone 5. 2.3 Manipulation de groupes d’icônes Vous pouvez manipuler des groupes d’icônes dans RISBEE en une fois. Pour cela sélectionnez à la souris le rectangle qui englobe les icônes à manipuler. POB-Technology – All rights reserved Page 9 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Les icônes sélectionnées deviennent légèrement grisées. Le clic droit de la souris vous donne accès au menu Copier/Coller/Couper Cut : Supprime les icônes sélectionnées en les conservant dans le presse papier Copy : Copie dans le presse papier les icônes sélectionnées Paste : Colle les icônes sélectionnées à partir de la case sélectionnée sur le plateau Exemple : Pour déplacer un groupe d’icônes • • • • Sélectionnez un groupe d’icônes Clique Droit, sélectionnez « Cut » dans le menu Cliquez (clique gauche) sur la première case ou vous voulez coller les icônes Clique droit, sélectionnez « Paste » Attention, pour la version Beta de RISBEE, il faut prévoir suffisamment de place pour coller un groupe d’icônes sans écraser des icônes existantes. POB-Technology – All rights reserved Page 10 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 2.4 Outils d’aide à la navigation Bouton FIND Le bouton « FIND » permet de retrouver facilement un commentaire, un drapeau vert ou rouge et de se rendre à l’emplacement de l’icône recherchée. Cliquez sur le bouton « FIND », la fenêtre suivante s’ouvre. Sélectionnez l’icône recherchée dans une des trois listes proposées puis cliquez sur « GO » pour vous y rendre directement. Mini Map La « Map » fonctionne comme les minis maps des jeux vidéo. Cliquez sur le bouton « Map », la fenêtre suivante s’ouvre. POB-Technology – All rights reserved Page 11 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Vous visualisez ici l’ensemble du plateau, l’espace sur lequel vous positionnez les icônes de votre programme. Le petit rectangle bleu représente la zone du programme affichée à l’écran. Déplacer ce rectangle bleu dans la mini map pour vous déplacer dans votre programme. 2.5 Mode DEBUG, aide à l’explication pédagogique, aide à la mise au point Le mode « DEBUG » permet d’exécuter pas à pas le programme RISBEE sur le PC. L’affichage pas à pas se fait dans la zone 5 en bas à droite de l’écran. Principes du mode « DEBUG » Sélectionnez une icône de votre programme puis cliquez sur le bouton « DEBUG ». Pour avancer d’un pas dans votre programme, c'est-à-dire l’icône suivante dans le déroulement du programme RISBEE, cliquez à nouveau sur le bouton « DEBUG ». A chaque clique sur ce bouton, le programme avance d’une icône et affiche le résultat de l’exécution dans la zone 5. En classe, vous pouvez utiliser cette fonction pour expliquer la logique de votre programme. POB-Technology – All rights reserved Page 12 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Cas particulier des entrées numériques et analogiques du robot Lorsque que l’icône exécutée en mode « DEBUG » correspond à l’acquisition par le robot d’un valeur d’un capteur numérique ou analogique, alors la fenêtre suivante s’ouvre pour vous permettre de renseigner la valeur attendue. Vous pouvez alors simuler l’exécution de votre programme RISBEE et le comportement du robot suivant les différents cas de figures retournés pas les capteurs. POB-Technology – All rights reserved Page 13 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 3 Détail des icônes 3.1 Les ordres généraux Les ordres généraux de RISBEE représentent les fonctions élémentaires de la programmation informatique. Nous y trouvons les marqueurs de début de programme et fin de programme, le GOTO, les sous fonctions, les opérations simples sur les variables ainsi que la comparaison entre variables. Icônes de début et fin de programme, commentaires Le pistolet indique le début du programme. Cette icône est nécessaire dans tout programme Le drapeau à damier indique la fin du programme. Il est nécessaire dans tout programme La bulle de commentaires permet de commenter le programme. Positionnez l’icône sur le plateau puis entrez votre commentaire dans la zone de paramètres POB-Technology – All rights reserved Page 14 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Marqueurs VERTS : Goto et boucles Le drapeau vert permet de placer un marqueur dans votre programme. Ce marqueur sera utilisé pour un GOTO (canon à boulets verts) ou une boucle (gatling à balles vertes). Dans la zone de paramètres vous pouvez spécifier un nom représentatif de ce drapeau. Le canon a boulets verts permet de faire un GOTO vers un drapeau vert. Placez votre canon sur le plateau puis dans la zone de paramètres précisez le drapeau vert que vous souhaitez cibler pour le GOTO. La gatling à balles vertes effectue une boucle vers un drapeau vert. Dans la zone de paramètres, précisez le drapeau vert sur lequel vous souhaitez boucler ainsi que le nombre d’itérations à effectuer. Conseils d’utilisation : Les canons à boulets verts et gatling à balles vertes sont l’équivalent du GOTO en programmation informatique. Ils peuvent théoriquement pointer vers n’importe quel drapeau vert du programme. En pratique il est conseillé d’utiliser des canons verts et drapeaux verts de même niveau, c'està-dire tous deux du programme principal ou tous deux d’un même sous programme. Des icônes GOTO mal employées peuvent être à l’origine de plantage du robot ou d’un comportement anormal. POB-Technology – All rights reserved Page 15 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Marqueurs ROUGES : Sous programmes Le drapeau rouge permet de placer un marqueur en dehors de votre programme. Ce marqueur sera utilisé pour l’appel à un sous programme avec un canon à boulets rouges ou une gatling à balles rouges. La parenthèse ouverte illustre le début du sous programme. Dans la zone de paramètres vous pouvez spécifier un nom représentatif de ce drapeau (équivalent du nom de fonction ou du sous programme). La parenthèse fermée permet d’indiquer la fin du sous programme. Une fois cette icône atteinte en cours d’exécution, le déroulement du programme reprend immédiatement après l’icône qui a appelé le sous programme (canon à boulets rouges ou gatling à balles rouges). Le canon a boulets rouges permet de faire un appel à un sous programme symbolisé par un drapeau rouge. Placez votre canon sur le plateau puis dans la zone de paramètres précisez le drapeau rouge que vous souhaitez cibler pour l’appel de sous programme. La gatling à balles rouges effectue une boucle vers un drapeau rouge. Cela revient à exécuter plusieurs itérations d’un sous programme. Dans la zone de paramètres, précisez le drapeau rouge sur lequel vous souhaitez pointer ainsi que le nombre d’itérations à effectuer. Conseils d’utilisation : Vous devez vous assurer qu’un sous-programme est terminé proprement avec la parenthèse fermée. Tant que l’icône parenthèse fermée n’est pas exécutée par le robot, le sous-programme continue d’occuper la mémoire du robot. Il est donc facile de saturer la mémoire du robot et d’obtenir un comportement anormal si vous sortez d’un sous programme sans jamais exécuter l’icône parenthèse fermée associée. En conséquence, dans un sous-programme il est donc conseillé d’utiliser des canons à boulets verts ou balances vertes qui renvoient vers des drapeaux verts contenus dans ce même sous programme. Un canon a boulets verts et balances vertes qui renvoient vers un drapeau vert du programme principal ou d’un autre sous programme sont déconseillés. POB-Technology – All rights reserved Page 16 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Les variables et opérations sur les variables La boite A permet d’initialiser une variable de votre programme. Placer l’icône sur le plateau puis dans la zone de paramètres sélectionnez le nom de la variable (A à Z) puis la valeur entière que vous souhaitez lui affecter. Toutes les variables de RISBEE sont globales, c'est-à-dire qu’une variable est commune à tout le programme et sous programmes. La boite B permet d’effectuer une opération entre une variable et un entier puis de stocker le résultat dans une autre variable. Placez l’icône sur le plateau puis dans la zone de paramètres choisissez la variable source et l’opérateur, entrez la valeur entière pour la deuxième opérande et sélectionnez la variable dans laquelle sera stockée le résultat de l’opération. La boîte C permet d’effectuer une opération entre deux variables puis de stocker le résultat dans une troisième variable. Placez l’icône sur le plateau puis dans la zone de paramètres choisissez les deux variables sources et l’opérateur, puis sélectionnez la variable dans laquelle sera stockée le résultat de l’opération. POB-Technology – All rights reserved Page 17 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement La Comparaison La Balance Verte A permet de comparer une variable à un entier. Si le test de comparaison est VRAI alors on exécute un GOTO vers le drapeau vert défini. Si le test est FAUX le programme continue à l’icône suivante. Placez l’icône sur le plateau, puis dans la zone de paramètres précisez la variable à comparer avec l’entier ainsi que l’opérateur de comparaison. Finalement définissez le drapeau vert sur lequel aller si le test de comparaison est VRAI. La Balance Verte AB permet de comparer deux variables entre elles. Si le test de comparaison est VRAI alors on exécute un GOTO vers le drapeau vert défini. Si le test est FAUX le programme continue à l’icône suivante. Placez l’icône sur le plateau, puis dans la zone de paramètres précisez les variables à comparer ainsi que l’opérateur de comparaison. Finalement définissez le drapeau vert sur lequel aller si le test de comparaison est VRAI. La Balance Rouge A permet de comparer une variable à un entier. Si le test de comparaison est VRAI alors on exécute le sous programme défini par un drapeau rouge. Si le test est FAUX le programme continue à l’icône suivante. Placez l’icône sur le plateau, puis dans la zone de paramètres précisez la variable à comparer avec l’entier ainsi que l’opérateur de comparaison. Finalement définissez le drapeau rouge sur lequel aller si le test de comparaison est VRAI. La Balance Rouge AB permet de comparer deux variables entre elles. Si le test de comparaison est VRAI alors on exécute le sous programme défini par un drapeau rouge. Si le test est FAUX le programme continue à l’icône suivante. Placez l’icône sur le plateau, puis dans la zone de paramètres précisez les variables à comparer ainsi que l’opérateur de comparaison. Finalement définissez le drapeau rouge sur lequel aller si le test de comparaison est VRAI. POB-Technology – All rights reserved Page 18 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Conseils d’utilisation : Les balances vertes sont l’équivalent du GOTO en programmation informatique. Elles peuvent théoriquement pointer vers n’importe quel drapeau vert du programme. En pratique il est conseillé d’utiliser des balances vertes et drapeaux verts de même niveau, c'est-à-dire tous deux du programme principal ou tous deux d’un même sous programme. Des icônes GOTO mal employées peuvent être à l’origine de plantage du robot ou d’un comportement anormal. 3.2 Les ordres de base Les ordres de base représentent des ordres communs à tous les robots, à savoir les déplacements, la temporisation, la gestion des servomoteurs et l’acquisition de données numériques et analogiques de la carte des entrées sorties du robot. Déplacements du robot Le robot s’arrête. Le robot avance. Le robot tourne à gauche. Le robot tourne à droite. Le robot recule. Ces icônes n’ont pas besoin de paramètres, il suffit de les placer sur le plateau. Les ordres de déplacement s’exécutent tant que l’ordre stop n’est pas donné ou qu’un ordre d’un autre déplacement est donné au robot. POB-Technology – All rights reserved Page 19 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement La temporisation Effectue une temporisation dans le programme d’un multiple de 0.1 seconde. Placez l’icône sur le plateau puis saisissez dans la zone de paramétrage le temps à attendre (exemple : 10 pour attendre une seconde) Effectue une temporisation dans le programme. Le délai à attendre est défini par une variable. Placez l’icône sur le plateau puis choisissez la variable représentant le temps à attendre (exemple : Variable=10 pour attendre une seconde) Gestion des servomoteurs Le servomoteur simple permet de fixer sa position à une valeur fixe. Placez l’icône sur le plateau puis sélectionnez le servomoteur à positionner et entrez la valeur de la position de 0 à 255. Le servomoteur A permet de fixer la position du servomoteur suivant la valeur d’une variable. Placez l’icône sur le plateau puis sélectionnez le servomoteur à positionner et choisissez la variable qui donnera la position du servomoteur. (valeur comprise entre 0 et 255). POB-Technology – All rights reserved Page 20 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Acquisition de capteurs numériques et analogiques Les capteurs numériques sont par exemple des boutons/interrupteurs antichoc. Ils permettent au robot de connaître son environnement ou encore à l’utilisateur de donner des ordres en appuyant sur des boutons. Les valeurs retournées sont 0 et 1. Les capteurs analogiques sont par exemple les capteurs de distance infrarouge. Ils permettent au robot de connaître son environnement. Les valeurs retournées sont en général comprises entre 0 et 255. Le multimètre analogique permet de stocker dans une variable la valeur retournée par un capteur analogique. Placez l’icône sur le plateau, sélectionnez le numéro de l’entrée analogique correspondant au capteur sur la carte électronique et choisissez la variable dans laquelle sera stockée la donnée. Le multimètre numérique permet de stocker dans une variable la valeur retournée par un capteur numérique. Placez l’icône sur le plateau, sélectionnez le numéro de l’entrée numérique correspondant au capteur sur la carte électronique et choisissez la variable dans laquelle sera stockée la donnée. POB-Technology – All rights reserved Page 21 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 3.3 Les ordres spéciaux RISBEE est destiné à fonctionner sur différentes plateformes robotiques. Les ordres spéciaux représentent les ordres spécifiques à un robot particulier. Dans le cas des robots POB, c'est-àdire les robots équipés d’un module caméra couleur intelligent POB-Eye, il y a des ordres particuliers liés à la reconnaissance de formes. Reconnaissance de formes sur le POB-Bot L’icône cible sur la croix permet de rechercher en temps réel une forme spécifique suivant les images provenant de la caméra. L’icône enregistre dans des variables la position de la forme dans l’image et la taille (diagonale) en pixels dans des variables que vous devez sélectionner. Détails des paramètres : Les coordonnées X et Y représentent la position du centre de la forme à reconnaître dans l’image qui provient de la caméra. Il est alors possible de savoir comment se situe le robot par rapport à la forme reconnue. La Taille de la forme est la longueur de la diagonale du rectangle qui englobe complètement la forme reconnue dans l’image. Ceci permet de connaître la distance qui sépare le robot de la forme, à condition de connaître au préalable la taille de forme face à la caméra. X, Y et Taille sont donnés en pixels et sont mis à jour à chaque appel de l’icône. La forme recherchée est détectée quand les paramètres X, Y et TAILLE sont différents de 0. Pour savoir si la forme recherchée est détectée, il suffit de tester la valeur de l’un de ces paramètres avec l’icône balance. POB-Technology – All rights reserved Page 22 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Conseils d’utilisation : L’icône cible sur la croix enregistre les valeurs X, Y et Taille à chaque fois que l’icône est exécutée par le robot. Le fait de voir l’image s’afficher en temps réel sur l’écran du POB-Bot ne signifie pas que X, Y et Taille soient mis à jour en temps réel. Ainsi pour rechercher une forme ou s’en approcher, il est conseillé d’utiliser cette icône dans une boucle. Conseils pour la reconnaissance de formes : L’appel de cette icône teste la présence de la forme à l’écran et ajuste les valeurs de X, Y et Taille. Pour rechercher une forme dans l’environnement du robot, vous devez donc inclure cette icône dans une boucle. L’éclairage doit être suffisant et ne doit pas être dirigé directement sur la caméra. Les formes doivent avoir un bon contraste et ne pas trop briller. Si le robot ne reconnaît pas la forme qui se présente à lui, vérifiez les paramètres de l’icône, vérifiez que l’image se situe bien dans le champ de la caméra en contrôlant l’image reçue sur l’écran. Si l’image est à l’écran mais n’est pas nette ou contient des pixels blancs, vérifiez l’éclairage et d’éventuels reflets de la forme. Liste des formes disponibles pour la reconnaissance. Cercle Croix Grand A Roi Tour Gauche Droite Haut Bas Poule Triangle Trèfle Notions de distances : Une forme de Taille 5 cm (diagonale de la forme réelle à reconnaître) sera reconnue à une distance de 10 à 40 cm environ du robot suivant l’éclairage et les détails de la forme. Une forme de Taille 20 cm (diagonale de la forme réelle à reconnaître) sera reconnue à une distance de 40 cm à 1,5 mètre environ du robot suivant l’éclairage et les détails de la forme. De façon générale, plus la forme est complexe (le Roi par exemple) et plus l’éclairage est faible plus la forme devra être proche de la caméra pour être reconnue. Faites des expériences en fonction de vos conditions d’utilisation, en particulier pour l’éclairage. POB-Technology – All rights reserved Page 23 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement L’icône POB-Bot sur la croix permet au robot d’essayer de se centrer sur une forme reconnue. Sélectionnez la forme sur laquelle le robot doit se centrer puis la variable dans laquelle sera stockée la valeur de Taille (Diagonale) de la forme en pixels. En manipulant cette variable, vous pouvez déduire la distance du robot à la forme. Joystick du POB-Bot Avec l’icône Joystick le robot attend que l’utilisateur presse le Joystick du POB-Bot pour que le programme continue d’être exécuté. Attention, les fonctions en cours d’exécution comme les déplacements ne sont pas stoppées par cette icône. Affichage à l’écran du robot Avec l’icône Texte le robot affiche une chaîne de caractères à l’écran. L’icône Affiche Variable permet d’afficher la valeur d’une variable à l’écran. Sélectionnez la variable à afficher et la ligne (de 0 à 7) sur laquelle afficher la valeur. Remarque : L’affichage se fait sur la moitié droite de l’écran, la moitié gauche est réservée à l’affichage des images de la caméra. POB-Technology – All rights reserved Page 24 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 4 Principes de programmation avec RISBEE 4.1 Généralités Les icônes RISBEE, sont lues et exécutées dans le même sens que la lecture d’un livre. De la gauche vers la droite, puis de haut en bas. Cependant, le canons et balances permettent de faire des sauts à des endroits particuliers de vos programmes. RISBEE d’effectue pas de contrôle de cohérence du programme que vous écrivez. Ainsi que pour n’importe quel langage évolué, vous pouvez écrire des programmes qui surchargent le robot ou encore saturent la mémoire et provoquent des blocages du robot. Il convient donc de respecter quelques règles élémentaires de programmation, en particulier pour l’usage des GOTO (canons verts et balances vertes) et des sous-programmes (canons rouges et balances rouges). Logique habituelle d’un programme robotique Chacune des boîtes ci-dessus peut, et même souvent doit faire l’objet d’un sous programme. Les sous programmes améliorent beaucoup la lisibilité d’un programme et en facilitent la mise au point et la maintenance. POB-Technology – All rights reserved Page 25 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 4.2 Structure d’un programme et sous-programmes Les programmes RISBEE sont composés d’un programme principal et d’éventuels sousprogrammes. Le programme principal est encadré par les icônes « pistolet » et « drapeau à damier » tandis que les sous programmes ne sont encadrés pas les icônes « drapeau rouge » et « parenthèse ». Remarque importante : Tout sous-programme exécuté doit à un moment rencontrer la « parenthèse » pour libérer la mémoire du robot. Dans le cas contraire, il y a de fortes chances pour que le robot ait plus ou moins rapidement la mémoire saturée puis « plante ». Exécution normale d’un sous-programme POB-Technology – All rights reserved Page 26 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Il est bien sur possible d’appeler un sous programme depuis un autre sous-programme. Un sous programme peut aussi s’appeler lui-même, on dit dans ce cas qu’il est récursif, mais attention de bien gérer les conditions de sortie pour ne pas saturer la mémoire. 4.3 Utilisation du GOTO : Canons verts et Balances vertes Règle de base : Un canon vert ou une balance verte doit obligatoirement pointer vers un drapeau vert faisant partie du même niveau de programme. • • Un canon vert ou une balance verte du programme principal doit pointer vers un drapeau vert du programme principal. Un canon vert ou une balance verte d’un sous-programme doit pointer vers un drapeau vert du même sous-programme. Ordres GOTO autorisés et interdits 4.4 Notions de gestion du temps en robotique Les robots font appel à 3 domaines de spécialités : • • • Le logiciel L’électronique La mécanique L’on retrouve ces trois parties dans la gestion du temps lorsqu’un robot exécute son programme. POB-Technology – All rights reserved Page 27 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Ainsi divant les parties du robot qui « travaillent », le temps nécessaire à l’exécution d’une tâche varie : • • • Calcul par le POB-Eye : Rapide Acquisition de capteurs : de rapide à lent Servomoteur : Lent Ces notions sont importantes en robotique et il est souvent nécessaire d’utiliser des temporisations pour que le robot ait un fonctionnement normal. Le chapitre suivant illustre quelques exemples de gestion du temps. POB-Technology – All rights reserved Page 28 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 5 Exemples de programmes et exercices 5.1 Les ordres de base du robot et notions de programmation Faire avancer le robot Dans cet exemple nous souhaitons faire avancer le robot. Début du programme Le robot avance Fin du programme Aucun ordre d’arrêt n’étant donné, le robot avance sans fin. Faire avancer le robot pendant 5 secondes Début du programme Le robot avance Temporisation : entrez 50 (50x0.1 seconde = 5 secondes) comme paramètre de temporisation Le robot s’arrête Fin du programme Le robot avance, une temporisation de 5s est appliquée avant de donner l’ordre STOP au robot. POB-Technology – All rights reserved Page 29 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Illustration de l’importance de la temporisation Cet exemple montre l’importance de la temporisation dans la programmation de robots. Nous allons comparer deux programmes très simples : Début du programme Le robot avance Le robot recule Fin du programme Dans cet exemple, les ordres « avance » et « recule » s’enchaînent très rapidement. L’ordre de reculer est donné immédiatement après l’ordre d’avancer qui n’a donc pas le temps de s’exécuter visiblement. Pour ce programme, le robot ne fait que reculer. Pourtant l’ordre d’avancer est exécuté mais très rapidement. Pour que les deux ordres « avancer » et « reculer » soient pris en compte, il faut mettre une temporisation entre les deux afin que le premier ordre ait le temps d’être exécuté. . Début du programme Le robot avance Temporisation de 2 secondes (paramètre de délai = 20) Le robot recule Fin du programme Dans cet exemple le robot avance pendant 2 secondes puis recule indéfiniment. POB-Technology – All rights reserved Page 30 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Bouger la caméra du POB-Bot en modifiant la position du servomoteur La position d’un servomoteur varie de 0 à 255. Dans cet exemple nous positionnons le servomoteur aux valeurs 30 puis 100 puis 50 avec un délai d’une seconde entre chaque modification de position. Sur le POB-Bot, le servomoteur de la camera est généralement connecté sur le premier connecteur de la carte, c'est-à-dire le servo 0. Pour positionner le servomoteur de la caméra, sélectionnez l’icône Servomoteur, choisissez le servo 0 puis entrez la position, ici 30. Début du programme On positionne le servo 0 à la valeur 30 Temporisation de 1 seconde On positionne le servo 0 à la valeur 100 Temporisation de 1 seconde On positionne le servo 0 à la valeur 50 Fin du programme Question 1 : Que se passe t’il si l’on supprime les temporisations ? Pourquoi ? Question 2 : Si un servomoteur à une amplitude de 0 à 180 degrés et que les positions que je peux fixer varient de 0 à 255, alors : • Quelle précision obtient on en degrés en variant la position de 1 pas ? • De combien de pas doit on faire varier le servomoteur pour le faire tourner de 90 degrés ? POB-Technology – All rights reserved Page 31 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Boucle infinie avec un GOTO : drapeau vert et canon à boulets verts Dans cet exemple nous allons programmer le robot pour qu’il avance une seconde, tourne à gauche pendant une seconde puis l’on recommence la séquence « avance / tourne une seconde » indéfiniment. Début du programme Le drapeau vert place un point de repère pour le canon qui tire des boulets verts. Le canon permettra de revenir à ce point du programme. En paramètre, entrez le nom du drapeau, par exemple « Boucle » Le robot avance Temporisation de 1 seconde Le robot tourne à gauche Temporisation de 1 seconde Le canon à boulets verts permet d’aller (GOTO) vers un drapeau vert. En paramètre, sélectionnez le drapeau vert « Boucle ». Quand cet ordre est exécuté, le programme recommence à partir du drapeau vert. Fin du programme Comme le canon précédant renvoie en permanence vers le drapeau vert, la fin du programme n’est jamais atteinte. Question 1 : Que fait ce programme ci-dessous ? Question 2 : Comment réécrire ce programme plus simplement ? POB-Technology – All rights reserved Page 32 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Boucle finie : Le robot avance et recule 3 fois pour signaler la fin du programme La gatling à balles vertes fonctionne comme le canon à boulets verts, elle renvoie donc vers un drapeau vert. La différence tient dans le fait que la boucle est exécutée un nombre de fois prédéterminé. La gatling à balles vertes permet de renvoyer un nombre X de fois déterminées vers un drapeau vert (ici X=3). Une fois ces X itérations exécutées, le programme continue à l’icône qui suit la gatling. Question : Expliquer le programme ci-dessous. POB-Technology – All rights reserved Page 33 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Variables : Régler l’ouverture de la pince du robot en positionnant votre main devant le capteur de distance Dans cet exemple, nous souhaitons ajuster l’ouverture de la pince du robot en faisant varier la position de la main devant un capteur de distance GP2D12. Nous allons utiliser une variable D dans laquelle sera stockée la distance de la main au capteur. Puis cette variable D sera utilisée pour fixer la position du servomoteur qui contrôle l’ouverture de la pince. Nous supposons que le capteur est branché sur le connecteur 2 des entrées analogiques et que le servomoteur est branché sur le connecteur 1 des servomoteurs de la carte. Début du programme Le drapeau vert utilisé pour la boucle infinie avec le canon à boulets verts On stocke la valeur retournée par le capteur de distance dans la variable D On fixe la position du servomoteur de la pince grâce à la valeur de la variable D Boucle vers le drapeau vert : GOTO Fin du programme Comme le canon précédant renvoie en permanence vers le drapeau vert, la fin du programme n’est jamais atteinte. Question : Pourquoi la temporisation est elle inutile entre l’icône 3 et l’icône 4 ? Important : Vous remarquez que la pince est fermée quand la main se situe autour de 10cm du capteur. En éloignant la main la pince se ferme, mais elle se ferme aussi en rapprochant la main du capteur (distance < 10 cm). Cet exemple permet d’expliquer le fonctionnement des capteurs de distance infrarouge Sharp GP2D12. Ceux-ci permettent de détecter des distances de 10 à 80 cm (voir schéma ci-dessous). En suivant cette courbe, on voit qu’il existe des valeurs retournées par le capteur qui correspondent à deux distances possibles, une supérieure à 10 cm et une autre inférieure à 10 cm. Seules les distances entre 10 et 80cm sont fiables. POB-Technology – All rights reserved Page 34 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Question de réflexion : Quelles solutions pourrait-on envisager (programmation, solution mécanique ou électronique) pour s’assurer de travailler sur des mesures de distances fiables. POB-Technology – All rights reserved Page 35 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Comparaison : Lire un capteur de distance frontal pour éviter les chocs Dans cet exemple, nous allons demander au robot d’avancer jusqu’à ce qu’un obstacle soit détecté devant le robot. Nous allons demander au robot d’avancer puis lire en permanence la valeur retournée par le capteur de distance situé à l’avant du robot. Si la distance est inférieure à un certain nombre alors le robot doit s’arrêter pour éviter l’accident. Les capteurs de distance infrarouge sont des capteurs analogiques. Dans cet exemple nous supposons que le capteur est connecté au connecteur analogique 2 du robot. Début du programme Le robot avance Le drapeau vert place un point de repère pour le canon qui tire des boulets verts. La balance A verte permettra de revenir à ce point du programme. En paramètre, entrez le nom du drapeau, par exemple « Lecture Capteur » Ici nous lisons la valeur du capteur de distance situé à l’avant du robot, nous stockons cette valeur dans la variable A. Paramètres : Choisir la variable A qui correspond à l’entrée analogique 2. La balance A verte permet de comparer une variable à une valeur. Dans notre exemple la variable est A (distance devant le robot) et est comparée à la valeur 50 (environ 30 cm). Si le test est vrai il n’y a pas l’obstacle devant le robot et l’on va vers le drapeau vert pour faire une nouvelle lecture du capteur. Si le test est faux, alors il y a un obstacle à 30 cm et l’on passe à l’icône suivante, le STOP. Le robot s’arrête car il vient de détecter un obstacle. Fin du programme Question 1 : Comment modifier ce programme pour que quand le robot détecte un obstacle il tourne jusqu’à ce qu’il n’y ait plus d’obstacle devant lui, puis reprend sa course ? Question 2 : Comment modifier ce programme pour que le robot puisse se déplacer indéfiniment sans jamais rencontrer d’obstacles ? (On suppose qu’un seul capteur frontal est suffisant, en pratique il en faudrait 3, un devant et un de chaque côté à 45 degrés) POB-Technology – All rights reserved Page 36 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 5.2 Programmes plus évolués Reconnaissance de formes : Le robot avance tant qu’il voit une croix Dans cet exemple le programme est en deux parties. La première partie s’occupe de la détection de la croix avec la caméra, la seconde partie s’occupe des déplacements du robot. En l’occurrence il s’agit ici simplement d’avancer quand une croix est détectée par la caméra, sinon le robot s’arrête. Début du programme Drapeau vert que l’on appelle « Caméra » La caméra cherche si une croix (Forme Cross) est présente devant elle. X, Y et S seront différents de 0 si une croix est détectée. On teste la valeur de la variable S. Si S est différent de 0 alors la croix est détectée et on exécute un GOTO vers le drapeau vert « Avance ». La croix n’est plus détectée, le robot s’arrête Goto vers le drapeau « Caméra » Drapeau vert que l’on appelle « Avance » Le robot avance Goto vers le drapeau vert « Caméra » pour boucler sans fin POB-Technology – All rights reserved Page 37 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Fin du programme Exercice : Ecrire un programme qui fait les opérations suivantes : - Le robot avance quand on lui montre une croix et continue d’avancer tant qu’il voit la croix. - Le robot tourne à droite tant qu’il voit un rond - Le robot tourne à gauche tant qu’il voit une tour. - Le robot s’arrête quand il ne reconnaît aucune forme POB-Technology – All rights reserved Page 38 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Sous programmes : Le robot avance tant qu’il voit une croix Les balances rouges fonctionnent comme les balances vertes mais elles renvoient vers un sous programme symbolisé par le drapeau rouge. Ici nous reprenons l’exemple précédent mais en utilisant deux sous programme pour le cas où la croix est détectée et le cas ou la croix n’est pas détectée. Dans la version Beta de RISBEE, nous utilisons deux balances rouges successives pour gérer le cas IF…THEN puis le cas ELSE. Les deux balances font les tests opposés « égal » et « différent ». Début du programme Drapeau vert que l’on appelle « Boucle » La caméra cherche si une croix est présente devant elle. X, Y et S seront différents de 0 si une croix est détectée. On teste la valeur de la variable S. Si S est différent de 0 alors la croix est détectée et on saute vers le sous-programme « drapeau rouge Croix » POB-Technology – All rights reserved Page 39 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement On teste la valeur de la variable S. Si S est égal à 0 alors la croix n’est pas détectée et on saute vers le-sous programme, drapeau rouge « Pas Croix » Boucle sans fin vers le drapeau vert « boucle » Fin du programme Sous programmes : - Croix : Croix détectée : le robot avance - Pas de croix : Croix non détectée : le robot stoppe Exercice : Modifier ce programme pour que le robot suivre la croix quand elle est décalée à gauche ou à droite. Le robot doit donc rester centré sur la croix sans utiliser l’icône de centrage. POB-Technology – All rights reserved Page 40 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 6 Annexe 1 : Formes à Imprimer 6.1 Formes d’environ 5 centimètres de diagonale POB-Technology – All rights reserved Page 41 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 6.2 Formes d’environ 20 centimètres de diagonale POB-Technology – All rights reserved Page 42 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 43 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 44 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 45 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 46 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 47 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 48 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 49 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 50 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 51 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 52 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement POB-Technology – All rights reserved Page 53 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement 7 Annexe 2 : Connecter des capteurs sur le POB-Bot Chaque bornier de la carte possède 3 entrées : 0V, RA ou RD, +5V Si votre capteur possède des fils de 3 couleurs, connectez le fil rouge sur le +5V, le fil noir sur le 0V et le 3iè fil (généralement Jaune) sur RA ou RD. Reportez vous à la documentation technique du POB-Bot pour connaître les spécifications techniques des capteurs utilisables sur le POB-Bot. POB-Technology – All rights reserved Page 54 / 55 Constructeur de Robots Pour les Loisirs Innovants et pour l’Enseignement Si votre capteur de distance ne possède pas de fils tricolores, suivez le schéma ci-dessous : POB-Technology – All rights reserved Page 55 / 55