salut,

je cherche à dialoguer avec un hardware programmable (arduino) connecté par port usb.
sous windows directement, via le hyperterminal notamment ca fonctionne bien. on peut y envoyer des commandes, voir les résultats renvoyés etc.
ca va.

pour tester le bidule je voudrais faire un petit programme qui lui envoie des commandes et recoit des résultats (plutot que dialoguer à la main via l'hyperterminal disons)

donc il me faut un programme qui lit/ecrit sur un port COM, de préférence en ligne de commande.

j'utilise bien volontier cygwin, et pour l'occasion je pensais à utiliser python et son module pyserial qui a l'air tres bien. un peu naivement, je me dis qu'une fois le code python créé il devrait marcher aussi sous windows que sous linux (ok c'est naif :p)

donc j'ai installé le paquet python dans cygwin, j'ai installé le module pyserial aussi. jusque là tout va bien.

hop hop le script en question, juste on commence par ouvrir le port qui va bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
$ cat example.py
 
#print "testing my COM26 port using python"
 
import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 26
ser
ser.open()
ser.isOpen()
malheureusement à l'execution ca déconne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$ python example.py
Traceback (most recent call last):
  File "example.py", line 9, in <module>
    ser.open()
  File "/usr/lib/python2.5/site-packages/serial/serialposix.py", line 276, in open
    raise SerialException("could not open port %s: %s" % (self._port, msg))
serial.serialutil.SerialException: could not open port 26: [Errno 2] No such file or directory: '/dev/com27'
Comment je sais que c'est le port COM27 ?
bahhh parce que c'est celui-là qui marche dans l'hyperterminal et parce que c'est aussi ce port qui marche dans l'environnement arduino IDE.

pourtant le /dev/com27 n'existe pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$ ls -lah /dev
total 4,0K
drwxrwx---+ 1 Utilisateurs  0  8 janv. 15:11 .
drwxrwx---+ 1 Utilisateurs  0  6 oct.   2009 ..
lrwxrwxrwx  1 Utilisateurs 13  6 oct.   2009 fd -> /proc/self/fd
drwxrwxrwt+ 1 Aucun         0  8 janv. 15:11 mqueue
drwxrwxrwt+ 1 Aucun         0  8 janv. 15:11 shm
lrwxrwxrwx  1 Utilisateurs 15  6 oct.   2009 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 Utilisateurs 15  6 oct.   2009 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 Utilisateurs 15  6 oct.   2009 stdout -> /proc/self/fd/1
d'où ma question : comment faire pour "activer" / "trouver" (je sais pas comment dire) le port COM27 dans cygwin ?

c'est supposé etre possible non ?