Communication série avec Java sur puce ARM
La solution
On va installer sur notre RPi encore de nouveaux paquets issus des stocks de programmes pour ARM (repositories
GNU/Linux), en l'occurence librxtx-java :
pi@raspberrypi:~$ sudo apt-get install librxtx-java
...
Get:1 http://ftp.uk.debian.org/debian/ squeeze/main librxtx-java armel 2.2pre2-2 [179 kB]
...
On peut lire au milieu du long message d'installation qu'il a téléchargé une version "debian squeeze armel", donc
compatible avec notre carte et le système d'exploitation Debian qu'on a installé.
Cette installation a posé dans l'arborescence des bibliothèques différentes versions de .so compatibles Linux. On
peut afficher la liste du répertoire JNI (pour Java Native Interface, la médiation entre la machine virtuelle Java et la
machine réelle Raspberry Pi) :
pi@raspberrypi:~$ ls /usr/lib/jni
libjava-access-bridge-jni.so librxtxI2C.la librxtxParallel.so
librxtxRaw-2.2pre1.so librxtxSerial.la
libjava-access-bridge-jni.so.0 librxtxI2C.so librxtxRS485-2.2pre1.so
librxtxRaw.la librxtxSerial.so
libjava-access-bridge-jni.so.0.0.0 librxtxParallel-2.2pre1.so librxtxRS485.la
librxtxRaw.so
librxtxI2C-2.2pre1.so librxtxParallel.la librxtxRS485.so
librxtxSerial-2.2pre1.so
Si on se place maintenant dans le répertoire des bibliothèques de notre application Java Processing, on identifie le
.so à modifier :
pi@raspberrypi:~$ cd NonoLeds/lib/
pi@raspberrypi:~/NonoLeds/lib$ ls
NonoLeds.jar RXTXcomm.jar arduino.jar core.jar librxtxSerial.so serial.jar
pi@raspberrypi:~/NonoLeds/lib$ mv librxtxSerial.so librxtxSerial.x86
pi@raspberrypi:~/NonoLeds/lib$ cp /usr/lib/jni/librxtxSerial.so .
pi@raspberrypi:~/NonoLeds/lib$ ls
NonoLeds.jar RXTXcomm.jar arduino.jar core.jar librxtxSerial.so librxtxSerial.x86 serial.jar
pi@raspberrypi:~/NonoLeds/lib$
On remonte et c'est parti !
Copyright © PoBot Page 3/5