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 =).

Faire un backup

Bonjour à tous,

Pour continuer ce tuto, je vais vous expliquer comment fair une sauvegarde (ou backup) de la carte SD. En effet, cela prend un certain temps pour installer tous les logiciels sur la carte, sans compter le temps de mettre l’image de base sur la carte. C’est pourquoi je vous conseille de régulièrement faire une sauvegarde de votre carte. Pour ce faire, vous aurez besoin d’une machine fonctionnant sur Linux (quoiqu’avec MacOS, cela devrait aussi marcher, mais je n’ai pas testé).

Tout d’abord, insérez votre carte dans votre ordinateur (ou dans un lecteur de carte SD), ensuite taper

sudo fdisk -l

(si vous n’êtes pas sous Debian, tapez df)

et là, vous devriez être capable didentifier votre carte SD grâce à la taille de celle-ci. Notez son emplacement (c’est moi, c’est /dev/mmcblk).

Ensuite, c’est très simple, il ne vous reste plus qu’à lancer la commande suivante:

sudo dd if=/dev/sdb | gzip -9 > ./raspberry-20130705-sdb.img.gz

et vous attendez tranquillement, ça va prendre un bon moment. Il vous restera alors une image compressée de votre carte SD.

Ou alors, il y a une solution plus rapide, c’est qu’à la place d’e copier bit après bit l’image, on peu y copier des megaBit. c’est pourquoi je lance toujours la commande suivante:

sudo dd  if=/dev/sdb | gzip -9 ./raspberry-20130705-sdb.img.gz bs=1024

Préparer sa carte SD

Bonjour à tous,

Ce post va expliquer comment installer Raspbian sur une carte SD à l’aide d’une machine linux. Si vous êtes sur Windows ou MacOS, je vous invite à aller suivre un tuto ici.

Si vous avez déjà installé Raspbian sur votre Raspberry Pi et qu’il marche. Voici le lien pour continuer le tuto de drone. Suite du tutoriel

Voici les étapes à suivre pour avoir Raspbian sur votre carte SD.

  1. Connecter la carte SD sur votre ordinateur (ici sous Ubuntu)
  2. Télécharger une image de Raspbian « wheezy » ici (Attention à prendre une image de RASPBIAN et pas d’un autre système.
  3. Aller dans Terminal et écrire:
    df -h
  4. Chercher la ligne correspondant à la carte SD (ici: /dev/mmcblk0p1)Screenshot from 2013-04-09 12-22-17
  5. Démonter le disque SD en écrivant:
    umount /dev/mmcb1k0p1
  6. Ecrire la commande suivante en remplaçant ce qu’il faut remplacer (i.e. l’emplacement de l’image et le nom de la carte SD trouvé précédemment):
    sudo dd bs=1M if=/home/utilisateur/emplacement/de/l'image/2012-09-18-wheezy-raspbian.img of=/dev/mmcblk0p1

    Ou alors vous pouvez installer imageWriter à la ligne de commande:

    sudo apt-get install imageWriter

    Mais faites attention à executer imageWriter avec root, sinon cela ne marchera pas.

  7. Il arrive souvent (presque à chaque fois) que le partitionnement de la carte ne soit pas très bien fait. La carte est partitionnée en deux.c’est pourquoi nous allons utiliser Gparted pour le faire. Pour ce faire, il faut installer Gparted. Ceci dit, si vous ne vous sentez pas capable de faire cette manipulation, il n’y a aucun problème, vous pourrez le faire au démarage du Raspberry Pi.
    sudo apt-get install gparted
  8. Lancer Gparted en mode root.
    sudo gparted
  9. Une fois Gparted ouvert, sélectionnez la carte SD (chez moi /dev/mmcblk0p). Il y a deux partitions qui seront là, la première (ici /dev/mmcblk0p1) est l’amorçage de Raspbian tandis que la deuxième (/dev/mmcblk0p2) contient le système de fichier Raspbian. C’est cette deuxième partition que nous allons modifier.
  10. Allez dans partition, déplacer/redimentionner. une fois dans la nouvelle fenêtre, prenez le côté droit du rectangle (bleu chez moi) et « tirez-le le plus loin possible vers la droite, de sorte à ce que en dessous, il soit écrit:
    espace libre: 0MiB

    Choisissez valider.

  11. N’oubliez pas de cliquer sur le vu en vert pour appliquer les changements.
  12. Screen de Gparted

    Screen de Gparted

Et voilà. Vous avez maintenant votre système d’exploitation sur votre carte SD. Pour configurer votre Raspberry Pi, voici la suite

source