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 :
malheureusement à l'execution ca déconne :
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()
Comment je sais que c'est le port COM27 ?
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'
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 :
d'où ma question : comment faire pour "activer" / "trouver" (je sais pas comment dire) le port COM27 dans cygwin ?
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
c'est supposé etre possible non ?
Partager