Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTLABSerial

Électroniquemis à jour le 24 avril 2023

Le développement d’applications informatiques est devenu une partie essentielle de la vie quotidienne. Les applications peuvent être développées pour des systèmes d’exploitation variés, et leur fonctionnalité peut être étendue grâce à l’utilisation de bibliothèques et de frameworks. PyQt est l’un de ces frameworks qui permet aux développeurs de créer des applications riches et interactives. PyQt est un framework open source qui permet aux développeurs de créer des applications avec une interface graphique riche et des fonctionnalités avancées. Dans cet article, nous allons examiner le PyQt Lab Serial, un outil qui permet aux développeurs de communiquer avec des périphériques série à l’aide de PyQt.

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.
  • Interface graphique de base pour initialiser la connexion au port série (sélection graphique du débit, du port utilisé)
  • Interface graphique de base pour configuration, paramétrage, réception et affichage de chaines en provenance d’Arduino par le port série
  • Envoyer et recevoir des chaînes sur le port Série = créer un terminal série « Arduino-like » !

Variantes du Terminal Série

  • Un Terminal série « Arduino-like » léger et autonome : variante avec bouton de stop.
  • 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.
  • 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 » différentes avec un seul paramètre numérique reçues sur le port série – affichage dans lcdNumber)

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
  • Réception d’une valeur numérique sur le port série, conversion mesure/unité et affichage dans des widgets LCD.
  • Affichage dans 6 widgets d’affichage LCD de 6 valeurs numériques reçues sur le port série.
  • Affichage dans 12 widgets d’affichage LCD de 6 valeurs numériques reçues sur le port série et converties en unités.
  • 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.
  • 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.
  • 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.

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.
  • 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.
  • 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.
  • 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)

Envoi par clic pushButton On/Off

  • Allumer une LED côté Arduino avec un PushButton en mode ON/OFF.
  • 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 » !
    • 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
  • 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)
    • 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.
  • 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 une valeur numérique saisie à l’aide d’un clavier graphique.
    • 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) (Interface « micro-onde like »)
    • Allumer / éteindre un dispositif connecté à Arduino à partir de l’interface de minuteur graphique série
  • 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

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
    • Contrôler un bras robotisé 5/6 axes à l’aide de 5 sliders en « live » par envoi de chaînes avec paramètres numériques sur le port série et mémorisation des séquences
  • 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 » !
  • Un Terminal série « Arduino-like » léger et autonome : variante avec bouton de stop.
  • 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.?
  • 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

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20
Électronique

jQuery UI:

jQuery UI est une bibliothèque JavaScript qui permet aux développeurs de créer des interfaces utilisateur riches et interactives. Elle offre…

Portrait de Inès DameronInès Dameron · 21 Avr 2023

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction