L’utilisation des ports série est un moyen pratique et efficace pour communiquer entre un ordinateur et un périphérique externe. Les ports série sont largement utilisés dans les applications industrielles et scientifiques, et sont également très populaires dans le monde de la robotique. Dans cet article, nous allons examiner le protocole PyQt Serial et comment il peut être utilisé pour communiquer entre un ordinateur et un périphérique externe. Nous verrons comment le protocole PyQt Serial peut être utilisé pour envoyer et recevoir des données, ainsi que pour contrôler le périphérique externe. Nous examinerons également les avantages et les inconvénients de l’utilisation du protocole PyQt Serial.
PyQt + PySerial : la communication série (avec Arduino)
PyQt + PySerial : 1. la communication série Arduino vers interface PyQt (réception)
PyQt + PySerial : 2. la communication série interface PyQt vers Arduino (envoi)
PyQt + PySerial : 3. la communication série avancée entre interface PyQt et Arduino
PyQt + PySerial : 1. la communication série Arduino vers interface PyQt (réception)

|
|
Créer un Terminal Série « Arduino like » de A à Z ! Terminal Série de base
- Initialiser le port Série par clic souris sur un pushButton. – 15 p. – 0.25
- Interface graphique de base pour initialiser la connexion au port série (sélection graphique du débit, du port utilisé) – 21 p. – 0.25
- Interface graphique de base pour configuration, paramétrage, réception et affichage de chaines en provenance d’Arduino par le port série – 26 p. – 0.25
- Envoyer et recevoir des chaînes sur le port Série = créer un terminal série « Arduino-like » ! – 32 p. – 0.25 TOP!
Variantes du Terminal Série
- Un Terminal série « Arduino-like » léger et autonome : variante avec bouton de stop. – 32 p. – 0.25
- Terminal série « Arduino like » : variante avec bouton de stop et zone texte pour les chaînes envoyées sur le port série
- Terminal série « Arduino like » : variante avec bouton de stop et spinbox de réglage du délai de réception
- Terminal série « Arduino like » : variante avec bouton de stop et zone texte pour les chaînes envoyées sur le port série et spinbox de réglage du délai de réception *
|
|
|
Arduino vers PyQt : Réception Série avec traitement de chaînes de caractères
- Analyse d’une chaîne de caractères reçue sur le port Série et extraction de paramètres numériques. – 40 p. – 0.25
- Recevoir de façon asynchrone des paramètres numériques par réception de chaines spécifiques avec paramètre numérique reçue sur le port série (= décodage de « fonctions » avec un paramètre numérique reçues sur le port série)
|
|
|
Arduino vers PyQt : Réception Série avec affichages numériques
- Réception d’une valeur numérique sur le port série et affichage dans un widget LCD – 28 p. – 0.25
- Réception d’une valeur numérique sur le port série, conversion mesure/unité et affichage dans des widgets LCD. – 32 p. – 0.25
- Affichage dans 6 widgets d’affichage LCD de 6 valeurs numériques reçues sur le port série. – 49 p. – 0.25
- Affichage dans 12 widgets d’affichage LCD de 6 valeurs numériques reçues sur le port série et converties en unités. – 54 p. – 0.25
- Configurer le port série, recevoir les 6 valeurs numériques des voies analogiques sur le port série et les afficher dans 6 widgets LCD – variante avec onglets
|
|
|
Arduino vers PyQt+PyQwt (1) : Réception Série avec affichage dans des widgets d’affichage analogique QwtDial
- Afficher dans un QwtDial, le widget d’affichage analogique « à aiguille », une valeur de conversion analogique numérique (0-1023) reçue sur le port série en provenance d’Arduino. – 31 p. – 0.25
- Réception d’une valeur numérique sur le port série, dans un QwtDial, le widget d’affichage analogique « à aiguille », conversion mesure/unité et affichage dans des widgets LCD. – 39 p. – 0.25
- Réception de 6 valeurs numériques sur le port série, dans 6 QwtDial, le widget d’affichage analogique « à aiguille », conversion mesure/unité et affichage dans 12 widgets LCD. – 60 p. – 0.25
QwtThermo
- Afficher dans un QwtThermo, le widget d’affichage analogique « vu-mètre », une valeur de conversion analogique numérique (0-1023) reçue sur le port série en provenance d’Arduino. – 27 p. – 0.25
- Réception d’une valeur numérique sur le port série, dans un QwtThermo, le widget d’affichage analogique « vu-mètre », conversion mesure/unité et affichage dans des widgets LCD. – 37 p. – 0.25
- Réception de 6 valeurs numériques sur le port série, dans 6 QwtThermo, le widget d’affichage analogique « vu-mètre », conversion mesure/unité et affichage dans 12 widgets LCD. – 57 p. – 0.25
- Lancer une alarme sonore ou vocale en cas de dépassement d’une valeur d’alarme d’un QwtThermo par une valeur reçue sur le port série
|
PyQt + PySerial : 2. la communication série interface PyQt vers Arduino (envoi)
En vert : des exemples d’utilisation concrète des interfaces PyQt
|
|
Envoi par clic pushButton On/Off
- Allumer une LED côté Arduino avec un PushButton en mode ON/OFF. – 30 p. – 0.25
- Contrôler toutes les broches numériques d’une carte Arduino en mode ON/OFF à l’aide de pushButton On/Off
Envoi par clic pushButton
- Envoyer et recevoir des chaînes sur le port Série = créer un terminal série « Arduino-like » ! – 32 p. – 0.25 TOP!
-
- Activité PyQt + Arduino : Envoyer une chaîne avec paramètre numérique vers Arduino et extraire la valeur numérique reçue côté Arduino – 13 p. – GRATUIT
- Terminal série intégrant un clavier de 5 pushButtons type « Joystick » pour envoi de chaînes personnalisées (contrôle graphique de dispositifs, robots…via le port série) – 38 p. – 0.25
-
- Activité : Contrôler un robot à PC embarqué à l’aide d’une tablette tactile
- Activité : Contrôler une tourelle pan-tilt à l’aide de l’interface « Joystick »
- Terminal série intégrant 1 spinBox (widget de réglage de valeur numérique) pour envoi de chaîne avec paramètre numérique sur le port Série. – 35 p. – 0.25
- Envoyer par clic sur un pushButton une valeur numérique d’un widget LCD réglable par un dial +/- précédée du contenu d’un champ texte (format fonction(valeur))
-
- Régler la luminosité d’une LED
- Envoyer sur le port série la valeur numérique courante d’un slider après validation par appui sur un pushButton
-
- Régler la position d’un servomoteur à l’aide d’un slider après validation par appui sur un pushButton
- Envoyer sur le port série la valeur numérique courante d’un QwtDial après validation par appui sur un pushButton
-
- Régler la position d’un servomoteur à l’aide d’un QwtDial, widget « à aiguille » configuré à 180°après validation par appui sur un pushButton
- Envoyer sur le port série une valeur numérique saisie à l’aide d’un clavier graphique. – 40 p. – 0.25
-
- Contrôler la position d’une tourelle pan-tilt à l’aide de l’interface à clavier graphique
- Un minuteur graphique pour contrôler Arduino : réglage d’un widget LCD avec un bouton réglable (dial), bouton de Go / Stop, envoi sur port série signal de début/fin (à partir de 2 champs texte) *
-
- Allumer / éteindre un dispositif connecté à Arduino à partir de l’interface de minuteur graphique série
|
|
|
Envoi par widget graphique analogique
- Envoyer sur le port la valeur numérique courante d’un slider en « live »
-
- Régler la position d’un servomoteur à l’aide d’un slider en « live » par envoi d’une valeur numérique sur le port série
- Envoyer sur le port série la valeur numérique courante de 3 sliders en « live » sous forme de chaînes avec paramètres numériques *
-
- Régler la couleur d’une LED RGB à l’aide de 3 sliders en « live » par envoi d’une valeur numérique sur le port série
- Envoyer sur le port série la valeur numérique courante de 5 sliders en « live » sous forme de chaînes avec paramètres numériques *
-
- Contrôler un bras robotisé 5/6 axes à l’aide de 6 sliders en « live » par envoi de chaînes avec paramètres numériques sur le port série
- Envoyer sur le port série la valeur numérique courante d’un Dial, bouton réglable, en « live » (lors du lâcher bouton souris)
- Envoyer sur le port série la valeur numérique courante de 5 sliders en « live » sous forme de chaînes avec paramètres numériques + enregistrement des positions et boutons GoTo Sync et bouton « play » +/- enregistrement fichier
- Envoyer sur le port série la valeur numérique courante d’un QwtDial, widget « à aiguille » configuré à 180°, en « live »
-
- Régler la position d’un servomoteur à l’aide d’un QwtDial, widget « à aiguille » configuré à 180° en « live »
|
|
|
Avec affichage webcam (voir OpenCV)
- Interface couplant Terminal Série + affichage capture webcam (pour contrôle tourelle pan/tilt avec retour vidéo…) *
- Interface couplant Terminal Série + clavier graphique type « Joystick » + affichage capture webcam (pour contrôle robot avec retour vidéo…)*
|
PyQt + PySerial : 3. la communication série avancée entre interface PyQt et Arduino

