Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Ordinateurs embarqués (SBC) > La carte Raspberry PI > Logiciels et langages de programmation sur RPi > Processing sur Raspberry Pi

Processing sur Raspberry Pi

samedi 7 juillet 2012, par Julien H.

L’environnement de développement d’applet Java appelé Processing (également P5 pour aller plus vite) nous a été souvent de grand secours pour des tests rapides avec Arduino ou pour des applications complètes comme l’interface de contrôle du robot Pobbypède ou le lecteur/enregistreur de chorégraphies de marionnettes.

Maintenant que nos robots sont équipés de cartes sous Linux, comme la Raspberry Pi, ce serait bien de pouvoir bénéficier de la simplicité des codes pour P5 sur cette cible, pour éviter de passer par des codes complexes en Shell ou en Python.

Il y a deux pistes :
 développer sur PC et exporter une applet Java dans un jar
 faire tourner l’environnement de développement intégré (IDE) sur la carte

La première est très simple : on a déjà réussi à installer Java (OpenJDK) sur la RPi et on compile et on exécute des programmes. Il y a une énorme astuce pour ne pas lancer l’environnement graphique demandé par les applets Processing, elle est décrite dans cet article.

La seconde est l’objet de cet article. Certains disent que ce n’est pas possible parce que Processing est téléchargeable pour Linux x86 alors que la Raspberry Pi est sur ARM. Comme d’habitude, il ne faut pas croire tout ce qu’on lit sur Internet.

Installation

Télécharger Processing depuis la Raspberry Pi n’est pas compliqué :

pi@raspberrypi:~$ wget http://processing.googlecode.com/files/processing-1.5.1-linux.tgz
--2012-07-06 21:38:56--  http://processing.googlecode.com/files/processing-1.5.1-linux.tgz
Resolving processing.googlecode.com... 173.194.67.82, 2a00:1450:400b:c00::52
Connecting to processing.googlecode.com|173.194.67.82|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 91230153 (87M) [application/x-gzip]
Saving to: `processing-1.5.1-linux.tgz'

Effectivement, on peut voir lors de la décompression que tout java vient en mode 386 :

pi@raspberrypi:~$ tar -xvzf processing*.tgz
...
processing-1.5.1/java/lib/i386/libdt_socket.so
processing-1.5.1/java/lib/i386/libmlib_image.so
processing-1.5.1/java/lib/i386/libunpack.so
processing-1.5.1/java/lib/i386/server/
processing-1.5.1/java/lib/i386/server/libjvm.so
processing-1.5.1/java/lib/i386/server/Xusage.txt
processing-1.5.1/java/lib/i386/server/libjsig.so
processing-1.5.1/java/lib/i386/libzip.so
processing-1.5.1/java/lib/i386/headless/
processing-1.5.1/java/lib/i386/headless/libmawt.so
processing-1.5.1/java/lib/i386/libjsoundalsa.so
processing-1.5.1/java/lib/i386/libj2pcsc.so
processing-1.5.1/java/lib/i386/libnpjp2.so
processing-1.5.1/java/lib/i386/libverify.so
processing-1.5.1/java/lib/i386/libjaas_unix.so
processing-1.5.1/java/lib/i386/libjavaplugin_nscp_gcc29.so
processing-1.5.1/java/lib/i386/libjdwp.so
processing-1.5.1/java/lib/i386/libinstrument.so
processing-1.5.1/java/lib/i386/libioser12.so
processing-1.5.1/java/lib/i386/libcmm.so
processing-1.5.1/java/lib/i386/client/
processing-1.5.1/java/lib/i386/client/libjvm.so
processing-1.5.1/java/lib/i386/client/classes.jsa

Mais comme on a déjà installé java, ce répertoire ne pas servir à grand chose, non ?

On le remplace donc par un lien symbolique vers le répertoire d’OpenJDK :

pi@raspberrypi:~$ cd processing-1.5.1
pi@raspberrypi:~/processing-1.5.1 $ rm -rf java
pi@raspberrypi:~/processing-1.5.1 $ ln -s /chemin/vers/openjdk java

Exécuter Processing comme IDE

Il faut lancer l’environnement graphique (startx) pour tester l’IDE Processing. Ce sera testé en atelier, car il ne s’agit pas de notre usage principal.

Exécuter un programme Java exporté depuis P5

Si vous développez sur un PC plus conventionnel que la RPi, vous pouvez exporter pour Linux votre application. Il y a quelques adaptations à faire selon ce que vous souhaitez utiliser comme ressources :
 pour utiliser la liaison série, il faut remplacer la bilbiothèque rxtx avec une version pour ARM
 pour lancer le programme sans écran, il faut utiliser un framebuffer virtuel

Bonne continuation sur Raspberry Pi et faites nous part de vos succès ou de vos échecs.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.