arduino:communication_entre_arduino_et_python_par_la_liaison_serie
Communication entre Arduino et Python par la liaison série
Objectif
L'objectif est de récupérer dans Python des mesures réalisées par un Arduino en utilisant la liaison série.
Le montage et le code Arduino
La photorésistance est connectée à une entrée analogique (A0) et nécessite un diviseur de tension réalisé avec une résistance de 1 KΩ (marron / noir / rouge).
Le code suivant permet d'afficher dans le moniteur série les valeurs lue sur la broche analogique A0.
void setup() { Serial.begin(9600); // Initialise la communication avec l'ordinateur } void loop() { int valeur = analogRead(A0); // Mesure la tension sur la broche A0 Serial.println(valeur); // Affiche la mesure sur l'ordinateur delay(250); }
Lecture des données envoyées sur le port série en Python
Avant de lire avec Python les données envoyées sur le port série, il faut fermer le moniteur série d'Arduino !
Pour lire sur le port série, il faut :
- importer le module serial ;
- initialiser la liaison série en précisant le nom du port utilisé et la vitesse de transmission ;
- lire avec la fonction readline() ;
- fermer le port série avec la fonction close().
import serial port_serie = serial.Serial(port = "COM4", baudrate = 9600) print(port_serie.readline()) port_serie.close()
Après l’exécution de ce code, la console Python pourrait afficher une chaine de caractères (byte) de la forme : b'795\r\n'
- 795 : est la valeur (entre 0 et 1023) envoyer par l'Arduino ;
- \n : indique un retour chariot ;
- \r : indique un retour à la ligne (println).
Stocker les données envoyées par l'Arduino dans une liste
Les données envoyées par l’Arduino peuvent être stockées dans une liste :
import serial port_serie = serial.Serial(port = "COM4", baudrate = 9600) liste_mesures = [] for i in range(10): # pour lire les 10 premières lignes sur le port série mesure = port_serie.readline().split() # la fonction split() décompose la chaîne de caractères est supprime '\r\n' liste_mesures.append(mesure) # ajoute la valeur de "mesure" à la liste "liste_mesures" port_serie.close() print(liste_mesures)
Statistiques du site
- Cette page a été consultée par 4 visiteurs aujourd'hui.
- Cette page a été consultée par 1042 visiteurs depuis le 02/01/2024.
arduino/communication_entre_arduino_et_python_par_la_liaison_serie.txt · Dernière modification : 17/04/2024 17:16 de Stéphane LAURENT