Messages : 12
Sujets : 5
Inscription : Dec 2016
Je tente de faire travailler ensemble une Raspberry Pi et une carte Arduino par le port USB. Mon problème est d'enregistrer dans une variable la valeur que me renvoie L'arduino.
J'arrive à afficher cette valeur avec "print (ser.readline())" mais je voudrai envoyer cette valeur dans une variable nommée "potar" pour pouvoir travailler avec.
je sais le faire sur Arduino mais je découvre Raspberry et je suis perdu.
Merci d'avance pour la réponse.
Messages : 165
Sujets : 2
Inscription : Jan 2014
Et tout simplement avec un potar = ser.readline(), ça ne marche pas ?
Messages : 12
Sujets : 5
Inscription : Dec 2016
J'avais essayé cette solution mais je ne l'avais pas mise au bon endroit du script. Du coup j'ai fait un gros effort de réflexion et j'ai trouvé ou la mettre. cela marche très bien. Merci.
Messages : 12
Sujets : 5
Inscription : Dec 2016
Une petite question, suite à mon précédent message. La valeur que je reçois passe bien dans ma variable et lorsque j'affiche celle ci, sa valeur est suivie d'un carré, du coup, je ne peux pas utiliser cette valeur pour faire de calcul. comment peut on éviter ce maudit carré.
Précision mon script et en python 2.7.9.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#Le Raspberry Pi demande une information à l'Arduino puis l'affiche à l'écran
import serial #bibliothèque permettant le communication série
import time #pour le delai d'attente entre les messages
ser = serial.Serial('/dev/ttyACM0',9600)
time.sleep(2) #On attend un peu pour que l'Arduino soit prêt
ordre = 0 #Déclaration de la variable
while True: #Boucle répétée jusqu'à interruption du programme
ser.write('5') #Envoi de l'ordre à Arduino
potar=ser.readline() #Lecture du retour Arduino
time.sleep(1) #On attend 1 seconde
print(potar) #On affiche la réponse
if potar > 256: #Prise en compte de la valeur
ordre = 1 #Mise a jour de la variable
print(ordre) #Impression de la variable mise à jour
Merci d'avance
(Modification du message : 24-12-2016, 10:29:39 par
bartolipier.)
Messages : 734
Sujets : 56
Inscription : Dec 2017
Il faudrait peut-être que tu remplaces tout ce qui n'est pas numérique par rien dans ta variable:
Code :
import re
potar = re.sub('[^0-9]', '', potar)
Attention,
potar est alors une chaîne, pas un nombre...
Messages : 12
Sujets : 5
Inscription : Dec 2016
Ca marche merci et bravo pour la vitesse de réponse.