Pages: [1]   Go Down
Author Topic: Serial et envoi de chaines de caractères  (Read 717 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 108
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'essaie d'envoyer des mots au travers d'une liaison série avec un script python, et je n'y arrive pas.
L'arduino reçoit les données au format ascii.

Voici mon code:
Code:
#!/usr/bin/env python2.7

import sys
import os
import serial

ser = serial.Serial("/dev/ard1", 115200)

while True :
        line = sys.stdin.readline()
        ser.write(line)

        line = ser.readline().strip()
        print "Arduino:", line

Je voudrai envoyer une chaine de ce type: xxxx:xxxxx:xxxxx

Auriez-vous une solution à me proposer ?

J'espère que vous pourrez m'aider.
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Je ne comprends pas vraiment le problème de recevoir des caractères ASCII? A moins que tu ne t'attendes à recevoir des mots entiers, et dans ce cas tu te trompes: l'Arduino récupère octet après octet les données sur le port série (un octet = un caractère ASCII).
Donc prévoir de la concaténation au niveau Arduino.
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Auriez-vous une solution à me proposer ?
Sérieusement un minimum de recherche sur google c'est pas la mort ...
http://pyserial.sourceforge.net/pyserial_api.html

String fixe :
Code:
ser.write('xxxx:xxxxx:xxxxx')

String à partir d'arguments :
Code:
s1 = 'toto'
s2 = 'tata'
s3 = 'titi'
ser.write("%s:%s:%s" % (s1, s2, s3))
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 108
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Des recherches google, j'en ai fait, mais ne sachant pas non plus comment exprimer mon problème dans une simple recherche google,je ne risque pas forcément de tomber sur les bonnes solutions. Après, si vous regardez mon code, il fait la meme chose que le bout de code que vous me donnez, à la différence pret que je saisi la chaine en stdin. J'ai testé votre solution, et effectivement, les caractères envoyés depuis le python, apparaissent en ascii les uns après les autres sur l'arduino.

Par contre, étant débutant autant en python qu'en C, je prends toutes les expériences smiley Et ce que je ne savais pas, c'est que l'arduino récupère octet par octet (merci pour l'info), et en ascii de surcroit. Il faut donc que je boucle pour tout récupérer, et que je passe le tout dans une moulinette ascii to decimal si j'ai bien tout compris ?

En tout cas merci pour les informations, j'ai compris d'où vient mon problème smiley-wink
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Par contre, étant débutant autant en python qu'en C, je prends toutes les expériences smiley Et ce que je ne savais pas, c'est que l'arduino récupère octet par octet (merci pour l'info), et en ascii de surcroit. Il faut donc que je boucle pour tout récupérer, et que je passe le tout dans une moulinette ascii to decimal si j'ai bien tout compris ?
-> http://arduino.cc/en/Reference/ParseInt smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: