Découverte de l'environnement de programmation graphique du MAVIN

Introduction

Le robot MAVIN est désormais monté, son environnement de développement graphique est installé, nous allons enfin le découvrir avant de pouvoir commencer la programmation du MAVIN. Vous allez le voir dans la suite, l'interface de programmation est très conviviale et surtout pensée pour être facilement utilisable par des enfants. Le plus complexe dans la programmation du MAVIN sera certainement la conception algorithmique du programme et non son implémentation. Le seul défaut, et il est léger, est de ne proposer comme seule langue langue d'interface que l'anglais.

Présentation générale

1. Panel des modules
Ce panel regroupe les modules logique, d'entrée, de sortie et de macros. C'est dans ce panel que l'utilisateur trouvera toutes les fonctions programmables du MAVIN
2. Feuille de programmation
Il s'agit de l'espace où l'utilisateur pourra construire son programme en langage  graphique.
3. Panel de propriétés
Ce panel permet de modifier les propriétés des fonctions programmable du MAVIN accessible depuis le panel des modules (1).
4. Barre d'outil
Contient l'ensemble des outils utiles à la l'usage du logiciel

Présentation détaillée

Peu importe le bloc présenté, celui-ci présente au moins une entrée ou une sortie, parfois plusieurs de chaque. Ces entrée et sortie sont représentées respectivement par un carré bleu ou rouge apparaissant sur le bloc, lorsque l'on passe la souris dessus. Le bloc 'start' présente par exemple une unique sortie, pour commencer le programme, et le bloc 'end' une unique entrée, pour en marquer la fin. Certains blocs présentent des sorties dont l'usage précise une situation particulière. Par exemple le bloc 'CDS' présente deux sorties, l'une notée 'T' et l'autre 'F'. La sortie 'T' pour true ou vrai, précise ce qui doit être fait dans le cas où de la lumière est détectée, tandis que la sortie 'F' pour false ou faux présente ce qui doit être fait en absence de lumière.

1- Panel des modules

Le Module Logique contient les différents blocs n'étant pas propres aux caractéristiques du MAVIN, mais ayant plus attrait à la logique. Se retrouvent donc ici les fonctions de début et fin de programme, ainsi que les fonctions de boucle et d'attente.
Ce bloc marque le début d'un programme. Il n'a qu'un seul point de sortie qui doit être lié à la première action ou condition du programme. Il est obligatoire dans tout programme.
Ce bloc marque la fin d'un programme. Il n'a qu'un seul point d'entrée qui doit être lié à la dernière action ou condition du programme. Il est obligatoire dans tout programme.
Ce bloc permet de marquer une pause ou une temporisation dans un programme. Par exemple pour 'avancer pendant 20sec.' ou pour 'attendre 1min. sur place'.
Ce bloc permet d'effectuer des boucles de type for, c'est à dire de répéter une même action un nombre x de fois. Par exemple pour 'clignoter trois fois'.
Les blocs des 'Modules d'Entrée' se présentent tous sous forme de conditions VRAI/FAUX. Il permettent de tester les entrées du robot en fonction de ses capactiés sensorielles et des
Permet de tester l'égalité d'une valeur retenue et d'une valeur de référence. (ex. si i=3 alors...)
Permet la détection d'une intensité lumineuse et de réagir en fonction. Ne fonctionne qu'avec le module CDS.
Permet de détecter une intensité sonore et de réagir en fonction .
Permet d'intercepter des message la télécommande du MAVIN (extension télécommande).
Permet l'usage des capteurs IR du MAVIN. Utile pour le suivi de lignes ou la détection d'obstacle.
Permet de détecter la position des interrupteurs du module interrupteur.
Permet de détecter un contact sur le capteur sensitif du module contact.
Non utilisé dans la version simple du MAVIN. (extension buldozer)
Les blocs du 'Module de sortie' représentent des effecteurs, c'est à dire des outils permettant d'effectuer une action: jouer une mélodie, afficher un texte, etc...
Permet l'enregistremet d'une valeur dans un registre d'état (ex: enregistrer i=10).
Permet la restitution d'un son simple (nécessite le module buzzer).
Permet la restitution de sa propre mélodie
Permet l'affichage d'un nombre (entre 0 et 9) sur l'afficheur 7 segments.
Permet l'affichage de texte sur l'écran LCD en 2x8 lignes.
Permet l'usage d'un bloc de LED.
Permet le contrôle des moteurs.
Permet la restitution de mélodies prédéfinies (nécessite le module HP).
Enfin, le 'Module Custom' contient des fonctions macros crées par l'utilisateur. Par défaut, ce bloc est vide. Nous verrons par la suite comment utiliser ces fonctions pour simplifier nos programmes.

2- Feuille de programmation

La zone n°2 - présentée précédement- est la zone de la 'feuille de programmation'. Pour l'utiliser, il suffit d'y glisser les blocs depuis la zone 1 par simple cliquer-glisser.
 
La feuille présente un quadrillage fin de couleur orange. Les blocs s'alignent sur ce quadrillage de sorte à ce que la distance entre chaque bloc soit de deux au minimum.
 
Pour lier les blocs en un programme, passer la souris sur le bloc initial. Des carrés rouges et bleus apparaissent. Les blocs ne peuvent se lier que du carré rouge au carré bleu. Un clic droit maintenu depuis le lien rouge du bloc intitial fera apparaître une flèche qu'il suffit de 'tirer' jusqu'au carré bleu du bloc de destination (cf image de gauche). Lorsque la flèche est tracée, il suffit de valider le lien en relachant le clic droit. Si la flèche est comprise par le logiciel, elle prend une forme large et orange (cf image de droite).
 
