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.

Vos commentaires

  • Le 9 février 2015 à 02:18, par jo En réponse à : Processing sur Raspberry Pi

    Bonsoire , avant tout merci pour ce tuto , je voudrais si l utilisation de la lib video est utilisable sur rasp merci 😄

    Répondre à ce message

  • Le 12 décembre 2012 à 14:20, par jcr En réponse à : Processing sur Raspberry Pi

    bonjour
    je désire installer processing sur mon raspberry.
    Pourriez vous m’indiquer comment faire le lien symbolique necessaire pour pointer correctement sur la bonne bibliotheque java.
    Merci d’avance et compliment pour votre site
    jc

    • Le 12 décembre 2012 à 14:50, par Julien H. En réponse à : Processing sur Raspberry Pi

      Bonjour. J’ai mis à jour l’article. En attendant que la modification soit visible (cache long), la commande est : "ln -s /chemin/vers/openjdk java" et dès que je récupère ma Raspberry Pi je préciserai le chemin d’OpenJDK.

    • Le 6 janvier 2013 à 03:04, par StéphaneAG En réponse à : Processing sur Raspberry Pi

      Essaye ceci :

      ln -s /usr/lib/jvm/java-6-openjdk-armhf/ —verbose

      Ca devrait passer (..)

      Note : au moment où j’écris ces lignes, le openjdk 7 est dispo et á l’air plus véloce (..)

      Nb : à l’ouverture de Pr, il est explicitement déconseillé d’utiliser openjdk >> pourquoi ? "nightbuilds-like" ?

      Btw,bravo pour le site,troisème fois que je tombe dessus : bon tutos,bon sujets ,... que dire ? > chapeau bas ! ;p

      +

    Répondre à ce message

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.