Le logiciel Processing communique via l'USB avec la carte
Quand Processing reçoit des données de la carte il ne reconnait pas le port série directement.
Pour que ça fonctionne (sous Ubuntu) j'ai créé un lien symbolique :
sudo ln -s /dev/ttyACM0 /dev/ttyS8
le problème c'est qu'à chaque démarrage de l'ordi ou déconnexion USB de la carte Arduino il faut relancer la commande...
Comment faire pour que la reconnaissance du port soit automatique et invisible pour un simple utilisateur ?
Une petite copie d'écran pour une vue d'ensemble (une thermistance permet d'afficher en temps réel la température à l'écran de l'ordi)
Merci !
mat - Arduino Uno / Ubuntu 10.04 / Processing 1.2.1
C'est bizarre que via le lien symbolique le port série marche et pas via le /dev directement
String portname = "/dev/ttyACM0"; marche pas du tout !?
Je vois que tu as processing 1.2.1 tente de passer en 1.5.1 et regarde si il n'y aurai pas de màj de la librairie RXTX par hasard.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
avec :
String portname = "/dev/ttyS8";
et le lien symbolique, ça marche impeccable et toujours la même réponse.
Processing 1.5.1 et 0195
avec :
String portname = "/dev/ttyACM0";
ça ne marche pas.
avec :
String portname = "/dev/ttyS8";
et le lien symbolique, ça marche.
et pour ces versions toujours la même réponse :
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
Voilà ! Après pour moi c'est important que ça marche automatiquement, car j'aimerais faire des ateliers avec des étudiants et il n'est pas possible que j'intervienne en permanence sur leur ordi pour rentrer la ligne de commande en tant qu'administrateur...
Encore merci en espérant qu'on trouve la solution !
il faut que tu rajoute dans le fichier ".bashrc" qui se trouve à la racine de ton répertoire personnel ton alias ln -s /dev/ttyACM0 /dev/ttyS8, il y a un emplacement prévu à cet effet vers le milieu du fichier.
Attention c'est un fichier caché, ctrl+H pour le faire apparaitre ou alors en ligne de commande vi .bascrc.
Moi je vais pas t'aider, cependant j'aimerai bien voir ton code en entier sur Processing, notamment comment fais-tu pour "rafraichir" le texte sans l'écraser ? Merci.
RÉSOLU, merci à vous tous, à oyster_twiter sur CodeLab , à Timothée (au cours d'une journée du libre à Bourges, étudiant en informatique à l'ENSIB) :
Ajouter, en root, au fichier /etc/rc.local, la ligne :
ln -s /dev/ttyACM0 /dev/ttyS8
le fichier devient alors :
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
ln -s /dev/ttyACM0 /dev/ttyS8
exit 0
Et ç'est automatique et transparent pour un simple utilisateur !
Ça s'effectue en root automatiquement, et quelque soit les droits de l'utilisateur, le lien symbolique est créé au démarrage, et reste même si la carte Arduino est débranchée et rebranchée.
Bref tout se passe comme si vu de l'extérieur ttyACM0 était ttyS8, un port série standard et reconnu par les logiciels, comme Processing.
Vive la communauté du libre et merci à tous !
Mat
PS : joelectronic, concernant ta proposition de créé un alias, je l'ai fait, mais je n'ai pas vu en quoi ça résolvait le problème, ça me permettais simplement de rentrer la commande en root plus rapidement, mais toujours manuellement... mais merci de toute façon, je ne savais pas qu'on pouvait ainsi créer des alias des commandes.