Communication serial en Java (RXTX)

Dans le cadre du serveur Java qui remplacera bientôt l’interface graphique python contrôlée par ssh, nous avons dû résoudre le problème de la communication entre l’Arduino et le Raspberry. Puisque ils sont connectés par usb, nous nous sommes intéressés à la librairie RXTX pour java.

Vous pourrez trouver toutes sortes d’informations sur l’installation et l’utilisation de cette librairie ici.

Il est possible que vous ayez déjà cette librairie si vous utilisez l’IDE Arduino.

Nous aimerions partager avec vous la classe « SerialCommunication » basée sur les classes de la librairie RXTX (gnu.io.*). Nous n’avons probablement rien inventé de nouveau et nous nous sommes largement inspirés des exemples proposés par le wiki. Nous trouvons juste que cette classe englobe tous nos besoins et est pratique à utiliser.

Créez un objet SerialCommunication:

SerialCommunication serialCom = new SerialCommunication();

Etablissez une connection sur le port(p.ex.) »/dev/ttyS33″ à la vitesse de 9600 bauds:

SerialCom.connect("/dev/ttyS33", 9600);

Remarque: java RXTX ne cherche que des ports dans « /dev/ttySxx » or l’Arduino se trouvera probablement sur « /dev/ttyACM0 ». Pour résoudre ce problème, créez un symlink entre « /dev/ttyACM0 » et un port inexistant dans les « /dev/ttySxx » (p.ex. /dev/ttyS33):

#sudo ln -s /dev/ttyACM0 /dev/ttyS33

Ce lien disparait chaque fois que vous éteignez l’ordinateur, donc pensez à le recréer ou écrivez un bash script =).

Publicités

Commencer à installer les logiciels utiles au drone

Bonjour à tous,

Vous avez donc déjà configuré votre Raspberry Pi et vous l’avez redémarré. une fois sur le bureau, vous pouvez ouvrir le terminal. dans cette fenêtre. vous allez pouvoir taper la commande suivante (attention à avoir une connexion internet active):

sudo apt-get upgrade

Une fois cette commande terminée, vous pouvez entrer cette commande:

sudo apt-get update

(Dans les deux commandes, si le terminal vous demande une confirmation, dites oui).

Nous allons maintenant installer un petit logiciel de traitement de texte, Geany. voici ce qu’il faut entrer dans la ligne du Terminal:

apt-get install geany

Très bien, une fois ces commandes faites, nous allons installer vino, qui permet de prendre le contrôle du Raspberry Pi à distance. Voici la commande à entrer dans Terminal:

sudo apt-get install vino

Une fois que vino s’est correctement installé, tapez cette commande afin de configurer les préférences du serveur vino:

vino-preferences
http://softsolder.files.wordpress.com/2011/11/vino-preferences.png

vino-preferences

Cochez les points suivants:

  • « Allow other users to view your desktop »
  • « Allow other users to control your desktop »

Les deux points qui suivent sont facultatifs, vous pouvez choisir comme vous le voulez. Ceci dit, je vous conseille tout de même de mettre un petit mot de passe afin d’éviter qu’un petit rigolo s’incruste dans votre projet ^^. Pour activer manuellement le serveur, tapez ceci:

/usr/lib/vino/vino-server

Pour accéder à votre Raspberry Pi depuis un poste fixe (ou pourtable…bref, d’un autre ordinateur) il vous faudra tout d’abord installer un logiciel VNC-client sur votre ordinateur (pas le Raspberry Pi) j’utilise celui-ci, mais libre à vous d’en choisir un autre. Une fois installé, il vous faudra connaître l’adresse Ip de votre Raspberry Pi, pour la trouver, aller dans Terminal (sur le Raspberry Pi) et tapez:

ifconfig

Le Raspberry Pi va vous afficher pleins d’informations, mais l’info qui nous interresse est à la troisième ligne, dans la partie eth0.

inet addr:xxx.xxx.xxx.xxx Bcast yyy.yyy.yyy.yyy Mask 255.255.255.255

l’adresse Ip correspond à ce qui est à la place des « xxx.xxx.xxx.xxx ». Depuis VNC viewver, vous entrez donc l’adresse Ip, vous vous connectez (s’il y a un mot de passe, il vous sera demandé) et vous devriez avoir une copie du bureau du Raspberry Pi sur votre PC. Jusqu’ici, nous avons bien un serveur, mais il ne démarre pas automatiquement, ce qui est assez embêtant, c’est pourquoi nous allons modifier un fichier pour que le Raspberry Pi active le serveur au démarrage. Allez dans Terminal et tapez ceci:

sudo geany /etc/xdg/lxsession/LXDE/autostart

Une fois que geany est ouvert, entrez ceci:

@/usr/lib/vino/vino-server

Une fois que ceci est fait, vous n’aurez plus besoin un clavier et une souris sur votre Raspberry Pi puisque vous pouvez le contrôler à distance, ce qui libère deux ports USB.

La suite du tutoriel portera sur le wi-fi voici le lien