Pouvoir afficher un texte sur l’écran du Nxt permet à l’utilisateur de voir certaines valeurs de variables lors de l’exécution d’un programme, afficher un menu afin de piloter différents moteurs. Plusieurs fonctions existent dans RobotC, je vais vous les présenter.
Organisation de l’écran d’affichage du Nxt:
L’écran possède 8 lignes de 0 à 7, les coordonnées de départ (0,0) se trouvent en bas à gauche pour se terminer en haut à droite (99,63).
Les différentes fonctions:
- eraseDisplay();
- nxtDisplayTextLine(….);
- nxtDisplayString(…);
- nxtDisplayStringAt(…..);
- nxtDisplayClearTextLine(..);
- nxtDisplayCenteredTextLine(…);
La fonction eraseDisplay() permet d’effacer l’écran.
La fonction nxtDisplayTextLine( l, ‘ %tag’, var) affiche une variable var à la ligne l avec une valeur de tag en fonction du type de la variable.
Les différents types existants:
- %d affiche un nombre entier, %08d affiche un nombre entier sur 8 décimales.
- %f affiche un nombre décimal, %1.2f affiche un nombre décimal avec deux chiffres après la virgule, %4.3f affiche un nombre décimal avec 3 chiffres après la virgule et 4 chiffres avant la virgule.
- %s affiche une chaine de caractères.
- %x affiche une variable en valeur hexadécimale, %X la même chose en grand caractère.
La fonction nxtDisplayString( l, ‘ %tag’, var) est identique à la fonction nxtDisplayTextLine( l, » %tag », var).
La fonction nxtDisplayStringAt( x, y, ‘ %tag’, var) affiche une variable var aux coordonnées (x,y) avec une valeur de tag en fonction du type de la variable.
La fonction nxtDisplayClearTextLine( l ) efface une ligne l, l de 0 à 7.
La fonction nxtDisplayCenteredTextLine(….) est identique à la fonction nxtDisplayTextLine(…), le texte affiché à l’écran est centré.
Un programme utilisant toutes les commandes vues précédemment:
int i=11; float x=3.141592; char tab[]={'R','O','B','O','T'}; string str= "Bonjour Ubik75"; task main() { // effacer l'ecran NXT eraseDisplay(); nxtDisplayTextLine(7,"entier i:%d", i); // nbre de ligne de 0 a 7 nxtDisplayString(0,"%s", str); nxtDisplayCenteredTextLine(1,"%s", str); // Affichage en HEXA de i=10 nxtDisplayString(2,"HEXA i:%x", i); nxtDisplayString(3,"HEXA i:%X", i); nxtDisplayStringAt(60, 47, "%d", i); nxtDisplayStringAt(20, 20, "%f", x); nxtDisplayStringAt(30, 30, "%1.2f", x); nxtDisplayStringAt(75, 7, "%d", i); wait1Msec(5000); // effacer la ligne 0 nxtDisplayClearTextLine(0); wait1Msec(10000); }
Photos de l’exécution du programme:
- La ligne 0 de l’écran correspond à la ligne 14 du programme.
- La ligne 1 de l’écran correspond à la ligne 15 du programme.
- La ligne 2 de l’écran correspond aux lignes 18 et 20 du programme.
- La ligne 3 de l’écran correspond à la ligne 19 du programme.
- La ligne 4 de l’écran correspond à la ligne 23 du programme.
- La ligne 5 de l’écran correspond à la ligne 22 du programme.
- La ligne 7 de l’écran correspond aux lignes 12 et 24 du programme.
- La ligne 0 de l’écran est effacée et correspond à la ligne 28 du programme.
Avec ses différentes façons d’afficher une variable, vous pouvez utiliser l’écran du NXT afin de déboguer vos programmes ou créer des menus.