|
|
Echanges bi-directionnels Arduino <=> PyQt
- Envoyer et recevoir des chaînes sur le port Série = créer un terminal série « Arduino-like » ! – 32 p. – 0.25 TOP!
- Un Terminal série « Arduino-like » léger et autonome : variante avec bouton de stop. – 32 p. – 0.25
- Terminal série « Arduino like » : variante avec bouton de stop et spinbox de réglage du délai de réception
- Envoyer une chaîne de requête vers Arduino et récupérer la réponse renvoyée (lancer conversion analogique et récupérer mesure)
|
|
|
Arduino vers PyQt vers Gnu/Linux : Réception Série et contrôle du Système
- La réception d’une chaîne (envoyée par Arduino) sur le port série lance une ligne de commande système. – 31 p. – 0.25
- Déclencher une succession de lignes de commande par réception d’une chaîne reçue sur le port série lors appui sur un BP (Arduino)
|
|
|
Arduino vers PyQt+Pyqtgraph : Réception Série avec affichage graphique avancé sous forme de courbes
- Oscilloscope mono-voie simple (voir pyqtgraph)
- Oscilloscope mono-voie simple avec datalogging dans fichier texte (voir pyqtgraph)
- Oscilloscope 6 voies simultanées sur le même graphique
- Oscilloscope 6 voies simultanées sur 6 graphiques différents
|
|
|
Arduino vers PyQt+PyQwt (2) : Réception Série avec affichage graphique sous forme de courbes
- Oscilloscope mono-voie simple (voir Qwt)
- Oscilloscope mono-voie simple avec datalogging dans fichier texte (voir Qwt)
- Oscilloscope 6 voies simultanées sur le même graphique
- Oscilloscope 6 voies simultanées sur 6 graphiques différents
- Une interface pour thermomètre numérique (LM 35 côté Arduino) avec affichage QwtPlot + QwtThermo + datalogging dans un fichier
|
Création originale de X.HINAULT – www.mon-club-elec.fr – 2013 – Tous droits réservés – GPLv3
Donnez votre avis
★★★★★
Soyez le 1er à noter cet article
ou bien laissez un avis détaillé