Club robotique de Sophia-Antipolis

Accueil > Projets et études > Nos robots > Robots du club > Robots à roues > Hitec Mavin (2008) > Programmes Ma-vin et les sous-routines

Programmes Ma-vin et les sous-routines

mercredi 8 octobre 2008, par Julien H.

Nos amis d’outre-Rhin (robonova.de) ont sorti une nouvelle archive contenant des exemples.

PNG - 3.7 ko

En particulier, ils ont fourni un répertoire ’Sub’ contenant un certain nombre de fichiers que nous n’avons pas l’habitude de manipuler :

PNG - 1.6 ko

C’est le sujet de cet article : les sous-routines (Sub signifie "sous" en anglais), des bouts de programme qui peuvent être réutilisés.


Remarque importante : c’est toujours [1] la version beta 2 du logiciel Ma-vin dont nous parlons dans cet article et que nous allons manipuler. Les exemples ne conviennent pas à la version 1.

 Installation des exemples

Tout d’abord, fermez le logiciel Ma-vin si jamais il était ouvert. Ensuite ouvrez votre éditeur de fichiers (explorer Windows) pour vous rendre dans le répertoire utilisateur contenant vos programmes Ma-vin (sous Mes Documents/MA-VIN par défaut).

PNG - 2.3 ko

Ouvrez maintenant l’archive zip que vous aurez téléchargée (lien en début d’article), vous remarquerez que la structure est identique :

  • un répertoire Project
  • un répertoire Sub

Vous connaissez le répertoire Project, c’est celui qui contient les programmes que vous écrivez et que vous enregistrez. Le répertoire Sub contient les sous-routines que nous allons étudier.

Sélectionnez les répertoires de l’archive et copiez les sur votre disque.

PNG - 53.5 ko
Installation par copie des fichiers
Faites glisser les fichiers de l’archive zip vers votre répertoire utilisateur du logiciel Ma-vin

Voilà, les exemples sont installés dans le répertoire Project et les sous-routines dans le répertoire Sub.

C’est fini. Non ? Vous voulez vérifier dans le logiciel ?

 Accéder aux sous-routines d’exemple

Ouvrez le logiciel Ma-vin. Les sous-routines ne sont pas des programmes comme les autres, car elles sont accessibles comme des blocs.


Définition d’une "sous-routine" :
- un programme pour le Ma-vin (i.e. composé de blocs, commençant par START et terminant par END après un traitement d’un ou plusieurs blocs logiques, entrées ou sorties)
- mais qui peut resservir pour construire des programmes plus complexes, auquel cas il est vu et manipulé comme un bloc d’un type particulier (un élément graphique comportant des connecteurs d’entrée et des connecteurs de sorties et pouvant être lié avec d’autres blocs).

Les blocs représentant les sous-routines sont présents dans l’onglet "Custom" (qui signifie "personnalisé"). Cliquez sur l’onglet pour accéder aux blocs.

PNG - 7.3 ko

Damned ! Le panneau est vide. En effet, la copie des fichiers à l’emplacement par défaut n’a pas suffit à informer le logiciel Ma-vin que de nouveaux modules étaient disponibles.

Il va donc falloir les ajouter un à un. Faites un clic droit en plein milieu du panneau vide. Un menu contextuel s’ouvre avec deux choix :
- Add
- Delete (ne fonctionnera que si vous avez un bloc sélectionné)

PNG - 2.2 ko

Choisissez "Add". Une fenêtre modale s’ouvre et vous montre une partie des fichiers que vous venez de copier dans le répertoire utilisateur. Il y a en effet un filtre pour ne montrer que les *.app qui représentent les blocs importables dans le logiciel.

PNG - 12.9 ko

Sélectionnez le premier et validez. Un bloc de couleur verte est présent dans l’onglet Custom.

PNG - 9.4 ko

Faites de même avec chacun des fichiers. Vous avez désormais tous vos sous-routines utilisables et transportables dans un programme de votre conception.

PNG - 36.3 ko

Il suffit en effet de démarrer un nouveau programme vide. Seule la brique START est présente. Cliquez sur un module Custom (bloc vert) et tenez le bouton de la souris appuyé jusqu’à ce que vous soyez au-dessus de votre programme (en plein milieu pour éviter qu’il ne s’enfuit dans un coin). Relachez, un nouveau bloc est disponible pour se lier à votre brique START.

PNG - 21.5 ko

Terminez le programme minimal permettant de tester la sous-routine. Ajoutez bien sûr la brique END. Créez les connexions.

PNG - 32.4 ko

Je vous laisse le plaisir de constater ce que fait ce module sur votre robot Ma-vin. Vous savez maintenant vous servir des blocs Custom contenant des sous-routines.

Mais qu’est ce que font ces sous-routines que vous venez d’installer ? Les sous-routines étant des programmes à part entière (voir définition ci-dessus), vous pouvez regarder le contenu de la sous-routine, et même la modifier. Il suffit de double-cliquer sur le bloc vert qui vous intéresse dans l’onglet CUSTOM.

PNG - 6 ko

Le programme visuel décrivant le fonctionnement de la sous-routine s’ouvre dans le même éditeur que vos programmes. Seul l’onglet d’affichage est différent (toujours la belle couleur verte).

PNG - 2.9 ko

 Pour aller plus loin

Vous pouvez modifier les sous-routines ou créer de nouvelles. Pour cela, il faut procéder comme avec un programme classique, mais c’est lors de l’enregistrement que tout va se jouer : il faut cliquer sur l’autre bouton "Save", celui avec un petit dessin en bas à droite.

PNG - 9.2 ko

Et voilà, vous avez désormais une fonctionnalité très intéressante pour faire des programmes complexes en réutilisant les codes que vous aurez enregistré en sous-routine.

Un petit exercice : peut-on faire des sous-routines utilisant des sous-routines ? Attention à ne pas faire de boucles infinies en appelant une sous-routines depuis une de ses sous-sous-routines :)


[1cf. articles précédents

Vos commentaires

  • Le 27 octobre 2008 à 18:12, par ? En réponse à : Programmes Ma-vin et les sous-routines

    Bonsoir , j’ai essayé les sous programmes ma-vin , mais je ne comprends pas pourquoi il faut remettre end dans les programmes pour que cà fonctionne car déjà dans les sous programmes il y a end

    • Le 27 octobre 2008 à 20:16, par Julien H. En réponse à : Programmes Ma-vin et les sous-routines

      Très bonne question. L’explication est simple : le END dans la sous-routine signifie qu’il faut retourner à la routine qui l’utilise (éventuellement le programme principal) mais en aucun cas ne signifie la fin de votre programme. Entre votre sous-routine et la brique END de votre programme principal, vous pouvez enchainer d’autres actions, notamment faire une boucle.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document