Information : sur le site des exemples offerts, des liens vers des fichiers .jnlp vous seront offerts afin de lancer les programmes en exemple.
Afin de lancer ces fichiers, veuillez taper dans le terminal :
cd /usr/lib/jvm/java-6-openjdk-i386/jre/bin
et ./javaws URL_du_fichier.jnlp exemple :
./javaws http://www.aplu.ch/webstart/nxtsimex1.jnlp
14 septembre 2012 : IMPORTANT : Lors de la compilation de votre programme, si vous obtenez un message d'erreur du type "An internal error occurred during: "xyz".
org/eclipse/jdt/debug/core/JDIDebugModel", veuillez taper dans le terminal
sudo apt-get --reinstall install tzdata-java
Il s'agit d'un problème qui survient lors de la mise à jour du système.
Il est fortement suggéré d'utiliser le navigateur Firefox pour réaliser cette activité.
ATTENTION, si vous utilisez Eclipse pour votre programmation, il vous faudra changer
import ch.aplu.nxt.*; par
import ch.aplu.nxtsim.*; dans les exemples de programmes
Si vous désirez utiliser le logiciel GEANY (non suggéré), cliquez ICI
Fermer cette section
Si vous désirez utiliser le logiciel GEANY (sudo apt-get install geany)
Crééz un répertoire nommé votrenom_rg
Téléchargez et décompactez les librairies requises en tapant dans le terminal : wget http://ladifference.info/i/images//partageeleve/pierre_morissette_environnementrobotjava.zip && unzip pierre_morissette_environnementrobotjava.zip && rm pierre_morissette_environnementrobotjava.zip && thunar /home/cb/environnementrobotjava
Placez les fichiers NxtSim.jar , JGameGrid.jar et NxtJLib.jar ainsi que le répertoire "sprites" dans votre répertoire votrenom_rg
Utilisez geany afin d'écrire en enregistrer votre programme A.java
Compilez votre programme (création du fichier .class) en utilisant cette commande dans le terminal :
javac -classpath :/home/cb/votrenom_rg/JGameGrid.jar:/home/cb/votrenom_rg/NxtJLib.jar:/home/cb/votrenom_rg/NxtSim.jar /home/cb/votrenom_rg/A.java
Lancez votre programme en utilisant cette commande dans le terminal cd /home/cb/votrenom_rg/ && java -classpath :/home/cb/votrenom_rg/JGameGrid.jar:/home/cb/votrenom_rg/NxtJLib.jar:/home/cb/votrenom_rg/NxtSim.jar A
Créez (ou éditer) un fichier dans le répertoire /home/cb/votrenom_rg/ nommé manifest.txt contenant Main-Class: A
Class-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar
en tapant dans le terminal :
echo -e "Main-Class: A\nClass-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar">/home/cb/votrenom_rg/
Extraire le contenu des fichiers .jar en tapant dans le terminal :
cd /home/cb/votrenom_rg jar -xf JGameGrid.jar cd /home/cb/votrenom_rg jar -xf NxtJLib.jar cd /home/cb/votrenom_rg jar -xf NxtSim.jar
Créez ensuite votre fichier .jar
en tapant dans le terminal cd /home/cb/votrenom_rg/ && jar -cvfm A.jar manifest.txt ./JGameGrid.jar ./NxtJLib.jar ./NxtSim.jar ./ch/* ./sprites/* A.class
Lancez votre fichier .jar en utilisant cette commande dans le terminal cd /home/cb/votrenom_rg && java -jar -cp /home/cb/votrenom_rg A.jar
Voici un résumé des procédure pour le répertoire pierre_rg et le programme a.java
2) Lancez et testez cd /home/cb/pierre_rg jar -xf JGameGrid.jar && cd /home/cb/pierre_rg jar -xf NxtJLib.jar && cd /home/cb/pierre_rg jar -xf NxtSim.jar
3) Créez le fichier manifest.txt echo "Main-Class: a\nClass-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar">/home/cb/pierre_rg/manifest.txt
4) Extraire le contenu des fichiers .jar cd /home/cb/pierre_rg/ && jar -cvfm a.jar manifest.txt ./JGameGrid.jar ./NxtJLib.jar ./NxtSim.jar ./ch/* ./sprites/* a.class
IMPORTANT : Effectuez les réglages et modifications suivants:
Sélectionnez le TEMPLATE + NxtSim
Renommez votre classe et toutes les références à cette classe en utilisant la lettre de votre programme,
Complétez votre programme afin de réaliser la tâche demandée
Validez le fonctionnement de votre programme en cliquant le bouton COMPILER et le lien RUN ... le lien "Run ..." + Ouvrir avec - Sun Java 6 Web Start (javaws)+ Executer
Au besoin, utilisez l'emplacement de Sun Java 6 Web Start : /usr/lib/jvm/java-6-sun-1.6.0.26/bin/javaw
Téléchargez le fichier .jar dans le répertoire /home/cb/
Téléchargez ensuite ce fichier .jar dans votre espace de téléchargement
MÉTHODE 2 : utilisation de l'éditeur Eclipse
Lancez le logiciel eclipse
Sélectionnez le menu FILE + New Class et nommez votre programme selon notre convention de nommage
Copiez et collez le programme en exemple dans l'éditeur Eclipse
Renommez votre classe et toutes les références à cette classe en utilisant la lettre de votre programme,
et remplacez
import ch.aplu.nxt.*; par
import ch.aplu.nxtsim.*; dans les exemples de programmes
exemple
Modifiez le code afin que le robot produise la tâche demandée
Compilez et validez votre programme en utilisant :
le menu RUN + RUN ou la touche de raccourci CTRL + F11
Créez votre fichier .jar dans votre répertoire /home/cb/ en utilisant le menu le menu FILE + EXPORT + JAVA + RUNNABLE JAR FILE + ...
Ajoutez à votre archive le répertoire "sprites" et son contenu en tapant dans le terminal (en remplacant a.jar par la lettre de votre fichier)
cp -avr ./environnementrobotjava/sprites/ ./ && jar uf ./a.jar ./sprites/*
Notez que la commande gear.leftArc(0.5, 1000); contient deux arguments:
le premier dont la valeur est 0.5 désigne le rayon de courbure
le second dont la valeur est 1000 désigne le temps d'action en millisecondes
(5 points)TITRE DU DÉFI : utiliser les moteurs : faire tourner le robot selon une courbe (faire un demi-cercle) en N'UTILISANT PAS un engrenage (gear) mais en faisant varier la vitesse de chacun des moteurs
Fichier en exemple à utiliser
(5 points)TITRE DU DÉFI : utiliser les moteurs : faire varier la vitesse du robot EN UTILISANT UN ENGRENAGE ; déplacer le robot selon un carré à une vitesse de 30 et ensuite déplacer le robot selon un triangle à une vitesse de 90
ATTENTION : la valeur limite supérieure pour la vitesse est 100
Accédez à l'éditeur en ligne Fichier en exemple à utiliser Autres exemples - change direction
(5 points)TITRE DU DÉFI : Utiliser une structure de répétition while afin de déplacer le robot selon le trajet d'un triangle
(5 points)TITRE DU DÉFI : Utiliser une structure de conditionnelle if else afin que si la valeur de la variable aléatoire est inférieure à 0.5, alors déplacer le robot selon un carré, sinon déplacer le robot selon un cercle
Fichier en exemple à utiliser
ATTENTION : tu ne peux pas utiliser à la fois des engrenages et des moteurs
Programme en exemple à utiliser :Autres exemples - Turtle Robot + if - else
- si la variable i vaut 1, alors le robot avance pendant 100ms
- si la variable i vaut 2, alors le robot tourne à droite de 90 degrés et avance pendant 100ms
- si la variable i vaut 3, alors le robot tourne à gauche de 90 degrés et avance pendant 100ms
(5 points)TITRE DU DÉFI : utiliser le détecteur de lumière et les variables d'environnement suivantes (afin que le robot recule de x ms et tourne de y degrés lorsque le robot détecte une zone noire ) :
.setStartPosition(250, 200);
.setStartDirection(-90);
.useBackground("URL_DE_VOTRE_IMAGE");
(5 points) TITRE DU DÉFI : utiliser le détecteur de toucher et la variable d'environnement .useObstacle("URL_DE_VOTRE_IMAGE", 250, 250); afin que lorsque le robot détecte le toucher d'un obstacle, il recule de x ms et tourne de y degrés (x et y étant des valeurs de votre choix)
Accédez à l'éditeur en ligne Fichier en exemple à utiliser
Autres exemples - Touch Sensor Vous devez créer votre propre image en noir et transparent en utilisant gimp.
Votre image doit avoir une dimension de 500x500.
Votre image doit être exportée au format .gif ou .png
Votre image doit être placée dans votre espace de téléchargement.
TITRE DU DÉFI : utiliser le détecteur de son
Programme en exemple à utiliser :Sound Sensor
(5 points)TITRE DU DÉFI : utiliser une carte (map) personnalisée (vous devez créer votre propre image à utiliser en tant que carte) et initialiser les variables d'environnement selon cette carte et produire un programme de votre choix en fonction de votre carte
Vous devez créer votre propre image en noir et transparent en utilisant gimp.
Votre image doit avoir une dimension de 500x500.
Votre image doit être exportée au format .gif ou .png
Votre image doit être placée dans votre espace de téléchargement.
Exemple de carte personalisée
Programme en exemple à utiliser :Exemples - Applications Mower
Faire les exercices disponibles sur le site suivant (5 points par exercice): afficher le site des exercices Faire les exercices suivants : Série 1 no 3 Série 2 No 1 à 4 Série 3 No 1 et 2 Série 4 No 1 et 2
Java dessine (5 points par exercice):
En vous servant des exemples offerts sur cette Cette page, créez un programme personnalisée dans lequel le dessin de votre carte ne sera pas une image mais sera dessiné en utilisant le langage JAVA :
Étape finale: réalisation de votre page de présentation à l'enseignant
Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 79053
Inscrivez dans le champ titre : Programme a
Sélectionnez la section : MODULE ROBOTIQUE
Sélectionnez la matière : informatique
Inscrivez dans le champ no de la directive : 79053
Inscrivez dans votre page le titre de niveau 1 : Programme a
Indiquez le titre COMPLET du défi relevé :
Exemple : utiliser les moteurs
Copiez et collez le code de votre programme entre les balises
et
Commentez chacune des NOUVELLES lignes de votre programme en plaçant // devant chacun de vos commentaires.
Exemple de commentaires à utiliser :
import ch.aplu.nxt.*;
//importation des librairies utilisées
class MoveEx1
//création de la classe nommée MoveEx1
{
MoveEx1()
// MoveEx1() est un constructeur de la classe MoveEx1. Le constructeur a TOUJOURS le même nom que le nom de la classe.
{
NxtRobot robot = new NxtRobot();
// génération d'un nouvel objet nommé robot à partir de la classe NxtRobot
robot.forward(100);
//faire avancer le robot de 100 unités
robot.exit(); Nxt Java
Le Robot NXT en Java
Information : sur le site des exemples offerts, des liens vers des fichiers .jnlp vous seront offerts afin de lancer les programmes en exemple.
Afin de lancer ces fichiers, veuillez taper dans le terminal :
cd /usr/lib/jvm/java-6-openjdk-i386/jre/bin
et ./javaws URL_du_fichier.jnlp exemple :
./javaws http://www.aplu.ch/webstart/nxtsimex1.jnlp
14 septembre 2012 : IMPORTANT : Lors de la compilation de votre programme, si vous obtenez un message d'erreur du type "An internal error occurred during: "xyz".
org/eclipse/jdt/debug/core/JDIDebugModel", veuillez taper dans le terminal
sudo apt-get --reinstall install tzdata-java
Il s'agit d'un problème qui survient lors de la mise à jour du système.
Il est fortement suggéré d'utiliser le navigateur Firefox pour réaliser cette activité.
ATTENTION, si vous utilisez Eclipse pour votre programmation, il vous faudra changer
import ch.aplu.nxt.*; par
import ch.aplu.nxtsim.*; dans les exemples de programmes
Si vous désirez utiliser le logiciel GEANY (non suggéré), cliquez ICI
Fermer cette section
Si vous désirez utiliser le logiciel GEANY (sudo apt-get install geany)
Crééz un répertoire nommé votrenom_rg
Téléchargez et décompactez les librairies requises en tapant dans le terminal : wget http://ladifference.info/i/images//partageeleve/pierre_morissette_environnementrobotjava.zip && unzip pierre_morissette_environnementrobotjava.zip && rm pierre_morissette_environnementrobotjava.zip && thunar /home/cb/environnementrobotjava
Placez les fichiers NxtSim.jar , JGameGrid.jar et NxtJLib.jar ainsi que le répertoire "sprites" dans votre répertoire votrenom_rg
Utilisez geany afin d'écrire en enregistrer votre programme A.java
Compilez votre programme (création du fichier .class) en utilisant cette commande dans le terminal :
javac -classpath :/home/cb/votrenom_rg/JGameGrid.jar:/home/cb/votrenom_rg/NxtJLib.jar:/home/cb/votrenom_rg/NxtSim.jar /home/cb/votrenom_rg/A.java
Lancez votre programme en utilisant cette commande dans le terminal cd /home/cb/votrenom_rg/ && java -classpath :/home/cb/votrenom_rg/JGameGrid.jar:/home/cb/votrenom_rg/NxtJLib.jar:/home/cb/votrenom_rg/NxtSim.jar A
Créez (ou éditer) un fichier dans le répertoire /home/cb/votrenom_rg/ nommé manifest.txt contenant Main-Class: A
Class-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar
en tapant dans le terminal :
echo -e "Main-Class: A\nClass-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar">/home/cb/votrenom_rg/
Extraire le contenu des fichiers .jar en tapant dans le terminal :
cd /home/cb/votrenom_rg jar -xf JGameGrid.jar cd /home/cb/votrenom_rg jar -xf NxtJLib.jar cd /home/cb/votrenom_rg jar -xf NxtSim.jar
Créez ensuite votre fichier .jar
en tapant dans le terminal cd /home/cb/votrenom_rg/ && jar -cvfm A.jar manifest.txt ./JGameGrid.jar ./NxtJLib.jar ./NxtSim.jar ./ch/* ./sprites/* A.class
Lancez votre fichier .jar en utilisant cette commande dans le terminal cd /home/cb/votrenom_rg && java -jar -cp /home/cb/votrenom_rg A.jar
Voici un résumé des procédure pour le répertoire pierre_rg et le programme a.java
2) Lancez et testez cd /home/cb/pierre_rg jar -xf JGameGrid.jar && cd /home/cb/pierre_rg jar -xf NxtJLib.jar && cd /home/cb/pierre_rg jar -xf NxtSim.jar
3) Créez le fichier manifest.txt echo "Main-Class: a\nClass-Path: JGameGrid.jar:NxtJLib.jar:NxtSim.jar">/home/cb/pierre_rg/manifest.txt
4) Extraire le contenu des fichiers .jar cd /home/cb/pierre_rg/ && jar -cvfm a.jar manifest.txt ./JGameGrid.jar ./NxtJLib.jar ./NxtSim.jar ./ch/* ./sprites/* a.class
Consultez le programme en exemple en sélectionnant le programme approprié selon le défi à solutionner dans la liste de gauche.
Le programme en exemple à utiliser pour chacun des défis suivants est :
Validez le fonctionnement de votre programme en cliquant le bouton COMPILER et le lien RUN ...
en utilisant le lien "Run ..." + Ouvrir avec - Sun Java 6 Web Start (javaws)+ Executer
Au besoin, utilisez l'emplacement de Sun Java 6 Web Start : /usr/lib/jvm/java-6-sun-1.6.0.26/bin/javaw
Téléchargez ensuite le fichier .jar dans votre espace de téléchargement
Sélectionnez le menu FILE + New Class et nommez votre programme selon notre convention de nommage
Copiez et collez le programme en exemple dans l'éditeur Eclipse
Renommez votre classe et toutes les références à cette classe en utilisant la lettre de votre programme,
et remplacez
import ch.aplu.nxt.*; par
import ch.aplu.nxtsim.*; dans les exemples de programmes
exemple
Modifiez le code afin que le robot produise la tâche demandée
Compilez et validez votre programme en utilisant :
le menu RUN + RUN ou la touche de raccourci CTRL + F11
Utilisez le menu File Export pour exporter votre programme au format .jar
Ajoutez à votre archive le répertoire "sprites" et son contenu en tapant dans le terminal (en remplacant a.jar par la lettre de votre fichier)
cp -avr ./environnementrobotjava/sprites/ ./ && jar uf ./a.jar ./sprites/*
(5 points) TITRE DU DÉFI : utiliser les moteurs : faire tourner le robot dans un angle de 90 degrés en utilisant un engrenage (gear)
Fichier en exemple à utiliser
(5 points) TITRE DU DÉFI : utiliser les moteurs : faire tourner le robot selon un carré en utilisant une boucle de répétition (boucle while ou boucle for)
Fichier en exemple à utiliser - boucle while
(5 points)TITRE DU DÉFI : utiliser les moteurs : faire tourner le robot selon une courbe EN UTILISANT UN ENGRENAGE (gear) afin d'effectuer un demi-cercle
Fichier en exemple à utiliser
Notez que la commande gear.leftArc(0.5, 1000); contient deux arguments:
le premier dont la valeur est 0.5 désigne le rayon de courbure
le second dont la valeur est 1000 désigne le temps d'action en millisecondes
(5 points)TITRE DU DÉFI : utiliser les moteurs : faire tourner le robot selon une courbe (faire un demi-cercle) en N'UTILISANT PAS un engrenage (gear) mais en faisant varier la vitesse de chacun des moteurs
Fichier en exemple à utiliser
(5 points)TITRE DU DÉFI : utiliser les moteurs : faire varier la vitesse du robot EN UTILISANT UN ENGRENAGE (utiliser un minimum de 2 vitesses différentes : gear.setSpeed(30);)
ATTENTION : la valeur limite supérieure pour la vitesse est 100
Fichier en exemple à utiliser Autres exemples - change direction
(5 points)TITRE DU DÉFI : Utiliser une structure de répétition while afin de déplacer le robot selon le trajet d'un triangle
(5 points)TITRE DU DÉFI : Utiliser une structure de conditionnelle if else afin que si la valeur de la variable aléatoire est inférieure à 0.5, alors déplacer le robot selon un carré, sinon déplacer le robot selon un cercle
Fichier en exemple à utiliser
ATTENTION : tu ne peux pas utiliser à la fois des engrenages et des moteurs
Programme en exemple à utiliser :Autres exemples - Turtle Robot + if - else
- si la variable i vaut 1, alors le robot avance pendant 100ms
- si la variable i vaut 2, alors le robot tourne à droite de 90 degrés et avance pendant 100ms
- si la variable i vaut 3, alors le robot tourne à gauche de 90 degrés et avance pendant 100ms
(5 points)TITRE DU DÉFI : utiliser le détecteur de lumière et les variables d'environnement suivantes (afin que le robot recule de x ms et tourne de y degrés lorsque le robot détecte une zone noire ) :
.setStartPosition(250, 200);
.setStartDirection(-90);
.useBackground("URL_DE_VOTRE_IMAGE");
(5 points) TITRE DU DÉFI : utiliser le détecteur de toucher et la variable d'environnement .useObstacle("URL_DE_VOTRE_IMAGE", 250, 250); afin que lorsque le robot détecte le toucher d'un obstacle, il recule de x ms et tourne de y degrés (x et y étant des valeurs de votre choix)
Fichier en exemple à utiliser
Autres exemples - Touch Sensor Vous devez créer votre propre image en noir et transparent en utilisant gimp.
Votre image doit avoir une dimension de 500x500.
Votre image doit être exportée au format .gif ou .png
Votre image doit être placée dans votre espace de téléchargement.
TITRE DU DÉFI : utiliser le détecteur de son
Programme en exemple à utiliser :Sound Sensor
(5 points)TITRE DU DÉFI : utiliser une carte (map) personnalisée (vous devez créer votre propre image à utiliser en tant que carte) et initialiser les variables d'environnement selon cette carte et produire un programme de votre choix
Téléchargez ensuite le fichier .jar dans votre espace de téléchargement
en fonction de votre carte
Vous devez créer votre propre image en noir et transparent en utilisant gimp.
Votre image doit avoir une dimension de 500x500.
Votre image doit être exportée au format .gif ou .png
Votre image doit être placée dans votre espace de téléchargement.
Exemple de carte personalisée
Programme en exemple à utiliser :Exemples - Applications Mower
Faire les exercices disponibles sur le site suivant (5 points par exercice): afficher le site des exercices Faire les exercices suivants : Série 1 no 3 Série 2 No 1 à 4 Série 3 No 1 et 2 Série 4 No 1 et 2
Java dessine (5 points par exercice):
En vous servant des exemples offerts sur cette Cette page, créez un programme personnalisée dans lequel le dessin de votre carte ne sera pas une image mais sera dessiné en utilisant le langage JAVA :
Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 79053
Inscrivez dans le champ titre : Programme a
Sélectionnez la section : MODULE ROBOTIQUE
Sélectionnez la matière : informatique
Inscrivez dans le champ no de la directive : 79053
Inscrivez dans votre page le titre de niveau 1 : Programme a
Indiquez le titre COMPLET du défi relevé :
Exemple : utiliser les moteurs
Copiez et collez le code de votre programme entre les balises
et
Commentez chacune des NOUVELLES lignes de votre programme en plaçant // devant chacun de vos commentaires.
Exemple de commentaires à utiliser :
import ch.aplu.nxt.*;
//importation des librairies utilisées
class MoveEx1
//création de la classe nommée MoveEx1
{
MoveEx1()
// MoveEx1() est un constructeur de la classe MoveEx1. Le constructeur a TOUJOURS le même nom que le nom de la classe.
{
NxtRobot robot = new NxtRobot();
// génération d'un nouvel objet nommé robot à partir de la classe NxtRobot
robot.forward(100);
//faire avancer le robot de 100 unités
robot.exit();
//Arrêt des moteurs et fermeture de la communication avec le robot
}
public static void main(String[] args)
//Chaque application Java a besoin d'une méthode "main()" qui est toujours définie avec cette structure.
// La méthode main() est la première à être exécuter dans un programme.
// Elle indique le début du programme.
{
new MoveEx1();
// Génération d'un nouvel objet de la classe "MoveEx1".
// Toutes les propriétés et méthodes définies à partir de son constructeur sont exécutés automatiquement.
}
}
Ajoutez un LIEN (JAUNE) vers le fichier .jar
Visualisez votre page et apportez des modifications au besoin.
//Arrêt des moteurs et fermeture de la communication avec le robot
}
public static void main(String[] args)
//Chaque application Java a besoin d'une méthode "main()" qui est toujours définie avec cette structure.
// La méthode main() est la première à être exécuter dans un programme.
// Elle indique le début du programme.
{
new MoveEx1();
// Génération d'un nouvel objet de la classe "MoveEx1".
// Toutes les propriétés et méthodes définies à partir de son constructeur sont exécutés automatiquement.
}
}
Ajoutez un LIEN (JAUNE) vers le fichier .jar
Visualisez votre page et apportez des modifications au besoin.