RaspFR :: Forum

Forum de la communauté francophone de Raspberry PI.

Vous n'êtes pas identifié(e).

Annonce

Canal irc: #raspfr sur zeolia.net

#1 22-12-2016 15:54:50

bartolipier
Membre
Inscription : 22-12-2016
Messages : 12

Enregistrement de variable

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.

Hors ligne

#2 22-12-2016 20:42:51

chevelu
Membre
Inscription : 28-01-2014
Messages : 161

Re : Enregistrement de variable

Et tout simplement avec un potar = ser.readline(), ça ne marche pas ?

Hors ligne

#3 23-12-2016 09:29:46

bartolipier
Membre
Inscription : 22-12-2016
Messages : 12

Re : Enregistrement de variable

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.

Hors ligne

#4 24-12-2016 11:28:20

bartolipier
Membre
Inscription : 22-12-2016
Messages : 12

Re : Enregistrement de variable

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

Dernière modification par bartolipier (24-12-2016 11:29:39)

Hors ligne

#5 24-12-2016 14:06:29

CrazyCat
Chat
Inscription : 14-01-2016
Messages : 413

Re : Enregistrement de variable

Il faudrait peut-être que tu remplaces tout ce qui n'est pas numérique par rien dans ta variable:

import re
potar = re.sub('[^0-9]', '', potar)

Attention, potar est alors une chaîne, pas un nombre...

Hors ligne

#6 25-12-2016 10:02:12

bartolipier
Membre
Inscription : 22-12-2016
Messages : 12

Re : Enregistrement de variable

Ca marche merci et bravo pour la vitesse de réponse.

Hors ligne

Pied de page des forums