Remarque: la figure droite est le programme minimal valable. Il signifie au robot de 'ne rien faire' .

3- Panel des propriétés

Le panel des propriétés associées à un bloc est accessible dans la zone 3 par simple clic sur le bloc voulu de la feuille de programmation. Nous ne pouvons passer en revue par image la totalité des propriétés pour chaque bloc. Généralement, un bloc se présente de la manière suivante:
- pour les blocs liés à des modules physiques: une zone de configuration de l'emplacement du module. Permet d'indiquer sur quel connecteur est monté le module afin que le programme sache quelles pattes du microcontroleur lui sont associées.
- une zone de configuration de la propriété propre au bloc. Cela peut être par exemple un temps de delai(bloc DELAY), un nombre de boucle (bloc LOOP), du texte à afficher (bloc LCD), un niveau sonore (bloc MIC) ou autre...
- une zone de choix du test sur la propriété dans le cas des modules Input. Par exemple si la propriété du niveau lumineux (bloc CDS) est régler à 4, le test associé peut-être 'supérieur à ce niveau', 'inférieur à ce niveau', 'égal à ce niveau', ... Pour le module SWITCH, le test sera par exemple 'l'interrupeur est-il en position 1?' 'en position 2?' 'en position 3?'
 
Voici quelques exemples pour illustrer les explications:
 
Module PHOTO
    La configuration ci-contre indique que le module sera utilisé pour configurer le bloc de capteur infrarouge situé à l'avant (sensor direction=FORWARD). La suite du programme sur la branche TRUE (vrai) du test sera effectué seulement si le capteur ne capte rien à gauche (L), rien à droite (R), mais une présence droit devant (C): détection d'un obstacle droit devant le robot. (sensor stauts R=faux C=vrai L=faux).
 
Module TOUCH
La configuration ci-contre fonctionnera pour le module branché sur le connecteur 3 (Module Position = 3). La suite du programme associé à la branche TRUE (vrai) ne sera effectué que si le capteur est effectivement touché: détection d'une interaction tactile avec le robot (Touch Sensor=On).
 
Module MOTOR
Ici, le bloc MOTOR est utilisé pour les moteurs en branchement normal (position=default). Les consignes sont de faire avancer le robot tout droit en actionnant les deux moteurs (select motor=both) en marche avant (direction=forward) et à une vitesse relativement élevée (velocity=13).

4- Barre d'outil

 
De gauche à droite, les premiers outils sont les composants classiques d'une barre d'outil. Nous avons ainsi:

  1. | nouveau document | ouvrir un document | enregistrer | enregistrer sous |
  2. | copier | couper | coller | annuler |
  3. | supprimer le(s) module(s) sélectionné(s) | supprimer les liaisons avec le(s) module(s) sélectionné(s) |
  4. | zoom avant | zoom arrière | 

Viennent ensuite des options en rapport avec la programmation du MAVIN:
| afficher code source | Permet d'ouvrir dans le bloc-note le code source en C associé au programme en langage graphique. ATTENTION: modifier le code source C n'apporte rien et NE PERMET PAS de programmer le robot en C. Pour programmer le MAVIN en C, une autre manipulation sera présentée dans un article ultérieur.
| vérification logique | Effectue une vérification de la logique du programme. Ce test assure que le programme respecte une logique de programmation correcte et qu'il sera fonctionnel. En revanche, si la logique programmée est juste, elle ne correspond pas forcément à ce que vous vouliez faire. Pour être certain que votre programme -correct d'un point de vu logique- corresponde à votre cahier des charges, une seule solution: l'essayer.
| compile | Compile le programme: transforme le programme écrit en logique graphique en un fichier binaire (des 0 et des 1) compréhensible par le microcontrolleur du robot.
| télécharger | Permet de charger le programme compilé (fichier binaire) dans la mémoire du MAVIN afin de pouvoir l'exécuter. Permet de faire fonctionner votre robot avec le programme conçu.
| Simuler | Permet de lancer une simulation du fonctionnement du MAVIN dans le logiciel. Cette simulation montre l'enchaînement logique des tâches du programme mais ne permet cependant pas d'appréhender la vitesse réelle d'exécution.
| Statut de la liaison | Indique par sa couleur l'état de la liaison USB avec le robot: connecté/occupé/non connecté.

Conclusion

Une fois de plus, le MAVIN et la technolgie qui en découle sont alléchants et la découverte de l'interface de programmation -avec ses blocs au design glossy- surprends par son apparence aérée et sa clarté. Très intuitive et séduisante, l'interface se veut facile à prendre en main et à utiliser.
 
Les plus:
  • Design agréable
  • Utilisation simple et intuitive
Les moins:
  • Peu d'options de paramétrage associées aux divers modules. On regrette en ce sens que les possibilités des modules ne soient pas mieux exploités par l'interface. Nous verrons plus tard si la programmation en C permet de s'affranchir de ce problème.
  • Logiciel en anglais seulement (peut être envisagé comme un point positif pour l'immersion dans le monde de l'informatique et de sa documentation en anglais!).
  • Logiciel uniquement disponible sous Windows. Les linuxiens n'ont-ils pas le droit au MAVIN?
Votre note : Aucun(e) Moyenne : 2.3 (7 votes)