Utiliser RobotC pour programmer son robot !

RobotC est un logiciel ainsi qu'un language de programmation spécial pour l'éducation de la robotique. Basé sur le langage de programmation C de bas niveau il permet une grande liberté dans la création des programmes.
De plus ses fonctions déjà prête pour les trois plateformes de robotiques que sont les LEGO Mindstorms, les robots VEX et certaines Arduino permettent une prise en main facilité de la programmation. Il permet aussi de programmer les éléments electroniques que sont TETRIX et MATRIX.
La seule mauvaise nouvelle étant que ce logiciel n'est pas gratuit mais possède quelques jours d'essai.

Les astuces du logiciel


Les codes d'exemples :

En effet pour toutes les versions de RobotC vous avez dans l'onglet file une option s'appelant "Open Sample Program" qui regroupe des codes déjà fait et fonctionnel (je vous le promets !). Ils permettent de comprendre comment programmer la plupart des capteurs et des mouvements. D'ailleurs les tutoriels que vous trouverez dans ce site vous y renverrons souvent nous n'avons pas pour habitude de recopier un code d'example sauf dans des tutoriels de commencement. Les notres amenerons souvent à des regroupements de plusieurs de ces codes d'examples sous forme de fonctions.

Le cherche et remplace !

Dans la plupart des IDE cette option existe mais il est toujours bon de la rappeller: l'option "Find and Replace" dans l'onglet edit qui comme son nom l'indique permet de chercher une chaine de caractère(un mot) et de remplacer chaque occurence de ce mot dans tout le programme. Cela permet en autre de changer le nom d'un variable que vous avez écrit 50 fois en 10 secondes. Génial non?
Raccourci: CTRL + h.

Le commentaire :

Le commentaire sur une ligne ce fait par la présence de: // Avant le texte à mettre en commentaire.
Raccourci: CTRL + q
Pour plusieurs lignes il faut entourer ces dernières par /* et */.

Le Zoom :

Le code est trop petit pour vous? Dans l'onglet view vous pouvez agrandir ou rétrécir le texte.

Les toolbars

Tout au bout de l'ongmet view vous pouvez rajouter quelques toolbars si jamais il y a des actions que vous effectuez beaucoup que vous voulez obtenir qu'en un clic mais entre nous je vous coneille d'apprendre et d'utiliser les raccourcis clavier ;).

Compile et Compile et Download

Pour pouvoir envoyer son code dans le robot, des boutons résume ces actions par défaut dans la toolbars. Les raccourci sont F5 et F7

Compiler Target :

Pour choisir si vous voulez travailler sur un robot réel ou virtuel.

Menu Level

Cette gentille option dans l'onglet windows permet différent mode d'affichage des fonctions que vous voyez dans la fenêtre selon votre connaissance de ces dernières.

Fix Formatting

Ce bouton présent sur la toolsbar permet de faire les bonnes indentations automatiquement sur du texte sélectionné. Pour, par exemple, bien replacer du code après un copié collé.

Spécificités pour Vex

Tout d'abord le lien de téléchargement: http://www.robotc.net/download/vexrobotics/
Ensuite si vous ne l'avez pas déjà lu venez découvrir notre petit paragraphe sur les technologies Vex

Maintenant attaquons nous aux réglages nécessaires:

Choissisez la plateforme de travail

Dans l'onglet robot il y a l'option "Platform Type" qui déroule sur d'autre options. Vérifiez dans ces autres options que c'est bien VEX 2.0 qui est sélectionné.

Firmware à Jour

Vérifiez que les firmwares sur votre joystick et votre cortex soient à jour via l'onglet robot l'option Download Firmware.

Choisissez le mode de communication

Avec les technologies Vex il esxite plusieurs systèmes de communications entre l'ordinateur et ses composants. Pour choisir le bon allez dans l'onglet robot puis l'option Vex Cortex Communication Mode. et la sauf si vous êtes en compétitions ou que vous avez eu des problèmes auparavant avec le système de detection automatique de RobotC choisissez VEXnet or USB.

Vérifiez qu'un appareil est branché

Pour finir vous pouvez vérifier que votre appareil est bien reconnu par le logiciel en allant dans l'onglet view pour en sélectionnant l'option : "Select Communnication Port".

Déclarer les composants

Sur le Vex cortex on utilise une ligne de code qui appelle une fonction pour déclarer un appareil éléctrique branché sur le cortex.
Cette ligne commence par : #pragma config , puis prend des variables permettant de définir, dans l'ordre, le type de composant, la broche sur laquelle est branchée le composants, le nom que l'on va utiliser pour le composant dans le programme et le type précis du composant électrique. Pour les moteur cette fonction peut prendre plus de paramètres pour le sens ou le type de rotation.

