Tutoriel : Programmer le RCX



Documents pareils
Eclipse atelier Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Plan du cours. Historique du langage Nouveautés de Java 7

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Chapitre I Notions de base et outils de travail

Utiliser Java sans BlueJ

Création d une application Android (APPInventor)

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse

as Architecture des Systèmes d Information

Bases Java - Eclipse / Netbeans

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Java Licence Professionnelle CISII,

Auto-évaluation Programmation en Java

Manuel de l utilisateur NXT 2.0

Cours 1: Java et les objets

Installation et prise en main

Java 7 Les fondamentaux du langage Java

La carte à puce. Jean-Philippe Babau

Programmation C. Apprendre à développer des programmes simples dans le langage C

Prise en main rapide

Traitement de données

Corrigé des exercices sur les références

Annexe : La Programmation Informatique

La technologie Java Card TM

Enregistreur de données d humidité et de température

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

PIC EVAL Dev Board PIC18F97J60

et de suivi de la corpulence des enfants

Projet Robot Centaure

Leçon 1 : Les principaux composants d un ordinateur

Travail personnel sur ordinateur

La base de données XML exist. A. Belaïd

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Machine virtuelle Java pour Palm TX

NXT Guide de mise en route. Rob Widger

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Un ordinateur, c est quoi?

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

MODE D EMPLOI Boitier de programmation SKY

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

RE BL. C o n v e r t i s s e u r I n f r a r o u g e B l u e t o o t h. Manuel utilisateur

HERCULES DJ AUDIO PROCEDURES MISE A JOUR FIRMWARE

MANUEL D INSTALLATION DES PRE REQUIS TECHNIQUES SALLE DES MARCHES V.7

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Évaluation et implémentation des langages

INITIATION AU LANGAGE JAVA

Un tempo de Reel sur un rythme de Java

Boot Camp Guide d installation et de configuration

Java - la plateforme

Java Licence Professionnelle CISII,

Guide d installation de MySQL

Sessions en ligne - QuestionPoint

Environnements de développement (intégrés)

Boot Camp Guide d installation et de configuration

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Note Technique : Sauvegarder un NAS ND16000 ou ND26000 sur un disque dur externe USB ou esata

Généralités sur les systèmes d Exploitation

Systèmes de conférence

Benjamin Morin SANSTABOO. L iphone OS 4. maîtrisé. pour l utilisateur avancé. Groupe Eyrolles, 2010, ISBN :

Threads. Threads. USTL routier 1

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

CONNAITRE VOTRE APPAREIL PHOTO DESCRIPTIF DE L APPAREIL. 1 Bouton MARCHE/ARRET 5 Flash 2 Obturateur 6 Retardateur LED

Instruction breve de. l'ordinateur de poche Acer n10

wezee Disk Wifi Hard Drive Guide d installation rapide

Initiation à JAVA et à la programmation objet.

Programmeur Java 1.4 et 5.0

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

POSTE INFORMATIQUE. Mr DUJARDIN a acheté du matériel informatique sur une boutique en ligne afin de se monter un PC. N'y

Tutorial pour une application simple

L assistant Boot Camp pour utiliser aussi Windows sur un Mac sous OS X Yosemite

PC, Tablette, Smartphone, comment choisir ce qui me convient le mieux?

Manuel programmation QUESTOR

ELO Office / Pro Les avantages : Archivage et gestion documentaire

Cours Informatique 1. Monsieur SADOUNI Salheddine

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Une introduction à Java

Installer et configurer un réseau local Ethernet commuté. Généralités 1 Utilisation d un Switch administrable D-Link DES-3226

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

clé Internet 3g+ Guide d installation

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Ecole Numérique Rurale

Manuel logiciel client Java

JaZUp manuel de l'utilisateur v2.4

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

SYSTÈMES DE CONFÉRENCE. Système de conférence analogique CDS Système de conférence numérique DCS

Généralités sur les systèmes d Exploitation

Guide de démarrage rapide du TruVision NVR 10

Service de lettre électronique sécurisée de bpost. Spécificités techniques

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Bloc centrale Merten. Code : Conrad sur INTERNET Version 04/15. Caractéristiques techniques

Environnements de développement (intégrés)

Systeme d'exploitation

Programmer en JAVA. par Tama

Clear2Pay Belgium SA Solution B-web V4 Procédure d installation. Solution B-web V4. Procédure d installation. Clear2Pay Belgium SA Page 1 de 18

Médiathèque Numérique, mode d emploi

Baladeur encodeur. multifonction. Mode d Emploi

Transcription:

