[RESOLU] python commande ser.write
Modérateurs : Francois, Manfraid
[RESOLU] python commande ser.write
Bonjour,
je cherche à faire causer un PI et un UNO via USB série.
ça marche dans le sens uno->pi.
pour un test en bidirectionnel, j'ai trouvé ce bout de code:
à l'exec en mode console j'obtiens une bordée d'injures:
je suppose qu'une librairie n'est peut-être pas à jour ou qui est inexistante mais je ne sais pas laquelle.
(update et upgrade sont ok)
merci d'avance pour votre aide et tous mes voeux pour cette nouvelle année!
je cherche à faire causer un PI et un UNO via USB série.
ça marche dans le sens uno->pi.
pour un test en bidirectionnel, j'ai trouvé ce bout de code:
à l'exec en mode console j'obtiens une bordée d'injures:
je suppose qu'une librairie n'est peut-être pas à jour ou qui est inexistante mais je ne sais pas laquelle.
(update et upgrade sont ok)
merci d'avance pour votre aide et tous mes voeux pour cette nouvelle année!
Modifié en dernier par rasduino le sam. 3 janv. 2015 13:59, modifié 1 fois.
Re: python commande ser.write
Salut,
je vais peut etre dire une bétise ( qui a dit oui ? ) , mais
ne serait pas plus juste ?
je vais peut etre dire une bétise ( qui a dit oui ? ) , mais
Code : Tout sélectionner
ser.write(5)
Re: python commande ser.write
salut!
j'aurais dû joindre le code Arduino pour mieux montrer la manip'
en fait, le caractère '5' est envoyé par le Pi à l'arduino pour déclencher une mesure, qui est renvoyée au Pi pour traitement.
c'est un peu 'sioux' comme combine mais c'est un peu l'intérêt de cette démo.
merci pour ton intérêt.
je pense vraiment que c'est une histoire de librairie mais je ne suis pas assez calé sur Linux pour trouver où...
ps: dans un autre script, fonctionne correctement.
j'aurais dû joindre le code Arduino pour mieux montrer la manip'
en fait, le caractère '5' est envoyé par le Pi à l'arduino pour déclencher une mesure, qui est renvoyée au Pi pour traitement.
c'est un peu 'sioux' comme combine mais c'est un peu l'intérêt de cette démo.
merci pour ton intérêt.
je pense vraiment que c'est une histoire de librairie mais je ne suis pas assez calé sur Linux pour trouver où...
ps: dans un autre script,
Code : Tout sélectionner
print(ser.readline())
-
- Raspinaute
- Messages : 247
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: python commande ser.write
Bonjour,
Le message d'erreur est clair, on ne peu pas envoyer une variable de type "str" sur le port série. Ce n'est pas une question de librairie.
Le message d'erreur est clair, on ne peu pas envoyer une variable de type "str" sur le port série. Ce n'est pas une question de librairie.
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Re: python commande ser.write
Merci pour cet éclaircissement.
Eh non, le message n'était pas clair pour moi...
je vais contourner.
Ce code n'a pourtant pas été publié par un débutant. Je vais poser la question.
D'après vous, pourrait-ce être dû à une version particulière de Python?
j'ai lu qu'il y avait des incompatibilités entre versions.
j'espère que l'Orge est restée dans son lit.
(j'ai bossé longtemps à St Michel)
@EVOTk: d'une certaine manière, tu avais raison...
Eh non, le message n'était pas clair pour moi...
je vais contourner.
Ce code n'a pourtant pas été publié par un débutant. Je vais poser la question.
D'après vous, pourrait-ce être dû à une version particulière de Python?
j'ai lu qu'il y avait des incompatibilités entre versions.
j'espère que l'Orge est restée dans son lit.
(j'ai bossé longtemps à St Michel)
@EVOTk: d'une certaine manière, tu avais raison...
-
- Raspinaute
- Messages : 247
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: python commande ser.write
Je t'ai peut-être dit une bêtise, car j' ai trouvé des exemples ou l' on envoie des variable de type str.
Par contre:
Par contre:
dans ce cas le port n'est peut-être pas /dev/ttyAMA0 mais :/dev/ttyUSB0 ou /dev/ttyUSB1 suivant le nombre de périphériques branchés sur les ports USBje cherche à faire causer un PI et un UNO via USB série.
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Re: python commande ser.write
j'ai fait un test dans le sens uno->Pi avec /dev/ttyAMA0 et ça fonctionne.
je vais tester avec un numérique et avec d'autres versions de python car l'auteur du script n'a pas l'air de répondre.
http://electroniqueamateur.blogspot.fr/ ... berry.html
en fait, lorsqu'un uno est connecté au Pi par usb, le pi le 'voit' sur ttyAMA0.
bonne journée
je vais tester avec un numérique et avec d'autres versions de python car l'auteur du script n'a pas l'air de répondre.
http://electroniqueamateur.blogspot.fr/ ... berry.html
en fait, lorsqu'un uno est connecté au Pi par usb, le pi le 'voit' sur ttyAMA0.
bonne journée
-
- Raspinaute
- Messages : 247
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: python commande ser.write
As-tu installé la librairie PySerial ?
essaye la commande ls /dev/ttyUSB* dans putty. Il te feras la liste des périphériques connectés en USB
Si tu n'as que le Uno connecté en USB et qu'il te répond:
~$ ls /dev/ttyUSB*
/dev/ttyUSB0
c'est que le UNO est sur /dev/ttyUSB0.
si non il est bien sur /dev/ttyAMA0
essaye la commande ls /dev/ttyUSB* dans putty. Il te feras la liste des périphériques connectés en USB
Si tu n'as que le Uno connecté en USB et qu'il te répond:
~$ ls /dev/ttyUSB*
/dev/ttyUSB0
c'est que le UNO est sur /dev/ttyUSB0.
si non il est bien sur /dev/ttyAMA0
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Re: python commande ser.write
résolu!
j'ai remplacé (un peu au pif) la première ligne du script par:
et là, c'est tout bon, le Pi reçoit bien la valeur analogique lue sur A0 du Uno!
ça ouvre des horizons, tout ça...
Encore merci pour ton attention et pour ton aide.
ps: c'est bien /dev/ttyAMA0 qui est utilisé.
@+
j'ai remplacé (un peu au pif) la première ligne du script par:
Code : Tout sélectionner
#!/usr/bin/env python
ça ouvre des horizons, tout ça...
Encore merci pour ton attention et pour ton aide.
ps: c'est bien /dev/ttyAMA0 qui est utilisé.
@+
- dbrion0606
- Raspinaute
- Messages : 164
- Enregistré le : ven. 30 janv. 2015 15:51
Re: [RESOLU] python commande ser.write
http://stackoverflow.com/questions/2227 ... -my-string
donne la solution pour pouvoir utiliser python 3, qui fait une différence entre les "bytearray" s et les "string" s.
Au lieu de '5', il faudrait écrire '5'.encode() en utilisant ser.write(...
donne la solution pour pouvoir utiliser python 3, qui fait une différence entre les "bytearray" s et les "string" s.
Au lieu de '5', il faudrait écrire '5'.encode() en utilisant ser.write(...