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