Tutoriel : Programmer le RCX 1. Introduction La «brique» Lego RCX est un véritable (très) petit ordinateur fonctionnant sur piles (6 piles type R6-AA 1,5V associées en série). Il se compose d un processeur Hitachi H8 avec 48 KB de mémoire centrale, dont 16 KB de mémoire morte (ROM) comportant une série de fonctions préprogrammées et 32 KB de mémoire vive (RAM). 1 port infrarouge 3 entrées 1 écran LCD 3 sorties 4 touches 1 compartiment piles Cet ordinateur peut communiquer avec le monde extérieur (et le monde extérieur peut communiquer avec lui) par le biais : d un port infrarouge, de 3 entrées (connecteurs gris 1,2,3) sur lesquelles on peut brancher des capteurs (capteur de contact, capteur de lumière ), de 3 sorties (connecteurs noirs A,B,C) sur lesquelles on peut brancher des moteurs, d un écran à cristaux liquides, de 4 boutons, d un haut-parleur interne. Le principe général de la programmation du RCX est le suivant : le(s) programme(s) à exécuter par le RCX doi(ven)t avoir été compilés(s) sur un autre ordinateur, de type PC ; une fois compilé sur un PC, le programme à exécuter est téléchargé dans le RCX par une communication infrarouge entre le PC et le RCX ; pour ce faire, on doit brancher un émetteur infrarouge sur un port USB du PC, aligner l émetteur infrarouge du PC et le récepteur infrarouge du RCX et exécuter - un programme émetteur dans le PC - un programme récepteur dans le RCX ; une fois le programme téléchargé dans la mémoire vive du RCX, son exécution est démarrée à l aide du bouton «Run» du RCX. Remarque technique importante : il faut faire attention, lors de transferts infrarouges, à éviter les interférences avec l éclairage de la pièce ou avec d autres transferts effectués simultanément dans la même pièce! Il existe différentes manières de compiler des programmes pour le RCX, car il existe différents langages de programmation pour lesquels des environnements de développement de programmes RCX sont disponibles. Lego offre même un langage de programmation «visuel», bien adapté aux enfants, mais beaucoup trop rudimentaire pour nos besoins. Nous souhaitons pouvoir écrire des programmes pour le RCX en Java, sur un PC, à l aide de l Interface de Développement Intégré (I.D.E.) BlueJ. Nous souhaitons les compiler (toujours à l aide de BlueJ), puis les télécharger dans le RCX et, enfin, les faire exécuter par le RCX. Page 1/1

Pour que tout ceci soit possible, il faut que la mémoire du RCX contienne un ensemble de programmes auxiliaires (le «firmware») assurant les fonctions nécessaires à l exécution, par le RCX, de programmes Java compilés sur un PC. Ceci n est pas très différent de ce qui se passe lorsque nous exécutons des programmes Java compilés sur un PC par le PC lui-même : SUN Microsystems, la firme qui a inventé Java, met à la disposition des utilisateurs du langage une sorte de firmware pour PC, qui s appelle «Java Runtime Environment» (JRE). Pour le RCX, nous utilisons le firmware LeJos, développé par une bande de joyeux fanas de Lego MindStorms et de Java. Ce firmware doit donc être chargé dans la mémoire du RCX avant qu il soit possible de charger et d exécuter des programmes Java compilés sur un PC. Remarque technique importante : le firmware LeJos reste chargé en mémoire tant que le RCX contient ses piles ; il faut le recharger si l on a ôté les piles (par exemple : pour éviter qu elles se déchargent). Reste encore un problème, qui est de taille : le firmware qui serait nécessaire pour pouvoir exécuter dans le RCX un programme compilé utilisant toutes les possibilités de Java serait largement plus grand que toute la (petite) mémoire disponible dans cette machine! Pour qu il reste quand même un peu de place en mémoire pour les programmes à exécuter, il a donc fallu accepter de restreindre les possibilités du langage utilisé, qui n est donc qu un sous-ensemble de Java (classes de l Application Programming Interface LeJos) et non pas le langage complet disponible lorsqu on exécute des programmes sur un «véritable» ordinateur Pour compiler les programmes Java destinés à être exécutés sur le RCX muni du firmware LeJos, on utilisera le programme BlueJ (I.D.E. Java écrit en Java) avec le plug-in BJMT («BlueJ MindstormsTool»). Le non-respect des quelques limitations du langage est détecté et des messages d erreur sont produits. C est également avec le plug-in BJMT que vous téléchargerez vos programmes compilés (option Download). Pour pouvoir utiliser les différentes classes nécessaires à la programmation du RCX, vos programmes doivent importer les packages appropriés en incluant l instruction suivante : import josx.platform.rcx.* ; Ressources sur le Web : CRILAB : http://crilab44.free.fr JDK Java (SUN) : http://java.sun.com/j2se/1.5.0/download.jsp LeJos : http://lejos.sourceforge.net BlueJ : http://www.bluej.org Le plug-in BJMT : http://ddi.uni-paderborn.de/mindstormstools/bjmt Page 2/2

