Après un bel été 2016 très peu sur mon PC, je suis de retour avec ma brique EV3  et mon robot TRACK3R (image ci-dessous dont la construction a été décrite dans LEGO Mindstorms EV3: Dépaquetage du 31313) . J'ai beaucoup "joué" avec l'interface LabView pour bien comprendre la bête, mais c'est le moment de passer à quelque chose de plus sérieux au niveau programmation.

Étant un fun de systèmes embarqués comme le Raspberry Pi voir de Nodes.js sur BBB, et plus récemment de l'ESP8266,  je suis en train d'étudier des solutions comme indiquées sur  Nine alternative programming languages for LEGO MINDSTORMS et EV3 Python.

Un article général pour la programmation en langage Python est maintenant disponible: LEGO Mindstorms EV3: ev3dev et Python


Mise en route

Il est tout à fait possible de programmer la brique EV3 de Mindstorms EV3 en Java et ceci en utilisant la plateforme leJOS décrite sur http://www.lejos.org/.

Pour les impatients, ils pourront se renseigner un peu plus sur la page Wiki de leJOS (en anglais).

Il faudra tout d'abord télécharger le logiciel depuis https://sourceforge.net/projects/ev3.lejos.p/files/. Nous prendrons la dernière version ainsi que les fichiers d'exemples.

Sur mon PC Windows, j'ai choisi le sous-répertoire D:\LEGO Software\leJOS EV3 et en choisissant les options pour télécharger aussi les exemples et le code source.  
J'ai aussi créé les répertoires D:\LEGO Software\LeJOS EV3 Samples et D:\LEGO Software\LeJOS EV3 Development Kit Sources en y déposant le matériel nécessaire pour la partie liée au développement de programmes en Java.

Au démarrage, on utilisera l'utilitaire EV3SDCard à partir de ev3sdcard.bat dans le répertoire D:\LEGO Software\leJOS EV3\bin. Cela nous permettra de visualiser le déroulement de l'opération comme des problèmes éventuels de microSD card.

J'ai moi-même utilisé une carte microSD bon marché de 16 Gbytes à moins de 10 Euros.

Après avoir cliquer sur link on choisira chez Oracle la version Aejre-7u60-b19-ejre-7u60-fcs-b19-linux-arm-sflt-headless-07_may_2014.tar.gz.
Il faudra être enregistrer chez Oracle avant de pouvoir télécharger le fichier.

Ensuite on insérera la carte SD dans la brique EV3 éteinte. Au démarrage il faudra patienter plusieurs minutes (brique allumée en rouge) avant que la carte soit prête (extension, décompression) avec son Linux, le JRE et les différents menus et actions disponibles à l'écran.

Sur le site https://sourceforge.net/p/lejos/wiki/Using%20the%20Menu%20System/ on trouvera une description complète, en anglais, de ce qui est présenté sur l'écran de la brique EV3 en "mode" leJOS.
C'est assez similaire à l'EV3 standard ou la version Python.

La procédure du Shutdown est la même que pour la version EV3 standard: il s'agira de presser le bouton retour (1), de sélectionner l'action qui apparaît sur l'écran (2) et de l’exécuter (3). 

Si l'on désire revenir à la version normale de la brique EV3, sans Java, il suffira de retirer la carte SD (la brique doit absolument être éteinte préalablement et correctement).


Accès avec Bluetooth ou WiFi sur PC

Dans mon article LEGO Mindstorms EV3: ev3dev et Python j'avais utilisé le câble USB afin d'obtenir une connexion Internet. Ici je n'ai pas réussi, certainement pour des questions de drivers, mais l'installation d'une connexion Bluetooth s'est si bien bien passée que je ne la décrirai pas ici.

L'activation du pairing sous Bluetooth est expliqué ici. La plupart des PC, au contraire des Laptop, n'ont pas d'interface Bluetooth.

J'ai donc moi-même utilisé un dongle WiFi (TP-Link) qui a été automatiquement reconnu par le leJOS! Cool! La configuration est expliquée ici.

Il faudra entrer le mot de passe du routeur WiFi avant qu'il termine sa configuration et son initialisation.
Chez moi il m'a donné l'adresse IP 192.168.1.65. Cette dernière est indiquée sur le cadran de la brique EV3 après son démarrage (qui prend un certain temps).


Accès avec Putty

Il faut tout d'abord indiquer qu'il n'est pas possible de retirer la micro carte SD, pour visionner les fichiers Java .class, en l'insérant dans un lecteur sous PC Windows.
Putty doit être utilisé en visionnant le répertoire /home/lejos/programs.

Lorsque qu'on démarre la brique EV3, il faudra patienter une bonne minute avant de pouvoir visionner l'adresse IP sur le cadran.
On rapellera que pour stopper le système il faudra presser le bouton en haut à gauche, choisir le V, et un Ok pour terminer.  

Pour ouvrir une console Linux sur la brique EV3 leJOS, l'émulateur de terminal Putty sur le réseau avec Wifi fera l'affaire.
Installation: Émulateur de terminal Putty et WinSCP .

Utilisateur: root  Mot de passe: (vide)

 

Nous nous déplaçons dans le répertoires des exemples installés (samples) et exécutons le programme PilotTester.


Dans l'article LEGO Mindstorms EV3: Java, leJOS et Eclipse , pour les spécialistes en Java, nous montrons comment compiler, télécharger et exécuter dans notre brique EV3 un autre exemple, et celui-ci à partir d'un fichier de code Java dans un environnement Eclipse.


Sauvegarde et récupération

Pour sauvegarder une image d'une carte SD, nous pouvons utiliser le logiciel opensource Win32DiskImager
Il faudra insérer notre micro SD carte dans un lecteur USB (voir avec un adaptateur SD).
Il est très facile à installer avant de sauvegarder son image (exemple ici) ou de réécrire une ancienne ou une version clonée:

Win32DiskImager.jpg