Comme il est difficile de tous les connaitres par coeur RobotC à créer une interface graphique qui va les généré automatiquement selon vos réglages. Pour ouvrir cette interface graphique allez dans l'onglet robot puis cliquez sur l'option Motor and Sensors Setup. Ou double-cliquez sur une ligne #pragma déjà faite.
Une fois dans cette interface vous n'avez plus qu'à sélectionner le bon type de moteur selon la référence que vous avez et rentrez un nom à la ligne correspondant à la broche sur laquelle est branché votre composant.

Exemples :

Voici quelques exemples de configuration.
Pour moteur:


#pragma config(Motor,  port2,           rightMotor,    tmotorServoContinuousRotation, openLoop, reversed)
#pragma config(Motor,  port3,           leftMotor,     tmotorServoContinuousRotation, openLoop)
                                            

Pour capteur de contact:


#pragma config(Sensor, dgtl1,  sensorArmFront, sensorTouch)
                                            

Pour la programmation du Vex cortex rendez-vous ici

Spécificités pour Lego

Tout d'abord le lien de téléchargement: http://www.robotc.net/download/lego/
Ensuite si vous ne l'avez pas déjà lu venez découvrir notre petit paragraphe sur les technologies Lego

Maintenant attaquons nous aux réglages nécessaires:

Choissisez la plateforme de travail

Dans l'onglet robot il y a l'option "Platform Type" qui déroule sur d'autre options. Vérifiez dans ces autres options que c'est bien LEGO Mindstorms NXT qui est sélectionné.

Firmware à Jour

Vérifiez que les firmwares sur votre joystick et votre cortex soient à jour via l'onglet robot l'option Download Firmware.

Vérifiez la présence d'une brique NXT

Allez dans l'onglet Robot puis dans l'option LEGO Brick puis cliquez sur Communication Link Setup. Si une brique est branché directement à l'ordinateur alors elle devrait apparaitre directement. Pour une communication par bluetooth choisissez l'option USB or Blutooth dans le cadre Search Selection et relancer une recherche.

Déclarer les composants

Pour la brique NXT il n'est pas nécessaire de déclarer les moteurs étant donné qu'il n'y en qu'une sorte compatible donc pour les utiliser nous n'auronq qu'à utiliser une fonction. Pour plus de détails voir notre tutoriel sur comment programmer son NXT.

Ensuite pour les capteurs on utilise une ligne de code qui appelle une fonction pour déclarer un appareil éléctrique branché sur un des quatre port de la brique.
Cette ligne commence par : #pragma config , puis prend des variables permettant de définir, dans l'ordre, le type de composants, le port sur laquel est branchée le composant, le nom que l'on va utiliser pour le composant dans le programme et le type précis du composant électrique.

Comme il est difficile de tous les connaitres par coeur RobotC à créer une interface graphique qui va les généré automatiquement selon vos réglages. Pour ouvrir cette interface graphique allez dans l'onglet robot puis cliquez sur l'option Motor and Sensors Setup. Ou double-cliquez sur une ligne #pragma déjà faite.
Une fois dans cette interface vous n'avez plus qu'à sélectionner le bon type de capteur dans l'onglet "Sensors" selon la référence que vous avez et rentrez un nom à la ligne correspondant au port sur laquel est branché votre composant.

Voici quelques exemples de configuration pour les 3 types de capteur dans le kit de base
Pour le capteur de distance à ultrason:


#pragma config(Sensor, S1,     sonarSensor,    sensorSONAR)
                                            

Pour capteur de contact:


#pragma config(Sensor, S2,     capteurTouchGauche, sensorTouch)
                                            

Pour capteur de couleur: (il y a quatre moyen de déclarer ce capteur pour plus d'info allez voir ici


#pragma config(Sensor, S4,     couleur,        sensorColorNxtFULL)
                                            

Passer de l'un à l'autre

Vous l'avez surement trouvez instinctivement si vous n'avez pas eu de problème mais je tenais à faire une petite partie dessus car chez moi impossible de passer d'un type du logiciel à un autre malgré une dizaine de désinstallation et de réinstallation.

Alors pour passer de l'un à l'autre il faut simplement aller dans l'onglet robot puis dans l'option Platform Type et la si vous avez bien installé les deux logiciels vous pourrez passer de l'un à l'autre en choissant soit vex soit lego.

A noter qu'un des raccourcis sur votre bureau ne marchera plus. Autant renommer celui fonctionnel.

Si jamais vous n'avez pas les deux platform qui s'affiche he bah j'espère que vous trouvere une solution moi je les ai réinstallé sur une machine virtuel.