2. Quelques questions pour commencer. a) Combien de moteurs peuvent être pilotés par la brique lego RCX? b) Quelle est la tension d alimentation de la brique? c) Combien et quels types de capteurs peuvent être connectés sur le RCX? d) Que signifie A.P.I.? Quel est le nom de l A.P.I. java du RCX? e) LEJOS nécessite environ 20 ko de mémoire. Combien reste-t-il de mémoire pour vos programmes? f) Que signifie I.D.E.? Quel I.D.E. utiliserez-vous pour coder vos programmes? g) Sur quels OS peut-on utiliser JAVA, LEJOS, BlueJ : MAC, MS Windows, Linux? Ces deux programmes sont-ils payants? Gratuits? Libres? h) Traduire en français les mots : Behavior, Arbitrator, Array, Forward, Backward, Thread. 3. Prise en main de BlueJ a) Lancer BlueJ et ouvrir le projet Robot1. b) Ouvrir, examiner puis fermer les classes «Robot1», «ToutDroit» et «Collision». c) Compiler la classe Robot1. Vérifier qu il n y a pas d erreurs de compilation. d) Charger le programme Robot1 dans le robot (le RCX doit être sous tension et à proximité de la tour IR) et observer son comportement (touche «RUN»). 4. Étude d un premier programme a) Classe «ToutDroit» (annexe n 2) : expliquer (dans ses grandes lignes) le comportement (=Behavior) «ToutDroit». b) Classe «Collision» (annexe n 3) : expliquer (dans ses grandes lignes) le comportement (=Behavior) «Collision». Comment est réalisée la rotation du robot? c) Classe «Robot1» (annexe n 1) : Lequel des deux comportements «ToutDroit» et «Collision» est prioritaire? Quelle ligne de la classe Robot1 définit la hiérarchie des priorités? d) On souhaite maintenant modifier le comportement «Collision». Proposer un programme pour que le robot n 2 tourne dans le sens opposé à celui du robot n 1 avec un angle deux fois plus grand. e) Proposer une modification originale (faire danser son robot?) pour le comportement «ToutDroit». 5. Votre premier robot! a) Créer un nouveau projet «Robot2» puis Importer les classes «Robot1», «ToutDroit», «Collision». b) Créer une nouvelle classe «Robot2». À l aide d un copier-coller, recopier le code de la classe «Robot1» dans la nouvelle classe «Robot2». c) Fermer la classe «Robot2». Observer le message d erreur puis supprimer la classe «Robot1» d) Compiler la classe «Robot2». La compilation doit échouer. Ouvrir la classe «Robot2» et remplacer Robot1 (3 ème ligne) par Robot2. Compiler la classe. Avez-vous compris l erreur? e) Programmer votre robot et vérifier que votre robot réagit selon le nouveau cahier des charges. Page 3/3

ANNEXE n 1 Robot1.java public class Robot1 public static void main(string [] args) // déclaration des Behaviors = comportements Behavior b1 = new ToutDroit(); Behavior b2 = new Collision(); // hiérarchisation des Behaviors Behavior [] barray = b1, b2; // déclaration du chef d orchestre Arbitrator arbitre = new Arbitrator(bArray); // mise en action arbitre.start(); ANNEXE n 2 ToutDroit.java import josx.platform.rcx.*; public class ToutDroit implements Behavior // déclencheur du comportement ToutDroit public boolean takecontrol() return true; // action du comportement ToutDroit public void action() Motor.A.forward(); Motor.C.forward(); // fin du comportement ToutDroit public void suppress() Page 4/4

ANNEXE n 3 Collision.java import josx.platform.rcx.*; public class Collision implements Behavior // déclencheur du comportement Collision public boolean takecontrol() return Sensor.S2.readBooleanValue(); // action du comportement Collision public void action() // marche arrière Motor.A.backward(); Motor.C.backward(); // durée marche arrière trythread.sleep(1000);catch(exception e) // rotation // durée rotation trythread.sleep(1000);catch(exception e) // fin rotation // fin du comportement Collision public void suppress() Page 5/5