Skip to content

TDm2

Le but de la séance est de se familiariser avec la programmation de la brique NXT flashé avec le firmware LejosRT

Prenez connaissance de la procédure d'installation et d'utilisation de lejosRT.

Exercice 1 : Hello lejosRT !

  • Dans un fichier Hello.java, recopiez le code suivant :
1
2
3
4
5
6
7
import lejos.nxt.*;
public class Hello {
    public static void main (String[] args) {
        System.out.println("Hello LejosRT!");
        Button.waitForPress();
    }
}
  • Compilez avec la commande nxjc. Vous devez obtenir le fichier Hello.class.
  • Edition des liens et téléversement du programme sur la brique NXT avec la commande nxj.
  • Lancez le programme sur la brique, trois procédures possibles :
    • relancez la commande nxj avec l'option -r
    • directement depuis la brique : Files > Hello.nxj
    • depuis le PC grâce à la commande nxjbrowse : cliquez sur connect, puis sélectionnez Hello.nxj et Run program

Exercice 2 : Affichages sur l'écran LCD

Cherchez dans la documentation les classes LCD et BATTERY. Faites un programme permettant d'afficher le niveau de la battery.

Exercice 3 : Console déportée

Les consoles déportées sont un outils fondamentale pour le développement sur carte embarquée, et plus spécifiquement lors de la phase de debug.

Regardez la documentation de la classe RConsole. On commence dans le code par demander à la brique d'attendre la connexion :

while (!RConsole.isOpen()){
    RConsole.open();
}

Côté PC, on peut lancer la commande

nxjconsole

Les affichages déportés peuvent être réalisés avec l'instruction RConsole.println().

Réalisez un programme similaire à celui de l'exercice 2 mais qui affiche l'état de la batterie sur la console déportée.

Exercice 4 : Faire un thread temps réel périodique

Regardez la documentation de la classe RealtimeThread

  • Comment créé-t-on un thread temps réel ?
  • Comment peut on lui affecter une priorité ?
  • Que fait la méthode waitForNextPeriod() ?
  • Faite un programme qui lance un thread temps réel de priorité 15 qui va afficher toutes les secondes un message sur la console déporté indiquant le temps écoulé depuis le début du programme.
    • Pour calculer le temps écoulé, vous utiliserez la méthode statique currentTimeMillis() de la classe System.

Exercice 5 : La classe Motor

Regardez la doc de la classe Motor. Connectez un moteur sur l'un des port de sortie du NXT et faite un programme qui :

  1. Fait tourner le moteur en marche avant
  2. Écrit "Avance" sur l'écran et "le robot avance" sur la console déportée
  3. Attend qu’un bouton soit appuyé.
  4. Fait tourner le moteur en marche arrière
  5. Écrit "Recule" sur l'écran et "le robot recule" sur la console déportée
  6. Attend qu’un bouton soit appuyé.
  7. Arrête le moteur

Exercice 6 : Programme avec deux Realtimethread

Faites un programme avec deux RealtimeThread, le premier démarre le moteur puis affiche toutes les secondes un message, sauf si le moteur ne tourne plus, dans ce cas il affiche un message et termine. Le deuxième attend qu'un bouton soit appuyé pour arrêter le moteur.