Importer, configurer et ouvrir le port série

L’objet de la bibliothèque à utiliser est Serial, avec majuscule.

Le nom du port est le même que celui qui s’affiche dans le logiciel Arduino. Typiquement, pour un PC : 'COM3' ou 'COM5'…

Afin d’éviter des blocages lors des lectures (en particulier pour une lecture de ligne), il faut définir une durée maximale en seconde avec timeout.

Si la carte Arduino est associée au port COM3, et configurée à 9600 bits/s (avec Serial.begin(9600)), le code pour configurer le port et l’ouvrir, puis fermer la communication est :

 

from serial import Serial

ser = Serial('COM3', 9600, timeout=1) # paramètre et ouvre le port

ser.close()  # ferme la connexion

 

On remarque que la fonction Serial(…) retourne un objet. Cet objet permet ensuite de fermer la connexion, de transférer des données…

 

Comme il est courant, surtout dans un notebook, d’essayer d’ouvrir un port déjà ouvert, ou inexistant, le code suivant ne provoque pas d’erreur, mais affiche Port non ouvert après l’avoir fermé au besoin.

On remarque ser.is_open qui vaut True si le port est ouvert (et utilisable), False sinon.

 

try:

    ser = Serial('COM3', 9600, timeout=1)

except:

    if ser.is_open:

        ser.close()

    print('Port non ouvert')

 

… # reste du code

 

ser.close() # ferme la connexion